// Spatial Index Library
//
// Copyright (C) 2002 Navel Ltd.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation;
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// Contact information:
// Mailing address:
// Marios Hadjieleftheriou
// University of California, Riverside
// Department of Computer Science
// Surge Building, Room 310
// Riverside, CA 92521
//
// Email:
// marioh@cs.ucr.edu
package org.geotools.caching.spatialindex;
public interface Node extends Entry {
/**
*
* @return the number of child nodes
*/
public int getChildrenCount();
/**
*
* @return the amount of data stored in the node
*/
public int getDataCount();
/**
*
* @param index
* @return the child node identifier at the given index
* @throws IndexOutOfBoundsException
*/
public NodeIdentifier getChildIdentifier(int index) throws IndexOutOfBoundsException;
/**
*
* @return the id of the node
*/
public NodeIdentifier getIdentifier();
/**
*
* @param id sets the id of the node
*/
public void setIdentifier (NodeIdentifier id);
public int getLevel();
public boolean isIndex();
/**
* If the node is a leaf node (has no children)
* @return
*/
public boolean isLeaf();
/**
* Clears all the data in the node.
*/
public void clear();
} // INode