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

public abstract Class AbstractCompositeObjectMapping

extends AggregateMapping
Class Inheritance
Known Direct Subclasses
org.eclipse.persistence.mappings.structures.StructureMapping, org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping, org.eclipse.persistence.eis.mappings.EISCompositeObjectMapping
Imports
java.util.*, org.eclipse.persistence.descriptors.ClassDescriptor, org.eclipse.persistence.exceptions.*, org.eclipse.persistence.expressions.Expression, org.eclipse.persistence.internal.descriptors.*, org.eclipse.persistence.internal.helper.*, org.eclipse.persistence.internal.identitymaps.CacheKey, org.eclipse.persistence.internal.queries.JoinedAttributeManager, org.eclipse.persistence.internal.sessions.*, org.eclipse.persistence.mappings.*, org.eclipse.persistence.mappings.converters.Converter, org.eclipse.persistence.queries.*

Chunks of data from non-relational data sources can have an embedded component objects. These can be mapped using this mapping. The format of the embedded data is determined by the reference descriptor.
Author
Big Country
Since
TOPLink/Java 3.0

Field Summary

Modifier and TypeField and Description
protected Converter
converter

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

protected DatabaseField
field

The aggregate object is stored in a single field.

Inherited from org.eclipse.persistence.mappings.AggregateMapping:
hasNestedIdentityReferencereferenceClassreferenceClassNamereferenceDescriptor

Constructor Summary

AccessConstructor and Description
protected
AbstractCompositeObjectMapping()

Default constructor.

Method Summary

Modifier and TypeMethod and Description
protected abstract Object
buildCompositeObject(ObjectBuilder objectBuilder, AbstractRecord nestedRow, ObjectBuildingQuery query, CacheKey parentCacheKey, JoinedAttributeManager joinManger, AbstractSession targetSession)

protected abstract Object
public Expression
buildExpression(Object
TODO
queryObject
,
QueryByExamplePolicy
TODO
policy
,
Expression
TODO
expressionBuilder
,
Map<K, V>
TODO
processedObjects
,
AbstractSession
TODO
session
)

Overrides org.eclipse.persistence.mappings.AggregateMapping.buildExpression.

INTERNAL: In case Query By Example is used, this method builds and returns an expression that corresponds to a single attribute and it's value.
public void
buildShallowOriginalFromRow(AbstractRecord
TODO
row
,
Object
TODO
original
,
JoinedAttributeManager
TODO
joinManager
,
ObjectBuildingQuery
TODO
sourceQuery
,
AbstractSession
TODO
executionSession
)

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

INTERNAL: Builds a shallow original object.
public void
cascadeDiscoverAndPersistUnregisteredNewObjects(Object
TODO
object
,
Map<K, V>
TODO
newObjects
,
Map<K, V>
TODO
unregisteredExistingObjects
,
Map<K, V>
TODO
visitedObjects
,
UnitOfWorkImpl
TODO
uow
,
Set<E>
TODO
cascadeErrors
)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

INTERNAL: Cascade discover and persist new objects during commit.
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
protected Vector<E>
collectFields()

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

Return the fields mapped by the mapping.
public Converter
getConverter()

PUBLIC: Return the converter on the mapping.

public DatabaseField
getField()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.getField.

INTERNAL: The aggregate object is held in a single field.
public boolean
hasConverter()

PUBLIC: Indicates if there is a converter on the mapping.

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

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

INTERNAL: Set the value of the attribute mapped by this mapping.
public void
setConverter(Converter converter)

PUBLIC: Set the converter on the mapping.

public void
setField(DatabaseField field)

The aggregate object is held in a single field.

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

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

INTERNAL: Extract and return value of the field from the object
public Object
valueFromRow(AbstractRecord row, JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, CacheKey cacheKey, AbstractSession executionSession, boolean isTargetProtected, Boolean[] wasCacheUsed)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.valueFromRow.

INTERNAL: Extract and return the aggregate object from the specified row.
public void
writeFromObjectIntoRow(Object object, AbstractRecord record, AbstractSession session, DatabaseMapping.WriteType writeType)

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

