org.deegree_impl.io.rtree
Class Node

java.lang.Object
  extended byorg.deegree_impl.io.rtree.Node
Direct Known Subclasses:
LeafNode, NoneLeafNode

public abstract class Node
extends java.lang.Object

Abstracte Klasse AbstractNode von der LeafNode und NoneLeafNode erben. Definiert und implementiert gemeinsame Felder und Operationen Definiert abstrakte Methoden.

Version:
1.0
Author:
Wolfgang Bär

Field Summary
protected  int counter
           
protected  PageFile file
           
protected  HyperBoundingBox[] hyperBBs
           
protected  int pageNumber
           
protected  int parentNode
           
protected  int place
           
protected  HyperBoundingBox unionMinBB
           
 
Constructor Summary
Node(int pageNumber, PageFile pageFile)
          Konstruktor der Klasse AbstractNode.
 
Method Summary
abstract  java.lang.Object clone()
          Tiefe Kopie ohne Dateneinträge (nur HyperBoundingBoxes) Überschreibt Methode clone in Object.
abstract  void deleteData(int index)
          Löscht Eintrag index aus dem Knoten
abstract  java.lang.Object getData(int index)
          Holt Daten aus AbstractNode.
 HyperBoundingBox getHyperBoundingBox(int index)
          HyperBoundingBox für Eintrag index im Knoten.
 HyperBoundingBox[] getHyperBoundingBoxes()
          Array von HyperBoundingBoxen der Einträge im Knoten.
 int getPageNumber()
          Gibt die PageFile-Nummer zurück, wo Knoten gespeichert ist.
 Node getParent()
          Gibt den Vater-Knoten zurück.
 HyperBoundingBox getUnionMinBB()
          Gemeinsame HyperBoundingBox über alle Einträge im Knoten.
 int getUsedSpace()
          Derzeit belegter Platz im Knoten.
abstract  void insertData(java.lang.Object obj, HyperBoundingBox box)
          Fügt Daten in AbstractNode ein.
 boolean isRoot()
          Prüft ob Knoten Rootknoten ist.
 void setPageNumber(int number)
          Setzt die PageFile-Nummer, wo Knoten gespeichert.
 java.lang.String toString()
          String-Repräsentation des Knotens
protected  void updateNodeBoundingBox()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

file

protected transient PageFile file

unionMinBB

protected HyperBoundingBox unionMinBB

hyperBBs

protected HyperBoundingBox[] hyperBBs

counter

protected int counter

pageNumber

protected int pageNumber

parentNode

protected int parentNode

place

protected int place
Constructor Detail

Node

public Node(int pageNumber,
            PageFile pageFile)
Konstruktor der Klasse AbstractNode.

Parameters:
pageNumber - PageNumber des Knotens
pageFile - PageFile zum Knoten gehörende PageFile
Method Detail

insertData

public abstract void insertData(java.lang.Object obj,
                                HyperBoundingBox box)
Fügt Daten in AbstractNode ein.

Parameters:
obj - einzufügendes Objekt (Typ Integer oder AbstractNode)
box - BoundingBox des Objektes

deleteData

public abstract void deleteData(int index)
Löscht Eintrag index aus dem Knoten

Parameters:
index - des Eintrages

getData

public abstract java.lang.Object getData(int index)
Holt Daten aus AbstractNode.

Parameters:
index - des Eintrages

getParent

public Node getParent()
Gibt den Vater-Knoten zurück.

Returns:
AbstractNode Vater des aktuellen Knotens.

getPageNumber

public int getPageNumber()
Gibt die PageFile-Nummer zurück, wo Knoten gespeichert ist.

Returns:
int Page-Nummer

setPageNumber

public void setPageNumber(int number)
Setzt die PageFile-Nummer, wo Knoten gespeichert.

Parameters:
number - Page-Nummer

getUsedSpace

public int getUsedSpace()
Derzeit belegter Platz im Knoten.

Returns:
int belegter Platz im Knoten

getUnionMinBB

public HyperBoundingBox getUnionMinBB()
Gemeinsame HyperBoundingBox über alle Einträge im Knoten.

Returns:
HyperBoundingBox UnionMinBB *

updateNodeBoundingBox

protected void updateNodeBoundingBox()

getHyperBoundingBoxes

public HyperBoundingBox[] getHyperBoundingBoxes()
Array von HyperBoundingBoxen der Einträge im Knoten. Array kann leer sein ! Anzahl belegter Plätze siehe getUsedSpace.

Returns:
HyperBoundingBox[] Boxes der Einträge
See Also:
getUsedSpace()

getHyperBoundingBox

public HyperBoundingBox getHyperBoundingBox(int index)
HyperBoundingBox für Eintrag index im Knoten.

Parameters:
index - des Eintrages
Returns:
HyperBoundingBox Box für den Eintrag

isRoot

public boolean isRoot()
Prüft ob Knoten Rootknoten ist.

Returns:
boolean true, wenn root

clone

public abstract java.lang.Object clone()
Tiefe Kopie ohne Dateneinträge (nur HyperBoundingBoxes) Überschreibt Methode clone in Object.

See Also:
Object.clone()

toString

public java.lang.String toString()
String-Repräsentation des Knotens