alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (TabularData.java)

This example Java source code file (TabularData.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

collection, compositedata, map, object, set, string, tabulardata, tabulartype, util

The TabularData.java Java example source code

/*
 * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code 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 General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */


package javax.management.openmbean;


// java import
//
import java.util.Set;
import java.util.Collection;

// jmx import
//


/**
 * The <tt>TabularData interface specifies the behavior of a specific type of complex open data objects
 * which represent <i>tabular data structures.
 *
 * @since 1.5
 */
public interface TabularData /*extends Map*/ {


    /* *** TabularData specific information methods *** */


    /**
     * Returns the <i>tabular type describing this
     * <tt>TabularData instance.
     *
     * @return the tabular type.
     */
    public TabularType getTabularType();


    /**
     * Calculates the index that would be used in this <tt>TabularData instance to refer to the specified
     * composite data <var>value parameter if it were added to this instance.
     * This method checks for the type validity of the specified <var>value,
     * but does not check if the calculated index is already used to refer to a value in this <tt>TabularData instance.
     *
     * @param  value                      the composite data value whose index in this
     *                                    <tt>TabularData instance is to be calculated;
     *                                    must be of the same composite type as this instance's row type;
     *                                    must not be null.
     *
     * @return the index that the specified <var>value would have in this TabularData instance.
     *
     * @throws NullPointerException       if <var>value is null
     *
     * @throws InvalidOpenTypeException   if <var>value does not conform to this TabularData instance's
     *                                    row type definition.
     */
    public Object[] calculateIndex(CompositeData value) ;




    /* *** Content information query methods *** */

    /**
     * Returns the number of <tt>CompositeData values (ie the
     * number of rows) contained in this <tt>TabularData
     * instance.
     *
     * @return the number of values contained.
     */
    public int size() ;

    /**
     * Returns <tt>true if the number of CompositeData
     * values (ie the number of rows) contained in this
     * <tt>TabularData instance is zero.
     *
     * @return true if this <tt>TabularData is empty.
     */
    public boolean isEmpty() ;

    /**
     * Returns <tt>true if and only if this TabularData instance contains a CompositeData value
     * (ie a row) whose index is the specified <var>key. If key is null or does not conform to
     * this <tt>TabularData instance's TabularType definition, this method simply returns false.
     *
     * @param  key  the index value whose presence in this <tt>TabularData instance is to be tested.
     *
     * @return  <tt>true if this TabularData indexes a row value with the specified key.
     */
    public boolean containsKey(Object[] key) ;

    /**
     * Returns <tt>true if and only if this TabularData instance contains the specified
     * <tt>CompositeData value. If value is null or does not conform to
     * this <tt>TabularData instance's row type definition, this method simply returns false.
     *
     * @param  value  the row value whose presence in this <tt>TabularData instance is to be tested.
     *
     * @return  <tt>true if this TabularData instance contains the specified row value.
     */
    public boolean containsValue(CompositeData value) ;

    /**
     * Returns the <tt>CompositeData value whose index is
     * <var>key, or null if there is no value mapping
     * to <var>key, in this TabularData instance.
     *
     * @param key the key of the row to return.
     *
     * @return the value corresponding to <var>key.
     *
     * @throws NullPointerException if the <var>key is
     * <tt>null
     * @throws InvalidKeyException if the <var>key does not
     * conform to this <tt>TabularData instance's *
     * <tt>TabularType definition
     */
    public CompositeData get(Object[] key) ;




    /* *** Content modification operations (one element at a time) *** */


    /**
     * Adds <var>value to this TabularData instance.
     * The composite type of <var>value must be the same as this
     * instance's row type (ie the composite type returned by
     * <tt>this.getTabularType().{@link TabularType#getRowType
     * getRowType()}</tt>), and there must not already be an existing
     * value in this <tt>TabularData instance whose index is the
     * same as the one calculated for the <var>value to be
     * added. The index for <var>value is calculated according
     * to this <tt>TabularData instance's TabularType
     * definition (see <tt>TabularType.{@link
     * TabularType#getIndexNames getIndexNames()}</tt>).
     *
     * @param  value                      the composite data value to be added as a new row to this <tt>TabularData instance;
     *                                    must be of the same composite type as this instance's row type;
     *                                    must not be null.
     *
     * @throws NullPointerException       if <var>value is null
     * @throws InvalidOpenTypeException   if <var>value does not conform to this TabularData instance's
     *                                    row type definition.
     * @throws KeyAlreadyExistsException  if the index for <var>value, calculated according to
     *                                    this <tt>TabularData instance's TabularType definition
     *                                    already maps to an existing value in the underlying HashMap.
     */
    public void put(CompositeData value) ;

    /**
     * Removes the <tt>CompositeData value whose index is key from this TabularData instance,
     * and returns the removed value, or returns <tt>null if there is no value whose index is key.
     *
     * @param  key  the index of the value to get in this <tt>TabularData instance;
     *              must be valid with this <tt>TabularData instance's row type definition;
     *              must not be null.
     *
     * @return previous value associated with specified key, or <tt>null
     *         if there was no mapping for key.
     *
     * @throws NullPointerException  if the <var>key is null
     * @throws InvalidKeyException   if the <var>key does not conform to this TabularData instance's
     *                               <tt>TabularType definition
     */
    public CompositeData remove(Object[] key) ;




    /* ***   Content modification bulk operations   *** */


    /**
     * Add all the elements in <var>values to this TabularData instance.
     * If any  element in <var>values does not satisfy the constraints defined in {@link #put(CompositeData) put},
     * or if any two elements in <var>values have the same index calculated according to this TabularData
     * instance's <tt>TabularType definition, then an exception describing the failure is thrown
     * and no element of <var>values is added,  thus leaving this TabularData instance unchanged.
     *
     * @param  values  the array of composite data values to be added as new rows to this <tt>TabularData instance;
     *                 if <var>values is null or empty, this method returns without doing anything.
     *
     * @throws NullPointerException       if an element of <var>values is null
     * @throws InvalidOpenTypeException   if an element of <var>values does not conform to
     *                                    this <tt>TabularData instance's row type definition
     * @throws KeyAlreadyExistsException  if the index for an element of <var>values, calculated according to
     *                                    this <tt>TabularData instance's TabularType definition
     *                                    already maps to an existing value in this instance,
     *                                    or two elements of <var>values have the same index.
     */
    public void putAll(CompositeData[] values) ;

    /**
     * Removes all <tt>CompositeData values (ie rows) from this TabularData instance.
     */
    public void clear();




    /* ***   Collection views of the keys and values   *** */


    /**
     * Returns a set view of the keys (ie the index values) of the
     * {@code CompositeData} values (ie the rows) contained in this
     * {@code TabularData} instance. The returned {@code Set} is a
     * {@code Set<List} but is declared as a {@code Set} for
     * compatibility reasons. The returned set can be used to iterate
     * over the keys.
     *
     * @return a set view ({@code Set<List}) of the index values
     * used in this {@code TabularData} instance.
     */
    public Set<?> keySet();

    /**
     * Returns a collection view of the {@code CompositeData} values
     * (ie the rows) contained in this {@code TabularData} instance.
     * The returned {@code Collection} is a {@code Collection<CompositeData>}
     * but is declared as a {@code Collection<?>} for compatibility reasons.
     * The returned collection can be used to iterate over the values.
     *
     * @return a collection view ({@code Collection<CompositeData>})
     * of the rows contained in this {@code TabularData} instance.
     */
    public Collection<?> values();




    /* ***  Commodity methods from java.lang.Object  *** */


    /**
     * Compares the specified <var>obj parameter with this TabularData instance for equality.
     * <p>
     * Returns <tt>true if and only if all of the following statements are true:
     * <ul>
     * <li>obj is non null,
     * <li>obj also implements the TabularData interface,
     * <li>their row types are equal
     * <li>their contents (ie index to value mappings) are equal
     * </ul>
     * This ensures that this <tt>equals method works properly for obj parameters which are
     * different implementations of the <code>TabularData interface.
     * <br> 
     * @param  obj  the object to be compared for equality with this <code>TabularData instance;
     *
     * @return  <code>true if the specified object is equal to this TabularData instance.
     */
    public boolean equals(Object obj);

    /**
     * Returns the hash code value for this <code>TabularData instance.
     * <p>
     * The hash code of a <code>TabularData instance is the sum of the hash codes
     * of all elements of information used in <code>equals comparisons
     * (ie: its <i>tabular type and its content, where the content is defined as all the index to value mappings).
     * <p>
     * This ensures that <code> t1.equals(t2)  implies that  t1.hashCode()==t2.hashCode() 
     * for any two <code>TabularDataSupport instances t1 and t2,
     * as required by the general contract of the method
     * {@link Object#hashCode() Object.hashCode()}.
     *
     * @return  the hash code value for this <code>TabularDataSupport instance
     */
    public int hashCode();

    /**
     * Returns a string representation of this <code>TabularData instance.
     * <p>
     * The string representation consists of the name of the implementing class,
     * and the tabular type of this instance.
     *
     * @return  a string representation of this <code>TabularData instance
     */
    public String toString();

}

Other Java examples (source code examples)

Here is a short list of links related to this Java TabularData.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.