Quadcap Embeddable Database

com.quadcap.sql.CursorImpl Class Reference

Inheritance diagram for com.quadcap.sql.CursorImpl:

com.quadcap.sql.TupleImpl com.quadcap.sql.Cursor com.quadcap.sql.Tuple Externalizable com.quadcap.sql.Tuple com.quadcap.sql.BC_Cursor com.quadcap.sql.FilterCursor com.quadcap.sql.ItemsCursor com.quadcap.sql.JoinCursor com.quadcap.sql.MergeCursor com.quadcap.sql.StaticCursor com.quadcap.sql.ViewCursor com.quadcap.sql.DistinctCursor com.quadcap.sql.IndexCursor com.quadcap.sql.OrderByCursor com.quadcap.sql.AggregateCursor com.quadcap.sql.GroupByCursor com.quadcap.sql.HavingCursor com.quadcap.sql.MultiCursor com.quadcap.sql.PredicateCursor com.quadcap.sql.RenameCursor com.quadcap.sql.JoinCrossCursor com.quadcap.sql.JoinInnerCursor com.quadcap.sql.JoinUnionCursor com.quadcap.sql.meta.MetaCursor List of all members.

Detailed Description

Base cursor implementation class.

Author:
Stan Bailes

Definition at line 50 of file CursorImpl.java.

Public Member Functions

 CursorImpl (Session session, String name)
 Construct a cursor from a session and a name.

 CursorImpl (Session session, String name, Cursor outer)
 Construct a cursor from a session, name, and outer cursor.

Session getSession ()
 Return the cursor's session.

abstract Row getRow () throws SQLException
 Derived class implements this function to return the current cursor row.

void insertRow (Row row) throws SQLException
 Handle insert.

abstract void updateRow (Row row) throws SQLException
 Replace the current cursor row with the specified row.

abstract void deleteRow () throws SQLException
 Delete the current cursor row.

abstract void beforeFirst () throws SQLException
 Position the cursor before the first row.

abstract void afterLast () throws SQLException
 Position the cursor after the last row.

abstract boolean next () throws SQLException
 Advance the cursor and return true if we advanced to a valid row.

boolean prev () throws SQLException
 Move the cursor back one row and return true if we moved back to a valid row.

abstract boolean isWritable (int column) throws SQLException
 Return true if the specified column is writable.

abstract void close () throws SQLException
 Close the cursor and free up any resources (including closing the cursor's transaction if that is feasible) used by the cursor.

void finalize () throws Throwable
Column getColumn (String columnName) throws SQLException
 Return the column with the specified name/shortname.

void setOuterCursor (Cursor c)
 Set the cursor context in which this subquery is executing.

Cursor getOuterCursor ()
 Return the cursor in the enclosing context (this applies if we're in a sub-query, for example).

boolean absolute (int row) throws SQLException
 Position the cursor to the specified absolute row.

void reset (Expression expr, Cursor outer) throws SQLException
 An attempt at an API to allow cursor reuse.

Table getTable ()
 Some cursors are, or can be viewed as, tables.

long getRowId ()
 Some cursors have rows where the rows can be identified by row id, and sometimes the cursors even know the row id for the current row.

String toString ()
 Return a string representation for debugging.


Protected Attributes

Session session = null
Cursor outer

Static Package Functions

void dumpCursor (String label, Cursor c) throws SQLException

Private Member Functions

 CursorImpl ()
 Oh no, you don't...


Constructor & Destructor Documentation

com.quadcap.sql.CursorImpl.CursorImpl  )  [private]
 

Oh no, you don't...

Definition at line 57 of file CursorImpl.java.

com.quadcap.sql.CursorImpl.CursorImpl Session  session,
String  name
 

Construct a cursor from a session and a name.

Definition at line 62 of file CursorImpl.java.

com.quadcap.sql.CursorImpl.CursorImpl Session  session,
String  name,
Cursor  outer
 

Construct a cursor from a session, name, and outer cursor.

Definition at line 70 of file CursorImpl.java.


Member Function Documentation

boolean com.quadcap.sql.CursorImpl.absolute int  row  )  throws SQLException
 

Position the cursor to the specified absolute row.

The first row is row '1', and the last row is '-1', as in JDBC.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Definition at line 135 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.absolute(), com.quadcap.sql.CursorImpl.afterLast(), com.quadcap.sql.CursorImpl.beforeFirst(), com.quadcap.sql.CursorImpl.next(), and com.quadcap.sql.CursorImpl.prev().

Referenced by com.quadcap.sql.CursorImpl.absolute().

abstract void com.quadcap.sql.CursorImpl.afterLast  )  throws SQLException [pure virtual]
 

Position the cursor after the last row.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CursorImpl.absolute().

abstract void com.quadcap.sql.CursorImpl.beforeFirst  )  throws SQLException [pure virtual]
 

Position the cursor before the first row.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CursorImpl.absolute().

abstract void com.quadcap.sql.CursorImpl.close  )  throws SQLException [pure virtual]
 

Close the cursor and free up any resources (including closing the cursor's transaction if that is feasible) used by the cursor.

Exceptions:
SQLException may be thrown

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.DistinctCursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.JoinInnerCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.OrderByCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CursorImpl.finalize().

abstract void com.quadcap.sql.CursorImpl.deleteRow  )  throws SQLException [pure virtual]
 

Delete the current cursor row.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

void com.quadcap.sql.CursorImpl.dumpCursor String  label,
Cursor  c
throws SQLException [static, package]
 

Definition at line 177 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.dumpCursor().

Referenced by com.quadcap.sql.CursorImpl.dumpCursor().

void com.quadcap.sql.CursorImpl.finalize  )  throws Throwable
 