INTERNAL: Build the value for the database field and put it in the specified database row.
public void
writeFromObjectIntoRowForUpdate(WriteObjectQuery query, AbstractRecord row)

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

INTERNAL: If it has changed, build the value for the database field and put it in the specified database row.
public void
writeFromObjectIntoRowWithChangeRecord(ChangeRecord changeRecord, AbstractRecord row, AbstractSession session, DatabaseMapping.WriteType writeType)

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

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

Field Detail

converterback to summary
protected Converter converter

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

fieldback to summary
protected DatabaseField field

The aggregate object is stored in a single field.

Constructor Detail

AbstractCompositeObjectMappingback to summary
protected AbstractCompositeObjectMapping()

Default constructor.

Method Detail

buildCompositeObjectback to summary
protected abstract Object buildCompositeObject(ObjectBuilder objectBuilder, AbstractRecord nestedRow, ObjectBuildingQuery query, CacheKey parentCacheKey, JoinedAttributeManager joinManger, AbstractSession targetSession)
buildCompositeRowback to summary
protected abstract Object buildCompositeRow(Object attributeValue, AbstractSession session, AbstractRecord record, DatabaseMapping.WriteType writeType)
buildExpressionback to summary
public Expression buildExpression(Object queryObject, QueryByExamplePolicy policy, Expression expressionBuilder, Map<K, V> processedObjects, AbstractSession session)

Overrides org.eclipse.persistence.mappings.AggregateMapping.buildExpression.

INTERNAL: In case Query By Example is used, this method builds and returns an expression that corresponds to a single attribute and it's value.

Parameters
queryObject:Object

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

policy:QueryByExamplePolicy

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

expressionBuilder:Expression

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

processedObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

session:AbstractSession

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

Returns:Expression

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildExpression.

TODO

Annotations
@Override
buildShallowOriginalFromRowback to summary
public void buildShallowOriginalFromRow(AbstractRecord row, Object original, JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, AbstractSession executionSession)

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

INTERNAL: Builds a shallow original object. Only direct attributes and primary keys are populated. In this way the minimum original required for instantiating a working copy clone can be built without placing it in the shared cache (no concern over cycles).

Parameters
row:AbstractRecord

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

TODO

original:Object

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

TODO

joinManager:JoinedAttributeManager

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

TODO

sourceQuery:ObjectBuildingQuery

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

TODO

executionSession:AbstractSession

Doc from org.eclipse.persistence.mappings.DatabaseMapping.buildShallowOriginalFromRow.

TODO

Annotations
@Override
cascadeDiscoverAndPersistUnregisteredNewObjectsback to summary
public void cascadeDiscoverAndPersistUnregisteredNewObjects(Object object, Map<K, V> newObjects, Map<K, V> unregisteredExistingObjects, Map<K, V> visitedObjects, UnitOfWorkImpl uow, Set<E> cascadeErrors)

Overrides org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

INTERNAL: Cascade discover and persist new objects during commit.

Parameters
object:Object

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

newObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

unregisteredExistingObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

visitedObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

uow:UnitOfWorkImpl

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

cascadeErrors:Set<E>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeDiscoverAndPersistUnregisteredNewObjects.

TODO

Annotations
@Override
cascadePerformRemoveIfRequiredback to summary
public void cascadePerformRemoveIfRequired(Object object, UnitOfWorkImpl uow, Map<K, V> visitedObjects)

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

INTERNAL: Cascade perform delete through mappings that require the cascade

Parameters
object:Object

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadePerformRemoveIfRequired.

TODO

uow:UnitOfWorkImpl

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadePerformRemoveIfRequired.

TODO

visitedObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadePerformRemoveIfRequired.

TODO

Annotations
@Override
cascadeRegisterNewIfRequiredback to summary
public void cascadeRegisterNewIfRequired(Object object, UnitOfWorkImpl uow, Map<K, V> visitedObjects)

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

INTERNAL: Cascade registerNew for Create through mappings that require the cascade

Parameters
object:Object

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeRegisterNewIfRequired.

TODO

uow:UnitOfWorkImpl

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeRegisterNewIfRequired.

TODO

visitedObjects:Map<K, V>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.cascadeRegisterNewIfRequired.

