org.jfree.xml.util

## Class GenericObjectFactory

- java.lang.Object
- - org.jfree.xml.util.GenericObjectFactory

-     public final class GenericObjectFactory
      extends java.lang.Object

  The generic object factory contains all methods necessary to collect the property values needed to produce a fully instantiated object.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `GenericObjectFactory(java.lang.Class c, java.lang.String registerName, ConstructorDefinition[] constructors, PropertyDefinition[] propertyDefinitions, LookupDefinition[] lookupDefinitions, AttributeDefinition[] attributeDefinitions, java.lang.String[] orderedPropertyNames)` Creates a new generic object factory.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `createObject()` Creates an object according to the definition.
    `AttributeDefinition[]` | `getAttributeDefinitions()` Returns the attribute definitions.
    `java.lang.Class` | `getBaseClass()` Returns the base class.
    `ConstructorDefinition[]` | `getConstructorDefinitions()` Returns the constructor definitions.
    `GenericObjectFactory` | `getInstance()` Returns a copy of this instance.
    `LookupDefinition[]` | `getLookupDefinitions()` Returns the lookup definitions.
    `java.lang.String[]` | `getOrderedPropertyNames()` Returns the property names.
    `java.lang.Object` | `getProperty(java.lang.String name)` Returns the value of the specified property.
    `PropertyDefinition` | `getPropertyDefinitionByPropertyName(java.lang.String propertyName)` Returns the property definition for the specified property name.
    `PropertyDefinition` | `getPropertyDefinitionByTagName(java.lang.String tagName)` Returns a property definition for the specified tag name.
    `PropertyDefinition[]` | `getPropertyDefinitions()` Returns the property definitions.
    `java.lang.String` | `getRegisterName()` Returns the register name.
    `java.lang.Class` | `getTypeForTagName(java.lang.String tagName)` Returns the class for a tag name.
    `boolean` | `isPropertyDefinition(java.lang.String propertyName)` Returns true if there is a property definition for the specified property name.
    `void` | `readProperties(java.lang.Object object)` Reads the properties.
    `void` | `setProperty(java.lang.String propertyName, java.lang.Object value)` Sets a property value.
    `void` | `writeObjectProperties(java.lang.Object object)` Writes the properties for the object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GenericObjectFactory

          public GenericObjectFactory(java.lang.Class c,
                              java.lang.String registerName,
                              ConstructorDefinition[] constructors,
                              PropertyDefinition[] propertyDefinitions,
                              LookupDefinition[] lookupDefinitions,
                              AttributeDefinition[] attributeDefinitions,
                              java.lang.String[] orderedPropertyNames)
                               throws ObjectDescriptionException

      Creates a new generic object factory.
      Parameters:
        `c` - the class.
        `registerName` - the (optional) name under which to register the class for any later lookup.
        `constructors` - the constructor definitions.
        `propertyDefinitions` - the property definitions.
        `lookupDefinitions` - the lookup definitions.
        `attributeDefinitions` - the attribute definitions.
        `orderedPropertyNames` - the ordered property names.
      Throws:
        `ObjectDescriptionException` - if there is a problem.

  - ### Method Detail

    - #### getInstance

          public GenericObjectFactory getInstance()

      Returns a copy of this instance.
      Returns:
        a copy of this instance.

    - #### getRegisterName

          public java.lang.String getRegisterName()

      Returns the register name.
      Returns:
        the register name.

    - #### getTypeForTagName

          public java.lang.Class getTypeForTagName(java.lang.String tagName)
                                            throws ObjectDescriptionException

      Returns the class for a tag name.
      Parameters:
        `tagName` - the tag name.
      Returns:
        the class.
      Throws:
        `ObjectDescriptionException` - if there is a problem.

    - #### isPropertyDefinition

          public boolean isPropertyDefinition(java.lang.String propertyName)

      Returns true if there is a property definition for the specified property name.
      Parameters:
        `propertyName` - the property name.
      Returns:
        A boolean.

    - #### getPropertyDefinitionByPropertyName

          public PropertyDefinition getPropertyDefinitionByPropertyName(java.lang.String propertyName)
                                                                 throws ObjectDescriptionException

      Returns the property definition for the specified property name.
      Parameters:
        `propertyName` - the property name.
      Returns:
        the property definition.
      Throws:
        `ObjectDescriptionException` - if there is no such property for this object.

    - #### getPropertyDefinitionByTagName

          public PropertyDefinition getPropertyDefinitionByTagName(java.lang.String tagName)
                                                            throws ObjectDescriptionException

      Returns a property definition for the specified tag name.
      Parameters:
        `tagName` - the tag name.
      Returns:
        the property definition.
      Throws:
        `ObjectDescriptionException` - if there is no such tag defined for this object.

    - #### getConstructorDefinitions

          public ConstructorDefinition[] getConstructorDefinitions()

      Returns the constructor definitions.
      Returns:
        the constructor definitions.

    - #### getAttributeDefinitions

          public AttributeDefinition[] getAttributeDefinitions()

      Returns the attribute definitions.
      Returns:
        the attribute definitions.

    - #### getPropertyDefinitions

          public PropertyDefinition[] getPropertyDefinitions()

      Returns the property definitions.
      Returns:
        the property definitions.

    - #### getOrderedPropertyNames

          public java.lang.String[] getOrderedPropertyNames()

      Returns the property names.
      Returns:
        the property names.

    - #### getLookupDefinitions

          public LookupDefinition[] getLookupDefinitions()

      Returns the lookup definitions.
      Returns:
        the lookup definitions.

    - #### getProperty

          public java.lang.Object getProperty(java.lang.String name)

      Returns the value of the specified property.
      Parameters:
        `name` - the property name.
      Returns:
        the property value.

    - #### createObject

          public java.lang.Object createObject()
                                        throws ObjectDescriptionException

      Creates an object according to the definition.
      Returns:
        the object.
      Throws:
        `ObjectDescriptionException` - if there is a problem with the object description.

    - #### setProperty

          public void setProperty(java.lang.String propertyName,
                         java.lang.Object value)
                           throws ObjectDescriptionException

      Sets a property value.
      Parameters:
        `propertyName` - the property name.
        `value` - the property value.
      Throws:
        `ObjectDescriptionException` - if there is a problem with the object description.

    - #### writeObjectProperties

          public void writeObjectProperties(java.lang.Object object)
                                     throws ObjectDescriptionException

      Writes the properties for the object.
      Parameters:
        `object` - the object.
      Throws:
        `ObjectDescriptionException` - if there is a problem.

    - #### readProperties

          public void readProperties(java.lang.Object object)
                              throws ObjectDescriptionException

      Reads the properties.
      Parameters:
        `object` - the object.
      Throws:
        `ObjectDescriptionException` - if there is a problem.

    - #### getBaseClass

          public java.lang.Class getBaseClass()

      Returns the base class.
      Returns:
        the base class.