Class MappingsGenerator
- java.lang.Object
-
- org.eclipse.persistence.jaxb.compiler.MappingsGenerator
-
public class MappingsGenerator extends Object
INTERNAL:Purpose:To generate a TopLink OXM Project based on Java Class and TypeInfo information
Responsibilities:
- Generate a XMLDescriptor for each TypeInfo object
- Generate a mapping for each TypeProperty object
- Determine the correct mapping type based on the type of each property
- Set up Converters on mappings for XmlAdapters or JDK 1.5 Enumeration types.
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.
-
-
Field Summary
Fields Modifier and Type Field Description static QNameRESERVED_QNAME
-
Constructor Summary
Constructors Constructor Description MappingsGenerator(Helper helper)
-
Method Summary
-
-
-
Field Detail
-
RESERVED_QNAME
public static final QName RESERVED_QNAME
-
-
Constructor Detail
-
MappingsGenerator
public MappingsGenerator(Helper helper)
-
-
Method Detail
-
generateProject
public CoreProject generateProject(List<JavaClass> typeInfoClasses, Map<String,TypeInfo> typeInfo, Map<String,QName> userDefinedSchemaTypes, Map<String,PackageInfo> packageToPackageInfoMappings, Map<QName,ElementDeclaration> globalElements, List<ElementDeclaration> localElements, Map<TypeMappingInfo,Class> typeMappingInfoToGeneratedClass, Map<TypeMappingInfo,Class> typeMappingInfoToAdapterClasses, boolean isDefaultNamespaceAllowed) throws Exception
- Throws:
Exception
-
generateDescriptor
public void generateDescriptor(JavaClass javaClass, CoreProject project)
-
generateDescriptorForJAXBElementSubclass
public void generateDescriptorForJAXBElementSubclass(JavaClass javaClass, CoreProject project, NamespaceResolver nsr)
-
generateMapping
public Mapping generateMapping(Property property, Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
Generate a mapping for a given Property.- Parameters:
property-descriptor-namespaceInfo-- Returns:
- newly created mapping
-
generateTransformationMapping
public TransformationMapping generateTransformationMapping(Property property, Descriptor descriptor, NamespaceInfo namespace)
Generate an XMLTransformationMapping based on a given Property.- Parameters:
property-descriptor-namespace-- Returns:
-
generateChoiceMapping
public ChoiceObjectMapping generateChoiceMapping(Property property, Descriptor descriptor, NamespaceInfo namespace)
-
generateChoiceCollectionMapping
public ChoiceCollectionMapping generateChoiceCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespace)
-
generateMappingForReferenceProperty
public Mapping generateMappingForReferenceProperty(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
generateAnyCollectionMapping
public AnyCollectionMapping generateAnyCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed)
-
generateCompositeObjectMapping
public CompositeObjectMapping generateCompositeObjectMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, String referenceClassName)
-
generateDirectMapping
public DirectMapping generateDirectMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
generateBinaryMapping
public BinaryDataMapping generateBinaryMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
generateBinaryDataCollectionMapping
public BinaryDataCollectionMapping generateBinaryDataCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
generateDirectEnumerationMapping
public DirectMapping generateDirectEnumerationMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo enumInfo)
-
generateCollectionMapping
public Mapping generateCollectionMapping(Property property, Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
-
generateEnumCollectionMapping
public DirectCollectionMapping generateEnumCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info)
-
generateAnyAttributeMapping
public AnyAttributeMapping generateAnyAttributeMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
generateAnyObjectMapping
public AnyObjectMapping generateAnyObjectMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
areEquals
protected boolean areEquals(JavaClass src, 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-tgtCanonicalName-- Returns:
-
generateCompositeCollectionMapping
public CompositeCollectionMapping generateCompositeCollectionMapping(Property property, Descriptor descriptor, JavaClass javaClass, NamespaceInfo namespaceInfo, String referenceClassName)
-
generateDirectCollectionMapping
public DirectCollectionMapping generateDirectCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)
-
getPrefixForNamespace
public String getPrefixForNamespace(String URI, NamespaceResolver namespaceResolver)
-
getPrefixForNamespace
public String getPrefixForNamespace(String URI, NamespaceResolver namespaceResolver, boolean addPrefixToNR)
-
generateMappings
public void generateMappings()
-
generateMappings
public void generateMappings(TypeInfo info, Descriptor descriptor, JavaClass descriptorJavaClass, NamespaceInfo namespaceInfo)
Generate mappings for a given TypeInfo.- Parameters:
info-descriptor-namespaceInfo-
-
generateXMLCollectionReferenceMapping
public CollectionReferenceMapping generateXMLCollectionReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
Create an XMLCollectionReferenceMapping and add it to the descriptor.- Parameters:
property-descriptor-namespaceInfo-referenceClass-
-
generateXMLObjectReferenceMapping
public ObjectReferenceMapping generateXMLObjectReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
Create an XMLObjectReferenceMapping and add it to the descriptor.- Parameters:
property-descriptor-namespaceInfo-referenceClass-
-
getXPathForField
public Field getXPathForField(Property property, NamespaceInfo namespaceInfo, boolean isTextMapping, boolean isAny)
-
getXPathForElement
public Field getXPathForElement(String path, QName elementName, NamespaceInfo namespaceInfo, boolean isText)
-
getXmlValueFieldForSimpleContent
public Property getXmlValueFieldForSimpleContent(ArrayList<Property> properties)
-
processGlobalElements
public void processGlobalElements(CoreProject project)
-
generateWrapperClass
public Class generateWrapperClass(String className, String attributeType, boolean isList, QName theQName)
-
getJaxbClassLoader
public JaxbClassLoader getJaxbClassLoader()
-
-