org.postgresql.pljava.jdbc
Class TriggerResultSet

java.lang.Object
  extended by org.postgresql.pljava.jdbc.AbstractResultSet
      extended by org.postgresql.pljava.jdbc.ObjectResultSet
          extended by org.postgresql.pljava.jdbc.SingleRowResultSet
              extended by org.postgresql.pljava.jdbc.TriggerResultSet
All Implemented Interfaces:
ResultSet

public class TriggerResultSet
extends SingleRowResultSet

A single row, updateable ResultSet specially made for triggers. The changes made to this ResultSet are remembered and converted to a SPI_modify_tuple call prior to function return.

Author:
Thomas Hallgren

Field Summary
 
Fields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
 
Constructor Summary
TriggerResultSet(TupleDesc tupleDesc, Tuple tuple, boolean readOnly)
           
 
Method Summary
 void cancelRowUpdates()
          Cancel all changes made to the Tuple.
 void close()
          Cancels all changes but doesn't really close the set.
 Object[] getChangeIndexesAndValues()
          Return a 2 element array describing the changes that has been made to the contained Tuple.
 int getConcurrency()
          Returns the concurrency for this ResultSet.
protected  Object getObjectValue(int columnIndex)
           
protected  TupleDesc getTupleDesc()
           
 boolean rowUpdated()
          Returns true if this row has been updated.
 void updateObject(int columnIndex, Object x)
          Store this change for later use
 
Methods inherited from class org.postgresql.pljava.jdbc.SingleRowResultSet
absolute, afterLast, beforeFirst, deleteRow, findColumn, first, getFetchDirection, getFetchSize, getMetaData, getRow, getType, insertRow, isAfterLast, isBeforeFirst, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, relative, rowDeleted, rowInserted, setFetchDirection, setFetchSize, updateObject, updateRow
 
Methods inherited from class org.postgresql.pljava.jdbc.ObjectResultSet
clearWarnings, getArray, getAsciiStream, getBigDecimal, getBigDecimal, getBinaryStream, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getClob, getDate, getDate, getDouble, getFloat, getInt, getLong, getNumber, getObject, getObject, getObjectValue, getRef, getShort, getString, getTime, getTime, getTimestamp, getTimestamp, getUnicodeStream, getURL, getValue, getValue, getWarnings, refreshRow, updateArray, updateAsciiStream, updateBigDecimal, updateBinaryStream, updateBlob, updateBoolean, updateByte, updateBytes, updateCharacterStream, updateClob, updateDate, updateDouble, updateFloat, updateInt, updateLong, updateNull, updateRef, updateShort, updateString, updateTime, updateTimestamp, wasNull
 
Methods inherited from class org.postgresql.pljava.jdbc.AbstractResultSet
getArray, getAsciiStream, getBigDecimal, getBigDecimal, getBinaryStream, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getClob, getCursorName, getDate, getDate, getDouble, getFloat, getInt, getLong, getObject, getObject, getRef, getShort, getStatement, getString, getTime, getTime, getTimestamp, getTimestamp, getUnicodeStream, getURL, updateArray, updateAsciiStream, updateBigDecimal, updateBinaryStream, updateBlob, updateBoolean, updateByte, updateBytes, updateCharacterStream, updateClob, updateDate, updateDouble, updateFloat, updateInt, updateLong, updateNull, updateObject, updateObject, updateRef, updateShort, updateString, updateTime, updateTimestamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TriggerResultSet

public TriggerResultSet(TupleDesc tupleDesc,
                        Tuple tuple,
                        boolean readOnly)
                 throws SQLException
Throws:
SQLException
Method Detail

cancelRowUpdates

public void cancelRowUpdates()
                      throws SQLException
Cancel all changes made to the Tuple.

Throws:
SQLException

close

public void close()
           throws SQLException
Cancels all changes but doesn't really close the set.

Throws:
SQLException

getConcurrency

public int getConcurrency()
                   throws SQLException
Returns the concurrency for this ResultSet.

Specified by:
getConcurrency in interface ResultSet
Overrides:
getConcurrency in class SingleRowResultSet
Throws:
SQLException
See Also:
ResultSet.getConcurrency()

rowUpdated

public boolean rowUpdated()
                   throws SQLException
Returns true if this row has been updated.

Throws:
SQLException

updateObject

public void updateObject(int columnIndex,
                         Object x)
                  throws SQLException
Store this change for later use

Throws:
SQLException

getChangeIndexesAndValues

public Object[] getChangeIndexesAndValues()
Return a 2 element array describing the changes that has been made to the contained Tuple. The first element is an int[] containing the index of each changed value. The second element is an Object[] with containing the corresponding values.

Returns:
The 2 element array or null if no change has been made.

getObjectValue

protected Object getObjectValue(int columnIndex)
                         throws SQLException
Specified by:
getObjectValue in class ObjectResultSet
Throws:
SQLException

getTupleDesc

protected final TupleDesc getTupleDesc()
Specified by:
getTupleDesc in class SingleRowResultSet