public class TreeNode extends java.lang.Object implements java.lang.Iterable<TreeNode>
Modifier and Type | Class and Description |
---|---|
class |
TreeNode.TreeNodeChildIterator |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATTR_DESCRIPTION |
static java.lang.String |
ATTR_ERROR |
static java.lang.String |
ATTR_GENERATORS |
static java.lang.String |
ATTR_IGNORE_NAME |
static java.lang.String |
ATTR_LINKS |
static java.lang.String |
ATTR_NAME |
static java.lang.String |
ATTR_PREDICATE |
static java.lang.String |
ATTR_REVLINKS |
static java.lang.String |
ATTR_TYPE |
static java.lang.String |
ATTR_UNDEFINED |
protected java.util.List<java.util.UUID> |
children |
protected java.lang.String |
id |
protected Index |
index |
static java.lang.String |
NODE_GROUP |
protected static java.lang.String |
NumberRegex |
protected java.util.List<java.util.UUID> |
outchildren |
static java.lang.String |
SORT_BY_INDEX |
static java.lang.String |
SORT_BY_LOCATIONS |
static java.lang.String |
SORT_SEP_TYPES |
Constructor and Description |
---|
TreeNode(TreeDB db,
java.util.UUID uuid) |
Modifier and Type | Method and Description |
---|---|
void |
addChangeListener(INodeChangeListener l)
Add Change Listener to be informed on changes of current node
|
protected void |
addChildUUID(java.util.UUID uid) |
void |
addGuiChangeListener(INodeChangeListener l)
Add change listener to be notified after set of actual changes
|
protected void |
addRevLink(TreeNode node,
java.lang.String key) |
void |
buildDependencies(Attribute a) |
protected boolean |
containsChildUUID(java.util.UUID uid) |
TreeNode |
createChild(java.lang.String id)
Create child element with given id and type "Node"
|
TreeNode |
createChild(java.lang.String id,
java.lang.String type) |
TreeNode |
createChild(java.lang.String id,
java.lang.String type,
java.lang.String templ)
Create child element with given id and type type
|
void |
delete()
Delete this element
|
void |
deleteResource(java.lang.String name)
Delete resource with given name from current element
|
boolean |
equals(java.lang.Object obj) |
java.lang.String |
evaluatePredicateString(TreeNode node,
java.lang.String predicate) |
TreeNode |
findChild(java.lang.String id)
Method to locate child with given id.
|
protected void |
fireGUINodeAttributeChange(java.util.Set<java.lang.String> what)
File event when attribute was changed
|
void |
fireGUINodeAttributeChange(java.util.Set<java.lang.String> attributeName,
Attribute.ParameterAvailability availability) |
void |
fireGUINodeDelete()
Fire event when node is deleted
|
protected void |
fireNodeAttributeChange(java.util.Set<java.lang.String> what)
Fire node change event when some attribute is changed
|
void |
fireNodeAttributeChange(java.util.Set<java.lang.String> attributeName,
Attribute.ParameterAvailability availability) |
protected void |
fireNodeDelete()
Fire event when node is deleted
|
Attribute |
getAttribute(java.lang.String key)
Get attribute with given attribute name.
|
Attribute |
getAttribute(java.lang.String key,
java.util.UUID origin) |
java.util.Set<java.lang.String> |
getAttributeKeys()
Get set of names of available attributes
|
java.util.Map<java.lang.String,Attribute> |
getAttributes()
Get map of available attributes.
|
java.util.Map<java.lang.String,java.lang.Object> |
getAttributesMap(boolean handlePredicate) |
java.lang.Object |
getAttributeValue(java.lang.String key)
Get value of attribute with given name.
|
java.lang.Object |
getAttributeValue(java.lang.String key,
java.lang.Object def)
Get value of attribute with given key.
|
boolean |
getBooleanAttributeValue(java.lang.String key)
Get value of attribute with given key casted to boolean type.
|
boolean |
getBooleanAttributeValue(java.lang.String key,
boolean def)
Get value of attribute with given key casted to boolean type.
|
protected INodeChangeListener |
getChangeListener()
Returns change listener that represents reaction on other nodes(used in linkto mechanics)
|
TreeNode |
getChild(int i)
Get child element with index i in children uuid list
|
java.util.List<java.util.UUID> |
getChildrenUUIds() |
TreeNode |
getCloneParent() |
java.util.UUID |
getCloneParentUUId() |
java.util.Set<java.lang.String> |
getDependencies(java.lang.String key) |
java.lang.String |
getDescription()
Return element description to be shown in uni editor and properties panels.
|
java.lang.String |
getDescription(boolean process)
Return element description to be shown in uni editor and properties panels
|
java.lang.String |
getDescription(java.lang.String basePath)
Get current text description for element.
|
java.lang.String |
getDescription(java.lang.String prefix,
java.lang.String postfix,
java.lang.String basePath)
Get current text description for element.
|
java.lang.String |
getError()
Method to get error messages appears during report generation
|
float |
getFloatAttributeValue(java.lang.String key)
Get value of attribute with given key casted to float type.
|
float |
getFloatAttributeValue(java.lang.String key,
float def)
Get value of attribute with given key casted to float type.
|
java.lang.String |
getGroup()
Elements can be grouped to support versions of storing formats for groups
NODE_GROUP is related to default group.
|
java.lang.String |
getId()
Get identifier of element.
|
Index |
getIndex()
Get index of element.
|
int |
getIntAttributeValue(java.lang.String key)
Get value of attribute with given key casted to int type.
|
int |
getIntAttributeValue(java.lang.String key,
int def)
Get value of attribute with given key casted to int type.
|
TreeNode |
getLinkAttributeValue(java.lang.String key) |
TreeNode |
getLinkAttributeValue(java.lang.String key,
TreeNode def) |
java.util.List<TreeNode> |
getLinkedNodes()
Get list of nodes linked to current by linkto: relation
|
java.lang.String |
getLinkLabel(java.lang.String key) |
static java.lang.String |
getLinkLabel(TreeNode targ,
java.lang.String expression,
java.lang.String label) |
java.util.List<java.lang.Object> |
getListAttributeValue(java.lang.String key)
Get value of attribute with given key casted to list of string.
|
java.lang.Object |
getListAttributeValue(java.lang.String attrLocations,
AttributeType tp) |
java.lang.String |
getMultiTypeLabel() |
java.lang.String |
getName() |
java.lang.String |
getNameOrId() |
TreeNode |
getParent()
Get parent of current element.
|
TreeNode |
getParent(boolean local) |
java.util.UUID |
getParentUUId()
Get unique identifier of parent element.
|
java.util.UUID |
getParentUUId(boolean local) |
java.lang.String |
getPredicate()
Method to get predicate that affect on node visibility in reports
|
java.lang.String |
getQualifiedId()
Get path to element in form of identifier(id) of element and all its ancestors
in form of /RootId/...
|
TreeNode |
getRawChild(int i) |
java.util.List<java.util.UUID> |
getRawChildrenUUIDs() |
java.io.InputStream |
getResourceContent(java.lang.String name)
Get content of resource with given name corresponding to this element
|
java.lang.String |
getResourcesPath()
Get path to resources folder related to current element
|
java.util.Set<java.lang.String> |
getRevertDependencies(java.lang.String key) |
java.util.Map<TreeNode,java.util.Map<java.lang.String,INodeChangeListener>> |
getRevertLinks() |
TreeNode[] |
getSortedChildren()
Get children elements in array sorted by default sort mechanism
|
TreeNode[] |
getSortedChildren(java.util.Comparator<TreeNode> c,
java.lang.String type)
Get children elements of selected type in array sorted by order defined in given comparator
|
TreeNode[] |
getSortedChildren(java.lang.String type)
Get children elements of selected type in array sorted by default sort mechanism
|
java.lang.String |
getStringAttributeValue(java.lang.String key)
Get value of attribute with given key casted to string type.
|
java.lang.String |
getStringAttributeValue(java.lang.String key,
java.lang.String def)
Get value of attribute with given key casted to string type.
|
TreeDB |
getTreeDB()
Get tree database in which this element exists
|
java.lang.String |
getType() |
java.lang.String |
getTypeLabel() |
Attribute |
getUpdatedAttribute(Attribute a) |
Attribute |
getUpdatedAttribute(Attribute a,
int num) |
java.lang.String |
getUserFriendlyName()
If element have 'name' attribute then return it, else return ParentUserFriendlyName/Id
Tends to be unique in project by agreement
|
java.lang.String |
getUserFriendlyName(boolean inner)
If element have 'name' attribute then return it, else return ParentUserFriendlyName/Id
Tends to be unique in project by agreement
|
java.util.UUID |
getUUId()
get UUID - unique identificator over element.
|
boolean |
hasUserAttributes() |
boolean |
isDisposed()
Get disposed flag for element.
|
boolean |
isNameDefined() |
boolean |
isResourceExists(java.lang.String name)
Check if resource with given name exists on current element
|
boolean |
isRestricted() |
boolean |
isRoot() |
boolean |
isVirtual() |
java.util.Iterator<TreeNode> |
iterator()
Get iterator for children
|
static java.lang.String |
join(java.lang.String[] r,
java.lang.String d)
Get list of children UUIDs
|
java.lang.String[] |
listResources()
List all available resources for current element
|
java.lang.String |
processResourcesPath(java.lang.String desc)
Process paths in description, replace placeholder ${node.resURL} to actual path to images
|
java.util.List<TreeNode> |
propogateAttributeChange(Attribute a) |
Attribute |
putAttribute(Attribute a)
Put attribute to this element.
|
Attribute |
putAttribute(Attribute a,
boolean notchange,
boolean propogate) |
Attribute |
rawPutAttribute(Attribute a) |
void |
rawSaveAttributes(java.util.Set<java.lang.String> set) |
void |
reactAfterAttributeChange(java.lang.String s,
Attribute oldAttribute,
Attribute attribute) |
void |
reactBeforeAttributeChange(java.lang.String s,
Attribute attribute) |
Attribute |
removeAttribute(java.lang.String key)
Remove attribute with given attribute name.
|
Attribute |
removeAttribute(java.util.UUID origin,
java.lang.String key,
boolean notchange,
boolean propogate) |
void |
removeChangeListener(INodeChangeListener l)
Remove change listener from current node
|
void |
removeChild(TreeNode node)
Remove child element from current
|
protected void |
removeChildUUID(java.util.UUID uid) |
void |
removeGuiChangeListener(INodeChangeListener l)
Remove change listener to be notified after set of actual changes
|
protected void |
removeRevLink(TreeNode node,
java.lang.String key) |
TreeNode |
resolveLink(java.lang.String expr,
TreeNode def,
java.lang.String savedName)
Get value of attribute with given key casted to TreeNode type.
|
void |
saveAttributes()
Save all attribute changes in storage.
|
protected void |
saveRevLinks() |
void |
setChildrenUUIDs(java.util.List<java.util.UUID> children2) |
void |
setDescription(java.lang.String description)
Set text description for element.
|
void |
setDisposed()
Set disposed flag for element to true.
|
void |
setId(java.lang.String id)
Set identifier of element.
|
void |
setIndex(Index index)
Set index of element.
|
void |
setName(java.lang.String name) |
void |
setParent(TreeNode parent)
Set parent element
|
void |
setPredicate(java.lang.String pred)
Method to set predicate that affect on node visibility in reports
|
void |
setResourceContent(java.lang.String name,
java.io.InputStream in)
Set content of resource with given name on current node
|
void |
setResourceContent(java.lang.String name,
java.io.InputStream in,
java.lang.Object data)
Set content of resource with given name on current node
|
void |
setType(java.lang.String type)
Method to set type of element in form of string
Types names are usually was in constants like Requirement.TYPE_NAME
|
int |
sizeChildren()
Get children count for current element.
|
int |
sizeRawChildren() |
NodeDesc |
toNodeDesc()
Get intermediate representation of element for copying process.
|
NodeDesc |
toNodeDesc(java.lang.Boolean deep)
Get intermediate representation of element for copying process.
|
java.lang.String |
toString() |
void |
updateTreeNodes(TreeNode req,
java.lang.String what)
Method to update Requirement id, name and corresponding Location nodes
|
void |
virtualReplaceNames() |
public static final java.lang.String ATTR_TYPE
public static final java.lang.String ATTR_NAME
protected static java.lang.String NumberRegex
public static final java.lang.String ATTR_PREDICATE
public static final java.lang.String ATTR_DESCRIPTION
public static final java.lang.String ATTR_LINKS
public static final java.lang.String ATTR_GENERATORS
public static final java.lang.String NODE_GROUP
public static final java.lang.String ATTR_UNDEFINED
public static final java.lang.String ATTR_ERROR
public static final java.lang.String SORT_BY_LOCATIONS
public static final java.lang.String ATTR_REVLINKS
public static final java.lang.String SORT_SEP_TYPES
public static final java.lang.String SORT_BY_INDEX
public static final java.lang.String ATTR_IGNORE_NAME
protected java.lang.String id
protected java.util.List<java.util.UUID> children
protected java.util.List<java.util.UUID> outchildren
protected Index index
public TreeNode(TreeDB db, java.util.UUID uuid)
protected void saveRevLinks()
protected void addRevLink(TreeNode node, java.lang.String key)
protected void removeRevLink(TreeNode node, java.lang.String key)
public java.util.Map<TreeNode,java.util.Map<java.lang.String,INodeChangeListener>> getRevertLinks()
protected boolean containsChildUUID(java.util.UUID uid)
public java.lang.String getMultiTypeLabel()
public final java.lang.String getTypeLabel()
protected void addChildUUID(java.util.UUID uid)
protected void removeChildUUID(java.util.UUID uid)
public void setChildrenUUIDs(java.util.List<java.util.UUID> children2)
public java.lang.String getGroup()
public boolean isVirtual()
public java.lang.String getError()
public void setPredicate(java.lang.String pred)
pred
- predicatepublic java.lang.String getPredicate()
public TreeNode getCloneParent()
public java.util.UUID getCloneParentUUId()
public void setType(java.lang.String type)
type
- string name of typepublic final java.util.UUID getUUId()
public void setId(java.lang.String id)
id
- new identifier of element.public java.lang.String getId()
public java.lang.String getType()
public void setParent(TreeNode parent)
parent
- new parent elementpublic java.util.UUID getParentUUId()
public java.util.UUID getParentUUId(boolean local)
public void removeChild(TreeNode node)
node
- element to removepublic void setDescription(java.lang.String description)
description
- new description of elementpublic java.lang.String getDescription(java.lang.String prefix, java.lang.String postfix, java.lang.String basePath)
prefix
- optional prefix for descriptionpostfix
- optional postfix for descriptionbasePath
- path to report folderpublic java.lang.String getDescription(java.lang.String basePath)
basePath
- path to report folderpublic java.lang.String getDescription()
public java.lang.String getDescription(boolean process)
process
- process resource path flagpublic java.lang.String processResourcesPath(java.lang.String desc)
desc
- description of elementpublic TreeDB getTreeDB()
public TreeNode getParent()
public TreeNode getParent(boolean local)
public int sizeChildren()
public TreeNode getChild(int i)
i
- index of child in uuid listpublic java.lang.String getQualifiedId()
public TreeNode findChild(java.lang.String id)
id
- id of child to findpublic static java.lang.String join(java.lang.String[] r, java.lang.String d)
public java.util.List<java.util.UUID> getChildrenUUIds()
public java.lang.String toString()
toString
in class java.lang.Object
public TreeNode createChild(java.lang.String id)
id
- id of created elementpublic TreeNode createChild(java.lang.String id, java.lang.String type)
public TreeNode createChild(java.lang.String id, java.lang.String type, java.lang.String templ)
id
- id of created elementtempl
- public void delete()
public Attribute putAttribute(Attribute a)
a
- attribute to add or replacepublic Attribute getAttribute(java.lang.String key, java.util.UUID origin)
public void rawSaveAttributes(java.util.Set<java.lang.String> set)
public Attribute removeAttribute(java.lang.String key)
key
- name of attribute to deletepublic Attribute removeAttribute(java.util.UUID origin, java.lang.String key, boolean notchange, boolean propogate)
public Attribute getAttribute(java.lang.String key)
key
- name of attributepublic java.lang.Object getAttributeValue(java.lang.String key)
key
- name of attributepublic java.lang.Object getAttributeValue(java.lang.String key, java.lang.Object def)
key
- name of attributedef
- default return value if attribute is not foundpublic TreeNode resolveLink(java.lang.String expr, TreeNode def, java.lang.String savedName)
key
- name of attributedef
- default return value if attribute is not foundpublic TreeNode getLinkAttributeValue(java.lang.String key)
public int getIntAttributeValue(java.lang.String key, int def)
key
- name of attributedef
- default return value if attribute is not foundpublic int getIntAttributeValue(java.lang.String key)
key
- name of attributepublic float getFloatAttributeValue(java.lang.String key, float def)
key
- name of attributedef
- default return value if attribute is not foundpublic float getFloatAttributeValue(java.lang.String key)
key
- name of attributepublic boolean getBooleanAttributeValue(java.lang.String key, boolean def)
key
- name of attributedef
- default return value if attribute is not foundpublic boolean getBooleanAttributeValue(java.lang.String key)
key
- name of attributepublic java.lang.String getStringAttributeValue(java.lang.String key, java.lang.String def)
key
- name of attributedef
- default return value if attribute is not foundpublic java.lang.String getStringAttributeValue(java.lang.String key)
key
- name of attributepublic java.util.List<java.lang.Object> getListAttributeValue(java.lang.String key)
key
- name of attributepublic java.util.Set<java.lang.String> getAttributeKeys()
public java.util.Map<java.lang.String,Attribute> getAttributes()
public void saveAttributes()
public void reactBeforeAttributeChange(java.lang.String s, Attribute attribute)
public void reactAfterAttributeChange(java.lang.String s, Attribute oldAttribute, Attribute attribute)
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public TreeNode[] getSortedChildren()
public TreeNode[] getSortedChildren(java.lang.String type)
type
- required type of childrenpublic TreeNode[] getSortedChildren(java.util.Comparator<TreeNode> c, java.lang.String type)
c
- comparator that defines order of return elementstype
- required type of childrenpublic java.lang.Object getListAttributeValue(java.lang.String attrLocations, AttributeType tp)
public java.lang.String getResourcesPath()
public NodeDesc toNodeDesc()
public NodeDesc toNodeDesc(java.lang.Boolean deep)
deep
- make intermediate representation of childrenpublic java.io.InputStream getResourceContent(java.lang.String name)
name
- name of resource to getpublic java.lang.String[] listResources()
public void setResourceContent(java.lang.String name, java.io.InputStream in)
name
- name of resourcein
- content of resource in form of streampublic void setResourceContent(java.lang.String name, java.io.InputStream in, java.lang.Object data)
name
- name of resourcein
- content of resource in form of streamdata
- deprecatedpublic void deleteResource(java.lang.String name)
name
- name of resource to deletepublic boolean isResourceExists(java.lang.String name)
name
- name of resource to checkpublic Index getIndex()
public void setIndex(Index index)
index
- index of elementpublic boolean isDisposed()
public void setDisposed()
public java.lang.String getUserFriendlyName(boolean inner)
inner
- deprecated?public java.lang.String getUserFriendlyName()
public void updateTreeNodes(TreeNode req, java.lang.String what)
req
- requirement to updatewhat
- name of attribute to be updated(or "_id" for when identifier is updating)public void addChangeListener(INodeChangeListener l)
l
- change listenerpublic void removeChangeListener(INodeChangeListener l)
l
- change listener to be removedpublic void addGuiChangeListener(INodeChangeListener l)
l
- change listener to addpublic void removeGuiChangeListener(INodeChangeListener l)
l
- change listener to removeprotected void fireNodeDelete()
protected void fireNodeAttributeChange(java.util.Set<java.lang.String> what)
changed
- attribute nameprotected INodeChangeListener getChangeListener()
public java.util.Map<java.lang.String,java.lang.Object> getAttributesMap(boolean handlePredicate)
public java.lang.String evaluatePredicateString(TreeNode node, java.lang.String predicate)
public java.util.Set<java.lang.String> getDependencies(java.lang.String key)
public java.util.Set<java.lang.String> getRevertDependencies(java.lang.String key)
public boolean isNameDefined()
public java.lang.String getNameOrId()
public void setName(java.lang.String name)
public java.lang.String getName()
public void fireGUINodeDelete()
protected void fireGUINodeAttributeChange(java.util.Set<java.lang.String> what)
what
- name of changed attributepublic java.util.Iterator<TreeNode> iterator()
iterator
in interface java.lang.Iterable<TreeNode>
public void fireNodeAttributeChange(java.util.Set<java.lang.String> attributeName, Attribute.ParameterAvailability availability)
public void fireGUINodeAttributeChange(java.util.Set<java.lang.String> attributeName, Attribute.ParameterAvailability availability)
public java.util.List<TreeNode> getLinkedNodes()
public java.util.List<java.util.UUID> getRawChildrenUUIDs()
public int sizeRawChildren()
public void virtualReplaceNames()
public TreeNode getRawChild(int i)
public void buildDependencies(Attribute a)
public java.lang.String getLinkLabel(java.lang.String key)
public static java.lang.String getLinkLabel(TreeNode targ, java.lang.String expression, java.lang.String label)
public boolean isRestricted()
public boolean hasUserAttributes()
public boolean isRoot()