TODO

Annotations
@Override
collectFieldsback to summary
protected Vector<E> collectFields()

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

Return the fields mapped by the mapping.

Returns:Vector<E>

Doc from org.eclipse.persistence.mappings.DatabaseMapping.collectFields.

TODO

Annotations
@Override
getConverterback to summary
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.

getFieldback to summary
public DatabaseField getField()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.getField.

INTERNAL: The aggregate object is held in a single field.

Returns:DatabaseField

Doc from org.eclipse.persistence.mappings.DatabaseMapping.getField.

TODO

Annotations
@Override
hasConverterback to summary
public boolean hasConverter()

PUBLIC: Indicates if there is a converter on the mapping.

initializeback to summary
public void initialize(AbstractSession session) throws DescriptorException

Overrides org.eclipse.persistence.mappings.AggregateMapping.initialize.

INTERNAL: Initialize the mapping.

Annotations
@Override
isAbstractCompositeObjectMappingback to summary
public boolean isAbstractCompositeObjectMapping()

Overrides org.eclipse.persistence.mappings.DatabaseMapping.isAbstractCompositeObjectMapping.

INTERNAL:

Returns:boolean

Doc from org.eclipse.persistence.core.mappings.CoreMapping.isAbstractCompositeObjectMapping.

TODO

Annotations
@Override
setAttributeValueInObjectback to summary
public void setAttributeValueInObject(Object object, Object value) throws DescriptorException

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

INTERNAL: Set the value of the attribute mapped by this mapping.

Parameters
object:Object

Doc from org.eclipse.persistence.core.mappings.CoreMapping.setAttributeValueInObject.

TODO

value:Object

Doc from org.eclipse.persistence.core.mappings.CoreMapping.setAttributeValueInObject.

TODO

Annotations
@Override
setConverterback to summary
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.

setFieldback to summary
public void setField(DatabaseField field)

The aggregate object is held in a single field.

valueFromObjectback to summary
public Object valueFromObject(Object object, DatabaseField field, AbstractSession session) throws DescriptorException

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

INTERNAL: Extract and return value of the field from the object

Parameters
object:Object

Doc from org.eclipse.persistence.core.mappings.CoreMapping.valueFromObject.

TODO

field:DatabaseField

Doc from org.eclipse.persistence.core.mappings.CoreMapping.valueFromObject.

TODO

session:AbstractSession

Doc from org.eclipse.persistence.core.mappings.CoreMapping.valueFromObject.

TODO

Returns:Object

Doc from org.eclipse.persistence.core.mappings.CoreMapping.valueFromObject.

TODO

Annotations
@Override
valueFromRowback to summary
public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManager, ObjectBuildingQuery sourceQuery, CacheKey cacheKey, AbstractSession executionSession, boolean isTargetProtected, Boolean[] wasCacheUsed) throws DatabaseException

Overrides org.eclipse.persistence.mappings.DatabaseMapping.valueFromRow.

INTERNAL: Extract and return the aggregate object from the specified row.

Annotations
@Override
writeFromObjectIntoRowback to summary
public void writeFromObjectIntoRow(Object object, AbstractRecord record, AbstractSession session, DatabaseMapping.WriteType writeType) throws DescriptorException

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

INTERNAL: Build the value for the database field and put it in the specified database row.

Annotations
@Override
writeFromObjectIntoRowForUpdateback to summary
public void writeFromObjectIntoRowForUpdate(WriteObjectQuery query, AbstractRecord row) throws DescriptorException

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

INTERNAL: If it has changed, build the value for the database field and put it in the specified database row. If any part of the aggregate object has changed, the entire object is written to the database row (i.e. partial updates are not supported).

Annotations
@Override
writeFromObjectIntoRowWithChangeRecordback to summary
public void writeFromObjectIntoRowWithChangeRecord(ChangeRecord changeRecord, AbstractRecord row, AbstractSession session, DatabaseMapping.WriteType writeType) throws DescriptorException

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

INTERNAL: Get the attribute value from the object and add the appropriate values to the specified database row.

Annotations
@Override
writeInsertFieldsIntoRowback to summary
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.

Annotations
@Override