blob: a7eb5a4e7fd6e3587c7a9c04f02206f5d8fc3f1e [file] [log] [blame]
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the license at
* https://glassfish.dev.java.net/public/CDDLv1.0.html or
* glassfish/bootstrap/legal/CDDLv1.0.txt.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at glassfish/bootstrap/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* you own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
*/
package javax.resource.cci;
/** The <code>javax.resource.cci.Record</code> interface is the base
* interface for the representation of an input or output to the
* execute methods defined on an Interaction.
*
* <p>The Record interface can be extended to form a one of the
* following representations:
* <UL>
* <LI> MappedRecord: A key-value pair based collection represents
* a record. This interface is based on the <code>java.util.Map</code>
* <LI> IndexedRecord:An ordered and indexed collection represents
* a record. This interface is based on the <code>java.util.List</code>.
* <LI> JavaBean based representation of an EIS abstraction: An
* example is a custom record generated to represent a purchase
* order in an ERP system.
* <LI> <code>javax.resource.cci.ResultSet</code>: This interface
* extends both <code>java.sql.ResultSet</code> and <code>
* javax.resource.cci.Record</code>. A ResultSet
* represents tabular data.
* </UL>
*
* <p>A MappedRecord or IndexedRecord can contain another Record. This
* means that MappedRecord and IndexedRecord can be used to create
* a hierarchical structure of any arbitrary depth. A basic Java
* type is used as the leaf element of a hierarchical structure
* represented by a MappedRecord or IndexedRecord.
*
* @author Rahul Sharma
* @version 0.8
* @see javax.resource.cci.Interaction
* @see java.sql.ResultSet
**/
public interface Record extends java.lang.Cloneable, java.io.Serializable {
/** Gets the name of the Record.
*
* @return String representing name of the Record
**/
public
String getRecordName();
/** Sets the name of the Record.
*
* @param name Name of the Record
**/
public
void setRecordName(String name);
/** Sets a short description string for the Record. This property
* is used primarily by application development tools.
*
* @param description Description of the Record
**/
public
void setRecordShortDescription(String description);
/** Gets a short description string for the Record. This property
* is used primarily by application development tools.
*
* @return String representing a short description of the Record
**/
public
String getRecordShortDescription();
/** Check if this instance is equal to another Record.
*
* @return true if two instances are equal
**/
public
boolean equals(Object other);
/** Returns the hash code for the Record instance.
*
* @return hash code
**/
public
int hashCode();
/** Creates and returns a copy of this object. The precise
* meaning of "copy" may depend on the class of the object.
*
* @return a clone of this instance.
* @throws CloneNotSupportedException
* If the object's class does not support the
* Cloneable interface Subclasses that override the
* clone method can also throw this exception to
* indicate that an instance cannot be cloned.
**/
public
Object clone() throws CloneNotSupportedException;
}