| TabularData.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package javax.management.openmbean;
import java.util.Collection;
import java.util.Set;
/**
* An Open Data Type for tabular data structures.<p>
*
* @see TabularDataSupport
*
* @author <a href="mailto:Adrian.Brock@HappeningTimes.com">Adrian Brock</a>.
*
* @version $Revision: 1.4 $
*
*/
public interface TabularData
{
// Attributes ----------------------------------------------------
// Public --------------------------------------------------------
/**
* Retrieve the tabular type for this tabular data
*
* @return the tabular type
*/
TabularType getTabularType();
/**
* Calculate the index for the value passed if it were added to the
* tabular data. The validity of the passed value is checked. But the
* tabular data isn't checked to see whether the index is already used.
*
* @param value the value for which the index is calculated.
* @return the calculated index
* @exception NullPointerException for a null value
* @exception InvalidOpenTypeException when the passed value is not
* valid for the tabular data's row type.
*/
Object[] calculateIndex(CompositeData value);
/**
* Retrieve the number of rows in the tabular data.
*
* @return the number of rows.
*/
int size();
/**
* Determine whether the tabular data is empty.
*
* @return true when there are no rows, false otherwise
*/
boolean isEmpty();
/**
* Determine whether the tabular data contains the passed value as a row.
* If the passed value is null or invalid, false is returned.
*
* @param key the value to check
* @return true when the value is a row index, false otherwise
*/
boolean containsKey(Object[] key);
/**
* Determine whether the tabular data contains the passed value.
* If the passed value is null or invalid, false is returned.
*
* @param value the value to check
* @return true when the value is a row index, false otherwise
*/
boolean containsValue(CompositeData value);
/**
* Retrieve the composite data for the passed index.
*
* @param key the index to retrieve
* @exception NullPointerException when the passed key is null
* @exception InvalidKeyException when the passed key does match
* the row type of the tabular data.
*/
CompositeData get(Object[] key);
/**
* Add a value to the tabular data. The value must have the same
* CompositeType has the tabular data and there is no value already
* occupying the index for the value.
*
* @param value the value to add
* @exception NullPointerException when the passed value is null
* @exception InvalidOpenTypeException when the value is not valid for
* the row type of the tabular data
* @exception KeyAlreadyExistsException when the index for the value
* is already occupied.
*/
void put(CompositeData value);
/**
* Removes the value for the passed and returns the removed value, or
* null if the key was not present.
*
* @param key the index of the value to remove
* @exception NullPointerException when the passed key is null
* @exception InvalidKeyException when the key is not valid for the
* tabular data
*/
CompositeData remove(Object[] key);
/**
* Add all the passed values. All the values are checked before
* addition including any duplicates that might be added. Either all
* or no value is added.
*
* @param values the values to add
* @exception NullPointerException when the passed values is null or
* an element of the values is null
* @exception InvalidOpenTypeException when one of value is not valid for
* the row type of the tabular data
* @exception KeyAlreadyExistsException when the index for one of the values
* is already occupied.
*/
void putAll(CompositeData[] values);
/**
* Removes all CompositeData values from the Tabular Data
*/
void clear();
/**
* Returns a set view of the index values.
*
* @return the set of index values.
*/
Set keySet();
/**
* Returns a set view of the row values.
*
* @return the set of row values.
*/
Collection values();
/**
* Tests whether two tabular data objects are equal<p>
*
* The object is non-null<br>
* The object implements this interface<br>
* The row types are equal<br>
* The index to value mappings are equal
*
* @param obj the object to test
* @return true when the above conditions are satisfied, false otherwise.
*/
boolean equals(Object obj);
/**
* Generates a hashcode for the implementation.<p>
*
* The sum of the hashCodes for the elements mentioned in the equals
* method
*
* @return the calculated hashcode
*/
int hashCode();
/**
* A string representation of the open mbean operation info.<p>
*
* It is made up of implementation class and the values mentioned
* in the equals method
*
* @return the string
*/
String toString();
}
| TabularData.java |