Top Description Fields Constructors Methods
org.eclipse.persistence.mappings.foundation

public abstract Class AbstractTransformationMapping

extends DatabaseMapping
Class Inheritance
Known Direct Subclasses
org.eclipse.persistence.oxm.mappings.XMLTransformationMapping, org.eclipse.persistence.eis.mappings.EISTransformationMapping, org.eclipse.persistence.mappings.TransformationMapping
Imports
java.security.AccessController, .PrivilegedActionException, java.util.ArrayList, .Collection, .Enumeration, .Hashtable, .Iterator, .List, .Map, .Vector, org.eclipse.persistence.exceptions.ConversionException, .DatabaseException, .DescriptorException, .ValidationException, org.eclipse.persistence.indirection.ValueHolderInterface, org.eclipse.persistence.internal.databaseaccess.DatabasePlatform, .FieldTypeDefinition, org.eclipse.persistence.internal.descriptors.DescriptorIterator, .FieldTransformation, .InstanceVariableAttributeAccessor, .MethodAttributeAccessor, .MethodBasedFieldTransformation, .TransformerBasedFieldTransformation, org.eclipse.persistence.internal.helper.ClassConstants, .DatabaseField, .Helper, org.eclipse.persistence.internal.identitymaps.CacheKey, org.eclipse.persistence.internal.indirection.BasicIndirectionPolicy, .ContainerIndirectionPolicy, .DatabaseValueHolder, .IndirectionPolicy, .NoIndirectionPolicy, org.eclipse.persistence.internal.queries.JoinedAttributeManager, org.eclipse.persistence.internal.security.PrivilegedAccessHelper, .PrivilegedClassForName, .PrivilegedNewInstanceFromClass, org.eclipse.persistence.internal.sessions.AbstractRecord, .AbstractSession, .ChangeRecord, .MergeManager, .ObjectChangeSet, .TransformationMappingChangeRecord, .UnitOfWorkImpl, org.eclipse.persistence.internal.sessions.remote.ObjectDescriptor, .RemoteValueHolder, org.eclipse.persistence.mappings.Association, .DatabaseMapping, org.eclipse.persistence.mappings.transformers.AttributeTransformer, .FieldTransformer, .MethodBasedAttributeTransformer, .MethodBasedFieldTransformer, org.eclipse.persistence.queries.ObjectBuildingQuery, .ObjectLevelReadQuery, .ReadObjectQuery, .WriteObjectQuery, org.eclipse.persistence.sessions.CopyGroup, .DatabaseRecord, .Project, org.eclipse.persistence.sessions.remote.DistributedSession

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.

Author
Sati
Since
TOPLink/Java 1.0

Field Summary

Modifier and TypeField and Description
protected AttributeTransformer
attributeTransformer

attributeTransformerClassName is converter to an instance of AttributeTransformer

protected String
attributeTransformerClassName

Name of the class which implements AttributeTransformer to be used to retrieve the attribute value

protected List<Object[]>
fieldToTransformers

The TransformerClassNames are converted into instances of FieldTransformer

protected List<FieldTransformation>
fieldTransformations

Stores field name and the class name of a FieldTransformer in a vector to preserve order

protected 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.

Inherited from org.eclipse.persistence.mappings.DatabaseMapping:
attributeAccessorattributeNamederivedIdMappingderivesIddescriptorfieldsisCacheableisInSopObjectisJPAIdisLazyisMapKeyMappingisOptionalisPrimaryKeyMappingisReadOnlyisRemotelyInitializedmapsIdValueNO_FIELDSNO_WEIGHTpropertiesunconvertedPropertiesweightWEIGHT_AGGREGATEWEIGHT_DIRECTWEIGHT_TO_ONEWEIGHT_TRANSFORM

Constructor Summary

AccessConstructor and Description
protected
AbstractTransformationMapping()

PUBLIC: Default constructor.

Method Summary

