Package org.eclipse.persistence.queries
Class AttributeGroup
java.lang.Object
org.eclipse.persistence.core.queries.CoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
org.eclipse.persistence.queries.AttributeGroup
- All Implemented Interfaces:
Serializable,Cloneable
- Direct Known Subclasses:
CopyGroup,FetchGroup,LoadGroup
public class AttributeGroup
extends CoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
implements Serializable, Cloneable
Purpose: An AttributeGroup represents a set of mappings and nested
AttributeGroups for relationship mappings for an entity type.
Responsibilities:
- Defines which attributes should be fetched from the database within a
FetchGroup. - Define which relationship attributes should be populated in a resulting
entity graph within a
LoadGroup - Define which attributes should be copied within a
CopyGroup
To reference nested attributes a dot ('.') notation is used to reference related attributes. All attribute names provided are assumed to be correct until processed against the mappings during usage of the group.
- See Also:
- Author:
- ailitchev
-
Field Summary
Fields inherited from class org.eclipse.persistence.core.queries.CoreAttributeGroup
allsubclasses, isValidated, items, name, subClasses, superClassGroup, type, typeName -
Constructor Summary
ConstructorsConstructorDescriptionAttributeGroup(String name) AttributeGroup(String name, Class type, boolean isValidated) INTERNAL: This constructer is to only be used by EclipseLink internallyAttributeGroup(String name, String type, boolean isValidated) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAttribute(String attributeNameOrPath, AttributeGroup 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.clone()findGroup(ClassDescriptor type) Returns AttributeGroup corresponding to the passed (possibly nested) attribute.org.eclipse.persistence.internal.queries.AttributeItemINTERNAL: Lookup theAttributeItemfor the provided attribute name or path.booleanINTERNAL: Only LoadGroups allow concurrency.booleanINTERNAL: This method is used internally when converting to a copy group.booleanbooleanisSupersetOf(AttributeGroup anotherGroup) Return true if this AttributeGroup is a super-set of the passed in AttributeGroup.protected AttributeGroupnewGroup(String name, CoreAttributeGroup parent) Subclass may create different types.protected org.eclipse.persistence.internal.queries.AttributeItemnewItem(CoreAttributeGroup group, String attrName) Subclass may create different types.protected org.eclipse.persistence.internal.queries.AttributeItemnewItem(AttributeGroup group, String attrName) Subclass may create different types.Convert the group to a CopyGroup for usage with the copy() API.toCopyGroup(Map<AttributeGroup, CopyGroup> cloneMap, Map copies) INTERNAL: This method is used internally when converting to a copy group.Convert the group to a FetchGroup for usage with queries.toFetchGroup(Map<AttributeGroup, FetchGroup> cloneMap) INTERNAL: This method is used internally when converting to a copy group.Convert the group to a LoadGroup for usage with queries.toLoadGroup(Map<AttributeGroup, LoadGroup> cloneMap, boolean loadOnly) Methods inherited from class org.eclipse.persistence.core.queries.CoreAttributeGroup
addAttribute, 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, toStringAdditionalInfo, toStringItems, toStringPath
-
Constructor Details
-
AttributeGroup
-
AttributeGroup
INTERNAL: This constructer is to only be used by EclipseLink internally- Parameters:
name-type-
-
AttributeGroup
-
AttributeGroup
public AttributeGroup()
-
-
Method Details
-
addAttribute
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);- Parameters:
attributeNameOrPath- A simple attribute, array or attributes forming a pathgroup- - an AttributeGroup to be added.
-
getGroup
Returns AttributeGroup corresponding to the passed (possibly nested) attribute.- Overrides:
getGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
isSupersetOf
Return true if this AttributeGroup is a super-set of the passed in AttributeGroup. -
getItem
INTERNAL: Lookup theAttributeItemfor the provided attribute name or path.- Overrides:
getItemin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor> - Returns:
- item or null
- Throws:
IllegalArgumentException- if name is not valid attribute name or path
-
newItem
protected org.eclipse.persistence.internal.queries.AttributeItem newItem(AttributeGroup group, String attrName) Subclass may create different types. -
findGroup
- Overrides:
findGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
toFetchGroup
Convert the group to a FetchGroup for usage with queries. -
toFetchGroup
INTERNAL: This method is used internally when converting to a copy group.- Parameters:
cloneMap-- Returns:
-
isCopyGroup
public boolean isCopyGroup()INTERNAL: This method is used internally when converting to a copy group.- Overrides:
isCopyGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor> - Returns:
-
toCopyGroup
Convert the group to a CopyGroup for usage with the copy() API. -
toCopyGroup
INTERNAL: This method is used internally when converting to a copy group.- Parameters:
cloneMap-- Returns:
-
isLoadGroup
public boolean isLoadGroup()- Overrides:
isLoadGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
toLoadGroup
Convert the group to a LoadGroup for usage with queries. -
toLoadGroup
-
clone
- Overrides:
clonein classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
isConcurrent
public boolean isConcurrent()INTERNAL: Only LoadGroups allow concurrency.- Overrides:
isConcurrentin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
newItem
protected org.eclipse.persistence.internal.queries.AttributeItem newItem(CoreAttributeGroup group, String attrName) Subclass may create different types.- Overrides:
newItemin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
newGroup
Subclass may create different types.- Overrides:
newGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-