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

org.eclipse.persistence.oxm.mappings
Class XMLChoiceCollectionMapping

java.lang.Object
  extended by org.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>
      extended by org.eclipse.persistence.mappings.DatabaseMapping
          extended by org.eclipse.persistence.oxm.mappings.XMLChoiceCollectionMapping
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>, 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>, org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping, org.eclipse.persistence.internal.oxm.mappings.XMLConverterMapping<XMLMarshaller,Session,XMLUnmarshaller>, XMLMapping

public class XMLChoiceCollectionMapping
extends DatabaseMapping
implements org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>, XMLMapping

PUBLIC:

Purpose:Provide a mapping that can map a single attribute to a number of different elements in an XML Document. This will be used to map to Choices or Substitution Groups in an XML Schema

Responsibilities:

The XMLChoiceCollectionMapping is the collection version of the XMLChoiceMapping. This mapping allows the user to specify a number of different xpaths, and types associated with those xpaths. When any of these elements are encountered in the XML Document, they are read in as the correct type and added to the collection.

Setting up XPath mappings:Unlike other OXM Mappings, instead of setting a single xpath, the addChoiceElement method is used to specify an xpath and the type associated with this xpath.
xmlChoiceCollectionMapping.addChoiceElement("mystring/text()", String.class);
xmlChoiceCollectionMapping.addChoiceElement("myaddress", Address.class);

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.persistence.mappings.DatabaseMapping
DatabaseMapping.WriteType
 
Field Summary
 
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
 
Fields inherited from interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping
EMPTY_CONTAINER_DEFAULT
 
Constructor Summary
XMLChoiceCollectionMapping()
           
 
Method Summary
 void addChoiceElement(java.util.List<XMLField> srcFields, java.lang.Class elementType, java.util.List<XMLField> tgtFields)
           
 void addChoiceElement(java.util.List<XMLField> srcFields, java.lang.String elementTypeName, java.util.List<XMLField> tgtFields)
           
 void addChoiceElement(java.lang.String xpath, java.lang.Class elementType)
           
 void addChoiceElement(java.lang.String srcXPath, java.lang.Class elementType, java.lang.String tgtXPath)
           
 void addChoiceElement(java.lang.String xpath, java.lang.String elementTypeName)
           
 void addChoiceElement(java.lang.String srcXpath, java.lang.String elementTypeName, java.lang.String tgtXpath)
           
 void addChoiceElement(XMLField xmlField, java.lang.Class elementType)
           
 void addChoiceElement(XMLField sourceField, java.lang.Class elementType, XMLField targetField)
           
 void addChoiceElement(XMLField field, java.lang.String elementTypeName)
           
 void addConverter(XMLField field, Converter converter)
           
 void buildBackupClone(java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
          INTERNAL: Clone the attribute from the clone and assign it to the backup.
 void buildClone(java.lang.Object original, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, java.lang.Object clone, java.lang.Integer refreshCascade, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession)
          INTERNAL: Clone the attribute from the original and assign it to the clone.
 void buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, java.lang.Object clone, org.eclipse.persistence.internal.identitymaps.CacheKey sharedCacheKey, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
          INTERNAL: A combination of readFromRowIntoObject and buildClone.
 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
protected  java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> collectFields()
          This method must be overwritten in the subclasses to return a vector of all the fields this mapping represents.
 org.eclipse.persistence.internal.sessions.ChangeRecord compareForChange(java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: This method was created in VisualAge.
 boolean compareObjects(java.lang.Object firstObject, java.lang.Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Compare the attributes belonging to this mapping for the objects.
 void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
          INTERNAL: Convert all the class-name-based settings in this mapping to actual class-based settings This method is implemented by subclasses as necessary.
 java.lang.Object convertDataValueToObjectValue(java.lang.Object fieldValue, Session session, XMLUnmarshaller unmarshaller)
          INTERNAL
 java.lang.Object convertObjectValueToDataValue(java.lang.Object value, Session session, XMLMarshaller marshaller)
          INTERNAL
 void fixObjectReferences(java.lang.Object object, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query, DistributedSession session)
          INTERNAL: An object has been serialized from the server to the client.
 java.util.Map<XMLField,XMLMapping> getChoiceElementMappings()
           
 java.util.Map<java.lang.Class,XMLMapping> getChoiceElementMappingsByClass()
           
 java.util.ArrayList getChoiceFieldToClassAssociations()
           
 java.util.Map<java.lang.String,XMLField> getClassNameToFieldMappings()
           
 java.util.Map<java.lang.Class,XMLField> getClassToFieldMappings()
           
 java.util.Map<java.lang.Class,java.util.List<XMLField>> getClassToSourceFieldsMappings()
           
 org.eclipse.persistence.internal.queries.ContainerPolicy getContainerPolicy()
          INTERNAL: Return the mapping's containerPolicy.
 Converter getConverter()
          Return the converter on the mapping.
 Converter getConverter(XMLField field)
           
 java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getFields()
          INTERNAL: Returns a vector of all the fields this mapping represents.
 java.util.Map<XMLField,java.lang.Class> getFieldToClassMappings()
           
 XMLCompositeDirectCollectionMapping getMixedContentMapping()
           
 boolean getReuseContainer()
          Return true if the original container on the object should be used if present.
 AbstractNullPolicy getWrapperNullPolicy()
           
 void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Allow for initialization of properties and validation.
 boolean isDefaultEmptyContainer()
          INTERNAL Return true if an empty container should be set on the object if there is no presence of the collection in the XML document.
 boolean isMixedContent()
           
 boolean isWriteOnly()
          INTERNAL: Some mappings support no attribute (transformation and multitenant primary key).
 boolean isXMLMapping()
          INTERNAL: All relational mappings should implement this method to return true.
 void iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
          INTERNAL: Iterate on the appropriate attribute value.
 void mergeChangesIntoObject(java.lang.Object target, org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          INTERNAL: Merge changes from the source to the target object.
 void mergeIntoObject(java.lang.Object target, boolean isTargetUninitialized, java.lang.Object source, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          INTERNAL: Merge changes from the source to the target object.
 void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Allow for initialization of properties and validation.
 void setAttributeValueInObject(java.lang.Object object, java.lang.Object value)
          INTERNAL: Set the value of the attribute mapped by this mapping.
 void setChoiceElementMappingsByClass(java.util.Map<java.lang.Class,XMLMapping> choiceElementMappingsByClass)
           
 void setChoiceFieldToClassAssociations(java.util.ArrayList associations)
           
 void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy cp)
           
 void setConverter(Converter converter)
          Set the converter on the mapping.
 void setDefaultEmptyContainer(boolean defaultEmptyContainer)
          INTERNAL Indicate whether by default an empty container should be set on the field/property if the collection is not present in the XML document.
 void setIsWriteOnly(boolean b)
           
 void setMixedContent(boolean mixed)
          PUBLIC: Allows the user to indicate that this mapping should also allow for mixed content in addition to any of the elements in the choice.
 void setMixedContent(java.lang.String groupingElement)
          PUBLIC: Allows the user to indicate that this mapping should also allow for mixed content in addition to any of the elements in the choice.
 void setReuseContainer(boolean reuseContainer)
          Specify whether the original container on the object should be used if present.
 void setWrapperNullPolicy(AbstractNullPolicy policy)
           
 void useCollectionClass(java.lang.Class concreteContainerClass)
           
 void useCollectionClassName(java.lang.String concreteContainerClassName)
           
 java.lang.Object valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, org.eclipse.persistence.internal.sessions.AbstractSession executionSession, boolean isTargetProtected, java.lang.Boolean[] wasCacheUsed)
          INTERNAL: A subclass should implement this method if it wants different behavior.
 void writeFromObjectIntoRow(java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseMapping.WriteType writeType)
          INTERNAL: A subclass should implement this method if it wants different behavior.
 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 org.eclipse.persistence.mappings.DatabaseMapping
addUnconvertedProperty, buildBackupCloneForPartObject, buildChangeRecord, buildCloneForPartObject, buildContainerClone, buildCopy, buildExpression, buildObjectJoinExpression, buildObjectJoinExpression, buildShallowOriginalFromRow, calculateDeferredChanges, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired, clone, cloneFields, collectQueryParameters, createCloneValueHolder, derivesId, earlyPreDelete, extractNestedExpressions, fixRealObjectReferences, getAttributeAccessor, getAttributeClassification, getAttributeName, getAttributeValueFromObject, getDerivedIdMapping, getDescriptor, getField, getFieldClassification, getGetMethodName, getMapsIdValue, getObjectCorrespondingTo, getOrderByNormalizedExpressions, getProperties, getProperty, getRealAttributeValueFromAttribute, getRealAttributeValueFromObject, getRealCollectionAttributeValueFromObject, getReferenceDescriptor, getRelationshipPartner, getSelectFields, getSelectTables, getSetMethodName, getUnconvertedProperties, getValueFromRemoteValueHolder, getWeight, hasConstraintDependency, hasDependency, hasInverseConstraintDependency, hasMapsIdValue, hasRootExpressionThatShouldUseOuterJoin, hasUnconvertedProperties, instantiateAttribute, isAbstractColumnMapping, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isAttributeValueFromObjectInstantiated, isCacheable, isCandidateForPrivateOwnedRemoval, isCascadedLockingSupported, isChangeTrackingSupported, isCloningRequired, isCollectionMapping, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isElementCollectionMapping, isForeignReferenceMapping, isJoiningSupported, isJPAId, isLazy, isLockableMapping, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isMultitenantPrimaryKeyMapping, isNestedTableMapping, isObjectReferenceMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOwned, isPrimaryKeyMapping, isPrivateOwned, isReadOnly, isReferenceMapping, isRelationalMapping, isRemotelyInitialized, isStructureMapping, isTransformationMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, iterateOnRealAttributeValue, load, performDataModificationEvent, postCalculateChanges, postCalculateChangesOnDeleted, postDelete, postInitialize, postInsert, postUpdate, preDelete, preInsert, prepareCascadeLockingPolicy, preUpdate, readFromResultSetIntoObject, readFromRowIntoObject, readOnly, readWrite, recordPrivateOwnedRemovals, rehashFieldDependancies, remoteInitialization, remotelyInitialized, replaceValueHoldersIn, setAttributeAccessor, setAttributeName, setChangeListener, setDerivedIdMapping, setDerivesId, setDescriptor, setFields, setGetMethodName, setIsCacheable, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setRealAttributeValueInObject, setSetMethodName, setWeight, simpleAddToCollectionChangeRecord, simpleRemoveFromCollectionChangeRecord, toString, updateChangeRecord, updateCollectionChangeRecord, validateAfterInitialization, validateBeforeInitialization, valueFromObject, valueFromResultSet, valueFromRow, verifyDelete, writeFromAttributeIntoRow, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForUpdate, writeFromObjectIntoRowForUpdateAfterShallowInsert, writeFromObjectIntoRowForUpdateBeforeShallowDelete, writeFromObjectIntoRowForWhereClause, writeFromObjectIntoRowWithChangeRecord, writeInsertFieldsIntoRow, writeUpdateFieldsIntoRow
 
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.Mapping
getAttributeAccessor, getAttributeClassification, getAttributeName, getAttributeValueFromObject, getDescriptor, getField, getReferenceDescriptor, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isCollectionMapping, isReadOnly, isReferenceMapping, isTransformationMapping, setAttributeAccessor, setAttributeName, setGetMethodName, setIsReadOnly, setProperties, setSetMethodName
 

Constructor Detail

XMLChoiceCollectionMapping

public XMLChoiceCollectionMapping()
Method Detail

getConverter

public Converter getConverter()
Return the converter on the mapping. A converter can be used to convert between the object's value and database value of the attribute.

Specified by:
getConverter in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

setConverter

public void setConverter(Converter converter)
Set the converter on the mapping. A converter can be used to convert between the object's value and database value of the attribute.

Specified by:
setConverter in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

buildBackupClone

public void buildBackupClone(java.lang.Object clone,
                             java.lang.Object backup,
                             org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL: Clone the attribute from the clone and assign it to the backup.

Specified by:
buildBackupClone in class DatabaseMapping

buildClone

public void buildClone(java.lang.Object original,
                       org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
                       java.lang.Object clone,
                       java.lang.Integer refreshCascade,
                       org.eclipse.persistence.internal.sessions.AbstractSession cloningSession)
INTERNAL: Clone the attribute from the original and assign it to the clone.

Specified by:
buildClone in class DatabaseMapping

buildCloneFromRow

public void buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
                              org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
                              java.lang.Object clone,
                              org.eclipse.persistence.internal.identitymaps.CacheKey sharedCacheKey,
                              ObjectBuildingQuery sourceQuery,
                              org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork,
                              org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
Description copied from class: DatabaseMapping
INTERNAL: A combination of readFromRowIntoObject and buildClone.

buildClone assumes the attribute value exists on the original and can simply be copied.

readFromRowIntoObject assumes that one is building an original.

Both of the above assumptions are false in this method, and actually attempts to do both at the same time.

Extract value from the row and set the attribute to this value in the working copy clone. In order to bypass the shared cache when in transaction a UnitOfWork must be able to populate working copies directly from the row.

Specified by:
buildCloneFromRow in class DatabaseMapping

cascadePerformRemoveIfRequired

public 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

Specified by:
cascadePerformRemoveIfRequired in class DatabaseMapping

cascadeRegisterNewIfRequired

public 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

Specified by:
cascadeRegisterNewIfRequired in class DatabaseMapping

compareForChange

public org.eclipse.persistence.internal.sessions.ChangeRecord compareForChange(java.lang.Object clone,
                                                                               java.lang.Object backup,
                                                                               org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
                                                                               org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method was created in VisualAge.

Specified by:
compareForChange in class DatabaseMapping
Returns:
prototype.changeset.ChangeRecord

compareObjects

public boolean compareObjects(java.lang.Object firstObject,
                              java.lang.Object secondObject,
                              org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compare the attributes belonging to this mapping for the objects.

Specified by:
compareObjects in class DatabaseMapping

fixObjectReferences

public void fixObjectReferences(java.lang.Object object,
                                java.util.Map objectDescriptors,
                                java.util.Map processedObjects,
                                ObjectLevelReadQuery query,
                                DistributedSession session)
INTERNAL: An object has been serialized from the server to the client. Replace the transient attributes of the remote value holders with client-side objects.

Specified by:
fixObjectReferences in class DatabaseMapping

iterate

public void iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
INTERNAL: Iterate on the appropriate attribute value.

Specified by:
iterate in class DatabaseMapping

mergeChangesIntoObject

public void mergeChangesIntoObject(java.lang.Object target,
                                   org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                   java.lang.Object source,
                                   org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                                   org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Merge changes from the source to the target object.

Specified by:
mergeChangesIntoObject in class DatabaseMapping

mergeIntoObject

public void mergeIntoObject(java.lang.Object target,
                            boolean isTargetUninitialized,
                            java.lang.Object source,
                            org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                            org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Merge changes from the source to the target object.

Specified by:
mergeIntoObject in class DatabaseMapping

valueFromRow

public java.lang.Object valueFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                     org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
                                     ObjectBuildingQuery sourceQuery,
                                     org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
                                     org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
                                     boolean isTargetProtected,
                                     java.lang.Boolean[] wasCacheUsed)
                              throws DatabaseException
Description copied from class: DatabaseMapping
INTERNAL: A subclass should implement this method if it wants different behavior. Returns the value for the mapping from the database row. The execution session is the session the query was executed on, and its platform should be used for data conversion.

Overrides:
valueFromRow in class DatabaseMapping
Throws:
DatabaseException

writeFromObjectIntoRow

public void writeFromObjectIntoRow(java.lang.Object object,
                                   org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                   org.eclipse.persistence.internal.sessions.AbstractSession session,
                                   DatabaseMapping.WriteType writeType)
                            throws DescriptorException
Description copied from class: DatabaseMapping
INTERNAL: A subclass should implement this method if it wants different behavior. Write the attribute value from the object to the row.

Overrides:
writeFromObjectIntoRow in class DatabaseMapping
Throws:
DescriptorException

writeSingleValue

public void writeSingleValue(java.lang.Object value,
                             java.lang.Object parent,
                             XMLRecord row,
                             org.eclipse.persistence.internal.sessions.AbstractSession session)
Description copied from interface: XMLMapping
INTERNAL: A method that marshals a single value to the provided Record based on this mapping's XPath. Used for Sequenced marshalling.

Specified by:
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>
Specified by:
writeSingleValue in interface XMLMapping
Parameters:
value - - The value to be marshalled
row - - The Record the value is being marshalled too.

isXMLMapping

public boolean isXMLMapping()
Description copied from class: DatabaseMapping
INTERNAL: All relational mappings should implement this method to return true.

Overrides:
isXMLMapping in class DatabaseMapping

getFields

public java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> getFields()
Description copied from class: DatabaseMapping
INTERNAL: Returns a vector of all the fields this mapping represents.

Overrides:
getFields in class DatabaseMapping

collectFields

protected java.util.Vector<org.eclipse.persistence.internal.helper.DatabaseField> collectFields()
Description copied from class: DatabaseMapping
This method must be overwritten in the subclasses to return a vector of all the fields this mapping represents.

Overrides:
collectFields in class DatabaseMapping

addChoiceElement

public void addChoiceElement(java.lang.String xpath,
                             java.lang.Class elementType)

addChoiceElement

public void addChoiceElement(java.lang.String xpath,
                             java.lang.String elementTypeName)
Specified by:
addChoiceElement in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

addChoiceElement

public void addChoiceElement(XMLField xmlField,
                             java.lang.Class elementType)

addChoiceElement

public void addChoiceElement(java.util.List<XMLField> srcFields,
                             java.lang.Class elementType,
                             java.util.List<XMLField> tgtFields)

addChoiceElement

public void addChoiceElement(java.util.List<XMLField> srcFields,
                             java.lang.String elementTypeName,
                             java.util.List<XMLField> tgtFields)
Specified by:
addChoiceElement in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

addChoiceElement

public void addChoiceElement(java.lang.String srcXPath,
                             java.lang.Class elementType,
                             java.lang.String tgtXPath)

addChoiceElement

public void addChoiceElement(java.lang.String srcXpath,
                             java.lang.String elementTypeName,
                             java.lang.String tgtXpath)
Specified by:
addChoiceElement in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

addChoiceElement

public void addChoiceElement(XMLField sourceField,
                             java.lang.Class elementType,
                             XMLField targetField)

addChoiceElement

public void addChoiceElement(XMLField field,
                             java.lang.String elementTypeName)
Specified by:
addChoiceElement in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getFieldToClassMappings

public java.util.Map<XMLField,java.lang.Class> getFieldToClassMappings()
Specified by:
getFieldToClassMappings in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

initialize

public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
                throws DescriptorException
Description copied from class: DatabaseMapping
INTERNAL: Allow for initialization of properties and validation.

Overrides:
initialize in class DatabaseMapping
Throws:
DescriptorException

getClassToFieldMappings

public java.util.Map<java.lang.Class,XMLField> getClassToFieldMappings()
Specified by:
getClassToFieldMappings in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getChoiceElementMappings

public java.util.Map<XMLField,XMLMapping> getChoiceElementMappings()
Specified by:
getChoiceElementMappings in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getContainerPolicy

public org.eclipse.persistence.internal.queries.ContainerPolicy getContainerPolicy()
Description copied from class: DatabaseMapping
INTERNAL: Return the mapping's containerPolicy.

Specified by:
getContainerPolicy 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>
Overrides:
getContainerPolicy in class DatabaseMapping

setContainerPolicy

public void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy cp)

useCollectionClass

public void useCollectionClass(java.lang.Class concreteContainerClass)

useCollectionClassName

public void useCollectionClassName(java.lang.String concreteContainerClassName)
Specified by:
useCollectionClassName in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

convertClassNamesToClasses

public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
Description copied from class: DatabaseMapping
INTERNAL: Convert all the class-name-based settings in this mapping to actual class-based settings This method is implemented by subclasses as necessary.

Specified by:
convertClassNamesToClasses 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>
Specified by:
convertClassNamesToClasses in interface XMLMapping
Overrides:
convertClassNamesToClasses in class DatabaseMapping

addConverter

public void addConverter(XMLField field,
                         Converter converter)
Specified by:
addConverter in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getConverter

public Converter getConverter(XMLField field)
Specified by:
getConverter in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getChoiceFieldToClassAssociations

public java.util.ArrayList getChoiceFieldToClassAssociations()
Specified by:
getChoiceFieldToClassAssociations in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

setChoiceFieldToClassAssociations

public void setChoiceFieldToClassAssociations(java.util.ArrayList associations)

isWriteOnly

public boolean isWriteOnly()
Description copied from class: DatabaseMapping
INTERNAL: Some mappings support no attribute (transformation and multitenant primary key).

Specified by:
isWriteOnly in interface XMLMapping
Overrides:
isWriteOnly in class DatabaseMapping

setIsWriteOnly

public void setIsWriteOnly(boolean b)
Specified by:
setIsWriteOnly in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>
Specified by:
setIsWriteOnly in interface XMLMapping

preInitialize

public void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
                   throws DescriptorException
Description copied from class: DatabaseMapping
INTERNAL: Allow for initialization of properties and validation.

Overrides:
preInitialize in class DatabaseMapping
Throws:
DescriptorException

setAttributeValueInObject

public void setAttributeValueInObject(java.lang.Object object,
                                      java.lang.Object value)
                               throws DescriptorException
Description copied from class: DatabaseMapping
INTERNAL: Set the value of the attribute mapped by this mapping.

Specified by:
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>
Overrides:
setAttributeValueInObject in class DatabaseMapping
Throws:
DescriptorException

getReuseContainer

public boolean getReuseContainer()
Return true if the original container on the object should be used if present. If it is not present then the container policy will be used to create the container.

Specified by:
getReuseContainer in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping

setReuseContainer

public void setReuseContainer(boolean reuseContainer)
Specify whether the original container on the object should be used if present. If it is not present then the container policy will be used to create the container.

Specified by:
setReuseContainer in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping

getClassToSourceFieldsMappings

public java.util.Map<java.lang.Class,java.util.List<XMLField>> getClassToSourceFieldsMappings()
Specified by:
getClassToSourceFieldsMappings in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

getClassNameToFieldMappings

public java.util.Map<java.lang.String,XMLField> getClassNameToFieldMappings()
Specified by:
getClassNameToFieldMappings in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

isMixedContent

public boolean isMixedContent()
Specified by:
isMixedContent in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

setMixedContent

public void setMixedContent(java.lang.String groupingElement)
PUBLIC: Allows the user to indicate that this mapping should also allow for mixed content in addition to any of the elements in the choice. The grouping element parameter is used in the case that there is a common grouping element to all the other elements in this choice. If so, that grouping element can be specified here to allow the mixed content to be written/detected inside the wrapper element.

Specified by:
setMixedContent in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>
Since:
EclipseLink 2.3.1

setMixedContent

public void setMixedContent(boolean mixed)
PUBLIC: Allows the user to indicate that this mapping should also allow for mixed content in addition to any of the elements in the choice.

Specified by:
setMixedContent in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>
Since:
EclipseLink 2.3.1

getMixedContentMapping

public XMLCompositeDirectCollectionMapping getMixedContentMapping()
Specified by:
getMixedContentMapping in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

isDefaultEmptyContainer

public boolean isDefaultEmptyContainer()
INTERNAL Return true if an empty container should be set on the object if there is no presence of the collection in the XML document.

Specified by:
isDefaultEmptyContainer in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping
Since:
EclipseLink 2.3.3

setDefaultEmptyContainer

public void setDefaultEmptyContainer(boolean defaultEmptyContainer)
INTERNAL Indicate whether by default an empty container should be set on the field/property if the collection is not present in the XML document.

Specified by:
setDefaultEmptyContainer in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping
Since:
EclipseLink 2.3.3

getWrapperNullPolicy

public AbstractNullPolicy getWrapperNullPolicy()
Specified by:
getWrapperNullPolicy in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping

setWrapperNullPolicy

public void setWrapperNullPolicy(AbstractNullPolicy policy)
Specified by:
setWrapperNullPolicy in interface org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping

getChoiceElementMappingsByClass

public java.util.Map<java.lang.Class,XMLMapping> getChoiceElementMappingsByClass()
Specified by:
getChoiceElementMappingsByClass in interface org.eclipse.persistence.internal.oxm.mappings.ChoiceCollectionMapping<org.eclipse.persistence.internal.sessions.AbstractSession,AttributeAccessor,org.eclipse.persistence.internal.queries.ContainerPolicy,Converter,ClassDescriptor,org.eclipse.persistence.internal.helper.DatabaseField,XMLMarshaller,Session,XMLUnmarshaller,XMLField,XMLMapping,XMLRecord>

setChoiceElementMappingsByClass

public void setChoiceElementMappingsByClass(java.util.Map<java.lang.Class,XMLMapping> choiceElementMappingsByClass)

convertObjectValueToDataValue

public java.lang.Object convertObjectValueToDataValue(java.lang.Object value,
                                                      Session session,
                                                      XMLMarshaller marshaller)
INTERNAL

Specified by:
convertObjectValueToDataValue in interface org.eclipse.persistence.internal.oxm.mappings.XMLConverterMapping<XMLMarshaller,Session,XMLUnmarshaller>
Since:
EclipseLink 2.5.0

convertDataValueToObjectValue

public java.lang.Object convertDataValueToObjectValue(java.lang.Object fieldValue,
                                                      Session session,
                                                      XMLUnmarshaller unmarshaller)
INTERNAL

Specified by:
convertDataValueToObjectValue in interface org.eclipse.persistence.internal.oxm.mappings.XMLConverterMapping<XMLMarshaller,Session,XMLUnmarshaller>
Since:
EclipseLink 2.5.0

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