public abstract class AbstractTransformationMapping extends DatabaseMapping
Purpose: A transformation mapping is used for a specialized translation between how a value is represented in Java and its representation on the databae. Transformation mappings should only be used when other mappings are inadequate.
DatabaseMapping.WriteType
Modifier and Type | Field and Description |
---|---|
protected AttributeTransformer |
attributeTransformer
attributeTransformerClassName is converter to an instance of AttributeTransformer
|
protected java.lang.String |
attributeTransformerClassName
Name of the class which implements AttributeTransformer to be used to retrieve the attribute value
|
protected java.util.List<java.lang.Object[]> |
fieldToTransformers
The TransformerClassNames are converted into instances of FieldTransformer
|
protected java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> |
fieldTransformations
Stores field name and the class name of a FieldTransformer in a vector to preserve order
|
protected org.eclipse.persistence.internal.indirection.IndirectionPolicy |
indirectionPolicy
Implements indirection behaviour
|
protected boolean |
isMutable
PERF: Indicates if this mapping's attribute is a simple value which cannot be modified only replaced.
|
attributeAccessor, attributeName, derivedIdMapping, derivesId, descriptor, fields, isCacheable, isInSopObject, 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 and Description |
---|
AbstractTransformationMapping()
PUBLIC:
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addFieldTransformation(org.eclipse.persistence.internal.helper.DatabaseField field,
java.lang.String methodName)
PUBLIC:
Add the field and the name of the method
that returns the value to be placed in said field
when the object is written to the database.
|
void |
addFieldTransformation(java.lang.String fieldName,
java.lang.String methodName)
PUBLIC:
Add the name of field and the name of the method
that returns the value to be placed in said field
when the object is written to the database.
|
void |
addFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field,
FieldTransformer transformer)
PUBLIC:
Add the field and the transformer
that returns the value to be placed in the field
when the object is written to the database.
|
void |
addFieldTransformer(java.lang.String fieldName,
FieldTransformer transformer)
PUBLIC:
Add the name of field and the transformer
that returns the value to be placed in the field
when the object is written to the database.
|
void |
addFieldTransformerClassName(org.eclipse.persistence.internal.helper.DatabaseField field,
java.lang.String className)
INTERNAL:
Add the name of a field and the name of a class which implements
the FieldTransformer interface.
|
void |
addFieldTransformerClassName(java.lang.String fieldName,
java.lang.String className)
INTERNAL:
Add the name of a field and the name of a class which implements
the FieldTransformer interface.
|
protected boolean |
areObjectsToBeProcessedInstantiated(java.lang.Object object)
INTERNAL:
The referenced object is checked if it is instantiated or not
|
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.
|
java.lang.Object |
buildBackupCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object clone,
java.lang.Object backup,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
INTERNAL:
Used during building the backup shallow copy to copy the vector without re-registering the target objects.
|
org.eclipse.persistence.internal.sessions.ChangeRecord |
buildChangeRecord(java.lang.Object clone,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Directly build a change record without comparison
|
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.
|
java.lang.Object |
buildCloneForPartObject(java.lang.Object attributeValue,
java.lang.Object original,
org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession,
java.lang.Integer refreshCascade,
boolean isExisting,
boolean isFromSharedCache)
INTERNAL:
Require for cloning, the part must be cloned.
|
void |
buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord record,
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:
Extract value from the row and set the attribute to this value in the
working copy clone.
|
void |
buildCopy(java.lang.Object copy,
java.lang.Object original,
CopyGroup group)
INTERNAL:
Copy of the attribute of the object.
|
protected org.eclipse.persistence.internal.sessions.AbstractRecord |
buildPhantomRowFrom(java.lang.Object domainObject,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL
Build a phantom row that contains only the fields
for the mapping, populated with the values generated by
invoking the field methods on the specified object.
|
void |
buildShallowOriginalFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord record,
java.lang.Object original,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
INTERNAL:
Builds a shallow original object.
|
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.lang.Object |
clone()
INTERNAL:
The mapping clones itself to create deep copy.
|
protected java.util.Vector |
collectFields()
INTERNAL:
Return all the fields with this mapping.
|
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:
Compare the attributes belonging to this mapping for the objects.
|
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
|
org.eclipse.persistence.internal.indirection.DatabaseValueHolder |
createCloneValueHolder(ValueHolderInterface attributeValue,
java.lang.Object original,
java.lang.Object clone,
org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession cloningSession,
boolean buildDirectlyFromRow)
INTERNAL:
Builder the unit of work value holder.
|
void |
dontUseIndirection()
PUBLIC:
Indirection means that a ValueHolder will be put in-between the attribute and the real object.
|
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.lang.String |
getAttributeMethodName()
PUBLIC:
Return the attribute transformation method name.
|
AttributeTransformer |
getAttributeTransformer()
INTERNAL:
The attributeTransformer stores an instance of the class which implements
AttributeTransformer.
|
java.lang.Class |
getAttributeTransformerClass()
INTERNAL:
Return the attribute transformer's class.
|
java.lang.String |
getAttributeTransformerClassName()
INTERNAL:
Return the attribute transformer class name
|
java.lang.Object |
getAttributeValueFromObject(java.lang.Object object)
INTERNAL:
Check for write-only, one-way transformation.
|
java.util.Vector |
getFieldNameToMethodNameAssociations()
INTERNAL:
Needed for backwards compatibility
|
java.util.Hashtable |
getFieldNameToMethodNames()
INTERNAL:
Required for reverse compatibility and test cases:
|
java.util.List<java.lang.Object[]> |
getFieldToTransformers()
INTERNAL:
|
java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> |
getFieldTransformations()
INTERNAL:
Returns a Vector which stores fieldnames and the respective method/transformer names.
|
org.eclipse.persistence.internal.indirection.IndirectionPolicy |
getIndirectionPolicy()
INTERNAL:
Return the mapping's indirection policy.
|
java.lang.Object |
getRealAttributeValueFromAttribute(java.lang.Object attributeValue,
java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Returns the real attribute value from the reference object's attribute value.
|
java.lang.Object |
getValueFromRemoteValueHolder(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
INTERNAL:
Extract and return the appropriate value from the
specified remote value holder.
|
void |
initialize(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
The mapping is initialized with the given session.
|
protected void |
initializeAttributeTransformer(org.eclipse.persistence.internal.sessions.AbstractSession databaseSession)
INTERNAL:
Convert the attribute transformer class name into an AttributeTransformer
If the old-style method name in set, then use a MethodBasedAttributeTRansformer
|
protected void |
initializeFieldToTransformers(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Convert the field names and their corresponding method names to
DatabaseFields and Methods.
|
void |
instantiateAttribute(java.lang.Object object,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Trigger the instantiation of the attribute if lazy.
|
org.eclipse.persistence.internal.sessions.ChangeRecord |
internalBuildChangeRecord(java.lang.Object clone,
java.lang.Object oldValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet owner,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Build a change record.
|
java.lang.Object |
invokeAttributeTransformer(org.eclipse.persistence.internal.sessions.AbstractRecord record,
java.lang.Object domainObject,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Invoke the buildAttributeValue method on the AttributeTransformer
|
protected java.lang.Object |
invokeFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field,
FieldTransformer transformer,
java.lang.Object domainObject,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Invoke the buildFieldValue on the appropriate FieldTransformer
|
protected java.lang.Object |
invokeFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field,
java.lang.Object domainObject,
org.eclipse.persistence.internal.sessions.AbstractSession session) |
boolean |
isAttributeValueFromObjectInstantiated(java.lang.Object object)
INTERNAL:
Return whether the specified object is instantiated.
|
boolean |
isChangeTrackingSupported(Project project)
INTERNAL:
Return if this mapping supports change tracking.
|
boolean |
isMutable()
PUBLIC:
Return true if the attribute for this mapping is not a simple atomic value that cannot be modified,
only replaced.
|
boolean |
isReadOnly()
INTERNAL:
Return true if read-only is explicitly set to true;
otherwise return whether the transformation has no fields
(no fields = read-only)
|
boolean |
isTransformationMapping()
INTERNAL:
|
boolean |
isWriteOnly()
INTERNAL:
Return if the transformation has no attribute, is write only.
|
void |
iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
INTERNAL:
Perform the iteration opperation on the iterators current objects attributes.
|
void |
iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator,
java.lang.Object realAttributeValue)
INTERNAL:
Iterate on the 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.
|
java.lang.Object |
readFromReturnRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord row,
java.lang.Object object,
ReadObjectQuery query,
java.util.Collection handledMappings,
org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet)
INTERNAL:
Extracts value from return row and set the attribute to the value in the object.
|
java.lang.Object |
readFromRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager,
java.lang.Object object,
org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey,
ObjectBuildingQuery query,
org.eclipse.persistence.internal.sessions.AbstractSession executionSession,
boolean isTargetProtected)
INTERNAL:
Extract value from the row and set the attribute to the value in the object.
|
void |
remoteInitialization(DistributedSession session)
INTERNAL:
Once descriptors are serialized to the remote session.
|
void |
setAttributeTransformation(java.lang.String methodName)
PUBLIC:
To set the attribute method name.
|
void |
setAttributeTransformer(AttributeTransformer transformer)
PUBLIC:
Set the AttributeTransformer, this transformer will be used to extract the value for the
object's attribute from the database row.
|
void |
setAttributeTransformerClass(java.lang.Class attributeTransformerClass)
INTERNAL:
Set the attribute transformer's class.
|
void |
setAttributeTransformerClassName(java.lang.String className)
INTERNAL:
Set the Attribute Transformer Class Name
|
void |
setAttributeValueInObject(java.lang.Object object,
java.lang.Object value)
INTERNAL:
Check for write-only, one-way transformations.
|
void |
setFieldNameToMethodNameAssociations(java.util.Vector associations)
INTERNAL:
needed for backwards compatibility
|
protected void |
setFieldToTransformers(java.util.List<java.lang.Object[]> fieldToTransformers) |
void |
setFieldTransformations(java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> fieldTransformations)
INTERNAL:
Set the field to method name associations.
|
void |
setIndirectionPolicy(org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy)
ADVANCED:
Set the indirection policy.
|
void |
setIsMutable(boolean mutable)
PUBLIC:
Set if the value of the attribute is atomic or a complex mutable object and can be modified without replacing the entire object.
|
void |
setRealAttributeValueInObject(java.lang.Object object,
java.lang.Object value)
INTERNAL:
Set the value of the attribute mapped by this mapping,
placing it inside a value holder if necessary.
|
void |
setUsesIndirection(boolean usesIndirection)
INTERNAL:
Will be used by Gromit.
|
void |
updateChangeRecord(java.lang.Object clone,
java.lang.Object newValue,
java.lang.Object oldValue,
org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet,
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
INTERNAL:
Either create a new change record or update the change record with the new value.
|
void |
useBasicIndirection()
PUBLIC:
Indirection means that a ValueHolder will be put in-between the attribute and the real object.
|
void |
useContainerIndirection(java.lang.Class containerClass)
PUBLIC:
Indirection means that a IndirectContainer (wrapping a ValueHolder) will be put in-between
the attribute and the real object.
|
void |
useIndirection()
PUBLIC:
Indirection means that a ValueHolder will be put in-between the attribute and the real object.
|
boolean |
usesIndirection()
PUBLIC:
Indirection means that a ValueHolder will be put in-between the attribute and the real object.
|
void |
validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Validate mapping declaration
|
java.lang.Object |
valueFromObject(java.lang.Object object,
org.eclipse.persistence.internal.helper.DatabaseField field,
org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL:
Get a value from the object and set that in the respective field of the row.
|
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 a value from the object and set that in the respective field of the row.
|
void |
writeFromObjectIntoRowForUpdate(WriteObjectQuery query,
org.eclipse.persistence.internal.sessions.AbstractRecord record)
INTERNAL:
Get a value from the object and set that in the respective field of the 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 a value from the object and set that in the respective field of the 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 for with null values.
|
addUnconvertedProperty, buildContainerClone, buildExpression, buildObjectJoinExpression, buildObjectJoinExpression, calculateDeferredChanges, cascadeDiscoverAndPersistUnregisteredNewObjects, cascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequired, cloneFields, collectQueryParameters, convertConverterClassNamesToClasses, derivesId, earlyPreDelete, extractNestedExpressions, fixRealObjectReferences, getAttributeAccessor, getAttributeClassification, getAttributeName, getContainerPolicy, getDerivedIdMapping, getDescriptor, getField, getFieldClassification, getFields, getGetMethodName, getMapsIdValue, getObjectCorrespondingTo, getOrderByNormalizedExpressions, getProperties, getProperty, getRealAttributeValueFromObject, getRealCollectionAttributeValueFromObject, getReferenceDescriptor, getRelationshipPartner, getSelectFields, getSelectTables, getSetMethodName, getUnconvertedProperties, getWeight, hasConstraintDependency, hasDependency, hasInverseConstraintDependency, hasMapsIdValue, hasNestedIdentityReference, hasRootExpressionThatShouldUseOuterJoin, hasUnconvertedProperties, isAbstractColumnMapping, isAbstractCompositeCollectionMapping, isAbstractCompositeDirectCollectionMapping, isAbstractCompositeObjectMapping, isAbstractDirectMapping, isAggregateCollectionMapping, isAggregateMapping, isAggregateObjectMapping, isCacheable, isCandidateForPrivateOwnedRemoval, isCascadedLockingSupported, isCloningRequired, isCollectionMapping, isDatabaseMapping, isDirectCollectionMapping, isDirectMapMapping, isDirectToFieldMapping, isDirectToXMLTypeMapping, isEISMapping, isElementCollectionMapping, isForeignReferenceMapping, isInAndOutSopObject, isInOnlySopObject, isInSopObject, isJoiningSupported, isJPAId, isLazy, isLockableMapping, isManyToManyMapping, isManyToOneMapping, isMapKeyMapping, isMultitenantPrimaryKeyMapping, isNestedTableMapping, isObjectReferenceMapping, isOneToManyMapping, isOneToOneMapping, isOptional, isOutOnlySopObject, isOutSopObject, isOwned, isPrimaryKeyMapping, isPrivateOwned, isReferenceMapping, isRelationalMapping, isRemotelyInitialized, isStructureMapping, isUnidirectionalOneToManyMapping, isUsingMethodAccess, isVariableOneToOneMapping, isXMLMapping, load, loadAll, performDataModificationEvent, postCalculateChanges, postCalculateChangesOnDeleted, postDelete, postInitialize, postInsert, postUpdate, preDelete, preInsert, prepareCascadeLockingPolicy, preUpdate, readFromResultSetIntoObject, readOnly, readWrite, recordPrivateOwnedRemovals, rehashFieldDependancies, remotelyInitialized, replaceValueHoldersIn, setAttributeAccessor, setAttributeName, setChangeListener, setDerivedIdMapping, setDerivesId, setDescriptor, setFields, setGetMethodName, setIsCacheable, setIsInAndOutSopObject, setIsInSopObject, setIsJPAId, setIsLazy, setIsMapKeyMapping, setIsOptional, setIsOutSopObject, setIsPrimaryKeyMapping, setIsReadOnly, setMapsIdValue, setProperties, setProperty, setSetMethodName, setWeight, simpleAddToCollectionChangeRecord, simpleRemoveFromCollectionChangeRecord, toString, updateCollectionChangeRecord, validateAfterInitialization, valueFromResultSet, valueFromRow, valueFromRow, verifyDelete, writeFromAttributeIntoRow, writeFromObjectIntoRowForShallowInsert, writeFromObjectIntoRowForShallowInsertWithChangeRecord, writeFromObjectIntoRowForUpdateAfterShallowInsert, writeFromObjectIntoRowForUpdateBeforeShallowDelete, writeFromObjectIntoRowForWhereClause, writeUpdateFieldsIntoRow
protected java.lang.String attributeTransformerClassName
protected AttributeTransformer attributeTransformer
protected java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> fieldTransformations
protected java.util.List<java.lang.Object[]> fieldToTransformers
protected boolean isMutable
protected org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy
public AbstractTransformationMapping()
public void addFieldTransformation(org.eclipse.persistence.internal.helper.DatabaseField field, java.lang.String methodName)
org.eclipse.persistence.sessions.Session
.public void addFieldTransformation(java.lang.String fieldName, java.lang.String methodName)
org.eclipse.persistence.sessions.Session
.public void addFieldTransformerClassName(java.lang.String fieldName, java.lang.String className)
public void addFieldTransformerClassName(org.eclipse.persistence.internal.helper.DatabaseField field, java.lang.String className)
public void addFieldTransformer(java.lang.String fieldName, FieldTransformer transformer)
public void addFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field, FieldTransformer transformer)
protected boolean areObjectsToBeProcessedInstantiated(java.lang.Object object)
public void buildBackupClone(java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildBackupClone
in class DatabaseMapping
protected org.eclipse.persistence.internal.sessions.AbstractRecord buildPhantomRowFrom(java.lang.Object domainObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
public void buildShallowOriginalFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord record, java.lang.Object original, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, ObjectBuildingQuery query, org.eclipse.persistence.internal.sessions.AbstractSession executionSession)
buildShallowOriginalFromRow
in class DatabaseMapping
public java.lang.Object buildBackupCloneForPartObject(java.lang.Object attributeValue, java.lang.Object clone, java.lang.Object backup, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl unitOfWork)
buildBackupCloneForPartObject
in class DatabaseMapping
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)
buildClone
in class DatabaseMapping
public void buildCloneFromRow(org.eclipse.persistence.internal.sessions.AbstractRecord record, 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)
buildCloneFromRow
in class DatabaseMapping
public java.lang.Object buildCloneForPartObject(java.lang.Object attributeValue, java.lang.Object original, org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey, java.lang.Object clone, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession, java.lang.Integer refreshCascade, boolean isExisting, boolean isFromSharedCache)
buildCloneForPartObject
in class DatabaseMapping
public void buildCopy(java.lang.Object copy, java.lang.Object original, CopyGroup group)
buildCopy
in class DatabaseMapping
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 DatabaseMapping
public java.lang.Object clone()
clone
in class DatabaseMapping
protected java.util.Vector collectFields()
collectFields
in class DatabaseMapping
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)
compareForChange
in class DatabaseMapping
public org.eclipse.persistence.internal.sessions.ChangeRecord buildChangeRecord(java.lang.Object clone, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
buildChangeRecord
in class DatabaseMapping
public org.eclipse.persistence.internal.sessions.ChangeRecord internalBuildChangeRecord(java.lang.Object clone, java.lang.Object oldValue, org.eclipse.persistence.internal.sessions.ObjectChangeSet owner, org.eclipse.persistence.internal.sessions.AbstractSession session)
public boolean compareObjects(java.lang.Object firstObject, java.lang.Object secondObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
compareObjects
in class DatabaseMapping
public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
convertClassNamesToClasses
in class DatabaseMapping
classLoader
- public org.eclipse.persistence.internal.indirection.DatabaseValueHolder createCloneValueHolder(ValueHolderInterface attributeValue, java.lang.Object original, java.lang.Object clone, org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession cloningSession, boolean buildDirectlyFromRow)
createCloneValueHolder
in class DatabaseMapping
buildDirectlyFromRow
- indicates that we are building the clone directly
from a row as opposed to building the original from the row, putting it in
the shared cache, and then cloning the original.public void dontUseIndirection()
public void fixObjectReferences(java.lang.Object object, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query, DistributedSession session)
fixObjectReferences
in class DatabaseMapping
public AttributeTransformer getAttributeTransformer()
public java.lang.String getAttributeMethodName()
public java.lang.Class getAttributeTransformerClass()
public void setAttributeTransformerClass(java.lang.Class attributeTransformerClass)
public java.lang.String getAttributeTransformerClassName()
public java.lang.Object getAttributeValueFromObject(java.lang.Object object) throws DescriptorException
getAttributeValueFromObject
in class DatabaseMapping
DescriptorException
public java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> getFieldTransformations()
public java.util.List<java.lang.Object[]> getFieldToTransformers()
public org.eclipse.persistence.internal.indirection.IndirectionPolicy getIndirectionPolicy()
public java.lang.Object getRealAttributeValueFromAttribute(java.lang.Object attributeValue, java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)
getRealAttributeValueFromAttribute
in class DatabaseMapping
public void instantiateAttribute(java.lang.Object object, org.eclipse.persistence.internal.sessions.AbstractSession session)
instantiateAttribute
in class DatabaseMapping
public java.lang.Object getValueFromRemoteValueHolder(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
getValueFromRemoteValueHolder
in class DatabaseMapping
public void initialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
initialize
in class DatabaseMapping
DescriptorException
protected void initializeAttributeTransformer(org.eclipse.persistence.internal.sessions.AbstractSession databaseSession) throws DescriptorException
DescriptorException
public java.util.Hashtable getFieldNameToMethodNames()
protected void initializeFieldToTransformers(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
public java.lang.Object invokeAttributeTransformer(org.eclipse.persistence.internal.sessions.AbstractRecord record, java.lang.Object domainObject, org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
protected java.lang.Object invokeFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field, FieldTransformer transformer, java.lang.Object domainObject, org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
DescriptorException
protected java.lang.Object invokeFieldTransformer(org.eclipse.persistence.internal.helper.DatabaseField field, java.lang.Object domainObject, org.eclipse.persistence.internal.sessions.AbstractSession session)
public boolean isMutable()
public boolean isReadOnly()
isReadOnly
in class DatabaseMapping
public boolean isTransformationMapping()
isTransformationMapping
in class DatabaseMapping
public boolean isWriteOnly()
isWriteOnly
in class DatabaseMapping
public void iterate(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator)
iterate
in class DatabaseMapping
public void iterateOnRealAttributeValue(org.eclipse.persistence.internal.descriptors.DescriptorIterator iterator, java.lang.Object realAttributeValue)
iterateOnRealAttributeValue
in class DatabaseMapping
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)
mergeChangesIntoObject
in class DatabaseMapping
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)
mergeIntoObject
in class DatabaseMapping
public void preInitialize(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
preInitialize
in class DatabaseMapping
DescriptorException
public java.lang.Object readFromReturnRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord row, java.lang.Object object, ReadObjectQuery query, java.util.Collection handledMappings, org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet) throws DatabaseException
DatabaseException
public java.lang.Object readFromRowIntoObject(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.queries.JoinedAttributeManager joinManager, java.lang.Object object, org.eclipse.persistence.internal.identitymaps.CacheKey parentCacheKey, ObjectBuildingQuery query, org.eclipse.persistence.internal.sessions.AbstractSession executionSession, boolean isTargetProtected) throws DatabaseException
readFromRowIntoObject
in class DatabaseMapping
DatabaseException
public java.util.Vector getFieldNameToMethodNameAssociations()
public void setFieldNameToMethodNameAssociations(java.util.Vector associations)
public void remoteInitialization(DistributedSession session)
remoteInitialization
in class DatabaseMapping
public void setAttributeTransformer(AttributeTransformer transformer)
public void setAttributeTransformerClassName(java.lang.String className)
className
- public void setAttributeTransformation(java.lang.String methodName)
public void setAttributeValueInObject(java.lang.Object object, java.lang.Object value)
setAttributeValueInObject
in class DatabaseMapping
public void setIsMutable(boolean mutable)
public void setRealAttributeValueInObject(java.lang.Object object, java.lang.Object value) throws DescriptorException
setRealAttributeValueInObject
in class DatabaseMapping
DescriptorException
public void setFieldTransformations(java.util.List<org.eclipse.persistence.internal.descriptors.FieldTransformation> fieldTransformations)
protected void setFieldToTransformers(java.util.List<java.lang.Object[]> fieldToTransformers)
public void setIndirectionPolicy(org.eclipse.persistence.internal.indirection.IndirectionPolicy indirectionPolicy)
public void setUsesIndirection(boolean usesIndirection)
useBasicIndirection()
,
dontUseIndirection()
public void updateChangeRecord(java.lang.Object clone, java.lang.Object newValue, java.lang.Object oldValue, org.eclipse.persistence.internal.sessions.ObjectChangeSet objectChangeSet, org.eclipse.persistence.internal.sessions.UnitOfWorkImpl uow)
updateChangeRecord
in class DatabaseMapping
public boolean isChangeTrackingSupported(Project project)
isChangeTrackingSupported
in class DatabaseMapping
public boolean isAttributeValueFromObjectInstantiated(java.lang.Object object)
isAttributeValueFromObjectInstantiated
in class DatabaseMapping
public void useBasicIndirection()
public void useContainerIndirection(java.lang.Class containerClass)
public void useIndirection()
useBasicIndirection()
public boolean usesIndirection()
org.eclipse.persistence.mappings.IndirectionPolicy
public void validateBeforeInitialization(org.eclipse.persistence.internal.sessions.AbstractSession session) throws DescriptorException
validateBeforeInitialization
in class DatabaseMapping
DescriptorException
public java.lang.Object valueFromObject(java.lang.Object object, org.eclipse.persistence.internal.helper.DatabaseField field, org.eclipse.persistence.internal.sessions.AbstractSession session)
valueFromObject
in class DatabaseMapping
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 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)
writeFromObjectIntoRowWithChangeRecord
in class DatabaseMapping
public void writeFromObjectIntoRowForUpdate(WriteObjectQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord record)
writeFromObjectIntoRowForUpdate
in class DatabaseMapping
public void writeInsertFieldsIntoRow(org.eclipse.persistence.internal.sessions.AbstractRecord record, org.eclipse.persistence.internal.sessions.AbstractSession session)
writeInsertFieldsIntoRow
in class DatabaseMapping