|
EclipseLink 2.5.0, build 'v20130507-3faac2b' API Reference | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eclipse.persistence.core.mappings.CoreMapping<AttributeAccessor,org.eclipse.persistence.internal.sessions.AbstractSession,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField>
org.eclipse.persistence.mappings.DatabaseMapping
org.eclipse.persistence.mappings.AggregateMapping
org.eclipse.persistence.oxm.mappings.XMLObjectReferenceMapping
public class XMLObjectReferenceMapping
TopLink OXM version of a 1-1 mapping. A list of source-target key field associations is used to link the source xpaths to their related target xpaths, and hence their primary key (unique identifier) values used when (un)marshalling. This mapping has a Vector of XMLFields as opposed to a single XMLField. It is important to note that each target xpath is assumed to be set as a primary key field on the target (reference) class descriptor - this is necessary in order to locate the correct target object instance in the session cache when resolving mapping references.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
|---|
DatabaseMapping.WriteType |
| Field Summary | |
|---|---|
protected java.util.HashMap |
sourceToTargetKeyFieldAssociations
|
protected java.util.Vector |
sourceToTargetKeys
|
| Fields inherited from class org.eclipse.persistence.mappings.AggregateMapping |
|---|
referenceClass, referenceClassName, referenceDescriptor |
| Fields inherited from class org.eclipse.persistence.mappings.DatabaseMapping |
|---|
attributeAccessor, attributeName, derivedIdMapping, derivesId, descriptor, fields, isCacheable, isJPAId, isLazy, isMapKeyMapping, isOptional, isPrimaryKeyMapping, isReadOnly, isRemotelyInitialized, mapsIdValue, NO_FIELDS, NO_WEIGHT, properties, unconvertedProperties, weight, WEIGHT_AGGREGATE, WEIGHT_DIRECT, WEIGHT_TO_ONE, WEIGHT_TRANSFORM |
| Constructor Summary | |
|---|---|
XMLObjectReferenceMapping()
PUBLIC: The default constructor initializes the sourceToTargetKeyFieldAssociations and sourceToTargetKeys data structures. |
|
| Method Summary | |
|---|---|
void |
addSourceToTargetKeyFieldAssociation(java.lang.String srcXPath,
java.lang.String tgtXPath)
PUBLIC: Add a source-target xpath pair to the map. |
void |
addSourceToTargetKeyFieldAssociation(XMLField srcField,
XMLField tgtField)
|
java.lang.Object |
buildFieldValue(java.lang.Object targetObject,
XMLField xmlFld,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Retrieve the target object's primary key value that is mapped to a given source xpath (in the source-target key field association list). |
void |
buildReference(org.eclipse.persistence.internal.oxm.record.UnmarshalRecord record,
XMLField xmlField,
java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Create (if necessary) and populate a reference object that will be used during the mapping reference resolution phase after unmarshalling is complete. |
void |
cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
INTERNAL: Cascade perform delete through mappings that require the cascade |
void |
cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
INTERNAL: Cascade registerNew for Create through mappings that require the cascade |
java.util.Vector |
getFields()
INTERNAL: Return a list of XMLFields based on the source XPath values in the source-target key field associations list. |
XMLInverseReferenceMapping |
getInverseReferenceMapping()
|
protected javax.xml.namespace.QName |
getSchemaType(XMLField xmlField,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return a QName representation the schema type for a given XMLField, if applicable. |
protected javax.xml.namespace.QName |
getSingleValueToWriteForUnion(XMLUnionField xmlField,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return a single QName representation for a given XMLUnionField, if applicable. |
java.util.HashMap |
getSourceToTargetKeyFieldAssociations()
INTERNAL: Return a list of source-target xmlfield pairs. |
protected java.lang.String |
getValueToWrite(javax.xml.namespace.QName schemaType,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
Return a string representation of a given value, based on a given schema type. |
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Register a ReferenceResolver as an event listener on the session, if one doesn't already exist. |
boolean |
isObjectReferenceMapping()
INTERNAL: Related mapping should implement this method to return true. |
boolean |
isWriteOnly()
INTERNAL: Some mappings support no attribute (transformation and multitenant primary key). |
boolean |
isXMLMapping()
INTERNAL: Indicates that this is an XML mapping. |
void |
preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Allow for initialization of properties and validation. |
java.lang.Object |
readFromRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object targetObject,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected)
INTERNAL: Extract the primary key values from the row, then create an org.eclipse.persistence.internal.oxm.Reference instance and store it on the session's org.eclipse.persistence.internal.oxm.ReferenceResolver. |
void |
setAttributeValueInObject(java.lang.Object object,
java.lang.Object value)
INTERNAL: Set the value of the attribute mapped by this mapping. |
void |
setField(org.eclipse.persistence.internal.helper.DatabaseField field)
|
void |
setIsWriteOnly(boolean b)
|
void |
setSourceToTargetKeyFieldAssociations(java.util.HashMap sourceToTargetKeyFieldAssociations)
INTERNAL: Set the list of source-target xmlfield pairs. |
void |
writeFromObjectIntoRow(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
INTERNAL: Write the attribute value from the object to the row. |
void |
writeSingleValue(java.lang.Object value,
java.lang.Object parent,
XMLRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: A method that marshals a single value to the provided Record based on this mapping's XPath. |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping |
|---|
getReferenceClass, getReferenceClassName, setReferenceClassName |
| Methods inherited from interface org.eclipse.persistence.oxm.mappings.XMLMapping |
|---|
convertClassNamesToClasses |
| Methods inherited from interface org.eclipse.persistence.internal.oxm.mappings.Mapping |
|---|
getAttributeAccessor, getAttributeClassification, getAttributeName, getAttributeValueFromObject, getContainerPolicy, getDescriptor, getField, getReferenceDescriptor, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isCollectionMapping, isReadOnly, isReferenceMapping, isTransformationMapping, setAttributeAccessor, setAttributeName, setGetMethodName, setIsReadOnly, setProperties, setSetMethodName |
| Field Detail |
|---|
protected java.util.HashMap sourceToTargetKeyFieldAssociations
protected java.util.Vector sourceToTargetKeys
| Constructor Detail |
|---|
public XMLObjectReferenceMapping()
| Method Detail |
|---|
public void addSourceToTargetKeyFieldAssociation(java.lang.String srcXPath,
java.lang.String tgtXPath)
addSourceToTargetKeyFieldAssociation in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>srcXPath - tgtXPath -
public void addSourceToTargetKeyFieldAssociation(XMLField srcField,
XMLField tgtField)
public java.lang.Object buildFieldValue(java.lang.Object targetObject,
XMLField xmlFld,
org.eclipse.persistence.internal.sessions.AbstractSession session)
buildFieldValue in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>sourceObject - xmlFld - session -
public void buildReference(org.eclipse.persistence.internal.oxm.record.UnmarshalRecord record,
XMLField xmlField,
java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
buildReference in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>record - xmlField - object - session -
public void cascadePerformRemoveIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
cascadePerformRemoveIfRequired in class DatabaseMapping
public void cascadeRegisterNewIfRequired(java.lang.Object object,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow,
java.util.Map visitedObjects)
cascadeRegisterNewIfRequired in class DatabaseMappingpublic java.util.Vector getFields()
getFields in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>getFields in class DatabaseMapping
protected javax.xml.namespace.QName getSchemaType(XMLField xmlField,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
xmlField - value -
protected javax.xml.namespace.QName getSingleValueToWriteForUnion(XMLUnionField xmlField,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
xmlField - value -
public java.util.HashMap getSourceToTargetKeyFieldAssociations()
getSourceToTargetKeyFieldAssociations in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>
protected java.lang.String getValueToWrite(javax.xml.namespace.QName schemaType,
java.lang.Object value,
org.eclipse.persistence.internal.sessions.AbstractSession session)
schemaType - value -
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
initialize in class AggregateMappingDescriptorExceptionReferenceResolver,
NamespaceResolver
public void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
throws DescriptorException
DatabaseMapping
preInitialize in class DatabaseMappingDescriptorExceptionpublic boolean isXMLMapping()
isXMLMapping in class DatabaseMapping
public java.lang.Object readFromRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object targetObject,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
ObjectBuildingQuery sourceQuery,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected)
throws DatabaseException
readFromRowIntoObject in class DatabaseMappingDatabaseExceptionpublic void setField(org.eclipse.persistence.internal.helper.DatabaseField field)
field - public void setSourceToTargetKeyFieldAssociations(java.util.HashMap sourceToTargetKeyFieldAssociations)
public void writeFromObjectIntoRow(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session,
DatabaseMapping.WriteType writeType)
writeFromObjectIntoRow in class DatabaseMapping
public void writeSingleValue(java.lang.Object value,
java.lang.Object parent,
XMLRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session)
XMLMapping
writeSingleValue in interface org.eclipse.persistence.internal.oxm.mappings.Mapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLRecord>writeSingleValue in interface XMLMappingvalue - - The value to be marshalledrow - - The Record the value is being marshalled too.public void setIsWriteOnly(boolean b)
setIsWriteOnly in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>setIsWriteOnly in interface XMLMappingpublic boolean isWriteOnly()
DatabaseMapping
isWriteOnly in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>isWriteOnly in interface XMLMappingisWriteOnly in class DatabaseMapping
public void setAttributeValueInObject(java.lang.Object object,
java.lang.Object value)
throws DescriptorException
DatabaseMapping
setAttributeValueInObject in interface org.eclipse.persistence.internal.oxm.mappings.Mapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLRecord>setAttributeValueInObject in class DatabaseMappingDescriptorExceptionpublic XMLInverseReferenceMapping getInverseReferenceMapping()
getInverseReferenceMapping in interface org.eclipse.persistence.internal.oxm.mappings.ObjectReferenceMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.oxm.record.UnmarshalRecord,XMLField,XMLRecord>public boolean isObjectReferenceMapping()
DatabaseMapping
isObjectReferenceMapping in class DatabaseMapping
|
EclipseLink 2.5.0, build 'v20130507-3faac2b' API Reference | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||