2005/5/9

     
 

Array.h

artefaktur
// -*- mode:C++; tab-width:2; c-basic-offset:2; indent-tabs-mode:nil -*- 
//
// Copyright (C) 2000-2005 by Roger Rene Kommer / artefaktur, Kassel, Germany.
// 
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public License (LGPL).
// 
// 
// 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 
// License ACDK-FreeLicense document enclosed in the distribution
// for more for more details.
// This file is part of the Artefaktur Component Development Kit:
//                         ACDK
// 
// Please refer to
// - http://www.acdk.de
// - http://www.artefaktur.com
// - http://acdk.sourceforge.net
// for more information.
// 
// $Header: /cvsroot/acdk/acdk/acdk_sql/src/acdk/sql/Array.h,v 1.13 2005/04/05 23:21:54 kommer Exp $
#ifndef acdk_sql_Array_h
#define acdk_sql_Array_h

#include "sql.h"
#include <acdk/util/Date.h>
#include <acdk/util/Map.h>


namespace acdk {
namespace sql {


ACDK_DECL_INTERFACE(Array);

class ACDK_SQL_PUBLIC Array
      ACDK_INTERFACEBASE
{
  ACDK_WITH_METAINFO(Array)
public:
  /**
  * This method returns the name of the SQL type of the elements in this
  * array.  This name is database specific.
  *
  * @param The name of the SQL type of the elements in this array.
  *
  * @exception SQLException If an error occurs.
  */
  virtual RString getBaseTypeName() THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns the JDBC type identifier of the elements in this
  * array.  This will be one of the values defined in the <code>Types</code>
  * class.
  *
  * @return The JDBC type of the elements in this array.
  *
  * @exception SQLException If an error occurs.
  * 
  * @see Types
  */
  virtual int getBaseType() THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns the contents of this array.  This object returned
  * will be an array of Java objects of the appropriate types.
  *
  * @return The contents of the array as an array of Java objects.
  *
  * @exception SQLException If an error occurs.
  */
  virtual acdk::lang::Object getArray() THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns the contents of this array.  The specified
  * <code>Map</code> will be used to override selected mappings between
  * SQL types and Java classes.
  * 
  * @param map A mapping of SQL types to Java classes.
  *
  * @return The contents of the array as an array of Java objects.
  *
  * @exception SQLException If an error occurs.
  */
  virtual acdk::lang::Object getArray(IN(acdk::util::RMap) map) THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns a portion of this array starting at index
  * <code>offset</code> into the array and continuing for <code>length</code>
  * elements.  Fewer than the requested number of elements will be
  * returned if the array does not contain the requested number of elements.
  * The object returned will be an array of Java objects of
  * the appropriate types.
  *
  * @param offset The offset into this array to start returning elements from.
  * @param count The requested number of elements to return.
  *
  * @return The requested portion of the array.
  *
  * @exception SQLException If an error occurs.
  */
  virtual acdk::lang::Object getArray(int offset, int count) THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns a portion of this array starting at index
  * <code>offset</code> into the array and continuing for <code>length</code>
  * elements.  Fewer than the requested number of elements will be
  * returned if the array does not contain the requested number of elements.
  * The object returned will be an array of Java objects.  The specified
  * <code>Map</code> will be used for overriding selected SQL type to
  * Java class mappings.
  *
  * @param offset The offset into this array to start returning elements from.
  * @param count The requested number of elements to return.
  * @param map A mapping of SQL types to Java classes.
  *
  * @return The requested portion of the array.
  *
  * @exception SQLException If an error occurs.
  */
  virtual acdk::lang::Object getArray(int index, int count, IN(acdk::util::RMap) map) THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns the elements in the array as a <code>ResultSet</code>.
  * Each row of the result set will have two columns.  The first will be
  * the index into the array of that row's contents.  The second will be
  * the actual value of that array element.
  *
  * @return The elements of this array as a <code>ResultSet</code>.
  *
  * @exception SQLException If an error occurs.
  *
  * @see ResultSet
  */
  virtual RResultSet getResultSet() THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns the elements in the array as a <code>ResultSet</code>.
  * Each row of the result set will have two columns.  The first will be
  * the index into the array of that row's contents.  The second will be
  * the actual value of that array element.  The specified <code>Map</code>
  * will be used to override selected default mappings of SQL types to
  * Java classes.
  *
  * @param map A mapping of SQL types to Java classes.
  *
  * @return The elements of this array as a <code>ResultSet</code>.
  *
  * @exception SQLException If an error occurs.
  *
  * @see ResultSet
  */
  virtual RResultSet getResultSet(IN(acdk::util::RMap) map) THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns a portion of the array as a <code>ResultSet</code>.
  * The returned portion will start at index <code>offset</code> into the
  * array and up to <code>length</code> elements will be returned.
  * <p>
  * Each row of the result set will have two columns.  The first will be
  * the index into the array of that row's contents.  The second will be
  * the actual value of that array element.
  *
  * @param offset The index into the array to start returning elements from.
  * @param length The requested number of elements to return.
  *
  * @return The requested elements of this array as a <code>ResultSet</code>.
  *
  * @exception SQLException If an error occurs.
  *
  * @see ResultSet
  */
  virtual RResultSet getResultSet(int index, int count) THROWS1(RSQLException) = 0;

/*************************************************************************/

/**
  * This method returns a portion of the array as a <code>ResultSet</code>.
  * The returned portion will start at index <code>offset</code> into the
  * array and up to <code>length</code> elements will be returned.
  * <p>
  * Each row of the result set will have two columns.  The first will be
  * the index into the array of that row's contents.  The second will be
  * the actual value of that array element.  The specified <code>Map</code>
  * will be used to override selected default mappings of SQL types to
  * Java classes.
  *
  * @param offset The index into the array to start returning elements from.
  * @param length The requested number of elements to return.
  * @param map A mapping of SQL types to Java classes.
  *
  * @return The requested elements of this array as a <code>ResultSet</code>.
  *
  * @exception SQLException If an error occurs.
  *
  * @see ResultSet
  */
  virtual RResultSet getResultSet(int index, int count, IN(acdk::util::RMap) map) THROWS1(RSQLException) = 0;

};
    


} // sql
} // acdk
#endif //acdk_sql_Array_h