Files
secondo/Javagui/viewer/rtree/RTree.java

121 lines
2.3 KiB
Java
Raw Normal View History

2026-01-23 17:03:45 +08:00
package viewer.rtree;
import sj.lang.*;
/**
* Represents an rtree.
*
* @author Oliver Feuer
* @author Benedikt Buer
* @author Christian Oevermann
* @since 08.03.2010
* @version 1.3
*/
public class RTree {
private String name;
private Node rootNode;
private int treeHeight;
private int noNodes;
private int noEntries;
private boolean rootLoaded = false;
private boolean heightLoaded = false;
private boolean nodesLoaded = false;
private boolean entriesLoaded = false;
// constructors
/**
* Creates a new RTree object.
* @param name Name of the rtree
*/
public RTree(String name)
{
this.name = name;
}
// public members
/**
* Gets the tree's name.
* @return Tree name
*/
public String getName()
{
return name;
}
/**
* Gets the tree's root node.
* @return Root node
*/
public Node getRootNode()
{
if ( !rootLoaded )
{
ListExpr result;
int nodeId;
SecondoManager secondoManager = new SecondoManager();
result = secondoManager.sendCommand("query getRootNode(" + name + ")", "Get Root Node");
nodeId = result.second().intValue();
rootNode = new Node(nodeId, null, this);
rootLoaded = true;
}
return rootNode;
}
/**
* Gets the tree's height.
* @return Tree height
*/
public int getTreeHeight()
{
if ( !heightLoaded )
{
ListExpr result;
SecondoManager secondoManager = new SecondoManager();
result = secondoManager.sendCommand("query treeheight(" + name + ")", "Get Tree Height");
treeHeight = result.second().intValue();
heightLoaded = true;
}
return treeHeight;
}
/**
* Gets the tree's number of nodes.
* @return number of nodes
*/
public int getNoNodes()
{
if ( !nodesLoaded )
{
ListExpr result;
SecondoManager secondoManager = new SecondoManager();
result = secondoManager.sendCommand("query no_nodes(" + name + ")", "Get no_nodes");
noNodes = result.second().intValue();
nodesLoaded = true;
}
return noNodes;
}
/**
* Gets the tree's number of key entries.
* @return number of key entries
*/
public int getNoEntries()
{
if ( !entriesLoaded )
{
ListExpr result;
SecondoManager secondoManager = new SecondoManager();
result = secondoManager.sendCommand("query no_entries(" + name + ")", "Get no_entries");
noEntries = result.second().intValue();
entriesLoaded = true;
}
return noEntries;
}
}