/*
* IRange.java
*
* Created on May 17, 2002, 3:09 PM
*/
package hep.aida.ext;
/**
*
* Interface for a Range.
*
* @author Tony Johnson, Victor Serbo, Max Turri
*
*/
public interface IRange {
/**
* The IRange types. It determines if the boundaries are inside
* or outside the range.
*
*/
public final static int INCLUDE_BOUNDS = 0;
public final static int INCLUDE_UPPER_BOUND = 1;
public final static int INCLUDE_LOWER_BOUND = 2;
public final static int EXCLUDE_BOUNDS = 3;
/**
* Get the IRange type.
* @return The IRange type.
*
*/
int type();
/**
* Set the IRange type.
* @param type The IRange type.
* @return <code>true</code> if the type was set succesfully
* <code>false</code> otherwise
*
*/
boolean setType( int type );
/**
* Get the lower bound.
* @return The lower bound.
*
*/
double lowerBound();
/**
* Get the upper bound.
* @return The upper bound.
*
*/
double upperBound();
/**
* Set the lower bound.
* @param lowerBound The lower bound.
* @return <code>true</code> if the lower bound was set succesfully
* <code>false</code> if lowerBound is greater than the upper bound.
*
*/
boolean setLowerBound( double lowerBound );
/**
* Set the upper bound.
* @param upperBound The upper bound.
* @return <code>true</code> if the upper bound was set succesfully
* <code>false</code> if upperBound is smaller than the lower bound.
*
*/
boolean setUpperBound( double upperBound );
/**
* Check if a value is within the IRange.
* @param value The value to check.
* @return <code>true</code> if the value is within the range.
* <code>false</code> otherwise.
*
*/
boolean isInRange( double value );
}