|
Oracle Fusion Middleware Java API Reference for Oracle TopLink 11g Release 1 (11.1.1) E28847-01 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
org.eclipse.persistence.jaxb.compiler.MappingsGenerator
public class MappingsGenerator
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.
Generator
, TypeInfo
, Property
Nested Class Summary | |
---|---|
private class |
MappingsGenerator.MapEntryGeneratedKey |
Field Summary | |
---|---|
private static java.lang.String |
ATT |
private java.util.HashMap<java.lang.String,java.lang.Class> |
classToGeneratedClasses |
private java.util.Map<MappingsGenerator.MapEntryGeneratedKey,java.lang.Class> |
generatedMapEntryClasses |
private java.util.HashMap<javax.xml.namespace.QName,ElementDeclaration> |
globalElements |
private NamespaceResolver |
globalNamespaceResolver |
private Helper |
helper |
private boolean |
isDefaultNamespaceAllowed |
private JavaClass |
jotArrayList |
private JavaClass |
jotHashMap |
private JavaClass |
jotHashSet |
private java.util.List<ElementDeclaration> |
localElements |
private static java.lang.String |
OBJECT_CLASS_NAME |
(package private) java.lang.String |
outputDir |
private java.util.HashMap<java.lang.String,PackageInfo> |
packageToPackageInfoMappings |
private Project |
project |
private java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> |
qNamesToDeclaredClasses |
private java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> |
qNamesToGeneratedClasses |
static javax.xml.namespace.QName |
RESERVED_QNAME |
private static java.lang.String |
TXT |
private java.util.HashMap<java.lang.String,TypeInfo> |
typeInfo |
private java.util.Map<TypeMappingInfo,java.lang.Class> |
typeMappingInfoToAdapterClasses |
private java.util.Map<TypeMappingInfo,java.lang.Class> |
typeMappingInfoToGeneratedClasses |
private java.util.HashMap<java.lang.String,javax.xml.namespace.QName> |
userDefinedSchemaTypes |
Constructor Summary | |
---|---|
MappingsGenerator(Helper helper) |
Method Summary | |
---|---|
private java.lang.Class |
addByteArrayWrapperAndDescriptor(TypeInfo type, java.lang.String javaClassName, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName) |
private java.lang.Class |
addEnumerationWrapperAndDescriptor(TypeInfo type, java.lang.String javaClassName, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName) |
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. |
private JAXBEnumTypeConverter |
buildJAXBEnumTypeConverter(DatabaseMapping mapping, EnumTypeInfo enumInfo) |
XMLAnyAttributeMapping |
generateAnyAttributeMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLAnyCollectionMapping |
generateAnyCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed) |
XMLAnyObjectMapping |
generateAnyObjectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLBinaryDataCollectionMapping |
generateBinaryDataCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLBinaryDataMapping |
generateBinaryMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLChoiceCollectionMapping |
generateChoiceCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace) |
XMLChoiceObjectMapping |
generateChoiceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace) |
DatabaseMapping |
generateCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLCompositeCollectionMapping |
generateCompositeCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, java.lang.String referenceClassName) |
XMLCompositeObjectMapping |
generateCompositeObjectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, java.lang.String referenceClassName) |
void |
generateDescriptor(JavaClass javaClass, Project project) |
void |
generateDescriptorForJAXBElementSubclass(JavaClass javaClass, Project project, NamespaceResolver nsr) |
XMLCompositeDirectCollectionMapping |
generateDirectCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLDirectMapping |
generateDirectEnumerationMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo enumInfo) |
XMLDirectMapping |
generateDirectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
XMLCompositeDirectCollectionMapping |
generateEnumCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info) |
private void |
generateInheritedMappingsForAnonymousType(TypeInfo info, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
private XMLInverseReferenceMapping |
generateInverseReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace) |
private java.lang.Class |
generateMapEntryClass(java.lang.String className, java.lang.String keyType, java.lang.String valueType) |
private java.lang.Class |
generateMapEntryClassAndDescriptor(Property property, NamespaceResolver nr) |
XMLCompositeCollectionMapping |
generateMapMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
DatabaseMapping |
generateMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) Generate a mapping for a given Property. |
DatabaseMapping |
generateMappingForReferenceProperty(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) |
private DatabaseMapping |
generateMappingForType(JavaClass theType, java.lang.String attributeName) |
void |
generateMappings() |
void |
generateMappings(TypeInfo info, XMLDescriptor descriptor, NamespaceInfo namespaceInfo) Generate mappings for a given TypeInfo. |
Project |
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) |
XMLTransformationMapping |
generateTransformationMapping(Property property, XMLDescriptor 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) |
private java.lang.Class |
generateWrapperClassAndDescriptor(TypeInfo type, javax.xml.namespace.QName next, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName) |
XMLCollectionReferenceMapping |
generateXMLCollectionReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass) Create an XMLCollectionReferenceMapping and add it to the descriptor. |
XMLObjectReferenceMapping |
generateXMLObjectReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass) Create an XMLObjectReferenceMapping and add it to the descriptor. |
private JavaClass |
getBaseComponentType(JavaClass javaClass) Return the base component type for a class. |
java.util.HashMap<java.lang.String,java.lang.Class> |
getClassToGeneratedClasses() |
private java.util.Map<MappingsGenerator.MapEntryGeneratedKey,java.lang.Class> |
getGeneratedMapEntryClasses() |
org.eclipse.persistence.internal.jaxb.JaxbClassLoader |
getJaxbClassLoader() |
private NamespaceInfo |
getNamespaceInfoForURI(java.lang.String namespaceUri) |
private AbstractNullPolicy |
getNullPolicyFromProperty(Property property, NamespaceResolver nsr) Convenience method which returns an AbstractNullPolicy built from an XmlAbstractNullPolicy. |
private java.lang.String |
getPackageNameForURI(java.lang.String namespaceUri) |
java.lang.String |
getPrefixForNamespace(java.lang.String URI, NamespaceResolver namespaceResolver, java.lang.String suggestedPrefix) |
java.lang.String |
getPrefixForNamespace(java.lang.String URI, NamespaceResolver namespaceResolver, java.lang.String suggestedPrefix, boolean addPrefixToNR) |
java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> |
getQNamesToDeclaredClasses() |
java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> |
getQNamesToGeneratedClasses() |
private java.lang.String |
getQualifiedString(java.lang.String prefix, java.lang.String localPart) |
private JavaClass |
getRootMappedSuperClass(JavaClass javaClass) |
java.lang.String |
getSchemaTypeNameForClassName(java.lang.String className) |
Property |
getXmlValueFieldForSimpleContent(java.util.ArrayList<Property> properties) |
XMLField |
getXPathForElement(java.lang.String path, javax.xml.namespace.QName elementName, NamespaceInfo namespaceInfo, boolean isText) |
XMLField |
getXPathForField(Property property, NamespaceInfo namespaceInfo, boolean isTextMapping) |
private boolean |
isBinaryData(JavaClass type) |
boolean |
isCollectionType(JavaClass type) |
boolean |
isCollectionType(Property field) |
boolean |
isMapType(Property property) |
void |
processGlobalElements(Project project) |
private void |
setSchemaContext(XMLDescriptor desc, TypeInfo info) |
private void |
setupInheritance(JavaClass jClass) Setup inheritance for abstract superclass. |
private void |
validateJoinNode(java.lang.String className, Property property, java.lang.String referencedXmlPath, JavaClass referenceClass) |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final java.lang.String ATT
private static final java.lang.String TXT
private static java.lang.String OBJECT_CLASS_NAME
public static final javax.xml.namespace.QName RESERVED_QNAME
java.lang.String outputDir
private java.util.HashMap<java.lang.String,javax.xml.namespace.QName> userDefinedSchemaTypes
private Helper helper
private JavaClass jotArrayList
private JavaClass jotHashSet
private JavaClass jotHashMap
private java.util.HashMap<java.lang.String,PackageInfo> packageToPackageInfoMappings
private java.util.HashMap<java.lang.String,TypeInfo> typeInfo
private java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> qNamesToGeneratedClasses
private java.util.HashMap<java.lang.String,java.lang.Class> classToGeneratedClasses
private java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> qNamesToDeclaredClasses
private java.util.HashMap<javax.xml.namespace.QName,ElementDeclaration> globalElements
private java.util.List<ElementDeclaration> localElements
private java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToGeneratedClasses
private java.util.Map<MappingsGenerator.MapEntryGeneratedKey,java.lang.Class> generatedMapEntryClasses
private Project project
private NamespaceResolver globalNamespaceResolver
private boolean isDefaultNamespaceAllowed
private java.util.Map<TypeMappingInfo,java.lang.Class> typeMappingInfoToAdapterClasses
Constructor Detail |
---|
public MappingsGenerator(Helper helper)
Method Detail |
---|
public Project 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
java.lang.Exception
public void generateDescriptor(JavaClass javaClass, Project project)
public void generateDescriptorForJAXBElementSubclass(JavaClass javaClass, Project project, NamespaceResolver nsr)
private void setSchemaContext(XMLDescriptor desc, TypeInfo info)
public DatabaseMapping generateMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
property
-descriptor
-namespaceInfo
-private XMLInverseReferenceMapping generateInverseReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace)
public XMLTransformationMapping generateTransformationMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace)
property
-descriptor
-namespace
-public XMLChoiceObjectMapping generateChoiceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace)
public XMLChoiceCollectionMapping generateChoiceCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespace)
public DatabaseMapping generateMappingForReferenceProperty(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLAnyCollectionMapping generateAnyCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, boolean isMixed)
public XMLCompositeObjectMapping generateCompositeObjectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, java.lang.String referenceClassName)
public XMLDirectMapping generateDirectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLBinaryDataMapping generateBinaryMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLBinaryDataCollectionMapping generateBinaryDataCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLDirectMapping generateDirectEnumerationMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo enumInfo)
private JAXBEnumTypeConverter buildJAXBEnumTypeConverter(DatabaseMapping mapping, EnumTypeInfo enumInfo)
public DatabaseMapping generateCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLCompositeDirectCollectionMapping generateEnumCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, EnumTypeInfo info)
public XMLAnyAttributeMapping generateAnyAttributeMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLAnyObjectMapping generateAnyObjectMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
protected boolean areEquals(JavaClass src, java.lang.Class tgt)
protected boolean areEquals(JavaClass src, java.lang.String tgtCanonicalName)
src
-tgt
-public XMLCompositeCollectionMapping generateMapMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
private java.lang.Class generateMapEntryClassAndDescriptor(Property property, NamespaceResolver nr)
private java.lang.Class generateMapEntryClass(java.lang.String className, java.lang.String keyType, java.lang.String valueType)
private DatabaseMapping generateMappingForType(JavaClass theType, java.lang.String attributeName)
public XMLCompositeCollectionMapping generateCompositeCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, java.lang.String referenceClassName)
public XMLCompositeDirectCollectionMapping generateDirectCollectionMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public java.lang.String getPrefixForNamespace(java.lang.String URI, NamespaceResolver namespaceResolver, java.lang.String suggestedPrefix)
public java.lang.String getPrefixForNamespace(java.lang.String URI, NamespaceResolver namespaceResolver, java.lang.String suggestedPrefix, boolean addPrefixToNR)
public boolean isCollectionType(Property field)
public boolean isCollectionType(JavaClass type)
private void setupInheritance(JavaClass jClass)
jClass
-private JavaClass getRootMappedSuperClass(JavaClass javaClass)
public void generateMappings()
public void generateMappings(TypeInfo info, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
info
-descriptor
-namespaceInfo
-private void generateInheritedMappingsForAnonymousType(TypeInfo info, XMLDescriptor descriptor, NamespaceInfo namespaceInfo)
public XMLCollectionReferenceMapping generateXMLCollectionReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
property
-descriptor
-namespaceInfo
-referenceClass
-public XMLObjectReferenceMapping generateXMLObjectReferenceMapping(Property property, XMLDescriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass)
property
-descriptor
-namespaceInfo
-referenceClass
-private void validateJoinNode(java.lang.String className, Property property, java.lang.String referencedXmlPath, JavaClass referenceClass)
public XMLField getXPathForField(Property property, NamespaceInfo namespaceInfo, boolean isTextMapping)
public XMLField getXPathForElement(java.lang.String path, javax.xml.namespace.QName elementName, NamespaceInfo namespaceInfo, boolean isText)
public Property getXmlValueFieldForSimpleContent(java.util.ArrayList<Property> properties)
public java.lang.String getSchemaTypeNameForClassName(java.lang.String className)
public boolean isMapType(Property property)
public void processGlobalElements(Project project)
private java.lang.Class addByteArrayWrapperAndDescriptor(TypeInfo type, java.lang.String javaClassName, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName)
private java.lang.Class addEnumerationWrapperAndDescriptor(TypeInfo type, java.lang.String javaClassName, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName)
private java.lang.Class generateWrapperClassAndDescriptor(TypeInfo type, javax.xml.namespace.QName next, ElementDeclaration nextElement, java.lang.String nextClassName, java.lang.String attributeTypeName)
private java.lang.String getQualifiedString(java.lang.String prefix, java.lang.String localPart)
private NamespaceInfo getNamespaceInfoForURI(java.lang.String namespaceUri)
private java.lang.String getPackageNameForURI(java.lang.String namespaceUri)
public java.lang.Class generateWrapperClass(java.lang.String className, java.lang.String attributeType, boolean isList, javax.xml.namespace.QName theQName)
public java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToGeneratedClasses()
public java.util.HashMap<java.lang.String,java.lang.Class> getClassToGeneratedClasses()
public java.util.HashMap<javax.xml.namespace.QName,java.lang.Class> getQNamesToDeclaredClasses()
private java.util.Map<MappingsGenerator.MapEntryGeneratedKey,java.lang.Class> getGeneratedMapEntryClasses()
private AbstractNullPolicy getNullPolicyFromProperty(Property property, NamespaceResolver nsr)
property
-nsr
- if 'NullRepresentedByXsiNil' is true, this is the resolver that we will add the schema instance prefix/uri pair toAbstractNullPolicy
, XmlAbstractNullPolicy
private JavaClass getBaseComponentType(JavaClass javaClass)
public org.eclipse.persistence.internal.jaxb.JaxbClassLoader getJaxbClassLoader()
private boolean isBinaryData(JavaClass type)
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |