Package org.eclipse.persistence.sessions
Class CopyGroup
- java.lang.Object
-
- org.eclipse.persistence.core.queries.CoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
- org.eclipse.persistence.queries.AttributeGroup
-
- org.eclipse.persistence.sessions.CopyGroup
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
ObjectCopyingPolicy
public class CopyGroup extends AttributeGroup
Purpose: Define how an object is to be copied.Description: This is for usage with the object copying feature, not the unit of work. This is useful for copying an entire object graph as part of the host application's logic.
Responsibilities:
- Indicate through CASCADE levels the depth relationships will copied.
- Indicate if PK attributes should be copied with existing value or should be reset.
- Copies only the attributes found in the group.
-
-
Field Summary
Fields Modifier and Type Field Description static int
CASCADE_ALL_PARTS
Depth level indicating that all relationships with mappings should be used when building the copied object graphstatic int
CASCADE_PRIVATE_PARTS
Depth level indicating that only relationships with mapping indicated privately- owned should be copiedstatic int
CASCADE_TREE
Depth level indicating that only the attributes found in the attribute group should be copiedprotected java.util.Map
copies
protected int
depth
Policy depth that determines how the copy will cascade to the object's related partsstatic int
NO_CASCADE
Depth level indicating that NO relationships should be included in the copy.protected org.eclipse.persistence.internal.sessions.AbstractSession
session
protected boolean
shouldResetPrimaryKey
protected boolean
shouldResetVersion
-
Fields inherited from class org.eclipse.persistence.core.queries.CoreAttributeGroup
allsubclasses, isValidated, items, name, subClasses, superClassGroup, type, typeName
-
-
Constructor Summary
Constructors Constructor Description CopyGroup()
PUBLIC: By default only copy the attributes found in the attribute group and don't null primary keys.CopyGroup(java.lang.String name)
PUBLIC: By default only copy the attributes found in the attribute group and don't null primary keys.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAttribute(java.lang.String attributeNameOrPath, CoreAttributeGroup group)
Add a basic attribute or nested attribute with each String representing an attribute on the path to what needs to be included in the AttributeGroup.void
addAttribute(java.lang.String attributeNameOrPath, CopyGroup group)
void
cascadeAllParts()
PUBLIC: Set if the copy should cascade all relationships when copying the object(s).void
cascadePrivateParts()
PUBLIC: Set if the copy should cascade only those relationships that are configured as privately-owned.void
cascadeTree()
PUBLIC: Set if the copy should cascade only those attributes that are found in the group.CopyGroup
clone()
void
dontCascade()
PUBLIC: Set if the copy should not cascade relationships when copying the object(s)java.util.Map
getCopies()
INTERNAL: Get the session.int
getDepth()
INTERNAL: Return the cascade depth.CopyGroup
getGroup(java.lang.String attributeNameOrPath)
Returns CopyGroup corresponding to the passed (possibly nested) attribute.org.eclipse.persistence.internal.sessions.AbstractSession
getSession()
INTERNAL: Return the session.boolean
isCopyGroup()
INTERNAL: This method is used internally when converting to a copy group.protected CopyGroup
newGroup(java.lang.String name, CoreAttributeGroup parent)
Subclass may create different types.void
setCopies(java.util.Map newCopies)
INTERNAL: Set the copies.void
setDepth(int newDepth)
INTERNAL: Set the cascade depth.void
setSession(org.eclipse.persistence.internal.sessions.AbstractSession newSession)
INTERNAL: Set the session.void
setShouldResetPrimaryKey(boolean newShouldResetPrimaryKey)
PUBLIC: Set if the primary key should be reset to null.void
setShouldResetVersion(boolean newShouldResetVersion)
PUBLIC: Set if the version should be reset to null.boolean
shouldCascade()
PUBLIC: Return true if has been configured to CASCADE_ALL_PARTS or CASCADE_PRIVATE_PARTS.boolean
shouldCascadeAllParts()
PUBLIC: Return true if should CASCADE_ALL_PARTSboolean
shouldCascadePrivateParts()
PUBLIC: Return true if should CASCADE_PRIVATE_PARTSboolean
shouldCascadeTree()
PUBLIC: Return true if should CASCADE_TREEboolean
shouldResetPrimaryKey()
PUBLIC: Return if the primary key should be reset to null.boolean
shouldResetVersion()
PUBLIC: Return if the version should be reset to null.protected java.lang.String
toStringAdditionalInfo()
INTERNAL:-
Methods inherited from class org.eclipse.persistence.queries.AttributeGroup
addAttribute, findGroup, getItem, isConcurrent, isLoadGroup, isSupersetOf, newItem, newItem, toCopyGroup, toCopyGroup, toFetchGroup, toFetchGroup, toLoadGroup, toLoadGroup
-
Methods inherited from class org.eclipse.persistence.core.queries.CoreAttributeGroup
addAttribute, addAttribute, addAttributeKey, addAttributes, clone, containsAttribute, containsAttributeInternal, convert, convertClassNamesToClasses, equals, getAllItems, getAttributeNames, getItem, getItems, getName, getSubClassGroups, getType, getTypeName, hashCode, hasInheritance, hasItems, insertSubClass, isFetchGroup, isSupersetOf, isValidated, removeAttribute, setAllSubclasses, setAttributeNames, setName, toString, toStringItems, toStringPath
-
-
-
-
Field Detail
-
shouldResetPrimaryKey
protected boolean shouldResetPrimaryKey
-
shouldResetVersion
protected boolean shouldResetVersion
-
session
protected transient org.eclipse.persistence.internal.sessions.AbstractSession session
-
copies
protected java.util.Map copies
-
depth
protected int depth
Policy depth that determines how the copy will cascade to the object's related parts
-
NO_CASCADE
public static final int NO_CASCADE
Depth level indicating that NO relationships should be included in the copy. Relationships that are not copied will include the default value of the object's instantiation policy- See Also:
- Constant Field Values
-
CASCADE_PRIVATE_PARTS
public static final int CASCADE_PRIVATE_PARTS
Depth level indicating that only relationships with mapping indicated privately- owned should be copied- See Also:
- Constant Field Values
-
CASCADE_ALL_PARTS
public static final int CASCADE_ALL_PARTS
Depth level indicating that all relationships with mappings should be used when building the copied object graph- See Also:
- Constant Field Values
-
CASCADE_TREE
public static final int CASCADE_TREE
Depth level indicating that only the attributes found in the attribute group should be copied- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CopyGroup
public CopyGroup()
PUBLIC: By default only copy the attributes found in the attribute group and don't null primary keys.
-
CopyGroup
public CopyGroup(java.lang.String name)
PUBLIC: By default only copy the attributes found in the attribute group and don't null primary keys.
-
-
Method Detail
-
cascadeAllParts
public void cascadeAllParts()
PUBLIC: Set if the copy should cascade all relationships when copying the object(s).
-
cascadePrivateParts
public void cascadePrivateParts()
PUBLIC: Set if the copy should cascade only those relationships that are configured as privately-owned.
-
cascadeTree
public void cascadeTree()
PUBLIC: Set if the copy should cascade only those attributes that are found in the group.
-
dontCascade
public void dontCascade()
PUBLIC: Set if the copy should not cascade relationships when copying the object(s)
-
getCopies
public java.util.Map getCopies()
INTERNAL: Get the session.
-
getDepth
public int getDepth()
INTERNAL: Return the cascade depth.
-
getSession
public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
INTERNAL: Return the session.
-
setCopies
public void setCopies(java.util.Map newCopies)
INTERNAL: Set the copies.
-
setDepth
public void setDepth(int newDepth)
INTERNAL: Set the cascade depth.
-
setSession
public void setSession(org.eclipse.persistence.internal.sessions.AbstractSession newSession)
INTERNAL: Set the session.
-
setShouldResetPrimaryKey
public void setShouldResetPrimaryKey(boolean newShouldResetPrimaryKey)
PUBLIC: Set if the primary key should be reset to null.
-
setShouldResetVersion
public void setShouldResetVersion(boolean newShouldResetVersion)
PUBLIC: Set if the version should be reset to null.
-
shouldCascade
public boolean shouldCascade()
PUBLIC: Return true if has been configured to CASCADE_ALL_PARTS or CASCADE_PRIVATE_PARTS.
-
shouldCascadeAllParts
public boolean shouldCascadeAllParts()
PUBLIC: Return true if should CASCADE_ALL_PARTS
-
shouldCascadePrivateParts
public boolean shouldCascadePrivateParts()
PUBLIC: Return true if should CASCADE_PRIVATE_PARTS
-
shouldCascadeTree
public boolean shouldCascadeTree()
PUBLIC: Return true if should CASCADE_TREE
-
shouldResetPrimaryKey
public boolean shouldResetPrimaryKey()
PUBLIC: Return if the primary key should be reset to null.
-
shouldResetVersion
public boolean shouldResetVersion()
PUBLIC: Return if the version should be reset to null.
-
toStringAdditionalInfo
protected java.lang.String toStringAdditionalInfo()
INTERNAL:- Overrides:
toStringAdditionalInfo
in classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
addAttribute
public void addAttribute(java.lang.String attributeNameOrPath, CoreAttributeGroup group)
Description copied from class:CoreAttributeGroup
Add a basic attribute or nested attribute with each String representing an attribute on the path to what needs to be included in the AttributeGroup.Example:
group.addAttribute("firstName", group1);
Note that existing group corresponding to attributeNameOrPath will be overridden with the passed group.
group.addAttribute("manager.address", group2);- Overrides:
addAttribute
in classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
- Parameters:
attributeNameOrPath
- A simple attribute, array or attributes forming a pathgroup
- - an AttributeGroup to be added.
-
addAttribute
public void addAttribute(java.lang.String attributeNameOrPath, CopyGroup group)
-
isCopyGroup
public boolean isCopyGroup()
Description copied from class:AttributeGroup
INTERNAL: This method is used internally when converting to a copy group.- Overrides:
isCopyGroup
in classAttributeGroup
- Returns:
-
clone
public CopyGroup clone()
- Overrides:
clone
in classAttributeGroup
-
getGroup
public CopyGroup getGroup(java.lang.String attributeNameOrPath)
Returns CopyGroup corresponding to the passed (possibly nested) attribute.- Overrides:
getGroup
in classAttributeGroup
-
newGroup
protected CopyGroup newGroup(java.lang.String name, CoreAttributeGroup parent)
Description copied from class:AttributeGroup
Subclass may create different types.- Overrides:
newGroup
in classAttributeGroup
-
-