EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.mappings.foundation
Class AbstractCompositeCollectionMapping

java.lang.Object
  extended by org.eclipse.persistence.mappings.DatabaseMapping
      extended by org.eclipse.persistence.mappings.AggregateMapping
          extended by org.eclipse.persistence.mappings.foundation.AbstractCompositeCollectionMapping
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, ContainerMapping
Direct Known Subclasses:
EISCompositeCollectionMapping, ObjectArrayMapping, XMLCompositeCollectionMapping

public abstract class AbstractCompositeCollectionMapping
extends AggregateMapping
implements ContainerMapping

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.persistence.mappings.DatabaseMapping
DatabaseMapping.WriteType
 
Field Summary
protected  Converter converter
          Allows user defined conversion between the object attribute value and the database value.
protected  org.eclipse.persistence.internal.helper.DatabaseField field
          The aggregate objects are stored in a single field.
 
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, weight, WEIGHT_AGGREGATE, WEIGHT_DIRECT, WEIGHT_TO_ONE, WEIGHT_TRANSFORM
 
Constructor Summary
AbstractCompositeCollectionMapping()
          Default constructor.
 
Method Summary
 java.lang.Object buildAddedElementFromChangeSet(java.lang.Object changeSet, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          INTERNAL: Build and return a new element based on the change set.
protected  java.lang.Object buildBackupClonePart(java.lang.Object attributeValue, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
          Build and return a backup clone of the attribute.
 java.lang.Object buildChangeSet(java.lang.Object element, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Build and return a change set for the specified element.
protected  java.lang.Object buildClonePart(java.lang.Object original, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, java.lang.Object attributeValue, org.eclipse.persistence.internal.sessions.AbstractSession clonningSession)
          Build and return a clone of the attribute.
protected abstract  java.lang.Object buildCompositeObject(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractRecord nestedRow, ObjectBuildingQuery query, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManger, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
           
protected abstract  org.eclipse.persistence.internal.sessions.AbstractRecord buildCompositeRow(java.lang.Object attributeValue, org.eclipse.persistence.internal.sessions.AbstractSession session, org.eclipse.persistence.internal.sessions.AbstractRecord record, DatabaseMapping.WriteType writeType)
           
protected  java.lang.Object buildCopyOfAttributeValue(java.lang.Object attributeValue, CopyGroup group)
          Copy of the attribute of the object.
protected  java.lang.Object buildElementFromChangeSet(java.lang.Object changeSet, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          Build and return a new element based on the change set.
 java.lang.Object buildElementFromElement(java.lang.Object element, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          INTERNAL: Build and return a new element based on the specified element.
 java.lang.Object buildRemovedElementFromChangeSet(java.lang.Object changeSet, org.eclipse.persistence.internal.sessions.MergeManager mergeManager, org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
          INTERNAL: Build and return a new element based on the change set.
 void cascadeDiscoverAndPersistUnregisteredNewObjects(java.lang.Object object, java.util.Map newObjects, java.util.Map unregisteredExistingObjects, java.util.Map visitedObjects, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
          INTERNAL: Cascade discover and persist new objects during commit.
 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 collectFields()
          Return the fields handled by the mapping.
 boolean compareElements(java.lang.Object element1, java.lang.Object element2, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Compare the non-null elements and return true if they are alike.
 boolean compareElementsForChange(java.lang.Object element1, java.lang.Object element2, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Compare the non-null elements and return true if they are alike.
 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: Build and return the change record that results from comparing the two aggregate collection attributes.
 boolean compareObjects(java.lang.Object object1, java.lang.Object object2, 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.
protected  org.eclipse.persistence.internal.sessions.ChangeRecord convertToChangeRecord(java.lang.Object cloneCollection, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
           
protected  void fixAttributeValue(java.lang.Object attributeValue, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query, RemoteSession session)
          An object has been serialized from the server to the remote client.
protected  java.lang.Object getAttributeValueFromBackupClone(java.lang.Object backupClone)
          Return the appropriate attribute value.
 org.eclipse.persistence.internal.queries.ContainerPolicy getContainerPolicy()
          INTERNAL: Return the mapping's containerPolicy.
 Converter getConverter()
          PUBLIC: Return the converter on the mapping.
 org.eclipse.persistence.internal.helper.DatabaseField getField()
          INTERNAL: Return the field mapped by this mapping.
 java.lang.Object getRealCollectionAttributeValueFromObject(java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Convenience method.
protected  java.lang.String getStructureName()
          This is required for ObjectArrayMapping which defines a name for the collection type.
 boolean hasConverter()
          PUBLIC: Indicates if there is a converter on the mapping.
 void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: The mapping is initialized with the given session.
 boolean isAbstractCompositeCollectionMapping()
          INTERNAL:
 boolean isCollectionMapping()
          INTERNAL: Related mapping should implement this method to return true.
protected  void iterateOnAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator descriptorIterator, java.lang.Object attributeValue)
          Iterate on the specified attribute value.
 boolean mapKeyHasChanged(java.lang.Object element, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Return whether the element's user-defined Map key has changed since it was cloned from the original version.
 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 postDeleteAttributeValue(DeleteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void postInsertAttributeValue(WriteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void postUpdateAttributeValue(WriteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void preDeleteAttributeValue(DeleteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void preInsertAttributeValue(WriteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void preUpdateAttributeValue(WriteObjectQuery query, java.lang.Object attributeValue)
          The message is passed to its reference class descriptor.
 void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
          ADVANCED: Set the mapping's containerPolicy.
 void setConverter(Converter converter)
          PUBLIC: Set the converter on the mapping.
 void setField(org.eclipse.persistence.internal.helper.DatabaseField field)
          Set the field in the mapping.
 void simpleAddToCollectionChangeRecord(java.lang.Object referenceKey, java.lang.Object changeSetToAdd, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet, org.eclipse.persistence.internal.sessions.AbstractSession session)
          ADVANCED: This method is used to have an object add to a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps.
 void simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey, java.lang.Object changeSetToRemove, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet, org.eclipse.persistence.internal.sessions.AbstractSession session)
          ADVANCED: This method is used to have an object removed from a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps.
 void useCollectionClass(java.lang.Class concreteContainerClass)
          PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects.
 void useCollectionClassName(java.lang.String concreteContainerClassName)
           
 void useListClassName(java.lang.String concreteContainerClassName)
           
 void useMapClass(java.lang.Class concreteContainerClass, java.lang.String methodName)
          PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects.
 void useMapClassName(java.lang.String concreteContainerClassName, java.lang.String methodName)
           
 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)
          INTERNAL: Build and return an aggregate collection from the specified row.
protected  boolean verifyDeleteOfAttributeValue(java.lang.Object attributeValue, org.eclipse.persistence.internal.sessions.AbstractSession session)
          Return whether the specified object and all its components have been deleted.
 void writeFromObjectIntoRow(java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseMapping.WriteType writeType)
          INTERNAL: Get the attribute value from the object and add the appropriate values to the specified database row.
 void writeFromObjectIntoRowForUpdate(WriteObjectQuery writeQuery, org.eclipse.persistence.internal.sessions.AbstractRecord row)
          INTERNAL: Get the attribute value from the object and add the changed values to the specified database row.
 void writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session, DatabaseMapping.WriteType writeType)
          INTERNAL: Get the attribute value from the object and add the appropriate values to the specified database row.
 void writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord record, org.eclipse.persistence.internal.sessions.AbstractSession session)
          INTERNAL: Write fields needed for insert into the template with null values.
 
Methods inherited from class org.eclipse.persistence.mappings.AggregateMapping
buildAggregateDeleteQuery, buildAggregateModifyQuery, buildAggregateWriteQuery, buildBackupClone, buildClone, buildCloneFromRow, buildClonePart, buildCopy, buildExpression, buildNewMergeInstanceOf, compareAttributeValues, executeEvent, fixObjectReferences, getObjectBuilder, getObjectBuilderForClass, getQueryManager, getReferenceClass, getReferenceClassName, getReferenceDescriptor, getReferenceDescriptor, getReferenceDescriptor, isAggregateMapping, iterate, mergeAttributeValue, postDelete, postInsert, postUpdate, preDelete, preInsert, preUpdate, remoteInitialization, setReferenceClass, setReferenceClassName, setReferenceDescriptor, updateChangeRecord, verifyDelete
 
Methods inherited from class org.eclipse.persistence.mappings.DatabaseMapping
buildBackupCloneForPartObject, buildChangeRecord, buildCloneForPartObject, buildContainerClone, buildObjectJoinExpression, buildObjectJoinExpression, buildShallowOriginalFromRow, calculateDeferredChanges, cascadeMerge_, cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired, clone, cloneFields, collectQueryParameters, createCloneValueHolder, derivesId, earlyPreDelete, extractNestedExpressions, fixRealObjectReferences, getAttributeAccessor, getAttributeClassification, getAttributeName, getAttributeValueFromObject, getDerivedIdMapping, getDescriptor, getFieldClassification, getFields, getGetMethodName, getMapsIdValue, getObjectCorrespondingTo, getProperties, getProperty, getRealAttributeValueFromAttribute, getRealAttributeValueFromObject, getRelationshipPartner, getSelectFields, getSelectTables, getSetMethodName, getValueFromRemoteValueHolder, getWeight, hasConstraintDependency, hasDependency, hasInverseConstraintDependency, hasMapsIdValue, hasRootExpressionThatShouldUseOuterJoin, instantiateAttribute, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateObjectMapping, isCacheable, isCandidateForPrivateOwnedRemoval, isCascadedLockingSupported, isChangeTrackingSupported, isCloningRequired, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isForeignReferenceMapping, isJoiningSupported, isJPAId, isLazy, isLockableMapping, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isNestedTableMapping, isObjectReferenceMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOwned, isPrimaryKeyMapping, isPrivateOwned, isReadOnly, isReferenceMapping, isRelationalMapping, isRemotelyInitialized, isStructureMapping, isTransformationMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, isWriteOnly, isXMLMapping, iterateOnRealAttributeValue, performDataModificationEvent, postCalculateChanges, postCalculateChangesOnDeleted, postInitialize, preInitialize, prepareCascadeLockingPolicy, readFromResultSetIntoObject, readFromRowIntoObject, readOnly, readWrite, recordPrivateOwnedRemovals, rehashFieldDependancies, remotelyInitialized, replaceValueHoldersIn, setAttributeAccessor, setAttributeName, setAttributeValueInObject, setChangeListener, setDerivedIdMapping, setDerivesId, setDescriptor, setFields, setGetMethodName, setIsCacheable, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setRealAttributeValueInObject, setSetMethodName, setWeight, toString, updateCollectionChangeRecord, validateAfterInitialization, validateBeforeInitialization, valueFromObject, valueFromResultSet, valueFromRow, writeFromAttributeIntoRow, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForWhereClause, writeUpdateFieldsIntoRow
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

field

protected org.eclipse.persistence.internal.helper.DatabaseField field
The aggregate objects are stored in a single field.


converter

protected Converter converter
Allows user defined conversion between the object attribute value and the database value.

Constructor Detail

AbstractCompositeCollectionMapping

public AbstractCompositeCollectionMapping()
Default constructor.

Method Detail

buildAddedElementFromChangeSet

public java.lang.Object buildAddedElementFromChangeSet(java.lang.Object changeSet,
                                                       org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                                                       org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Build and return a new element based on the change set.


buildBackupClonePart

protected java.lang.Object buildBackupClonePart(java.lang.Object attributeValue,
                                                org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
Build and return a backup clone of the attribute.

Overrides:
buildBackupClonePart in class AggregateMapping

buildChangeSet

public java.lang.Object buildChangeSet(java.lang.Object element,
                                       org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
                                       org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Build and return a change set for the specified element.


buildClonePart

protected java.lang.Object buildClonePart(java.lang.Object original,
                                          org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
                                          java.lang.Object attributeValue,
                                          org.eclipse.persistence.internal.sessions.AbstractSession clonningSession)
Build and return a clone of the attribute.

Overrides:
buildClonePart in class AggregateMapping

buildCopyOfAttributeValue

protected java.lang.Object buildCopyOfAttributeValue(java.lang.Object attributeValue,
                                                     CopyGroup group)
Copy of the attribute of the object. This is NOT used for unit of work but for templatizing an object.

Overrides:
buildCopyOfAttributeValue in class AggregateMapping

buildElementFromChangeSet

protected java.lang.Object buildElementFromChangeSet(java.lang.Object changeSet,
                                                     org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                                                     org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
Build and return a new element based on the change set.


buildElementFromElement

public java.lang.Object buildElementFromElement(java.lang.Object element,
                                                org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                                                org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Build and return a new element based on the specified element.


buildRemovedElementFromChangeSet

public java.lang.Object buildRemovedElementFromChangeSet(java.lang.Object changeSet,
                                                         org.eclipse.persistence.internal.sessions.MergeManager mergeManager,
                                                         org.eclipse.persistence.internal.sessions.AbstractSession targetSession)
INTERNAL: Build and return a new element based on the change set.


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

cascadeDiscoverAndPersistUnregisteredNewObjects

public void cascadeDiscoverAndPersistUnregisteredNewObjects(java.lang.Object object,
                                                            java.util.Map newObjects,
                                                            java.util.Map unregisteredExistingObjects,
                                                            java.util.Map visitedObjects,
                                                            org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL: Cascade discover and persist new objects during commit.

Overrides:
cascadeDiscoverAndPersistUnregisteredNewObjects 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

collectFields

protected java.util.Vector collectFields()
Return the fields handled by the mapping.

Overrides:
collectFields in class DatabaseMapping

compareElements

public boolean compareElements(java.lang.Object element1,
                               java.lang.Object element2,
                               org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compare the non-null elements and return true if they are alike.


compareElementsForChange

public boolean compareElementsForChange(java.lang.Object element1,
                                        java.lang.Object element2,
                                        org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compare the non-null elements and return true if they are alike.


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: Build and return the change record that results from comparing the two aggregate collection attributes.

Overrides:
compareForChange in class AggregateMapping
Returns:
prototype.changeset.ChangeRecord

convertClassNamesToClasses

public 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 used when converting a project that has been built with class names to a project with classes.

Overrides:
convertClassNamesToClasses in class AggregateMapping
Parameters:
classLoader -

convertToChangeRecord

protected org.eclipse.persistence.internal.sessions.ChangeRecord convertToChangeRecord(java.lang.Object cloneCollection,
                                                                                       org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
                                                                                       org.eclipse.persistence.internal.sessions.AbstractSession session)

compareObjects

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

Overrides:
compareObjects in class AggregateMapping

fixAttributeValue

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

Overrides:
fixAttributeValue in class AggregateMapping

getAttributeValueFromBackupClone

protected java.lang.Object getAttributeValueFromBackupClone(java.lang.Object backupClone)
Return the appropriate attribute value. This method is a hack to allow the aggregate collection subclass to override.... The intent is to return the aggregate object in the backup clone that corresponds to the one in the working copy. Since we don't know which element in the backup clone collection corresponds any given element in the working copy collection (there is no "primary key"); we simply return null, which will cause a new, empty, instance to be built and used for comparison.

Overrides:
getAttributeValueFromBackupClone in class AggregateMapping

getContainerPolicy

public org.eclipse.persistence.internal.queries.ContainerPolicy getContainerPolicy()
INTERNAL: Return the mapping's containerPolicy.

Specified by:
getContainerPolicy in interface ContainerMapping
Overrides:
getContainerPolicy in class DatabaseMapping

getConverter

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


getField

public org.eclipse.persistence.internal.helper.DatabaseField getField()
INTERNAL: Return the field mapped by this mapping.

Overrides:
getField in class DatabaseMapping

getRealCollectionAttributeValueFromObject

public java.lang.Object getRealCollectionAttributeValueFromObject(java.lang.Object object,
                                                                  org.eclipse.persistence.internal.sessions.AbstractSession session)
                                                           throws DescriptorException
INTERNAL: Convenience method. Return the value of an attribute, unwrapping value holders if necessary. If the value is null, build a new container.

Overrides:
getRealCollectionAttributeValueFromObject in class DatabaseMapping
Throws:
DescriptorException

getStructureName

protected java.lang.String getStructureName()
This is required for ObjectArrayMapping which defines a name for the collection type. Currently this type name is not required or used in general with the SDK.


hasConverter

public boolean hasConverter()
PUBLIC: Indicates if there is a converter on the mapping.


isAbstractCompositeCollectionMapping

public boolean isAbstractCompositeCollectionMapping()
INTERNAL:

Overrides:
isAbstractCompositeCollectionMapping in class DatabaseMapping

initialize

public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
                throws DescriptorException
INTERNAL: The mapping is initialized with the given session. This mapping is fully initialized after this.

Overrides:
initialize in class AggregateMapping
Throws:
DescriptorException

iterateOnAttributeValue

protected void iterateOnAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator descriptorIterator,
                                       java.lang.Object attributeValue)
Iterate on the specified attribute value.

Overrides:
iterateOnAttributeValue in class AggregateMapping

mapKeyHasChanged

public boolean mapKeyHasChanged(java.lang.Object element,
                                org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Return whether the element's user-defined Map key has changed since it was cloned from the original version. Aggregate elements cannot change their keys without detection.


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.

Overrides:
mergeChangesIntoObject in class AggregateMapping

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. Simply replace the entire target collection.

Overrides:
mergeIntoObject in class AggregateMapping

postDeleteAttributeValue

public void postDeleteAttributeValue(DeleteObjectQuery query,
                                     java.lang.Object attributeValue)
                              throws DatabaseException,
                                     OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
postDeleteAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

postInsertAttributeValue

public void postInsertAttributeValue(WriteObjectQuery query,
                                     java.lang.Object attributeValue)
                              throws DatabaseException,
                                     OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
postInsertAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

postUpdateAttributeValue

public void postUpdateAttributeValue(WriteObjectQuery query,
                                     java.lang.Object attributeValue)
                              throws DatabaseException,
                                     OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
postUpdateAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

preDeleteAttributeValue

public void preDeleteAttributeValue(DeleteObjectQuery query,
                                    java.lang.Object attributeValue)
                             throws DatabaseException,
                                    OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
preDeleteAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

preInsertAttributeValue

public void preInsertAttributeValue(WriteObjectQuery query,
                                    java.lang.Object attributeValue)
                             throws DatabaseException,
                                    OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
preInsertAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

preUpdateAttributeValue

public void preUpdateAttributeValue(WriteObjectQuery query,
                                    java.lang.Object attributeValue)
                             throws DatabaseException,
                                    OptimisticLockException
The message is passed to its reference class descriptor.

Overrides:
preUpdateAttributeValue in class AggregateMapping
Throws:
DatabaseException
OptimisticLockException

setContainerPolicy

public void setContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
ADVANCED: Set the mapping's containerPolicy.

Specified by:
setContainerPolicy in interface ContainerMapping

setConverter

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


setField

public void setField(org.eclipse.persistence.internal.helper.DatabaseField field)
Set the field in the mapping.


simpleAddToCollectionChangeRecord

public void simpleAddToCollectionChangeRecord(java.lang.Object referenceKey,
                                              java.lang.Object changeSetToAdd,
                                              org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet,
                                              org.eclipse.persistence.internal.sessions.AbstractSession session)
ADVANCED: This method is used to have an object add to a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps. PLEASE ENSURE that the changes have been made in the object model first.

Overrides:
simpleAddToCollectionChangeRecord in class DatabaseMapping

simpleRemoveFromCollectionChangeRecord

public void simpleRemoveFromCollectionChangeRecord(java.lang.Object referenceKey,
                                                   java.lang.Object changeSetToRemove,
                                                   org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet,
                                                   org.eclipse.persistence.internal.sessions.AbstractSession session)
ADVANCED: This method is used to have an object removed from a collection once the changeSet is applied The referenceKey parameter should only be used for direct Maps. PLEASE ENSURE that the changes have been made in the object model first.

Overrides:
simpleRemoveFromCollectionChangeRecord in class DatabaseMapping

useCollectionClass

public void useCollectionClass(java.lang.Class concreteContainerClass)
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects.

jdk1.2.x: The container class must implement (directly or indirectly) the Collection interface.

jdk1.1.x: The container class must be a subclass of Vector.

Specified by:
useCollectionClass in interface ContainerMapping

useCollectionClassName

public void useCollectionClassName(java.lang.String concreteContainerClassName)

useListClassName

public void useListClassName(java.lang.String concreteContainerClassName)

useMapClass

public void useMapClass(java.lang.Class concreteContainerClass,
                        java.lang.String methodName)
PUBLIC: Configure the mapping to use an instance of the specified container class to hold the target objects. The key used to index the value in the Map is the value returned by a call to the specified zero-argument method. The method must be implemented by the class (or a superclass) of the value to be inserted into the Map.

jdk1.2.x: The container class must implement (directly or indirectly) the Map interface.

jdk1.1.x: The container class must be a subclass of Hashtable.

The referenceClass must be set before calling this method.

Specified by:
useMapClass in interface ContainerMapping

useMapClassName

public void useMapClassName(java.lang.String concreteContainerClassName,
                            java.lang.String methodName)

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)
                              throws DatabaseException
INTERNAL: Build and return an aggregate collection from the specified row.

Overrides:
valueFromRow in class DatabaseMapping
Throws:
DatabaseException

buildCompositeObject

protected abstract java.lang.Object buildCompositeObject(ClassDescriptor descriptor,
                                                         org.eclipse.persistence.internal.sessions.AbstractRecord nestedRow,
                                                         ObjectBuildingQuery query,
                                                         org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
                                                         org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManger,
                                                         org.eclipse.persistence.internal.sessions.AbstractSession targetSession)

verifyDeleteOfAttributeValue

protected boolean verifyDeleteOfAttributeValue(java.lang.Object attributeValue,
                                               org.eclipse.persistence.internal.sessions.AbstractSession session)
                                        throws DatabaseException
Return whether the specified object and all its components have been deleted.

Overrides:
verifyDeleteOfAttributeValue in class AggregateMapping
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
INTERNAL: Get the attribute value from the object and add the appropriate values to the specified database row.

Overrides:
writeFromObjectIntoRow in class DatabaseMapping
Throws:
DescriptorException

buildCompositeRow

protected abstract org.eclipse.persistence.internal.sessions.AbstractRecord buildCompositeRow(java.lang.Object attributeValue,
                                                                                              org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                                                              org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                                                                              DatabaseMapping.WriteType writeType)

writeFromObjectIntoRowForUpdate

public void writeFromObjectIntoRowForUpdate(WriteObjectQuery writeQuery,
                                            org.eclipse.persistence.internal.sessions.AbstractRecord row)
                                     throws DescriptorException
INTERNAL: Get the attribute value from the object and add the changed values to the specified database row.

Overrides:
writeFromObjectIntoRowForUpdate in class DatabaseMapping
Throws:
DescriptorException

writeFromObjectIntoRowWithChangeRecord

public void writeFromObjectIntoRowWithChangeRecord(org.eclipse.persistence.internal.sessions.ChangeRecord changeRecord,
                                                   org.eclipse.persistence.internal.sessions.AbstractRecord row,
                                                   org.eclipse.persistence.internal.sessions.AbstractSession session,
                                                   DatabaseMapping.WriteType writeType)
                                            throws DescriptorException
INTERNAL: Get the attribute value from the object and add the appropriate values to the specified database row.

Overrides:
writeFromObjectIntoRowWithChangeRecord in class DatabaseMapping
Throws:
DescriptorException

writeInsertFieldsIntoRow

public void writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord record,
                                     org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Write fields needed for insert into the template with null values.

Overrides:
writeInsertFieldsIntoRow in class DatabaseMapping

isCollectionMapping

public boolean isCollectionMapping()
Description copied from class: DatabaseMapping
INTERNAL: Related mapping should implement this method to return true.

Overrides:
isCollectionMapping in class DatabaseMapping

EclipseLink 2.2.0, build 'v20110202-r8913' API Reference