Definition at line 107 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.close().

Column com.quadcap.sql.CursorImpl.getColumn String  columnName  )  throws SQLException
 

Return the column with the specified name/shortname.

Reimplemented from com.quadcap.sql.TupleImpl.

Reimplemented in com.quadcap.sql.StaticCursor.

Definition at line 115 of file CursorImpl.java.

References com.quadcap.sql.Tuple.getColumn(), com.quadcap.sql.CursorImpl.getColumn(), and com.quadcap.sql.CursorImpl.outer.

Referenced by com.quadcap.sql.CursorImpl.getColumn().

Cursor com.quadcap.sql.CursorImpl.getOuterCursor  ) 
 

Return the cursor in the enclosing context (this applies if we're in a sub-query, for example).

Implements com.quadcap.sql.Cursor.

Definition at line 127 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.outer.

abstract Row com.quadcap.sql.CursorImpl.getRow  )  throws SQLException [pure virtual]
 

Derived class implements this function to return the current cursor row.

Implementation required.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

long com.quadcap.sql.CursorImpl.getRowId  ) 
 

Some cursors have rows where the rows can be identified by row id, and sometimes the cursors even know the row id for the current row.

If you know, tell us here! If you don't know, just return 0.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, and com.quadcap.sql.MergeCursor.

Definition at line 149 of file CursorImpl.java.

Session com.quadcap.sql.CursorImpl.getSession  ) 
 

Return the cursor's session.

Implements com.quadcap.sql.Cursor.

Definition at line 79 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.session.

Table com.quadcap.sql.CursorImpl.getTable  ) 
 

Some cursors are, or can be viewed as, tables.

If your cursor is such a type, return your table here, otherwise simply return null.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.IndexCursor.

Definition at line 148 of file CursorImpl.java.

void com.quadcap.sql.CursorImpl.insertRow Row  row  )  throws SQLException
 

Handle insert.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, and com.quadcap.sql.ViewCursor.

Definition at line 90 of file CursorImpl.java.

abstract boolean com.quadcap.sql.CursorImpl.isWritable int  column  )  throws SQLException [pure virtual]
 

Return true if the specified column is writable.

Parameters:
column the (one-based) column number
Exceptions:
SQLException may be thrown

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

abstract boolean com.quadcap.sql.CursorImpl.next  )  throws SQLException [pure virtual]
 

Advance the cursor and return true if we advanced to a valid row.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.JoinUnionCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.PredicateCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.

Referenced by com.quadcap.sql.CursorImpl.absolute().

boolean com.quadcap.sql.CursorImpl.prev  )  throws SQLException
 

Move the cursor back one row and return true if we moved back to a valid row.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.MultiCursor, com.quadcap.sql.PredicateCursor, and com.quadcap.sql.StaticCursor.

Definition at line 100 of file CursorImpl.java.

Referenced by com.quadcap.sql.CursorImpl.absolute().

void com.quadcap.sql.CursorImpl.reset Expression  expr,
Cursor  outer
throws SQLException
 

An attempt at an API to allow cursor reuse.

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.IndexCursor.

Definition at line 146 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.reset().

Referenced by com.quadcap.sql.CursorImpl.reset().

void com.quadcap.sql.CursorImpl.setOuterCursor Cursor  c  ) 
 

Set the cursor context in which this subquery is executing.

Parameters:
outer the cursor from the outer context

Implements com.quadcap.sql.Cursor.

Reimplemented in com.quadcap.sql.FilterCursor, and com.quadcap.sql.ItemsCursor.

Definition at line 123 of file CursorImpl.java.

References com.quadcap.sql.CursorImpl.outer, and com.quadcap.sql.CursorImpl.setOuterCursor().

Referenced by com.quadcap.sql.CursorImpl.setOuterCursor().

String com.quadcap.sql.CursorImpl.toString  ) 
 

Return a string representation for debugging.

Reimplemented from com.quadcap.sql.TupleImpl.

Reimplemented in com.quadcap.sql.DistinctCursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, and com.quadcap.sql.PredicateCursor.

Definition at line 152 of file CursorImpl.java.

References com.quadcap.sql.TupleImpl.getColumnCount(), com.quadcap.sql.Column.getName(), com.quadcap.sql.TupleImpl.getName(), and com.quadcap.sql.CursorImpl.outer.

Referenced by com.quadcap.sql.meta.MetaTables.makeRow().

abstract void com.quadcap.sql.CursorImpl.updateRow Row  row  )  throws SQLException [pure virtual]
 

Replace the current cursor row with the specified row.

Implements com.quadcap.sql.Cursor.

Implemented in com.quadcap.sql.AggregateCursor, com.quadcap.sql.BC_Cursor, com.quadcap.sql.FilterCursor, com.quadcap.sql.GroupByCursor, com.quadcap.sql.HavingCursor, com.quadcap.sql.IndexCursor, com.quadcap.sql.ItemsCursor, com.quadcap.sql.JoinCursor, com.quadcap.sql.MergeCursor, com.quadcap.sql.StaticCursor, and com.quadcap.sql.ViewCursor.


Member Data Documentation

Cursor com.quadcap.sql.CursorImpl.outer [protected]
 

Definition at line 52 of file CursorImpl.java.

Referenced by com.quadcap.sql.CursorImpl.getColumn(), com.quadcap.sql.CursorImpl.getOuterCursor(), com.quadcap.sql.CursorImpl.setOuterCursor(), and com.quadcap.sql.CursorImpl.toString().

Session com.quadcap.sql.CursorImpl.session = null [protected]
 

Definition at line 51 of file CursorImpl.java.

Referenced by com.quadcap.sql.CursorImpl.getSession().