## com.vividsolutions.jts.index.strtree
Class AbstractNode

    java.lang.Object
      com.vividsolutions.jts.index.strtree.AbstractNode

All Implemented Interfaces:
  Boundable

public abstract class AbstractNode
extends java.lang.Object
implements Boundable

A node of the STR tree. The children of this node are either more nodes (AbstractNodes) or real data (ItemBoundables). If this node contains real data (rather than nodes), then we say that this node is a "leaf node".

Version:
  1.7

Constructor Summary
`AbstractNode(int level)` Constructs an AbstractNode at the given level in the tree

Method Summary
`void` `addChildBoundable(Boundable childBoundable)` Adds either an AbstractNode, or if this is a leaf node, a data object (wrapped in an ItemBoundable)
`protected abstract java.lang.Object` `computeBounds()` Returns a representation of space that encloses this Boundable, preferably not much bigger than this Boundable's boundary yet fast to test for intersection with the bounds of other Boundables.
`java.lang.Object` `getBounds()` Returns a representation of space that encloses this Boundable, preferably not much bigger than this Boundable's boundary yet fast to test for intersection with the bounds of other Boundables.
`java.util.List` `getChildBoundables()` Returns either child AbstractNodes, or if this is a leaf node, real data (wrapped in ItemBoundables).
`int` `getLevel()` Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the root node will have the highest level

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractNode

    public AbstractNode(int level)

  Constructs an AbstractNode at the given level in the tree

Parameters:
  `level` - 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the root node will have the highest level

Method Detail

### getChildBoundables

    public java.util.List getChildBoundables()

  Returns either child AbstractNodes, or if this is a leaf node, real data (wrapped in ItemBoundables).

### computeBounds

    protected abstract java.lang.Object computeBounds()

  Returns a representation of space that encloses this Boundable, preferably not much bigger than this Boundable's boundary yet fast to test for intersection with the bounds of other Boundables. The class of object returned depends on the subclass of AbstractSTRtree.

  Returns:
    an Envelope (for STRtrees), an Interval (for SIRtrees), or other object (for other subclasses of AbstractSTRtree)
  See Also:
    `AbstractSTRtree.IntersectsOp`

### getBounds

    public java.lang.Object getBounds()

  Description copied from interface: `Boundable`
  Returns a representation of space that encloses this Boundable, preferably not much bigger than this Boundable's boundary yet fast to test for intersection with the bounds of other Boundables. The class of object returned depends on the subclass of AbstractSTRtree.

  Specified by:
    `getBounds` in interface `Boundable`
  Returns:
    an Envelope (for STRtrees), an Interval (for SIRtrees), or other object (for other subclasses of AbstractSTRtree)
  See Also:
    `AbstractSTRtree.IntersectsOp`

### getLevel

    public int getLevel()

  Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the root node will have the highest level

### addChildBoundable

    public void addChildBoundable(Boundable childBoundable)

  Adds either an AbstractNode, or if this is a leaf node, a data object (wrapped in an ItemBoundable)