public class CoreAttributeGroup<ATTRIBUTE_ITEM extends CoreAttributeItem,DESCRIPTOR extends CoreDescriptor>
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
AttributeGroup
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.Object,CoreAttributeGroup> |
allsubclasses
This attribute is used to store all of the classes in this hierarchy keyed by type.
|
protected boolean |
isValidated
Marks this AttributeGroup as having been validated by the builder and does not require further validation
|
protected java.util.Map<java.lang.String,ATTRIBUTE_ITEM> |
items
Specified attributes in the group mapped to their AttributeItems
|
protected java.lang.String |
name
Name of the group.
|
protected java.util.Set<CoreAttributeGroup> |
subClasses
This attribute references the immediate subclass groups for this attributeGroup.
|
protected CoreAttributeGroup |
superClassGroup
To add inheritance support the two following attrbutes are used to create a model of the inheritance tree
This attribute points to the parent AttributeGroup of this attribute group.
|
protected java.lang.Class |
type
The class represented by this AttrbuteGroup.
|
protected java.lang.String |
typeName
The name of the class represented by this AttrbuteGroup.
|
Constructor and Description |
---|
CoreAttributeGroup() |
CoreAttributeGroup(java.lang.String name) |
CoreAttributeGroup(java.lang.String name,
java.lang.Class type,
boolean isValidated)
INTERNAL:
This constructer is to only be used by EclipseLink internally
|
CoreAttributeGroup(java.lang.String name,
java.lang.String type,
boolean isValidated) |
Modifier and Type | Method and Description |
---|---|
void |
addAttribute(java.lang.String attributeNameOrPath)
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,
java.util.Collection<? extends CoreAttributeGroup> groups)
Add an attribute and the corresponding list of AttributeGroups.
|
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 |
addAttributeKey(java.lang.String attributeNameOrPath,
CoreAttributeGroup group)
Add a basic attribute or nested attribute with each String representing
the key of an attribute of type Map on the path to what needs to be
included in the AttributeGroup.
|
void |
addAttributes(java.util.Collection<java.lang.String> attrOrPaths)
Add a set of attributes to the group.
|
CoreAttributeGroup |
clone() |
CoreAttributeGroup |
clone(java.util.Map<CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR>,CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR>> cloneMap)
INTERNAL:
This method is used internally in the clone processing.
|
boolean |
containsAttribute(java.lang.String attributeNameOrPath)
Return if the attribute is defined in the group.
|
boolean |
containsAttributeInternal(java.lang.String attributeName)
INTERNAL:
Return if the attribute is defined in the group.
|
protected java.lang.String[] |
convert(java.lang.String... nameOrPath)
Convert a provided name or path which could be a single attributeName, a
single string with dot separated attribute names, or an array of
attribute names defining the path.
|
void |
convertClassNamesToClasses(java.lang.ClassLoader classLoader)
INTERNAL:
Convert all the class-name-based settings in this Descriptor to actual class-based
settings.
|
boolean |
equals(java.lang.Object obj) |
CoreAttributeGroup |
findGroup(DESCRIPTOR type) |
java.util.Map<java.lang.String,ATTRIBUTE_ITEM> |
getAllItems()
INTERNAL:
|
java.util.Set<java.lang.String> |
getAttributeNames() |
CoreAttributeGroup |
getGroup(java.lang.String attributeNameOrPath)
Returns AttributeGroup corresponding to the passed (possibly nested)
attribute.
|
ATTRIBUTE_ITEM |
getItem(java.lang.String attributeNameOrPath)
INTERNAL:
Lookup the
AttributeItem for the provided attribute name or path. |
protected ATTRIBUTE_ITEM |
getItem(java.lang.String[] attributePath,
boolean create)
Locate the AttributeGroup where the leaf attribute in the path should be
applied to.
|
java.util.Map<java.lang.String,ATTRIBUTE_ITEM> |
getItems()
INTERNAL:
|
java.lang.String |
getName() |
java.util.Map<java.lang.Object,CoreAttributeGroup> |
getSubClassGroups()
INTERNAL:
|
java.lang.Class |
getType() |
java.lang.String |
getTypeName()
INTERNAL:
Returns the name of the type this group represents
|
boolean |
hasInheritance()
Indicates whether this group is part of an inheritance hierarchy
|
boolean |
hasItems()
Indicates whether the group has at least one attribute.
|
void |
insertSubClass(CoreAttributeGroup group)
INTERNAL:
This method will insert the group into the entity hierarchy just below this AttributeGroup.
|
boolean |
isConcurrent()
INTERNAL:
Only LoadGroups allow concurrency.
|
boolean |
isCopyGroup()
INTERNAL:
This method is used internally when converting to a copy group.
|
boolean |
isFetchGroup() |
boolean |
isLoadGroup() |
boolean |
isSupersetOf(CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR> anotherGroup)
Return true if this AttributeGroup is a super-set of the passed in
AttributeGroup.
|
boolean |
isValidated()
INTERNAL:
|
protected CoreAttributeGroup |
newGroup(java.lang.String name,
CoreAttributeGroup parent)
Subclass may create different types.
|
protected CoreAttributeItem |
newItem(CoreAttributeGroup group,
java.lang.String attrName)
Subclass may create different types.
|
void |
removeAttribute(java.lang.String attributeNameOrPath)
Remove an attribute from the group.
|
void |
setAllSubclasses(java.util.Map<java.lang.Object,CoreAttributeGroup> subclasses)
INTERNAL:
|
void |
setAttributeNames(java.util.Set attributeNames) |
void |
setName(java.lang.String name) |
java.lang.String |
toString() |
protected java.lang.String |
toStringAdditionalInfo()
Used by toString to print additional info for derived classes.
|
protected java.lang.String |
toStringItems()
Used by toString to print attribute items.
|
protected static java.lang.String |
toStringPath(java.lang.String[] attributePath,
int position) |
protected java.lang.String name
protected java.lang.String typeName
protected java.lang.Class type
protected CoreAttributeGroup superClassGroup
protected transient java.util.Set<CoreAttributeGroup> subClasses
protected java.util.Map<java.lang.Object,CoreAttributeGroup> allsubclasses
protected java.util.Map<java.lang.String,ATTRIBUTE_ITEM extends CoreAttributeItem> items
protected boolean isValidated
public CoreAttributeGroup(java.lang.String name)
public CoreAttributeGroup(java.lang.String name, java.lang.String type, boolean isValidated)
public CoreAttributeGroup(java.lang.String name, java.lang.Class type, boolean isValidated)
name
- type
- public CoreAttributeGroup()
public void addAttribute(java.lang.String attributeNameOrPath)
Example:
group.addAttribute("firstName");
group.addAttribute("manager.address");
attributeNameOrPath
- A simple attribute, array or attributes forming a pathpublic void addAttribute(java.lang.String attributeNameOrPath, java.util.Collection<? extends CoreAttributeGroup> groups)
attributeNameOrPath
- A simple attribute, array or attributes forming a pathgroups
- - a collection of AttributeGroups to be added.public void addAttribute(java.lang.String attributeNameOrPath, CoreAttributeGroup group)
Example:
group.addAttribute("firstName", group1);
Note that existing group corresponding to attributeNameOrPath
will be overridden with the passed group.
group.addAttribute("manager.address", group2);
attributeNameOrPath
- A simple attribute, array or attributes forming a pathgroup
- - an AttributeGroup to be added.public void addAttributeKey(java.lang.String attributeNameOrPath, CoreAttributeGroup group)
Example:
group.addAttribute("firstName", group1);
Note that existing group corresponding to attributeNameOrPath will be
overridden with the passed group.
group.addAttribute("manager.address", group2);
attributeNameOrPath
- A simple attribute, array or attributes forming a path to a
Map keygroup
- - an AttributeGroup to be added.public void addAttributes(java.util.Collection<java.lang.String> attrOrPaths)
public CoreAttributeGroup clone()
clone
in class java.lang.Object
public CoreAttributeGroup clone(java.util.Map<CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR>,CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR>> cloneMap)
cloneMap
- public boolean containsAttribute(java.lang.String attributeNameOrPath)
public boolean containsAttributeInternal(java.lang.String attributeName)
protected java.lang.String[] convert(java.lang.String... nameOrPath)
java.lang.IllegalArgumentException
- if name is not valid attribute name or path.public void convertClassNamesToClasses(java.lang.ClassLoader classLoader)
classLoader
- public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public CoreAttributeGroup findGroup(DESCRIPTOR type)
public java.util.Map<java.lang.String,ATTRIBUTE_ITEM> getAllItems()
public java.util.Set<java.lang.String> getAttributeNames()
public CoreAttributeGroup getGroup(java.lang.String attributeNameOrPath)
public ATTRIBUTE_ITEM getItem(java.lang.String attributeNameOrPath)
AttributeItem
for the provided attribute name or path.java.lang.IllegalArgumentException
- if name is not valid attribute name or pathprotected ATTRIBUTE_ITEM getItem(java.lang.String[] attributePath, boolean create)
create
- indicates if intermediate AttributeGroup required within the
specified path should be created as needed. When checking the
state of the map callers should set this to false to avoid
changing the state unexpectedlypublic java.util.Map<java.lang.String,ATTRIBUTE_ITEM> getItems()
public java.lang.String getName()
public java.util.Map<java.lang.Object,CoreAttributeGroup> getSubClassGroups()
public java.lang.Class getType()
public java.lang.String getTypeName()
public boolean hasInheritance()
public boolean hasItems()
public void insertSubClass(CoreAttributeGroup group)
group
- public boolean isConcurrent()
public boolean isCopyGroup()
public boolean isFetchGroup()
public boolean isLoadGroup()
public boolean isSupersetOf(CoreAttributeGroup<ATTRIBUTE_ITEM,DESCRIPTOR> anotherGroup)
public boolean isValidated()
protected CoreAttributeGroup newGroup(java.lang.String name, CoreAttributeGroup parent)
protected CoreAttributeItem newItem(CoreAttributeGroup group, java.lang.String attrName)
public void removeAttribute(java.lang.String attributeNameOrPath)
public void setAllSubclasses(java.util.Map<java.lang.Object,CoreAttributeGroup> subclasses)
public void setAttributeNames(java.util.Set attributeNames)
public void setName(java.lang.String name)
public java.lang.String toString()
toString
in class java.lang.Object
protected java.lang.String toStringAdditionalInfo()
protected java.lang.String toStringItems()
protected static java.lang.String toStringPath(java.lang.String[] attributePath, int position)