Modifier and TypeMethod and Description
public void
addFieldTransformation(DatabaseField field, 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.

public void
addFieldTransformation(String fieldName, 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.

public void
addFieldTransformer(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.

public void
addFieldTransformer(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.

public void
addFieldTransformerClassName(String fieldName, String className)

INTERNAL: Add the name of a field and the name of a class which implements the FieldTransformer interface.

public void
addFieldTransformerClassName(DatabaseField field, String className)

INTERNAL: Add the name of a field and the name of a class which implements the FieldTransformer interface.

protected boolean
areObjectsToBeProcessedInstantiated(Object object)

INTERNAL: The referenced object is checked if it is instantiated or not

public void
buildBackupClone(Object
TODO
clone
,
Object
TODO
backup
,
UnitOfWorkImpl
TODO
unitOfWork
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.buildBackupClone.

INTERNAL: Clone the attribute from the clone and assign it to the backup.
public Object
buildBackupCloneForPartObject(Object
TODO
attributeValue
,
Object
TODO
clone
,
Object
TODO
backup
,
UnitOfWorkImpl
TODO
unitOfWork
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.buildBackupCloneForPartObject.

INTERNAL: Used during building the backup shallow copy to copy the vector without re-registering the target objects.
public ChangeRecord
buildChangeRecord(Object clone, ObjectChangeSet owner, AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.buildChangeRecord.

INTERNAL: Directly build a change record without comparison
public void
buildClone(Object
TODO
original
,
CacheKey
TODO
cacheKey
,
Object
TODO
clone
,
Integer
TODO
refreshCascade
,
AbstractSession
TODO
cloningSession
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.buildClone.

INTERNAL: Clone the attribute from the original and assign it to the clone.
public Object
buildCloneForPartObject(Object
TODO
attributeValue
,
Object
TODO
original
,
CacheKey
TODO
cacheKey
,
Object
TODO
clone
,
AbstractSession
TODO
cloningSession
,
Integer
TODO
refreshCascade
,
boolean
TODO
isExisting
,
boolean
TODO
isFromSharedCache
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.buildCloneForPartObject.

INTERNAL: Require for cloning, the part must be cloned.
public void
buildCloneFromRow(AbstractRecord
TODO
record
,
JoinedAttributeManager
TODO
joinManager
,
Object
TODO
clone
,
CacheKey
TODO
sharedCacheKey
,
ObjectBuildingQuery
TODO
sourceQuery
,
UnitOfWorkImpl
TODO
unitOfWork
,
AbstractSession
TODO
executionSession
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.buildCloneFromRow.

INTERNAL: Extract value from the row and set the attribute to this value in the working copy clone.
public void
buildCopy(Object
TODO
copy
,
Object
TODO
original
,
CopyGroup
TODO
group
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.buildCopy.

INTERNAL: Copy of the attribute of the object.
protected AbstractRecord
buildPhantomRowFrom(Object domainObject, 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.

public void
buildShallowOriginalFromRow(AbstractRecord
TODO
record
,
Object
later the input to buildCloneFromRow
original
,
JoinedAttributeManager
TODO
joinManager
,
ObjectBuildingQuery
TODO
query
,
AbstractSession
TODO
executionSession
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

INTERNAL: Builds a shallow original object.
public void
cascadePerformRemoveIfRequired(Object
TODO
object
,
UnitOfWorkImpl
TODO
uow
,
Map<K, V>
TODO
visitedObjects
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.cascadePerformRemoveIfRequired.

INTERNAL: Cascade perform delete through mappings that require the cascade
public void
cascadeRegisterNewIfRequired(Object
TODO
object
,
UnitOfWorkImpl
TODO
uow
,
Map<K, V>
TODO
visitedObjects
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.cascadeRegisterNewIfRequired.

INTERNAL: Cascade registerNew for Create through mappings that require the cascade
public Object
clone()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.clone.

INTERNAL: The mapping clones itself to create deep copy.
protected Vector<E>
collectFields()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.collectFields.

INTERNAL: Return all the fields with this mapping.
public ChangeRecord
compareForChange(Object
TODO
clone
,
Object
TODO
backUp
,
ObjectChangeSet
TODO
owner
,
AbstractSession
TODO
session
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.compareForChange.

INTERNAL: Compare the attributes belonging to this mapping for the objects.
public boolean
compareObjects(Object
TODO
firstObject
,
Object
TODO
secondObject
,
AbstractSession
TODO
session
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.compareObjects.

INTERNAL: Compare the attributes belonging to this mapping for the objects.
public void
convertClassNamesToClasses(ClassLoader
TODO
classLoader
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.convertClassNamesToClasses.

INTERNAL: Convert all the class-name-based settings in this mapping to actual class-based settings
public <T> DatabaseValueHolder<T>
createCloneValueHolder(ValueHolderInterface<T>
TODO
attributeValue
,
Object
TODO
original
,
Object
TODO
clone
,
AbstractRecord
TODO
row
,
AbstractSession
TODO
cloningSession
,
boolean
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.
buildDirectlyFromRow
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.createCloneValueHolder.

INTERNAL: Builder the unit of work value holder.
public void
dontUseIndirection()

PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object.

public void
fixObjectReferences(Object
TODO
object
,
Map<Object, ObjectDescriptor>
TODO
objectDescriptors
,
Map<Object, Object>
TODO
processedObjects
,
ObjectLevelReadQuery
TODO
query
,
DistributedSession
TODO
session
)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.fixObjectReferences.

INTERNAL: An object has been serialized from the server to the client.
public String
getAttributeMethodName()

PUBLIC: Return the attribute transformation method name.

public AttributeTransformer
getAttributeTransformer()

INTERNAL: The attributeTransformer stores an instance of the class which implements AttributeTransformer.

public Class<?>
getAttributeTransformerClass()

INTERNAL: Return the attribute transformer's class.

public String
getAttributeTransformerClassName()

INTERNAL: Return the attribute transformer class name

public Object
getAttributeValueFromObject(Object
TODO
object
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.getAttributeValueFromObject.

INTERNAL: Check for write-only, one-way transformation.
public Vector<E>
getFieldNameToMethodNameAssociations()

INTERNAL: Needed for backwards compatibility

public Hashtable<K, V>

Returns:

a hash table containing the fieldName and their respective method names
getFieldNameToMethodNames
()

INTERNAL: Required for reverse compatibility and test cases:

public List<Object[]>

Returns:

a vector which stores fields and their respective transformers.
getFieldToTransformers
()

INTERNAL:

public List<FieldTransformation>
getFieldTransformations()

INTERNAL: Returns a Vector which stores fieldnames and the respective method/transformer names.

public IndirectionPolicy
getIndirectionPolicy()

INTERNAL: Return the mapping's indirection policy.

public Object
getRealAttributeValueFromAttribute(Object attributeValue, Object object, AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.getRealAttributeValueFromAttribute.

INTERNAL: Returns the real attribute value from the reference object's attribute value.
public Object
getValueFromRemoteValueHolder(RemoteValueHolder<T> remoteValueHolder)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.getValueFromRemoteValueHolder.

INTERNAL: Extract and return the appropriate value from the specified remote value holder.
public void
initialize(AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.initialize.

INTERNAL: The mapping is initialized with the given session.
protected void
initializeAttributeTransformer(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(AbstractSession session)

INTERNAL: Convert the field names and their corresponding method names to DatabaseFields and Methods.

public void
instantiateAttribute(Object object, AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.instantiateAttribute.

INTERNAL: Trigger the instantiation of the attribute if lazy.
public ChangeRecord
internalBuildChangeRecord(Object clone, Object oldValue, ObjectChangeSet owner, AbstractSession session)

INTERNAL: Build a change record.

public Object
invokeAttributeTransformer(AbstractRecord record, Object domainObject, AbstractSession session)

INTERNAL: Invoke the buildAttributeValue method on the AttributeTransformer

protected Object
invokeFieldTransformer(DatabaseField field, FieldTransformer transformer, Object domainObject, AbstractSession session)

INTERNAL: Invoke the buildFieldValue on the appropriate FieldTransformer

protected Object
public boolean
public boolean
isChangeTrackingSupported(Project project)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.isChangeTrackingSupported.

INTERNAL: Return if this mapping supports change tracking.
public boolean
isMutable()

PUBLIC: Return true if the attribute for this mapping is not a simple atomic value that cannot be modified, only replaced.

public boolean
isReadOnly()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.isReadOnly.

INTERNAL: Return true if read-only is explicitly set to true; otherwise return whether the transformation has no fields (no fields = read-only)
public boolean
public boolean
isWriteOnly()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.isWriteOnly.

INTERNAL: Return if the transformation has no attribute, is write only.
public void
iterate(DescriptorIterator iterator)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.iterate.

INTERNAL: Perform the iteration opperation on the iterators current objects attributes.
public void
iterateOnRealAttributeValue(DescriptorIterator iterator, Object realAttributeValue)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.iterateOnRealAttributeValue.

INTERNAL: Iterate on the attribute value.
public void
mergeChangesIntoObject(Object target, ChangeRecord changeRecord, Object source, MergeManager mergeManager, AbstractSession targetSession)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.mergeChangesIntoObject.

INTERNAL: Merge changes from the source to the target object.
public void
mergeIntoObject(Object target, boolean isTargetUnInitialized, Object source, MergeManager mergeManager, AbstractSession targetSession)

Implements abstract org.eclipse.persistence.mappings.DatabaseMapping.mergeIntoObject.

INTERNAL: Merge changes from the source to the target object.
public void
preInitialize(AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.preInitialize.

INTERNAL: Allow for initialization of properties and validation.
public Object
readFromReturnRowIntoObject(AbstractRecord row, Object object, ReadObjectQuery query, Collection<E> handledMappings, ObjectChangeSet changeSet)

INTERNAL: Extracts value from return row and set the attribute to the value in the object.

public Object
readFromRowIntoObject(AbstractRecord row, JoinedAttributeManager joinManager, Object object, CacheKey parentCacheKey, ObjectBuildingQuery query, AbstractSession executionSession, boolean isTargetProtected)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.readFromRowIntoObject.

INTERNAL: Extract value from the row and set the attribute to the value in the object.
public void
remoteInitialization(DistributedSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.remoteInitialization.

INTERNAL: Once descriptors are serialized to the remote session.
public void
setAttributeTransformation(String methodName)

PUBLIC: To set the attribute method name.

public 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.

public void
setAttributeTransformerClass(Class<?> attributeTransformerClass)

INTERNAL: Set the attribute transformer's class.

public void
setAttributeTransformerClassName(String className)

INTERNAL: Set the Attribute Transformer Class Name

public void
setAttributeValueInObject(Object
TODO
object
,
Object
TODO
value
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.setAttributeValueInObject.

INTERNAL: Check for write-only, one-way transformations.
public void
setFieldNameToMethodNameAssociations(Vector<E> associations)

INTERNAL: needed for backwards compatibility

protected void
setFieldToTransformers(List<Object[]> fieldToTransformers)

public void
setFieldTransformations(List<FieldTransformation> fieldTransformations)

INTERNAL: Set the field to method name associations.

public void
setIndirectionPolicy(IndirectionPolicy indirectionPolicy)

ADVANCED: Set the indirection policy.

public 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.

public void
setRealAttributeValueInObject(Object object, Object value)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.setRealAttributeValueInObject.

INTERNAL: Set the value of the attribute mapped by this mapping, placing it inside a value holder if necessary.
public void
setUsesIndirection(boolean usesIndirection)

INTERNAL: Will be used by Gromit.

public void
updateChangeRecord(Object clone, Object newValue, Object oldValue, ObjectChangeSet objectChangeSet, UnitOfWorkImpl uow)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.updateChangeRecord.

INTERNAL: Either create a new change record or update the change record with the new value.
public void
useBasicIndirection()

PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object.

public void
useContainerIndirection(Class<?> containerClass)

PUBLIC: Indirection means that a IndirectContainer (wrapping a ValueHolder) will be put in-between the attribute and the real object.

public void
useIndirection()

PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object.

public boolean
usesIndirection()

PUBLIC: Indirection means that a ValueHolder will be put in-between the attribute and the real object.

public void
public Object
valueFromObject(Object
TODO
object
,
DatabaseField
TODO
field
,
AbstractSession
TODO
session
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.valueFromObject.

INTERNAL: Get a value from the object and set that in the respective field of the row.
public void
writeFromObjectIntoRow(Object object, AbstractRecord row, AbstractSession session, DatabaseMapping.WriteType writeType)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.writeFromObjectIntoRow.

INTERNAL: Get a value from the object and set that in the respective field of the row.
public void
writeFromObjectIntoRowForUpdate(WriteObjectQuery query, AbstractRecord record)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.writeFromObjectIntoRowForUpdate.

INTERNAL: Get a value from the object and set that in the respective field of the row.
public void
writeFromObjectIntoRowWithChangeRecord(ChangeRecord changeRecord, AbstractRecord row, AbstractSession session, DatabaseMapping.WriteType writeType)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.writeFromObjectIntoRowWithChangeRecord.

INTERNAL: Get a value from the object and set that in the respective field of the row.
public void
writeInsertFieldsIntoRow(AbstractRecord record, AbstractSession session)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.writeInsertFieldsIntoRow.

INTERNAL: Write fields needed for insert into the template for with null values.
Inherited from org.eclipse.persistence.mappings.DatabaseMapping:
addUnconvertedPropertybuildContainerClonebuildExpressionbuildObjectJoinExpressionbuildObjectJoinExpressioncalculateDeferredChangescascadeDiscoverAndPersistUnregisteredNewObjectscascadePerformRemovePrivateOwnedObjectFromChangeSetIfRequiredcloneFieldscollectQueryParametersconvertConverterClassNamesToClassesderivesIdearlyPreDeleteextractNestedExpressionsextractNestedNonAggregateExpressionsfixRealObjectReferencesgetAttributeAccessorgetAttributeClassificationgetAttributeNamegetContainerPolicygetDerivedIdMappinggetDescriptorgetFieldgetFieldClassificationgetFieldsgetGetMethodNamegetMapsIdValuegetObjectCorrespondingTogetOrderByNormalizedExpressionsgetPropertiesgetPropertygetRealAttributeValueFromObjectgetRealCollectionAttributeValueFromObjectgetReferenceDescriptorgetRelationshipPartnergetSelectFieldsgetSelectTablesgetSetMethodNamegetUnconvertedPropertiesgetWeighthasConstraintDependencyhasDependencyhasInverseConstraintDependencyhasMapsIdValuehasNestedIdentityReferencehasRootExpressionThatShouldUseOuterJoinhasUnconvertedPropertiesisAbstractColumnMappingisAbstractCompositeCollectionMappingisAbstractCompositeDirectCollectionMappingisAbstractCompositeObjectMappingisAbstractDirectMappingisAggregateCollectionMappingisAggregateMappingisAggregateObjectMappingisCacheableisCandidateForPrivateOwnedRemovalisCascadedLockingSupportedisCloningRequiredisCollectionMappingisDatabaseMappingisDirectCollectionMappingisDirectMapMappingisDirectToFieldMappingisDirectToXMLTypeMappingisEISMappingisElementCollectionMappingisForeignReferenceMappingisInAndOutSopObjectisInOnlySopObjectisInSopObjectisJoiningSupportedisJPAIdisLazyisLockableMappingisManyToManyMappingisManyToOneMappingisMapKeyMappingisMultitenantPrimaryKeyMappingisNestedTableMappingisObjectReferenceMappingisOneToManyMappingisOneToOneMappingisOptionalisOutOnlySopObjectisOutSopObjectisOwnedisPrimaryKeyMappingisPrivateOwnedisReferenceMappingisRelationalMappingisRemotelyInitializedisStructureMappingisUnidirectionalOneToManyMappingisUsingMethodAccessisVariableOneToOneMappingisXMLMappingloadloadAllperformDataModificationEventpostCalculateChangespostCalculateChangesOnDeletedpostDeletepostInitializepostInitializeSourceAndTargetExpressionspostInsertpostUpdatepreDeletepreInsertprepareCascadeLockingPolicypreUpdatereadFromResultSetIntoObjectreadOnlyreadWriterecordPrivateOwnedRemovalsrehashFieldDependanciesremotelyInitializedreplaceValueHoldersInsetAttributeAccessorsetAttributeNamesetChangeListenersetDerivedIdMappingsetDerivesIdsetDescriptorsetFieldssetGetMethodNamesetIsCacheablesetIsInAndOutSopObjectsetIsInSopObjectsetIsJPAIdsetIsLazysetIsMapKeyMappingsetIsOptionalsetIsOutSopObjectsetIsPrimaryKeyMappingsetIsReadOnlysetMapsIdValuesetPropertiessetPropertysetSetMethodNamesetWeightsimpleAddToCollectionChangeRecordsimpleRemoveFromCollectionChangeRecordtoStringupdateCollectionChangeRecordvalidateAfterInitializationvalueFromResultSetvalueFromRowvalueFromRowverifyDeletewriteFromAttributeIntoRowwriteFromObjectIntoRowForShallowInsertwriteFromObjectIntoRowForShallowInsertWithChangeRecordwriteFromObjectIntoRowForUpdateAfterShallowInsertwriteFromObjectIntoRowForUpdateBeforeShallowDeletewriteFromObjectIntoRowForWhereClausewriteUpdateFieldsIntoRow