|
Oracle Fusion Middleware Java API Reference for Oracle TopLink 11g Release 1 (11.1.1) E28847-01 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
org.eclipse.persistence.sdo.helper.SDOCopyHelper
public class SDOCopyHelper
Purpose:
Responsibilities:
DataObject
s.SDODataObject
Field Summary | |
---|---|
private HelperContext |
aHelperContext |
Constructor Summary | |
---|---|
SDOCopyHelper() INTERNAL: This default constructor must be used in conjunction with the setHelperContext() function. |
|
SDOCopyHelper(HelperContext aContext) Constructor that takes in a HelperContext instance that contains this copyHelper. |
Method Summary | |
---|---|
DataObject |
copy(DataObject dataObject) Create a deep copy of the DataObject tree: Copies the dataObject and all its contained DataObjects recursively. |
DataObject |
copy(DataObject dataObject, SDOChangeSummary cs) Create a deep copy of the DataObject tree: Copies the dataObject and all its contained DataObjects recursively. |
private void |
copyChangeSummary(ChangeSummary anOriginalCS, ChangeSummary aCopyCS, java.util.Map origDOCS1toCopyDOCS2Map) INTERNAL: Implement ChangeSummary deep copy Note: a copy with a CS requires the DefautlValueStore implementation because of changes outside the ValueStore interface for the dataObject field DeepCopy the original changeSummary into the copy dataObject. |
private void |
copyContainmentPropertyValue(SDODataObject copy, SDOProperty property, java.lang.Object value, java.util.HashMap doMap, java.util.HashMap ncPropMap, SDOChangeSummary cs) INTERNAL: Recursive function deep copies all contained properties. |
private SDODataObject |
copyPrivate(SDODataObject dataObject, java.util.HashMap doMap, java.util.HashMap ncPropMap, SDOChangeSummary cs) INTERNAL: Build the copy tree and cache all reachable DataObjects with their copy Cache all non-containment properties - to be set after tree construction Recurse the tree in preorder traversal (root, child1-n) Scope: We do not have to check the copyTree scope when iterating opposites since we will not enter any opposite property dataTree that is outside of the copyTree scope |
DataObject |
copyShallow(DataObject dataObject) Create a shallow copy of the DataObject dataObject: Creates a new DataObject copiedDataObject with the same values as the source dataObject for each property where property.getType().isDataType() is true. |
private ValueStore |
createValueStore() INTERNAL: Create a new uninitialized ValueStore. |
HelperContext |
getHelperContext() INTERNAL: Return the helperContext containing this copyHelper. |
private java.lang.Object |
getValue(SDODataObject dataObject, Property property, SDOChangeSummary cs) INTERNAL: Used during XML Unmarshal. |
private boolean |
isSet(SDODataObject dataObject, Property property, SDOChangeSummary cs) INTERNAL: Used during XML Unmarshal. |
private void |
processContainmentSequencesPrivate(java.util.Map doMap, SDOChangeSummary cs) INTERNAL: Iterate the map of containment nodes and populate sequenced objects in the copy. |
private void |
processNonContainmentNodesPrivate(java.util.HashMap doMap, java.util.HashMap ncPropMap) INTERNAL: Iterate the non-containment nodes and copy all uni/bi-directional properties on the copy. |
private void |
replicateAndRereferenceSequenceCopyPrivate(SDOSequence origSequence, SDOSequence copySequence, DataObject dataObject, DataObject copy, java.util.Map doMap, SDOChangeSummary cs) INTERNAL: Make a copy of all settings on the original sequence onto the copy sequence while using a cross-reference doMap that relates the original DataObject key to the copy DataObject key. |
void |
setHelperContext(HelperContext helperContext) INTERNAL: Set the helperContext if this copyHelper was created using the default constructor. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private HelperContext aHelperContext
Constructor Detail |
---|
public SDOCopyHelper()
public SDOCopyHelper(HelperContext aContext)
aContext
-Method Detail |
---|
public DataObject copyShallow(DataObject dataObject)
dataObject
- to be copiedpublic DataObject copy(DataObject dataObject) throws java.lang.IllegalArgumentException
contained
DataObjects recursively. Values of Properties are copied as in shallow copy, and values of Properties where property.getType().isDataType() is false are copied where each value copied must be a DataObject contained by the source dataObject. If a DataObject is outside the DataObject tree and the property is bidirectional, then the DataObject is skipped. If a DataObject is outside the DataObject tree and the property is unidirectional, then the same DataObject is referenced. Read-only properties are copied. If any DataObject referenced is not in the containment tree an IllegalArgumentException is thrown. If a ChangeSummary is part of the copy tree the new ChangeSummary refers to objects in the new DataObject tree. Logging state is the same as the source ChangeSummary.dataObject
- to be copied.java.lang.IllegalArgumentException
- if any referenced DataObject is not part of the containment tree.public DataObject copy(DataObject dataObject, SDOChangeSummary cs) throws java.lang.IllegalArgumentException
contained
DataObjects recursively.
For each Property where property.type.dataType is true, the values of Properties are copied as in shallow copy, and values of Properties where property.getType().isDataType() is false are copied where each value copied must be a DataObject contained by the source dataObject.
If a DataObject is outside the DataObject tree and the property is bidirectional, then the DataObject is not copied and references to the object are also not copied.
If a DataObject is outside the DataObject tree and the property is unidirectional, then the same DataObject is referenced.
Read-only properties are copied.
If any DataObject referenced is not in the containment tree an IllegalArgumentException is thrown.
If a ChangeSummary is part of the copy tree the new ChangeSummary refers to objects in the new DataObject tree. Logging state is the same as the source ChangeSummary.
dataObject
- to be copied.java.lang.IllegalArgumentException
- if any referenced DataObject is not part of the containment tree.private void processNonContainmentNodesPrivate(java.util.HashMap doMap, java.util.HashMap ncPropMap)
doMap
-ncPropMap
-private void replicateAndRereferenceSequenceCopyPrivate(SDOSequence origSequence, SDOSequence copySequence, DataObject dataObject, DataObject copy, java.util.Map doMap, SDOChangeSummary cs)
origSequence
-copySequence
-doMap
-private void processContainmentSequencesPrivate(java.util.Map doMap, SDOChangeSummary cs)
doMap
-private ValueStore createValueStore()
private void copyChangeSummary(ChangeSummary anOriginalCS, ChangeSummary aCopyCS, java.util.Map origDOCS1toCopyDOCS2Map)
anOriginalCS
-aCopyCS
-doMap
- (map of original do's (CS1) to their copy do's in (CS2))private SDODataObject copyPrivate(SDODataObject dataObject, java.util.HashMap doMap, java.util.HashMap ncPropMap, SDOChangeSummary cs) throws java.lang.IllegalArgumentException
doMap
- (cache original -> copy DataObject instances to set non-containment properties after tree construction)ncPropMap
- (cache original DO:non-containment property values to be set after tree construction)java.lang.IllegalArgumentException
private void copyContainmentPropertyValue(SDODataObject copy, SDOProperty property, java.lang.Object value, java.util.HashMap doMap, java.util.HashMap ncPropMap, SDOChangeSummary cs)
copy
-property
-value
-doMap
- (cache original -> copy DataObject instances to set non-containment properties after tree construction)propMap
- (cache original DO:non-containment property values to be set after tree construction)public HelperContext getHelperContext()
public void setHelperContext(HelperContext helperContext)
helperContext
-private boolean isSet(SDODataObject dataObject, Property property, SDOChangeSummary cs)
dataObject
-property
-cs
-private java.lang.Object getValue(SDODataObject dataObject, Property property, SDOChangeSummary cs)
dataObject
-property
-cs
-
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |