/*
* file: VarMeta.java
* author: Jon Iles
* copyright: (c) Packwood Software 2005
* date: Dec 5, 2005
*/
/*
* 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.
*
* 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.
*/
package net.sf.mpxj.mpp;
import java.util.Set;
/**
* Interface implemented by VarMeta types.
*/
interface VarMeta
{
/**
* This method retrieves the number of items in the Var2Data block.
*
* @return number of items
*/
public int getItemCount();
/**
* This method retrieves the size of the Var2Data block.
*
* @return data size
*/
public int getDataSize();
/**
* This method returns an array containing all of the unique identifiers
* for which data has been stored in the Var2Data block.
*
* @return array of unique identifiers
*/
public Integer[] getUniqueIdentifierArray();
/**
* This method returns an set containing all of the unique identifiers
* for which data has been stored in the Var2Data block.
*
* @return set of unique identifiers
*/
public Set<Integer> getUniqueIdentifierSet();
/**
* This method retrieves the offset of a given entry in the Var2Data block.
* Each entry can be uniquely located by the identifier of the object to
* which the data belongs, and the type of the data.
*
* @param id unique identifier of an entity
* @param type data type identifier
* @return offset of requested item
*/
public Integer getOffset(Integer id, Integer type);
/**
* This method retrieves the offset of the data item at
* the position defined by the index parameter.
*
* @param index index of item in the block
* @return offset of the item in the block
*/
public int getOffset(int index);
/**
* Retrieves a set containing the types defined
* in the var data for a given ID.
*
* @param id unique ID
* @return set of types
*/
public Set<Integer> getTypes(Integer id);
/**
* This method is used to check if a given key is present.
*
* @param key key to test
* @return Boolean flag
*/
public boolean containsKey(Integer key);
/**
* This method dumps the contents of this VarMeta block as a String.
* Note that this facility is provided as a debugging aid.
*
* @param fieldMap field map used to decode var data keys
* @return formatted contents of this block
*/
public String toString(FieldMap fieldMap);
}