public class QueryTreeRecord
extends java.lang.Object
implements java.lang.Comparable, javax.swing.tree.TreeNode
Instances of the QueryTreeRecord
class represent
nodes in a tree of the QueryTreeModel
class, which in
turn is used by the QueryTreeBrowser
class.
This class is publically visible primarily so that selection change listeners can be
constructed for QueryTreeBrowser
, since
the user's selection is returned as a path of QueryTreeRecord
instances, which need to be cast accordingly.
Modifier and Type | Class and Description |
---|---|
protected class |
QueryTreeRecord.OurResponseIdentifierHandler |
Modifier and Type | Field and Description |
---|---|
protected AttributeList |
allAttributesReturnedInIdentifier |
protected java.util.List |
children |
protected boolean |
childrenPopulated |
protected AttributeList |
filter |
protected InformationEntity |
ie |
protected int |
numberOfChildren |
protected QueryTreeRecord |
parent |
protected QueryInformationModel |
q |
protected Attribute |
uniqueKey |
protected AttributeList |
uniqueKeys |
protected java.lang.String |
value |
Constructor and Description |
---|
QueryTreeRecord(QueryInformationModel q,
AttributeList filter,
QueryTreeRecord parent,
java.lang.String value,
InformationEntity ie,
Attribute uniqueKey,
AttributeList allAttributesReturnedInIdentifier)
Make a new node in a tree.
|
Modifier and Type | Method and Description |
---|---|
void |
addChild(QueryTreeRecord child)
Add a child to this nodes sorted collection of children.
|
void |
addSibling(QueryTreeRecord sibling)
Add a sibling to this node,
that is add a child to this
node's parent's sorted collection of children.
|
java.util.Enumeration |
children()
Returns the children of this node as an
Enumeration . |
int |
compareTo(java.lang.Object o)
Compare nodes based on the lexicographic order of their string values.
|
boolean |
equals(java.lang.Object o) |
AttributeList |
getAllAttributesReturnedInIdentifier()
Get the list of all the DICOM attributes from the query response for this level of the query.
|
boolean |
getAllowsChildren()
Always returns true, since children may always be added.
|
javax.swing.tree.TreeNode |
getChildAt(int index)
Returns the child at the specified index.
|
int |
getChildCount()
Return the number of children that this node contains.
|
int |
getIndex(javax.swing.tree.TreeNode child)
Returns the index of the specified child from amongst this node's children, if present.
|
InformationEntity |
getInformationEntity()
Get the information entity that this node represents.
|
javax.swing.tree.TreeNode |
getParent()
Returns the parent node of this node.
|
protected InformationEntity |
getQueryLevelToPopulateChildren() |
Attribute |
getUniqueKey()
Get the DICOM attribute that is the unique key at the level of this record.
|
AttributeList |
getUniqueKeys()
Get the list of DICOM attributes, one for each unique key of each parent of this level as well as this level itself.
|
java.lang.String |
getValue()
Get the string value of the node which is used for sorting and human-readable rendering.
|
boolean |
isLeaf()
Returns true if the receiver is a leaf (has no children).
|
protected void |
populateChildren() |
protected void |
populateChildrenIfRequired() |
java.lang.String |
toString()
Dump the string value of the node.
|
protected AttributeList allAttributesReturnedInIdentifier
protected java.util.List children
protected boolean childrenPopulated
protected AttributeList filter
protected InformationEntity ie
protected int numberOfChildren
protected QueryTreeRecord parent
protected QueryInformationModel q
protected Attribute uniqueKey
protected AttributeList uniqueKeys
protected java.lang.String value
public QueryTreeRecord(QueryInformationModel q, AttributeList filter, QueryTreeRecord parent, java.lang.String value, InformationEntity ie, Attribute uniqueKey, AttributeList allAttributesReturnedInIdentifier)
Make a new node in a tree.
q
- the query information model to build the tree fromfilter
- the query request identifier as a list of DICOM attributesparent
- the parent of this nodevalue
- a string value which is used primarily to sort siblings into lexicographic orderie
- the entity in the DICOM information model that the constructed node is an instance ofuniqueKey
- the DICOM attribute which is the unique key at the level of this recordallAttributesReturnedInIdentifier
- a list of all the DICOM attributes from the query response for this level of a querypublic void addChild(QueryTreeRecord child)
Add a child to this nodes sorted collection of children.
child
- the child node to be addedpublic void addSibling(QueryTreeRecord sibling) throws DicomException
Add a sibling to this node, that is add a child to this node's parent's sorted collection of children.
sibling
- the sibling node to be addedDicomException
- thrown if this node has no parentpublic java.util.Enumeration children()
Returns the children of this node as an Enumeration
.
children
in interface javax.swing.tree.TreeNode
public int compareTo(java.lang.Object o)
Compare nodes based on the lexicographic order of their string values.
Note that the comparison is more complex than a simple lexicographic comparison
of strings (as described in the definition of java.lang.String.compareTo(String)
but rather accounts for embedded non-zero padded integers. See com.pixelmed.utils.compareStringsWithEmbeddedNonZeroPaddedIntegers(String,String)
If the string values are equal but they do not have the same unique key, then an arbitrary but consistent order is return.
compareTo
in interface java.lang.Comparable
o
- the QueryTreeRecord
to compare this QueryTreeRecord
againstpublic boolean equals(java.lang.Object o)
equals
in class java.lang.Object
o
- public AttributeList getAllAttributesReturnedInIdentifier()
Get the list of all the DICOM attributes from the query response for this level of the query.
public boolean getAllowsChildren()
Always returns true, since children may always be added.
getAllowsChildren
in interface javax.swing.tree.TreeNode
public javax.swing.tree.TreeNode getChildAt(int index)
Returns the child at the specified index.
getChildAt
in interface javax.swing.tree.TreeNode
index
- the index of the child to be returned, numbered from 0TreeNode
at the specified indexpublic int getChildCount()
Return the number of children that this node contains.
getChildCount
in interface javax.swing.tree.TreeNode
public int getIndex(javax.swing.tree.TreeNode child)
Returns the index of the specified child from amongst this node's children, if present.
getIndex
in interface javax.swing.tree.TreeNode
child
- the child to search for amongst this node's childrenpublic InformationEntity getInformationEntity()
Get the information entity that this node represents.
public javax.swing.tree.TreeNode getParent()
Returns the parent node of this node.
getParent
in interface javax.swing.tree.TreeNode
protected InformationEntity getQueryLevelToPopulateChildren()
public Attribute getUniqueKey()
Get the DICOM attribute that is the unique key at the level of this record.
public AttributeList getUniqueKeys()
Get the list of DICOM attributes, one for each unique key of each parent of this level as well as this level itself.
public java.lang.String getValue()
Get the string value of the node which is used for sorting and human-readable rendering.
public boolean isLeaf()
Returns true if the receiver is a leaf (has no children).
isLeaf
in interface javax.swing.tree.TreeNode
protected void populateChildren()
protected void populateChildrenIfRequired()
public java.lang.String toString()
Dump the string value of the node.
toString
in class java.lang.Object