EclipseLink 2.5.0, build 'v20130507-3faac2b' API Reference

org.eclipse.persistence.jaxb.compiler
Class MappingsGenerator

java.lang.Object
  extended by org.eclipse.persistence.jaxb.compiler.MappingsGenerator

public class MappingsGenerator
extends java.lang.Object

INTERNAL:

Purpose:To generate a TopLink OXM Project based on Java Class and TypeInfo information

Responsibilities:

This class is invoked by a Generator in order to create a TopLink Project. This is generally used by JAXBContextFactory to create the runtime project. A Descriptor will be generated for each TypeInfo and Mappings generated for each Property. In the case that a non-transient property's type is a user defined class, a Descriptor and Mappings will be generated for that class as well.

See Also:
Generator, TypeInfo, Property
Author:
mmacivor
Since:
Oracle TopLink 11.1.1.0.0

Field Summary
static javax.xml.namespace.QName RESERVED_QNAME
           
 
Constructor Summary
MappingsGenerator(Helper helper)
           
 
Method Summary
protected  boolean areEquals(JavaClass src, java.lang.Class tgt)
           
protected  boolean areEquals(JavaClass src, java.lang.String tgtCanonicalName)
          Compares a JavaModel JavaClass to a Class.
 org.eclipse.persistence.internal.oxm.mappings.AnyAttributeMapping generateAnyAttributeMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.AnyCollectionMapping generateAnyCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed)
           
 org.eclipse.persistence.internal.oxm.mappings.AnyObjectMapping generateAnyObjectMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.BinaryDataCollectionMapping generateBinaryDataCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.BinaryDataMapping generateBinaryMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping generateChoiceCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespace)
           
 org.eclipse.persistence.internal.oxm.mappings.ChoiceObjectMapping generateChoiceMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespace)
           
 org.eclipse.persistence.internal.oxm.mappings.Mapping generateCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.CompositeCollectionMapping generateCompositeCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, JavaClass javaClass, NamespaceInfo namespaceInfo, java.lang.String referenceClassName)
           
 org.eclipse.persistence.internal.oxm.mappings.CompositeObjectMapping generateCompositeObjectMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, java.lang.String referenceClassName)
           
 void generateDescriptor(JavaClass javaClass, CoreProject project)
           
 void generateDescriptorForJAXBElementSubclass(JavaClass javaClass, CoreProject project, org.eclipse.persistence.internal.oxm.NamespaceResolver nsr)
           
 org.eclipse.persistence.internal.oxm.mappings.DirectCollectionMapping generateDirectCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.DirectMapping generateDirectEnumerationMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo enumInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.DirectMapping generateDirectMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 org.eclipse.persistence.internal.oxm.mappings.DirectCollectionMapping generateEnumCollectionMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info)
           
 org.eclipse.persistence.internal.oxm.mappings.Mapping generateMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
          Generate a mapping for a given Property.
 org.eclipse.persistence.internal.oxm.mappings.Mapping generateMappingForReferenceProperty(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo)
           
 void generateMappings()
           
 void generateMappings(TypeInfo info, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
          Generate mappings for a given TypeInfo.
 CoreProject generateProject(java.util.ArrayList<JavaClass> typeInfoClasses, java.util.HashMap<java.lang.String,TypeInfo> typeInfo, java.util.HashMap<java.lang.String,javax.xml.namespace.QName> userDefinedSchemaTypes, java.util.HashMap<java.lang.String,PackageInfo> packageToPackageInfoMappings, java.util.HashMap<javax.xml.namespace.QName,ElementDeclaration> globalElements, java.util.List<ElementDeclaration> localElements, java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToGeneratedClass, java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToAdapterClasses, boolean isDefaultNamespaceAllowed)
           
 org.eclipse.persistence.internal.oxm.mappings.TransformationMapping generateTransformationMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespace)
          Generate an XMLTransformationMapping based on a given Property.
 java.lang.Class generateWrapperClass(java.lang.String className, java.lang.String attributeType, boolean isList, javax.xml.namespace.QName theQName)
           
 org.eclipse.persistence.internal.oxm.mappings.CollectionReferenceMapping generateXMLCollectionReferenceMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
          Create an XMLCollectionReferenceMapping and add it to the descriptor.
 org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping generateXMLObjectReferenceMapping(Property property, org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
          Create an XMLObjectReferenceMapping and add it to the descriptor.
 java.util.HashMap<java.lang.String,java.lang.Class> getClassToGeneratedClasses()
           
 org.eclipse.persistence.internal.jaxb.JaxbClassLoader getJaxbClassLoader()
           
 java.lang.String getPrefixForNamespace(java.lang.String URI, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver)
           
 java.lang.String getPrefixForNamespace(java.lang.String URI, org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver, boolean addPrefixToNR)
           
 java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToDeclaredClasses()
           
 java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToGeneratedClasses()
           
 java.lang.String getSchemaTypeNameForClassName(java.lang.String className)
           
 Property getXmlValueFieldForSimpleContent(java.util.ArrayList<Property> properties)
           
 org.eclipse.persistence.internal.oxm.mappings.Field getXPathForElement(java.lang.String path, javax.xml.namespace.QName elementName, NamespaceInfo namespaceInfo, boolean isText)
           
 org.eclipse.persistence.internal.oxm.mappings.Field getXPathForField(Property property, NamespaceInfo namespaceInfo, boolean isTextMapping, boolean isAny)
           
 void processGlobalElements(CoreProject project)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESERVED_QNAME

public static final javax.xml.namespace.QName RESERVED_QNAME
Constructor Detail

MappingsGenerator

public MappingsGenerator(Helper helper)
Method Detail

generateProject

public CoreProject generateProject(java.util.ArrayList<JavaClass> typeInfoClasses,
                                   java.util.HashMap<java.lang.String,TypeInfo> typeInfo,
                                   java.util.HashMap<java.lang.String,javax.xml.namespace.QName> userDefinedSchemaTypes,
                                   java.util.HashMap<java.lang.String,PackageInfo> packageToPackageInfoMappings,
                                   java.util.HashMap<javax.xml.namespace.QName,ElementDeclaration> globalElements,
                                   java.util.List<ElementDeclaration> localElements,
                                   java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToGeneratedClass,
                                   java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToAdapterClasses,
                                   boolean isDefaultNamespaceAllowed)
                            throws java.lang.Exception
Throws:
java.lang.Exception

generateDescriptor

public void generateDescriptor(JavaClass javaClass,
                               CoreProject project)

generateDescriptorForJAXBElementSubclass

public void generateDescriptorForJAXBElementSubclass(JavaClass javaClass,
                                                     CoreProject project,
                                                     org.eclipse.persistence.internal.oxm.NamespaceResolver nsr)

generateMapping

public org.eclipse.persistence.internal.oxm.mappings.Mapping generateMapping(Property property,
                                                                             org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                             JavaClass descriptorJavaClass,
                                                                             NamespaceInfo namespaceInfo)
Generate a mapping for a given Property.

Parameters:
property -
descriptor -
namespaceInfo -
Returns:
newly created mapping

generateTransformationMapping

public org.eclipse.persistence.internal.oxm.mappings.TransformationMapping generateTransformationMapping(Property property,
                                                                                                         org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                         NamespaceInfo namespace)
Generate an XMLTransformationMapping based on a given Property.

Parameters:
property -
descriptor -
namespace -
Returns:

generateChoiceMapping

public org.eclipse.persistence.internal.oxm.mappings.ChoiceObjectMapping generateChoiceMapping(Property property,
                                                                                               org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                               NamespaceInfo namespace)

generateChoiceCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping generateChoiceCollectionMapping(Property property,
                                                                                                             org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                             NamespaceInfo namespace)

generateMappingForReferenceProperty

public org.eclipse.persistence.internal.oxm.mappings.Mapping generateMappingForReferenceProperty(Property property,
                                                                                                 org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                 NamespaceInfo namespaceInfo)

generateAnyCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.AnyCollectionMapping generateAnyCollectionMapping(Property property,
                                                                                                       org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                       NamespaceInfo namespaceInfo,
                                                                                                       boolean isMixed)

generateCompositeObjectMapping

public org.eclipse.persistence.internal.oxm.mappings.CompositeObjectMapping generateCompositeObjectMapping(Property property,
                                                                                                           org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                           NamespaceInfo namespaceInfo,
                                                                                                           java.lang.String referenceClassName)

generateDirectMapping

public org.eclipse.persistence.internal.oxm.mappings.DirectMapping generateDirectMapping(Property property,
                                                                                         org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                         NamespaceInfo namespaceInfo)

generateBinaryMapping

public org.eclipse.persistence.internal.oxm.mappings.BinaryDataMapping generateBinaryMapping(Property property,
                                                                                             org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                             NamespaceInfo namespaceInfo)

generateBinaryDataCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.BinaryDataCollectionMapping generateBinaryDataCollectionMapping(Property property,
                                                                                                                     org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                                     NamespaceInfo namespaceInfo)

generateDirectEnumerationMapping

public org.eclipse.persistence.internal.oxm.mappings.DirectMapping generateDirectEnumerationMapping(Property property,
                                                                                                    org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                    NamespaceInfo namespaceInfo,
                                                                                                    EnumTypeInfo enumInfo)

generateCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.Mapping generateCollectionMapping(Property property,
                                                                                       org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                       JavaClass descriptorJavaClass,
                                                                                       NamespaceInfo namespaceInfo)

generateEnumCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.DirectCollectionMapping generateEnumCollectionMapping(Property property,
                                                                                                           org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                           NamespaceInfo namespaceInfo,
                                                                                                           EnumTypeInfo info)

generateAnyAttributeMapping

public org.eclipse.persistence.internal.oxm.mappings.AnyAttributeMapping generateAnyAttributeMapping(Property property,
                                                                                                     org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                     NamespaceInfo namespaceInfo)

generateAnyObjectMapping

public org.eclipse.persistence.internal.oxm.mappings.AnyObjectMapping generateAnyObjectMapping(Property property,
                                                                                               org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                               NamespaceInfo namespaceInfo)

areEquals

protected boolean areEquals(JavaClass src,
                            java.lang.Class tgt)

areEquals

protected boolean areEquals(JavaClass src,
                            java.lang.String tgtCanonicalName)
Compares a JavaModel JavaClass to a Class. Equality is based on the raw name of the JavaClass compared to the canonical name of the Class.

Parameters:
src -
tgt -
Returns:

generateCompositeCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.CompositeCollectionMapping generateCompositeCollectionMapping(Property property,
                                                                                                                   org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                                   JavaClass javaClass,
                                                                                                                   NamespaceInfo namespaceInfo,
                                                                                                                   java.lang.String referenceClassName)

generateDirectCollectionMapping

public org.eclipse.persistence.internal.oxm.mappings.DirectCollectionMapping generateDirectCollectionMapping(Property property,
                                                                                                             org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                             NamespaceInfo namespaceInfo)

getPrefixForNamespace

public java.lang.String getPrefixForNamespace(java.lang.String URI,
                                              org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver)

getPrefixForNamespace

public java.lang.String getPrefixForNamespace(java.lang.String URI,
                                              org.eclipse.persistence.internal.oxm.NamespaceResolver namespaceResolver,
                                              boolean addPrefixToNR)

generateMappings

public void generateMappings()

generateMappings

public void generateMappings(TypeInfo info,
                             org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                             JavaClass descriptorJavaClass,
                             NamespaceInfo namespaceInfo)
Generate mappings for a given TypeInfo.

Parameters:
info -
descriptor -
namespaceInfo -

generateXMLCollectionReferenceMapping

public org.eclipse.persistence.internal.oxm.mappings.CollectionReferenceMapping generateXMLCollectionReferenceMapping(Property property,
                                                                                                                      org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                                      NamespaceInfo namespaceInfo,
                                                                                                                      JavaClass referenceClass)
Create an XMLCollectionReferenceMapping and add it to the descriptor.

Parameters:
property -
descriptor -
namespaceInfo -
referenceClass -

generateXMLObjectReferenceMapping

public org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping generateXMLObjectReferenceMapping(Property property,
                                                                                                              org.eclipse.persistence.internal.oxm.mappings.Descriptor descriptor,
                                                                                                              NamespaceInfo namespaceInfo,
                                                                                                              JavaClass referenceClass)
Create an XMLObjectReferenceMapping and add it to the descriptor.

Parameters:
property -
descriptor -
namespaceInfo -
referenceClass -

getXPathForField

public org.eclipse.persistence.internal.oxm.mappings.Field getXPathForField(Property property,
                                                                            NamespaceInfo namespaceInfo,
                                                                            boolean isTextMapping,
                                                                            boolean isAny)

getXPathForElement

public org.eclipse.persistence.internal.oxm.mappings.Field getXPathForElement(java.lang.String path,
                                                                              javax.xml.namespace.QName elementName,
                                                                              NamespaceInfo namespaceInfo,
                                                                              boolean isText)

getXmlValueFieldForSimpleContent

public Property getXmlValueFieldForSimpleContent(java.util.ArrayList<Property> properties)

getSchemaTypeNameForClassName

public java.lang.String getSchemaTypeNameForClassName(java.lang.String className)

processGlobalElements

public void processGlobalElements(CoreProject project)

generateWrapperClass

public java.lang.Class generateWrapperClass(java.lang.String className,
                                            java.lang.String attributeType,
                                            boolean isList,
                                            javax.xml.namespace.QName theQName)

getQNamesToGeneratedClasses

public java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToGeneratedClasses()

getClassToGeneratedClasses

public java.util.HashMap<java.lang.String,java.lang.Class> getClassToGeneratedClasses()

getQNamesToDeclaredClasses

public java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToDeclaredClasses()

getJaxbClassLoader

public org.eclipse.persistence.internal.jaxb.JaxbClassLoader getJaxbClassLoader()

EclipseLink 2.5.0, build 'v20130507-3faac2b' API Reference