org.jfree.xml.util

Class 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

GenericObjectFactory(Class c, String registerName, ConstructorDefinition[] constructors, PropertyDefinition[] propertyDefinitions, LookupDefinition[] lookupDefinitions, AttributeDefinition[] attributeDefinitions, String[] orderedPropertyNames)
Creates a new generic object factory.

Method Summary

Object
createObject()
Creates an object according to the definition.
AttributeDefinition[]
getAttributeDefinitions()
Returns the attribute definitions.
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.
String[]
getOrderedPropertyNames()
Returns the property names.
Object
getProperty(String name)
Returns the value of the specified property.
PropertyDefinition
getPropertyDefinitionByPropertyName(String propertyName)
Returns the property definition for the specified property name.
PropertyDefinition
getPropertyDefinitionByTagName(String tagName)
Returns a property definition for the specified tag name.
PropertyDefinition[]
getPropertyDefinitions()
Returns the property definitions.
String
getRegisterName()
Returns the register name.
Class
getTypeForTagName(String tagName)
Returns the class for a tag name.
boolean
isPropertyDefinition(String propertyName)
Returns true if there is a property definition for the specified property name.
void
readProperties(Object object)
Reads the properties.
void
setProperty(String propertyName, Object value)
Sets a property value.
void
writeObjectProperties(Object object)
Writes the properties for the object.

Constructor Details

GenericObjectFactory

public GenericObjectFactory(Class c,
                            String registerName,
                            ConstructorDefinition[] constructors,
                            PropertyDefinition[] propertyDefinitions,
                            LookupDefinition[] lookupDefinitions,
                            AttributeDefinition[] attributeDefinitions,
                            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 Details

createObject

public 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.

getAttributeDefinitions

public AttributeDefinition[] getAttributeDefinitions()
Returns the attribute definitions.
Returns:
the attribute definitions.

getBaseClass

public Class getBaseClass()
Returns the base class.
Returns:
the base class.

getConstructorDefinitions

public ConstructorDefinition[] getConstructorDefinitions()
Returns the constructor definitions.
Returns:
the constructor definitions.

getInstance

public GenericObjectFactory getInstance()
Returns a copy of this instance.
Returns:
a copy of this instance.

getLookupDefinitions

public LookupDefinition[] getLookupDefinitions()
Returns the lookup definitions.
Returns:
the lookup definitions.

getOrderedPropertyNames

public String[] getOrderedPropertyNames()
Returns the property names.
Returns:
the property names.

getProperty

public Object getProperty(String name)
Returns the value of the specified property.
Parameters:
name - the property name.
Returns:
the property value.

getPropertyDefinitionByPropertyName

public PropertyDefinition getPropertyDefinitionByPropertyName(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(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.

getPropertyDefinitions

public PropertyDefinition[] getPropertyDefinitions()
Returns the property definitions.
Returns:
the property definitions.

getRegisterName

public String getRegisterName()
Returns the register name.
Returns:
the register name.

getTypeForTagName

public Class getTypeForTagName(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(String propertyName)
Returns true if there is a property definition for the specified property name.
Parameters:
propertyName - the property name.
Returns:
A boolean.

readProperties

public void readProperties(Object object)
            throws ObjectDescriptionException
Reads the properties.
Parameters:
object - the object.
Throws:
ObjectDescriptionException - if there is a problem.

setProperty

public void setProperty(String propertyName,
                        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(Object object)
            throws ObjectDescriptionException
Writes the properties for the object.
Parameters:
object - the object.
Throws:
ObjectDescriptionException - if there is a problem.