groovy.sql
Class GroovyResultSetExtension

java.lang.Object
  extended by groovy.lang.GroovyObjectSupport
      extended by groovy.sql.GroovyResultSetExtension
All Implemented Interfaces:
GroovyObject

public class GroovyResultSetExtension
extends GroovyObjectSupport

GroovyResultSetExtension implements additional logic for ResultSet. Due to the version incompatibility between java6 and java5 this methods are moved here from the original GroovyResultSet class. The methods in this class are used by the proxy GroovyResultSetProxy, which will try to invoke methods on this class before invokeing it on ResultSet.

This class is not intended to be used directly. Should be used through GroovyResultSetProxy only!

Author:
Jochen Theodorou
See Also:
GroovyResultSet, GroovyResultSetProxy

Constructor Summary
GroovyResultSetExtension(ResultSet set)
          Creats a GroovyResultSet implementation-
 
Method Summary
 void add(Map values)
          Adds a new row to the result set
 void eachRow(Closure closure)
          Call the closure once for each row in the result set.
 Object getAt(int index)
          Supports integer based subscript operators for accessing at numbered columns starting at zero.
 Object getProperty(String columnName)
          Gets the value of the designated column in the current row of as an Object.
protected  ResultSet getResultSet()
          Gets the current result set.
 Object invokeMethod(String name, Object args)
          Invokes the given method.
 boolean next()
          Moves the cursor down one row from its current position.
protected  int normalizeIndex(int index)
          Takes a zero based index and convert it into an SQL based 1 based index.
 boolean previous()
          Moves the cursor to the previous row in this getResultSet() object.
 void putAt(int index, Object newValue)
          Supports integer based subscript operators for updating the values of numbered columns starting at zero.
 void setProperty(String columnName, Object newValue)
          Updates the designated column with an Object value.
 String toString()
           
 
Methods inherited from class groovy.lang.GroovyObjectSupport
getMetaClass, setMetaClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GroovyResultSetExtension

public GroovyResultSetExtension(ResultSet set)
Creats a GroovyResultSet implementation-

Parameters:
set - the result set
Method Detail

getResultSet

protected ResultSet getResultSet()
                          throws SQLException
Gets the current result set.

Returns:
the result set
Throws:
SQLException - if the result set can not be returned

toString

public String toString()
Overrides:
toString in class Object

invokeMethod

public Object invokeMethod(String name,
                           Object args)
Description copied from interface: GroovyObject
Invokes the given method.

Specified by:
invokeMethod in interface GroovyObject
Overrides:
invokeMethod in class GroovyObjectSupport
Parameters:
name - the name of the method to call
args - the arguments to use for the method call
Returns:
the result of invoking the method

getProperty

public Object getProperty(String columnName)
Gets the value of the designated column in the current row of as an Object.

Specified by:
getProperty in interface GroovyObject
Overrides:
getProperty in class GroovyObjectSupport
Parameters:
columnName - the SQL name of the column
Returns:
the returned column value
Throws:
MissingPropertyException - if an SQLException happens while getting the object
See Also:
GroovyObject.getProperty(java.lang.String), ResultSet.getObject(java.lang.String)

setProperty

public void setProperty(String columnName,
                        Object newValue)
Updates the designated column with an Object value.

Specified by:
setProperty in interface GroovyObject
Overrides:
setProperty in class GroovyObjectSupport
Parameters:
columnName - the SQL name of the column
newValue - the updated value
Throws:
MissingPropertyException - if an SQLException happens while setting the new value
See Also:
GroovyObject.setProperty(java.lang.String, java.lang.Object), ResultSet.updateObject(java.lang.String, java.lang.Object)

getAt

public Object getAt(int index)
             throws SQLException
Supports integer based subscript operators for accessing at numbered columns starting at zero. Negative indices are supported, they will count from the last column backwards.

Parameters:
index - is the number of the column to look at starting at 1
Returns:
the returned column value
Throws:
SQLException - if something goes wrong
See Also:
ResultSet.getObject(int)

putAt

public void putAt(int index,
                  Object newValue)
           throws SQLException
Supports integer based subscript operators for updating the values of numbered columns starting at zero. Negative indices are supported, they will count from the last column backwards.

Parameters:
index - is the number of the column to look at starting at 1
newValue - the updated value
Throws:
SQLException - if something goes wrong
See Also:
ResultSet.updateObject(java.lang.String, java.lang.Object)

add

public void add(Map values)
         throws SQLException
Adds a new row to the result set

Parameters:
values - a map containing the mappings for column names and values
Throws:
SQLException - if something goes wrong
See Also:
ResultSet.insertRow(), ResultSet.updateObject(java.lang.String, java.lang.Object), ResultSet.moveToInsertRow()

normalizeIndex

protected int normalizeIndex(int index)
                      throws SQLException
Takes a zero based index and convert it into an SQL based 1 based index. A negative index will count backwards from the last column.

Parameters:
index - the raw requested index (may be negative)
Returns:
a JDBC index
Throws:
SQLException - if some exception occurs finding out the column count

eachRow

public void eachRow(Closure closure)
             throws SQLException
Call the closure once for each row in the result set.

Parameters:
closure - the closure to perform on each row
Throws:
SQLException - if something goes wrong

next

public boolean next()
             throws SQLException
Moves the cursor down one row from its current position. A getResultSet() cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

If an input stream is open for the current row, a call to the method next will implicitly close it. A getResultSet() object's warning chain is cleared when a new row is read.

Returns:
true if the new current row is valid; false if there are no more rows
Throws:
SQLException - if a database access error occurs

previous

public boolean previous()
                 throws SQLException
Moves the cursor to the previous row in this getResultSet() object.

Returns:
true if the cursor is on a valid row; false if it is off the result set
Throws:
SQLException - if a database access error occurs or the result set type is TYPE_FORWARD_ONLY
Since:
1.2

Copyright © 2003-2010 The Codehaus. All rights reserved.