Class TypeInfo

  • Direct Known Subclasses:
    EnumTypeInfo

    public class TypeInfo
    extends java.lang.Object
    INTERNAL:

    Purpose:Used to store meta data about JAXB 2.0 Annotated classes during schema and mapping generation processes.

    Responsibilities:

    • Store information about Class Name and the associated Schema Type name
    • Store information about Property Order for mapping and schema generation
    • Store information about XmlAdapters, XmlAccessType and other JAXB 2.0 annotation artifacts
    See Also:
    AnnotationsProcessor, EnumTypeInfo
    Author:
    mmacivor
    Since:
    Oracle TopLink 11.1.1.0.0
    • Field Detail

      • DEFAULT_NAME_TRANSFORMER

        public static final XMLNameTransformer DEFAULT_NAME_TRANSFORMER
    • Constructor Detail

      • TypeInfo

        public TypeInfo​(Helper helper,
                        JavaClass javaClass)
        This constructor sets the Helper to be used throughout XML and Annotations processing. Other fields are initialized here as well.
        Parameters:
        helper -
    • Method Detail

      • getDescriptor

        public org.eclipse.persistence.internal.oxm.mappings.Descriptor getDescriptor()
        Return the XmlDescriptor set on this TypeInfo.
        Returns:
        the XmlDescriptor set on this TypeInfo, or null if none
      • setDescriptor

        public void setDescriptor​(org.eclipse.persistence.internal.oxm.mappings.Descriptor desc)
        Set the XmlDescriptor on this TypeInfo.
        Parameters:
        desc -
      • getComplexType

        public org.eclipse.persistence.internal.oxm.schema.model.ComplexType getComplexType()
      • setComplexType

        public void setComplexType​(org.eclipse.persistence.internal.oxm.schema.model.ComplexType type)
      • getSimpleType

        public org.eclipse.persistence.internal.oxm.schema.model.SimpleType getSimpleType()
      • setSimpleType

        public void setSimpleType​(org.eclipse.persistence.internal.oxm.schema.model.SimpleType type)
      • getPropOrder

        public java.lang.String[] getPropOrder()
      • isSetPropOrder

        public boolean isSetPropOrder()
        Indicates that the propOrder has been set, i.e. is non-null
        Returns:
        true if propOrder is non-null, false otherwise
      • setPropOrder

        public void setPropOrder​(java.lang.String[] order)
      • getClassNamespace

        public java.lang.String getClassNamespace()
      • setClassNamespace

        public void setClassNamespace​(java.lang.String namespace)
      • isComplexType

        public boolean isComplexType()
      • isMixed

        public boolean isMixed()
        Indicates mixed content
      • setMixed

        public void setMixed​(boolean isMixed)
        Set mixed content indicator
      • getCompositor

        public org.eclipse.persistence.internal.oxm.schema.model.TypeDefParticle getCompositor()
      • setCompositor

        public void setCompositor​(org.eclipse.persistence.internal.oxm.schema.model.TypeDefParticle particle)
      • getPropertyNames

        public java.util.ArrayList<java.lang.String> getPropertyNames()
      • getIDProperty

        public Property getIDProperty()
        Return the TypeProperty 'idProperty'. This method will typically be used in conjunction with isIDSet method to determine if an @XmlID exists, and hence 'idProperty' is non-null.
        Returns:
      • getProperties

        public java.util.HashMap<java.lang.String,​Property> getProperties()
        Return the Map of Properties for this TypeInfo.
        Returns:
      • addProperty

        public void addProperty​(java.lang.String name,
                                Property property)
        Put a Property in the Map of Properties for this TypeInfo. Here, the original property is put in the originalProperties map, the properties map, and the propertyList list. It is assumed that the originalProperties map will remain unchanged during processing.
      • setIDProperty

        public void setIDProperty​(Property idProperty)
        Sets the TypeProperty 'idProperty'. This indicates that an @XmlID annotation is set on a given field/method.
      • setProperties

        public void setProperties​(java.util.ArrayList<Property> properties)
        Set the Map of Properties for this TypeInfo.
        Parameters:
        properties -
      • orderProperties

        public void orderProperties()
        Order the properties based on the XmlAccessOrder, if set.
      • isEnumerationType

        public boolean isEnumerationType()
        Indicates if this type info represents an enumeration. Since EnumTypeInfo is used for enum types, this method will always return false.
        Returns:
        false
      • isIDSet

        public boolean isIDSet()
        Indicates if an @XmlID is set on a field/property. If so, the TypeProperty 'idProperty' will be non-null.
        Returns:
      • getPropertyList

        public java.util.ArrayList<Property> getPropertyList()
      • getSchemaTypeName

        public java.lang.String getSchemaTypeName()
      • setSchemaTypeName

        public void setSchemaTypeName​(java.lang.String typeName)
      • setSchema

        public void setSchema​(org.eclipse.persistence.internal.oxm.schema.model.Schema theSchema)
      • getSchema

        public org.eclipse.persistence.internal.oxm.schema.model.Schema getSchema()
      • getPackageLevelAdapterClass

        public JavaClass getPackageLevelAdapterClass​(JavaClass boundType)
        Return the xmladapter class for a given bound type class.
        Parameters:
        boundType -
        Returns:
      • isAnonymousComplexType

        public boolean isAnonymousComplexType()
      • getPackageLevelAdapterClass

        public JavaClass getPackageLevelAdapterClass​(java.lang.String boundTypeName)
        Return the xmladapter class for a given bound type class name.
        Parameters:
        boundTypeName -
        Returns:
      • getPackageLevelAdaptersByClass

        public java.util.HashMap<java.lang.String,​JavaClass> getPackageLevelAdaptersByClass()
        Return the Map of XmlAdapters for this TypeInfo.
        Returns:
      • addPackageLevelAdapterClass

        public void addPackageLevelAdapterClass​(JavaClass adapterClass,
                                                JavaClass boundType)
        Put a bound type class to adapter class entry in the Map.
        Parameters:
        adapterClass -
        boundType -
      • hasRootElement

        public boolean hasRootElement()
      • hasElementRefs

        public boolean hasElementRefs()
        Indicates if this TypeInfo contains an XmlElementRefs property.
        Returns:
      • getElementRefsPropName

        public java.lang.String getElementRefsPropName()
        Return the XmlElementRefs property name, if one has been set.
        Returns:
      • setElementRefsPropertyName

        public void setElementRefsPropertyName​(java.lang.String propName)
        Set the XmlElementRefs property name.
      • getObjectFactoryClassName

        public java.lang.String getObjectFactoryClassName()
      • setObjectFactoryClassName

        public void setObjectFactoryClassName​(java.lang.String factoryClass)
      • getFactoryMethodName

        public java.lang.String getFactoryMethodName()
      • setFactoryMethodName

        public void setFactoryMethodName​(java.lang.String factoryMethod)
      • getFactoryMethodParamTypes

        public java.lang.String[] getFactoryMethodParamTypes()
      • setFactoryMethodParamTypes

        public void setFactoryMethodParamTypes​(java.lang.String[] paramTypes)
      • isSetXmlValueProperty

        public boolean isSetXmlValueProperty()
        Indicates if an xmlValueProperty is set on this TypeInfo, i.e. is non-null.
        Returns:
      • getXmlValueProperty

        public Property getXmlValueProperty()
      • setXmlValueProperty

        public void setXmlValueProperty​(Property xmlValueProperty)
      • isTransient

        public boolean isTransient()
        Indicates if the class represented by this TypeInfo is marked XmlTransient.
        Returns:
      • setTransient

        public void setTransient​(boolean isTransient)
        Used to indicate that the class represented by this TypeInfo is marked XmlTransient.
      • getNonTransientPropertiesInPropOrder

        public java.util.List<Property> getNonTransientPropertiesInPropOrder()
        Return all non-transient properties that exist in the propOrder array.
        Returns:
      • isSetXmlTransient

        public boolean isSetXmlTransient()
        Indicates if XmlTransient is set.
        Returns:
      • setXmlTransient

        public void setXmlTransient​(boolean isTransient)
        Set the XmlTransient for this TypeInfo.
        Parameters:
        isTransient -
      • isXmlElementNillable

        public boolean isXmlElementNillable()
        Indicates if XmlElementNillable is set.
        Returns:
      • setXmlElementNillable

        public void setXmlElementNillable​(boolean isXmlElementNillable)
        Set the XmlElementNillable for this TypeInfo.
        Parameters:
        isXmlElementNillable -
      • getXmlNullPolicy

        public XmlNullPolicy getXmlNullPolicy()
        Return XmlNullPolicy for this TypeInfo.
        Returns:
        xmlNullPolicy
      • setXmlNullPolicy

        public void setXmlNullPolicy​(XmlNullPolicy xmlNullPolicy)
        Set the XmlNullPolicy for this TypeInfo.
        Parameters:
        xmlNullPolicy -
      • isSetXmlSeeAlso

        public boolean isSetXmlSeeAlso()
        Indicates if xmlSeeAlso has been set, i.e. is non-null
        Returns:
        true is xmlSeeAlso has been set, i.e. is non-null, false otherwise
      • getXmlSeeAlso

        public java.util.List<java.lang.String> getXmlSeeAlso()
        Return the List of XmlSeeAlso class names for this TypeInfo.
        Returns:
      • setXmlSeeAlso

        public void setXmlSeeAlso​(java.util.List<java.lang.String> xmlSeeAlso)
        Set the List of XmlSeeAlso class names for this TypeInfo.
        Parameters:
        xmlSeeAlso -
      • isSetXmlRootElement

        public boolean isSetXmlRootElement()
        Indicates if xmlRootElement has been set, i.e. is non-null
        Returns:
        true is xmlRootElement has been set, i.e. is non-null, false otherwise
      • getXmlRootElement

        public XmlRootElement getXmlRootElement()
        Return the xmlRootElement set on this TypeInfo.
        Returns:
      • setXmlRootElement

        public void setXmlRootElement​(XmlRootElement xmlRootElement)
        Set the xmlRootElement for this TypeInfo.
        Parameters:
        xmlRootElement -
      • isSetXmlType

        public boolean isSetXmlType()
        Indicates if xmlType has been set, i.e. is non-null
        Returns:
        true is xmlType has been set, i.e. is non-null, false otherwise
      • getXmlType

        public XmlType getXmlType()
        Return the xmlType set on this TypeInfo.
        Returns:
      • setXmlType

        public void setXmlType​(XmlType xmlType)
        Set the xmlType for this TypeInfo.
        Parameters:
        xmlType -
      • isSetXmlAccessType

        public boolean isSetXmlAccessType()
        Indicates if xmlAccessType has been set, i.e. is non-null
        Returns:
        true is xmlAccessType has been set, i.e. is non-null, false otherwise
      • getXmlAccessType

        public XmlAccessType getXmlAccessType()
        Return the xmlAccessType for this TypeInfo.
        Returns:
      • setXmlAccessType

        public void setXmlAccessType​(XmlAccessType xmlAccessType)
        Set the xmlAccessType for this TypeInfo.
        Parameters:
        xmlAccessType -
      • isSetXmlAccessOrder

        public boolean isSetXmlAccessOrder()
        Indicates if xmlAccessOrder has been set, i.e. is non-null
        Returns:
        true is xmlAccessOrder has been set, i.e. is non-null, false otherwise
      • getXmlAccessOrder

        public XmlAccessOrder getXmlAccessOrder()
        Return the xmlAccessOrder for this TypeInfo.
        Returns:
      • setXmlAccessOrder

        public void setXmlAccessOrder​(XmlAccessOrder xmlAccessOrder)
        Set the xmlAccessOrder for this TypeInfo.
        Parameters:
        xmlAccessOrder -
      • isPreBuilt

        public boolean isPreBuilt()
        Indicates if this TypeInfo has completed the preBuildTypeInfo phase of processing.
        Returns:
        true if this TypeInfo has completed the preBuildTypeInfo phase of processing, false otherwise
      • setPreBuilt

        public void setPreBuilt​(boolean isPreBuilt)
        Set indicator that this TypeInfo has completed the preBuildTypeInfo phase of processing.
      • isPostBuilt

        public boolean isPostBuilt()
        Indicates if this TypeInfo has completed the postBuildTypeInfo phase of processing.
        Returns:
        true if this TypeInfo has completed the postBuildTypeInfo phase of processing, false otherwise
      • setPostBuilt

        public void setPostBuilt​(boolean isPostBuilt)
        Set indicator that this TypeInfo has completed the postBuildTypeInfo phase of processing.
      • isSetXmlJavaTypeAdapter

        public boolean isSetXmlJavaTypeAdapter()
        Indicates if an XmlJavaTypeAdapter has been set, i.e. the xmlJavaTypeAdapter property is non-null.
        Returns:
        true if xmlJavaTypeAdapter is non-null, false otherwise
        See Also:
        XmlJavaTypeAdapter
      • getXmlJavaTypeAdapter

        public XmlJavaTypeAdapter getXmlJavaTypeAdapter()
        Return the xmlJavaTypeAdapter set on this Type.
        Returns:
        xmlJavaTypeAdapter, or null if not set
        See Also:
        XmlJavaTypeAdapter
      • setXmlJavaTypeAdapter

        public void setXmlJavaTypeAdapter​(XmlJavaTypeAdapter xmlJavaTypeAdapter)
        Set an XmlJavaTypeAdapter on this Type.
        Parameters:
        xmlJavaTypeAdapter -
        See Also:
        XmlJavaTypeAdapter
      • getXmlCustomizer

        public java.lang.String getXmlCustomizer()
        Return the XmlCustomizer class name set on this TypeInfo, or null if none is set.
        Returns:
        the XmlCustomizer class name set on this TypeInfo, or null if none is set
        See Also:
        DescriptorCustomizer
      • setXmlCustomizer

        public void setXmlCustomizer​(java.lang.String xmlCustomizerClassName)
        Sets the XmlCustomizer class name on this TypeInfo.
        Parameters:
        xmlCustomizerClassName -
        See Also:
        DescriptorCustomizer
      • isSetAnyElementPropertyName

        public boolean isSetAnyElementPropertyName()
        Indicates if the name of the XmlAnyElement property has been set.
        Returns:
      • getAnyElementPropertyName

        public java.lang.String getAnyElementPropertyName()
        Return the name of the XmlAnyElement property, if one is set.
        Returns:
      • setAnyElementPropertyName

        public void setAnyElementPropertyName​(java.lang.String anyElementPropertyName)
        Set the name of the XmlAnyElement property
        Parameters:
        anyElementPropertyName -
      • isSetAnyAttributePropertyName

        public boolean isSetAnyAttributePropertyName()
        Indicates if the name of the XmlAnyAttribute property has been set.
        Returns:
      • getAnyAttributePropertyName

        public java.lang.String getAnyAttributePropertyName()
        Return the name of the XmlAnyAttribute property, if one is set.
        Returns:
      • setAnyAttributePropertyName

        public void setAnyAttributePropertyName​(java.lang.String anyAttributePropertyName)
        Set the name of the XmlAnyAttribute property
        Parameters:
        anyAttributePropertyName -
      • isBinaryDataToBeInlined

        public boolean isBinaryDataToBeInlined()
        Indicates if all binary data types are to be inlined for this class.
        Returns:
      • setInlineBinaryData

        public void setInlineBinaryData​(boolean isBinaryDataInlined)
        Sets the flag that indicates if all binary data types are to be inlined for this class.
        Parameters:
        isBinaryDataInlined -
      • isSetClassExtractorName

        public boolean isSetClassExtractorName()
        Indicates if a ClassExtractor class name is set, i.e. is non-null
        Returns:
        true if classExtractorName != null, otherwise false
      • getClassExtractorName

        public java.lang.String getClassExtractorName()
        Return the ClassExtractor class name.
        Returns:
        classExtractorName
      • setClassExtractorName

        public void setClassExtractorName​(java.lang.String classExtractorName)
        Set the ClassExtractor class name.
        Parameters:
        classExtractorName -
      • getUserProperties

        public java.util.Map<java.lang.Object,​java.lang.Object> getUserProperties()
        Return the Map of user-defined properties.
        Returns:
      • setUserProperties

        public void setUserProperties​(java.util.Map<java.lang.Object,​java.lang.Object> userProperties)
        Set the Map of user-defined properties.
        Parameters:
        userProperties -
      • getJavaClassName

        public java.lang.String getJavaClassName()
        Return the JavaClass name for this typeinfo.
        Returns:
      • setJavaClassName

        public void setJavaClassName​(java.lang.String javaClassName)
        Set the JavaClass name for this typeinfo.
        Parameters:
        javaClassName -
      • getXmlDiscriminatorNode

        public java.lang.String getXmlDiscriminatorNode()
        Return the class indicator field name for this type info.
        Returns:
      • setXmlDiscriminatorNode

        public void setXmlDiscriminatorNode​(java.lang.String xmlDiscriminatorNode)
        Sets the class indicator field name (for use with inheritance).
        Parameters:
        xmlDiscriminatorNode -
      • isSetXmlDiscriminatorNode

        public boolean isSetXmlDiscriminatorNode()
        Indicates if the class indicator field name is set, i.e. is non-null
        Returns:
        true if xmlDiscriminatorNode != null, otherwise false
      • getXmlDiscriminatorValue

        public java.lang.String getXmlDiscriminatorValue()
        Return the value of the class indicator field for the java-type associated with this type info.
        Returns:
      • setXmlDiscriminatorValue

        public void setXmlDiscriminatorValue​(java.lang.String xmlDiscriminatorValue)
        Set the value of the class indicator field for the java-type associated with this type info.
        Parameters:
        xmlDiscriminatorValue -
      • isSetXmlDiscriminatorValue

        public boolean isSetXmlDiscriminatorValue()
        Indicates if a class indicator field value has been set, i.e. is non-null
        Returns:
        true if xmlDiscriminatorValue != null, otherwise false
      • addXmlKeyProperty

        public void addXmlKeyProperty​(Property xmlKeyProp)
        Add an XmlKey property to the list. Each entry will be set as a primary key on the owning descriptor.
        Parameters:
        xmlKeyProp -
      • getXmlKeyProperties

        public java.util.List<Property> getXmlKeyProperties()
        Return the list of XmlKey property entries. Each entry will be set as a primary key on the owning descriptor.
        Returns:
      • hasXmlKeyProperties

        public boolean hasXmlKeyProperties()
        Indicates if the list of XmlKey property entries has been set, i.e. is non-null.
        Returns:
      • getAdditionalProperties

        public java.util.Map<java.lang.String,​java.util.List<Property>> getAdditionalProperties()
        Return a Map of property names to list of properties. This Map will contain entries when one or more properties exist for a given field, as in the case of multiple mappings for a single field.
      • getOriginalProperties

        public java.util.HashMap<java.lang.String,​Property> getOriginalProperties()
        Return the list of original properties for this type info. These properties were created during annotations processing, and have not been modified since.
        Returns:
      • getXmlNameTransformer

        public XMLNameTransformer getXmlNameTransformer()
        Return the XMLNameTransformer used when converting Java names to XML names
        Returns:
      • setXmlNameTransformer

        public void setXmlNameTransformer​(XMLNameTransformer xmlNameTransformer)
        Set the XMLNameTransformer used when converting Java names to XML names
        Parameters:
        xmlNameTransformer -
      • getPredicateProperties

        public java.util.List<Property> getPredicateProperties()
        INTERNAL: Return the list of predicate properties. Lazy initializes the list.
        Returns:
      • hasPredicateProperty

        public boolean hasPredicateProperty​(Property property)
        INTERNAL: Return true if the property handed in is a duplicate of any existing predicate property.
      • hasPredicateProperties

        public boolean hasPredicateProperties()
        INTERNAL: Return true if the list of predicate properties hasn't been initialized.
        Returns:
      • isLocationAware

        public boolean isLocationAware()
      • setLocationAware

        public void setLocationAware​(boolean value)
      • getXmlAccessorFactory

        public org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper getXmlAccessorFactory()
      • setXmlAccessorFactory

        public void setXmlAccessorFactory​(org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper xmlAccessorFactory)
      • getPackageLevelXmlAccessorFactory

        public org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper getPackageLevelXmlAccessorFactory()
      • setPackageLevelXmlAccessorFactory

        public void setPackageLevelXmlAccessorFactory​(org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper packageLevelXmlAccessorFactory)
      • getJavaClass

        public JavaClass getJavaClass()
      • setJavaClass

        public void setJavaClass​(JavaClass javaClass)