javax.resource.cci.Record Maven / Gradle / Ivy
Show all versions of ironjacamar-spec-api Show documentation
/*
* IronJacamar, a Java EE Connector Architecture implementation
* Copyright 2008-2009, Red Hat Inc, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This 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 software 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 software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package javax.resource.cci;
/** The javax.resource.cci.Record
interface is the base
* interface for the representation of an input or output to the
* execute methods defined on an Interaction.
*
* The Record interface can be extended to form a one of the
* following representations:
*
* - MappedRecord: A key-value pair based collection represents
* a record. This interface is based on the
java.util.Map
* - IndexedRecord:An ordered and indexed collection represents
* a record. This interface is based on the
java.util.List
.
* - JavaBean based representation of an EIS abstraction: An
* example is a custom record generated to represent a purchase
* order in an ERP system.
*
-
javax.resource.cci.ResultSet
: This interface
* extends both java.sql.ResultSet
and
* javax.resource.cci.Record
. A ResultSet
* represents tabular data.
*
*
* 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.
* @param other The other object
* @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;
}