Package de.xima.fc.common.function.accessor

Package containing various interfaces for generic accessors. An accessor is defined by its ability to get a certain type of value from an object, and to set a value to an object. Accessors are usually pure functions that do not have any state. An accessor always has the following signature (you can use this as a template for new accessor, simply search and replace the word "Property" with the name of the property, "Class" with the type name of the property, and "description" with a short description of the property; then use the IDE to move the inner interfaces to their own files):
 package de.xima.fc.common.accessor;

 import de.xima.fc.common.function.accessor.IPropertyAccessor.IPropertyGetter;
 import de.xima.fc.common.function.accessor.IPropertyAccessor.IPropertySetter;

 /**
  * Accessor (getter+setter) for the description.
  * @param <Holder> Type of the object that contains the information.
  * @author XIMA MEDIA GmbH
 */
 public interface IPropertyAccessor<Holder> extends
   IPropertyGetter<Holder>, IPropertySetter<Holder> {

   /**
    * Getter for the description.
    * @param <Holder> Type of the object that contains the information.
    * @author XIMA MEDIA GmbH
   */
  @FunctionalInterface
   interface IPropertyGetter<Holder> {
    /**
      * Gets the description.
      * @param object The object that holds the information.
      * @return The description.
     */
     Class getProperty(Holder object);
   }

   /**
    * Setter for the description.
    * @param <Holder> Type of the object that contains the information.
    * @author XIMA MEDIA GmbH
   */
  @FunctionalInterface
   interface IPropertySetter<Holder> {
    /**
      * Sets the description.
      * @param object The object that holds the information.
      * @param value The description.
     */
     void setProperty(Holder object, Class value);
   }
 }