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.
- Since:
- EclipseLink 2.1
- Author:
- ailitchev
- See Also:
FetchGroup,LoadGroup,CopyGroup, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AttributeGroup()AttributeGroup(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAttribute(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.AttributeGroupclone()AttributeGroupfindGroup(ClassDescriptor type)AttributeGroupgetGroup(String attributeNameOrPath)Returns AttributeGroup corresponding to the passed (possibly nested) attribute.org.eclipse.persistence.internal.queries.AttributeItemgetItem(String attributeNameOrPath)INTERNAL: Lookup theAttributeItemfor the provided attribute name or path.booleanisConcurrent()INTERNAL: Only LoadGroups allow concurrency.booleanisCopyGroup()INTERNAL: This method is used internally when converting to a copy group.booleanisLoadGroup()booleanisSupersetOf(AttributeGroup anotherGroup)Return true if this AttributeGroup is a super-set of the passed in AttributeGroup.CopyGrouptoCopyGroup()Convert the group to a CopyGroup for usage with the copy() API.CopyGrouptoCopyGroup(Map<AttributeGroup,CopyGroup> cloneMap, Map copies)INTERNAL: This method is used internally when converting to a copy group.FetchGrouptoFetchGroup()Convert the group to a FetchGroup for usage with queries.FetchGrouptoFetchGroup(Map<AttributeGroup,FetchGroup> cloneMap)INTERNAL: This method is used internally when converting to a copy group.LoadGrouptoLoadGroup()Convert the group to a LoadGroup for usage with queries.LoadGrouptoLoadGroup(Map<AttributeGroup,LoadGroup> cloneMap, boolean loadOnly)-
Methods inherited from class org.eclipse.persistence.core.queries.CoreAttributeGroup
addAttribute, addAttribute, addAttribute, addAttributeKey, addAttributes, clone, containsAttribute, containsAttributeInternal, convertClassNamesToClasses, equals, getAllItems, getAttributeNames, getItems, getName, getSubClassGroups, getType, getTypeName, hasInheritance, hasItems, insertSubClass, isFetchGroup, isSupersetOf, isValidated, removeAttribute, setAllSubclasses, setAttributeNames, setName, toString
-
-
-
-
Method Detail
-
addAttribute
public void addAttribute(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.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
public AttributeGroup getGroup(String attributeNameOrPath)
Returns AttributeGroup corresponding to the passed (possibly nested) attribute.- Overrides:
getGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
isSupersetOf
public boolean isSupersetOf(AttributeGroup anotherGroup)
Return true if this AttributeGroup is a super-set of the passed in AttributeGroup.
-
getItem
public org.eclipse.persistence.internal.queries.AttributeItem getItem(String attributeNameOrPath)
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
-
findGroup
public AttributeGroup findGroup(ClassDescriptor type)
- Overrides:
findGroupin classCoreAttributeGroup<org.eclipse.persistence.internal.queries.AttributeItem,ClassDescriptor>
-
toFetchGroup
public FetchGroup toFetchGroup()
Convert the group to a FetchGroup for usage with queries.
-
toFetchGroup
public FetchGroup toFetchGroup(Map<AttributeGroup,FetchGroup> cloneMap)
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
public CopyGroup toCopyGroup()
Convert the group to a CopyGroup for usage with the copy() API.
-
toCopyGroup
public CopyGroup toCopyGroup(Map<AttributeGroup,CopyGroup> cloneMap, Map copies)
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
public LoadGroup toLoadGroup()
Convert the group to a LoadGroup for usage with queries.
-
toLoadGroup
public LoadGroup toLoadGroup(Map<AttributeGroup,LoadGroup> cloneMap, boolean loadOnly)
-
clone
public AttributeGroup 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>
-
-