Class TypeInfo

java.lang.Object
org.eclipse.persistence.jaxb.compiler.TypeInfo
Direct Known Subclasses:
EnumTypeInfo

public class TypeInfo extends 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:
Author:
mmacivor
  • Field Details

    • DEFAULT_NAME_TRANSFORMER

      public static final XMLNameTransformer DEFAULT_NAME_TRANSFORMER
  • Constructor Details

    • 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 Details

    • 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 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(String[] order)
    • getClassNamespace

      public String getClassNamespace()
    • setClassNamespace

      public void setClassNamespace(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 ArrayList<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 HashMap<String,Property> getProperties()
      Return the Map of Properties for this TypeInfo.
      Returns:
    • addProperty

      public void addProperty(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(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 ArrayList<Property> getPropertyList()
    • getSchemaTypeName

      public String getSchemaTypeName()
    • setSchemaTypeName

      public void setSchemaTypeName(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(String boundTypeName)
      Return the xmladapter class for a given bound type class name.
      Parameters:
      boundTypeName -
      Returns:
    • getPackageLevelAdaptersByClass

      public HashMap<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 String getElementRefsPropName()
      Return the XmlElementRefs property name, if one has been set.
      Returns:
    • setElementRefsPropertyName

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

      public String getObjectFactoryClassName()
    • setObjectFactoryClassName

      public void setObjectFactoryClassName(String factoryClass)
    • getFactoryMethodName

      public String getFactoryMethodName()
    • setFactoryMethodName

      public void setFactoryMethodName(String factoryMethod)
    • getFactoryMethodParamTypes

      public String[] getFactoryMethodParamTypes()
    • setFactoryMethodParamTypes

      public void setFactoryMethodParamTypes(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 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 List<String> getXmlSeeAlso()
      Return the List of XmlSeeAlso class names for this TypeInfo.
      Returns:
    • setXmlSeeAlso

      public void setXmlSeeAlso(List<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:
    • getXmlJavaTypeAdapter

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

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

      public 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:
    • setXmlCustomizer

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

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

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

      public void setAnyElementPropertyName(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 String getAnyAttributePropertyName()
      Return the name of the XmlAnyAttribute property, if one is set.
      Returns:
    • setAnyAttributePropertyName

      public void setAnyAttributePropertyName(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 String getClassExtractorName()
      Return the ClassExtractor class name.
      Returns:
      classExtractorName
    • setClassExtractorName

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

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

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

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

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

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

      public void setXmlDiscriminatorNode(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 String getXmlDiscriminatorValue()
      Return the value of the class indicator field for the java-type associated with this type info.
      Returns:
    • setXmlDiscriminatorValue

      public void setXmlDiscriminatorValue(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 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 Map<String,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 HashMap<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:
    • getXmlVirtualAccessMethods

      public XmlVirtualAccessMethods getXmlVirtualAccessMethods()
    • setXmlVirtualAccessMethods

      public void setXmlVirtualAccessMethods(XmlVirtualAccessMethods xmlExtensible)
    • 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 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)
    • getObjectGraphs

      public List<XmlNamedObjectGraph> getObjectGraphs()
    • getJavaClass

      public JavaClass getJavaClass()
    • setJavaClass

      public void setJavaClass(JavaClass javaClass)