// **********************************************************************
//
// <copyright>
//
// BBN Technologies
// 10 Moulton Street
// Cambridge, MA 02138
// (617) 873-8000
//
// Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/vpf/CoordTupleString.java,v $
// $RCSfile: CoordTupleString.java,v $
// $Revision: 1.2 $
// $Date: 2004/10/14 18:06:07 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.layer.vpf;
/**
* Describe a common schema for accessing either double or float based
* coordinate tuple strings (arrays of tuples).
*/
public interface CoordTupleString {
/**
* Accessor for the max tuple index
*
* @return the max tuple index
*/
public abstract int maxIndex();
/**
* Accessor to determine the actual type managed.
*
* @return a Number the most directly corresponds to the
* underlying managed type (Float for a float tuplestring,
* Double for a double tuplestring, etc)
*/
public abstract Number getPrimitiveType();
/**
* Accessor to retrieve a tuple
*
* @param tuple the tuple to retrieve (the first tuple is index 0)
* @return the tuple at index <code>tuple</code>, coerced into
* a float[]
*/
public abstract float[] getasFloat(int tuple);
/**
* Accessor to retrieve a tuple
*
* @param tuple the tuple to retrieve (the first tuple is index 0)
* @return the tuple at index <code>tuple</code>, coerced into
* a double[]
*/
public abstract double[] getasDouble(int tuple);
/**
* Accessor to retrieve a single value in a tuple
*
* @param tuple the tuple to retrieve (the first tuple is index 0)
* @param val the index of the value in the tuple (the first val
* is index 0)
* @return the tuple at index <code>tuple</code>, coerced into
* a float
*/
public abstract float getasFloat(int tuple, int val);
/**
* Accessor to retrieve a single value in a tuple
*
* @param tuple the tuple to retrieve (the first tuple is index 0)
* @param val the index of the value in the tuple (the first val
* is index 0)
* @return the tuple at index <code>tuple</code>, coerced into
* a double
*/
public abstract double getasDouble(int tuple, int val);
}