@@ -0,0 +1,2064 @@
+/* Copyright (c) The m-m-m Team, Licensed under the Apache License, Version 2.0%0A * http://www.apache.org/licenses/LICENSE-2.0 */%0Apackage net.sf.mmm.util.pojo.descriptor.api;%0A%0Aimport java.util.Collection;%0A%0Aimport net.sf.mmm.util.pojo.descriptor.api.accessor.PojoPropertyAccessor;%0Aimport net.sf.mmm.util.pojo.descriptor.api.accessor.PojoPropertyAccessorMode;%0Aimport net.sf.mmm.util.pojo.descriptor.api.attribute.PojoAttributeName;%0A%0A/**%0A * This interface represents a property of a %7B@link net.sf.mmm.util.pojo.api.Pojo%7D. A property is some%0A * attribute of a %7B@link net.sf.mmm.util.pojo.api.Pojo%7D that can be accessed directly via a%0A * %7B@link java.lang.reflect.Field%7D or via a %7B@link java.lang.reflect.Method%7D (getter, setter, etc.). This%0A * %7B@link PojoPropertyDescriptor%7D is an alternative to %7B@link java.beans.PropertyDescriptor%7D but only has%0A * focus on reflectively accessing objects. Therefore it works on any %7B@link net.sf.mmm.util.pojo.api.Pojo%7D. %3Cbr%3E%0A *%0A * @author Joerg Hohwiller (hohwille at users.sourceforge.net)%0A * @since 1.1.0%0A */%0Apublic interface PojoPropertyDescriptor extends PojoAttributeName %7B%0A%0A  /**%0A   * This method gets the %7B@link PojoPropertyAccessor accessor%7D to access the represented property in the way%0A   * given by %3Ccode%3Emode%3C/code%3E.%0A   *%0A   * @param %3CACCESSOR%3E is the type of the requested accessor.%0A   * @param mode is the %7B@link PojoPropertyAccessor#getMode() mode%7D of the requested accessor. Use%0A   *        %7B@link net.sf.mmm.util.pojo.descriptor.api.accessor.PojoPropertyAccessorModes%7D for available%0A   *        modes.%0A   * @return the accessor for the given %3Ccode%3Emode%3C/code%3E or %3Ccode%3Enull%3C/code%3E if no such accessor exists.%0A   */%0A  %3CACCESSOR extends PojoPropertyAccessor%3E ACCESSOR getAccessor(PojoPropertyAccessorMode%3CACCESSOR%3E mode);%0A%0A  /**%0A   * This method gets all available %7B@link #getAccessor(PojoPropertyAccessorMode) accessors%7D for the%0A   * represented property.%0A   *%0A   * @return a collection with all %7B@link PojoPropertyDescriptor property descriptor%7Ds%0A   */%0A  Collection%3C? extends PojoPropertyAccessor%3E getAccessors();%0A%0A%7D%0A

add GWT compatibility