Package com.pixelmed.dicom

# Class AttributeTreeRecord

java.lang.Object
com.pixelmed.dicom.AttributeTreeRecord

All Implemented Interfaces:
  `Comparable`, `TreeNode`

public class AttributeTreeRecord extends Object implements Comparable, TreeNode

Instances of the `AttributeTreeRecord` class represent nodes in a tree of the `AttributeTree` class, which in turn is used by the `AttributeTreeBrowser` class.

Each record represents a single attribute.

## Constructor Summary

Constructors
Constructor
Description
`AttributeTreeRecord(AttributeTreeRecord p, int ic)`
Construct a record for an item of a sequence attribute.
`AttributeTreeRecord(AttributeTreeRecord p, Attribute a, DicomDictionary d)`
Construct a record for an attribute.

## Method Summary

Modifier and Type
Method
Description
`void`
`addChild(AttributeTreeRecord child)`
Add a child node to the current node, keeping the children sorted.
`void`
`addSibling(AttributeTreeRecord sibling)`
Add a sibling to the current node, keeping the children sorted.
`Enumeration`
`children()`
Returns the children of this node as an `Enumeration`.
`int`
`compareTo(Object o)`
`boolean`
`equals(Object o)`
`boolean`
`getAllowsChildren()`
Always returns true, since children may always be added.
`Attribute`
`getAttribute()`
Get the attribute corresponding to this record.
`TreeNode`
`getChildAt(int index)`
Returns the child at the specified index.
`int`
`getChildCount()`
Return the number of children that this node contains.
`int`
`getIndex(TreeNode child)`
Returns the index of the specified child from amongst this node's children, if present.
`int`
`getItemCount()`
Get the number of items in a Sequence attribute record.
`TreeNode`
`getParent()`
Returns the parent node of this node.
`boolean`
`isLeaf()`
Returns true if the receiver is a leaf (has no children).
`void`
`removeAllChildren()`
Remove all child nodes.
`void`
`removeChild(AttributeTreeRecord child)`
`void`
`setSortByName(boolean sortByName)`
Set the sort order to be alphabetical by attribute name, or numerical by group and element tag.
`String`
`toString()`
Dump the record as a string.

### Methods inherited from class java.lang.Object

`clone, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### AttributeTreeRecord

public AttributeTreeRecord(AttributeTreeRecord p, Attribute a, DicomDictionary d)

Construct a record for an attribute.

Parameters:
  `p` - parent record
  `a` - attribute to add
  `d` - dictionary for looking up the name

### AttributeTreeRecord

public AttributeTreeRecord(AttributeTreeRecord p, int ic)

Construct a record for an item of a sequence attribute.

Parameters:
  `p` - parent record
  `ic` - which item (numbered from 0)

## Method Details

### toString

public String toString()

Dump the record as a string.

Overrides:
  `toString` in class `Object`
Returns:
  the attribute tag, name and value(s) as a string

### compareTo

public int compareTo(Object o)

Specified by:
  `compareTo` in interface `Comparable`

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### getParent

public TreeNode getParent()

Returns the parent node of this node.

Specified by:
  `getParent` in interface `TreeNode`
Returns:
  the parent node, or null if the root

### getChildAt

public TreeNode getChildAt(int index)

Returns the child at the specified index.

Specified by:
  `getChildAt` in interface `TreeNode`
Parameters:
  `index` - the index of the child to be returned, numbered from 0
Returns:
  the child `TreeNode` at the specified index

### getIndex

public int getIndex(TreeNode child)

Returns the index of the specified child from amongst this node's children, if present.

Specified by:
  `getIndex` in interface `TreeNode`
Parameters:
  `child` - the child to search for amongst this node's children
Returns:
  the index of the child, or -1 if not present

### getAllowsChildren

public boolean getAllowsChildren()

Always returns true, since children may always be added.

Specified by:
  `getAllowsChildren` in interface `TreeNode`
Returns:
  always true

### isLeaf

public boolean isLeaf()

Returns true if the receiver is a leaf (has no children).

Specified by:
  `isLeaf` in interface `TreeNode`
Returns:
  true if the receiver is a leaf

### getChildCount

public int getChildCount()

Return the number of children that this node contains.

Specified by:
  `getChildCount` in interface `TreeNode`
Returns:
  the number of children, 0 if none

### children

public Enumeration children()

Returns the children of this node as an `Enumeration`.

Specified by:
  `children` in interface `TreeNode`
Returns:
  the children of this node

### addChild

public void addChild(AttributeTreeRecord child)

Add a child node to the current node, keeping the children sorted.

Parameters:
  `child` - the child to add

### removeChild

public void removeChild(AttributeTreeRecord child)

Parameters:
  `child` - the child to remove

### removeAllChildren

public void removeAllChildren()

Remove all child nodes.

### addSibling

public void addSibling(AttributeTreeRecord sibling) throws DicomException

Add a sibling to the current node, keeping the children sorted.

Parameters:
  `sibling` - the sibling to add
Throws:
  `DicomException` - if attempt to add sibling to node without parent

### getAttribute

public Attribute getAttribute()

Get the attribute corresponding to this record.

Returns:
  the attribute

### getItemCount

public int getItemCount()

Get the number of items in a Sequence attribute record.

Returns:
  the number of items

### setSortByName

public void setSortByName(boolean sortByName)

Set the sort order to be alphabetical by attribute name, or numerical by group and element tag.

Parameters:
  `sortByName` - true if sort alphabetically by attribute name