//Element.java
//
//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; either
//version 2.1 of the License, or (at your option) any later version.
//
//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.
package rtree;
/**baap of all elemetns
@author Prachuryya Barua
*
**/
public abstract class Element implements Cloneable, java.io.Serializable
{
Rect Rectangle;
Element(){};
public Element( Rect Rectangle)
{
this.Rectangle = Rectangle;
}
private void overwriteRect( Rect Rectangle)
{
this.Rectangle = Rectangle;
}
public Rect getRect()
{
return(Rectangle);
}
/**
This can be a child node pointer or a record pointer.
*/
//public abstract Object getPtr();//old
public abstract long getPtr();
/**
Do not call this function, Node will call it.
*/
void setRect( Rect mbr)
throws IllegalValueException
{
if(mbr == null)
throw new IllegalValueException("Element.adjustMBR: Rect is null");
overwriteRect(mbr);
}
//abstract void setPtr(Object ptr) //old
//throws IllegalValueException;
public abstract void setPtr(long ptr);
public abstract int getElementType();
public String toString()
{
return Rectangle.toString();
}
}