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.
    • Field Detail

      • constructorDefinitions

        private final ConstructorDefinition[] constructorDefinitions
        Storage for the constructor definitions.
      • propertyDefinitions

        private final PropertyDefinition[] propertyDefinitions
        Storage for the property definitions.
      • lookupDefinitions

        private final LookupDefinition[] lookupDefinitions
        Storage for the lookup definitions.
      • attributeDefinitions

        private final AttributeDefinition[] attributeDefinitions
        Storage for the attribute definitions.
      • orderedPropertyNames

        private final java.lang.String[] orderedPropertyNames
        The ordered property names.
      • propertyInfos

        private final java.util.HashMap propertyInfos
        Storage for property info.
      • propertyValues

        private final java.util.HashMap propertyValues
        Storage for property values.
      • baseClass

        private final java.lang.Class baseClass
        The base class.
      • registerName

        private final java.lang.String registerName
        The register name.
    • 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.
      • GenericObjectFactory

        private GenericObjectFactory​(GenericObjectFactory factory)
        A copy constructor.
        Parameters:
        factory - the factory to copy.
    • 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.
      • getPropertyDescriptor

        private java.beans.PropertyDescriptor getPropertyDescriptor​(java.lang.String propertyName)
        Returns a property descriptor.
        Parameters:
        propertyName - the property name.
        Returns:
        a property descriptor.
      • 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.
      • 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.
      • isAssignableOrPrimitive

        private boolean isAssignableOrPrimitive​(java.lang.Class baseType,
                                                java.lang.Class valueType)
        Returns true if the base type is a primitive or assignable from the value type.
        Parameters:
        baseType - the base class.
        valueType - the value class.
        Returns:
        A boolean.
      • isConstructorProperty

        private boolean isConstructorProperty​(java.lang.String propertyName)
        Returns true if the specified property is...
        Parameters:
        propertyName - the property name.
        Returns:
        A boolean.
      • getBaseClass

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