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


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);
  }
}