Class PropertyContainer

java.lang.Object
com.bc.ceres.binding.PropertyContainer
All Implemented Interfaces:
PropertyChangeEmitter, PropertySet
Direct Known Subclasses:
DefaultFigureStyle

public class PropertyContainer extends Object implements PropertySet
A convenience implementation of the PropertySet interface. PropertyContainer is basically an implementation of the Property List design pattern.
Since:
0.6
  • Constructor Details

    • PropertyContainer

      public PropertyContainer()
      Constructs a new, empty property container.
  • Method Details

    • createObjectBacked

      public static PropertyContainer createObjectBacked(Object object)
      Creates a property container for the given object. The factory method will not modify the object, thus not setting any default values.
      Parameters:
      object - the backing object
      Returns:
      The property container.
    • createObjectBacked

      public static PropertyContainer createObjectBacked(Object object, PropertyDescriptorFactory descriptorFactory)
      Creates a property container for the given object. The factory method will not modify the object, thus not setting any default values.
      Parameters:
      object - the backing object
      descriptorFactory - a factory used to create PropertyDescriptors of the fields of the object's type
      Returns:
      The property container.
    • createObjectBacked

      public static PropertyContainer createObjectBacked(Object object, PropertySetDescriptor propertySetDescriptor)
    • createMapBacked

      public static PropertyContainer createMapBacked(Map<String,Object> map)
      Creates a property container for a map backing the values. The properties are derived from the current map entries.
      Parameters:
      map - the map which backs the values
      Returns:
      The property container.
    • createMapBacked

      public static PropertyContainer createMapBacked(Map<String,Object> map, PropertySetDescriptor propertySetDescriptor)
      Creates a property container for a map backing the values. The factory method will not modify the given map, thus not setting any default values.
      Parameters:
      map - the map which backs the values
      propertySetDescriptor - A descriptor the property set to be created.
      Returns:
      The property container.
    • createMapBacked

      public static PropertyContainer createMapBacked(Map<String,Object> map, Class<?> templateType)
      Creates a property container for the given template type and map backing the values. The factory method will not modify the given map, thus not setting any default values.
      Parameters:
      map - the map which backs the values
      templateType - the template type
      Returns:
      The property container.
    • createMapBacked

      public static PropertyContainer createMapBacked(Map<String,Object> map, Class<?> templateType, PropertyDescriptorFactory descriptorFactory)
      Creates a property container for the given template type and map backing the values. The factory method will not modify the given map, thus not setting any default values.
      Parameters:
      map - the map which backs the values
      templateType - the template type
      descriptorFactory - a factory used to create PropertyDescriptors of the fields of the template type
      Returns:
      The property container.
    • createValueBacked

      public static PropertyContainer createValueBacked(Class<?> templateType)
      Creates a property container for the given template type. All properties will have their values set to default values (if specified).
      Parameters:
      templateType - the template type
      Returns:
      The property container.
    • createValueBacked

      public static PropertyContainer createValueBacked(Class<?> templateType, PropertyDescriptorFactory descriptorFactory)
      Creates a property container for the given template type. All properties will have their values set to default values (if specified).
      Parameters:
      templateType - the template class used to derive the descriptors from
      descriptorFactory - a factory used to create PropertyDescriptors of the fields of the template type
      Returns:
      The property container.
    • createForFields

      public static PropertyContainer createForFields(Class<?> type, PropertyDescriptorFactory descriptorFactory, PropertyAccessorFactory accessorFactory, boolean initValues)
      Creates a property container for the given template type. Properties are generated using the descriptorFactory and the accessorFactory which are called for each non-static and non-transient class field.
      Parameters:
      type - The type that provides the fields.
      descriptorFactory - The property descriptor factory.
      accessorFactory - The property accessor factory.
      initValues - If true, properties are initialised by their default values, if specified.
      Returns:
      The property container.
    • getProperties

      public Property[] getProperties()
      Description copied from interface: PropertySet
      Gets all properties currently contained in this set.
      Specified by:
      getProperties in interface PropertySet
      Returns:
      The array of properties, which may be empty.
    • isPropertyDefined

      public boolean isPropertyDefined(String name)
      Description copied from interface: PropertySet
      Tests if the named property is defined in this set. For undefined properties, the method getProperty(name) will always return null.
      Specified by:
      isPropertyDefined in interface PropertySet
      Parameters:
      name - The property name or the property's alias name (both case sensitive).
      Returns:
      true if the property is defined.
    • getProperty

      public Property getProperty(String name)
      Description copied from interface: PropertySet
      Gets the named property.
      Specified by:
      getProperty in interface PropertySet
      Parameters:
      name - The property name or the property's alias name (both case sensitive).
      Returns:
      The property, or null if the property does not exist.
      See Also:
    • addProperty

      public void addProperty(Property property)
      Description copied from interface: PropertySet
      Adds a property to this set.
      Specified by:
      addProperty in interface PropertySet
      Parameters:
      property - The property.
    • addProperties

      public void addProperties(Property... properties)
      Description copied from interface: PropertySet
      Adds the given properties to this set.
      Specified by:
      addProperties in interface PropertySet
      Parameters:
      properties - The properties to be added.
    • removeProperty

      public void removeProperty(Property property)
      Description copied from interface: PropertySet
      Removes a property from this set.
      Specified by:
      removeProperty in interface PropertySet
      Parameters:
      property - The property.
    • removeProperties

      public void removeProperties(Property... properties)
      Description copied from interface: PropertySet
      Removes the given properties from this set.
      Specified by:
      removeProperties in interface PropertySet
      Parameters:
      properties - The properties to be removed.
    • getValue

      public <T> T getValue(String name)
      Description copied from interface: PropertySet
      Gets the value of the named property.
      Specified by:
      getValue in interface PropertySet
      Parameters:
      name - The property name.
      Returns:
      The property value or null if a property with the given name does not exist.
    • setValue

      public void setValue(String name, Object value) throws IllegalArgumentException
      Description copied from interface: PropertySet
      Sets the value of the named property.
      Specified by:
      setValue in interface PropertySet
      Parameters:
      name - The property name.
      value - The new property value.
      Throws:
      IllegalArgumentException - If the value is illegal. The cause will always be a ValidationException.
    • getDescriptor

      public PropertyDescriptor getDescriptor(String name)
      Description copied from interface: PropertySet
      Gets the descriptor for the named property.
      Specified by:
      getDescriptor in interface PropertySet
      Parameters:
      name - The property name (case sensitive).
      Returns:
      The descriptor, or null if the property is unknown.
    • setDefaultValues

      public void setDefaultValues() throws IllegalStateException
      Description copied from interface: PropertySet
      Sets all properties to their default values.
      Specified by:
      setDefaultValues in interface PropertySet
      Throws:
      IllegalStateException - If at least one of the default values is illegal. The cause will always be a ValidationException.
      See Also:
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener l)
      Description copied from interface: PropertyChangeEmitter
      Adds a property change listener to this emitter.
      Specified by:
      addPropertyChangeListener in interface PropertyChangeEmitter
      Parameters:
      l - The listener.
    • addPropertyChangeListener

      public void addPropertyChangeListener(String name, PropertyChangeListener l)
      Description copied from interface: PropertyChangeEmitter
      Adds a dedicated property change listener to this emitter.
      Specified by:
      addPropertyChangeListener in interface PropertyChangeEmitter
      Parameters:
      name - The property name.
      l - The listener.
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener l)
      Description copied from interface: PropertyChangeEmitter
      Removes a property change listener from this emitter.
      Specified by:
      removePropertyChangeListener in interface PropertyChangeEmitter
      Parameters:
      l - The listener.
    • removePropertyChangeListener

      public void removePropertyChangeListener(String name, PropertyChangeListener l)
      Description copied from interface: PropertyChangeEmitter
      Removes a dedicated property change listener from this emitter.
      Specified by:
      removePropertyChangeListener in interface PropertyChangeEmitter
      Parameters:
      name - The property name.
      l - The listener.