Android
android.database
public abstract class

android.database.AbstractCursor

java.lang.Object
android.database.AbstractCursor CrossProcessCursor

This is an abstract cursor class that handles a lot of the common code that all cursors need to deal with and is provided for convenience reasons.

Nested Classes
AbstractCursor.SelfContentObserver Cursors use this class to track changes others make to their URI. 
Known Direct Subclasses
Known Indirect Subclasses

Summary

Fields

protected      boolean  mClosed   
protected      ContentResolver  mContentResolver   
protected      Long  mCurrentRowID   
protected      int  mPos   
protected      int  mRowIdColumnIndex  This must be set to the index of the row ID column by any subclass that wishes to support updates. 
protected      HashMap<LongMap<StringObject>>  mUpdatedRows  This HashMap contains a mapping from Long rowIDs to another Map that maps from String column names to new values. 

Public Constructors

            AbstractCursor()

Public Methods

          void  close()
Closes the Cursor, releasing all of its resources and making it completely invalid.
          void  copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)
Retrieves the requested column text and stores it in the buffer provided.
          void  deactivate()
Deactivates the Cursor, making all calls on it fail until requery() is called.
          void  deactivateInternal()
          void  fillWindow(int position, CursorWindow window)
Copy data from cursor to CursorWindow
          byte[]  getBlob(int column)
Returns the value of the requested column as a byte array.
          int  getColumnCount()
Return total number of columns
          int  getColumnIndex(String columnName)
Returns the zero-based index for the given column name.
          int  getColumnIndexOrThrow(String columnName)
Returns the zero-based index for the given column name.
          String  getColumnName(int columnIndex)
Returns the column name at the given zero-based column index.
abstract          String[]  getColumnNames()
Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
abstract          int  getCount()
Returns the numbers of rows in the cursor.
abstract          double  getDouble(int column)
Returns the value of the requested column as a double.
          Bundle  getExtras()
Returns a bundle of extra values.
abstract          float  getFloat(int column)
Returns the value of the requested column as a float.
abstract          int  getInt(int column)
Returns the value of the requested column as an int.
abstract          long  getLong(int column)
Returns the value of the requested column as a long.
    final      int  getPosition()
Returns the current position of the cursor in the row set.
abstract          short  getShort(int column)
Returns the value of the requested column as a short.
abstract          String  getString(int column)
Returns the value of the requested column as a String.
          boolean  getWantsAllOnMoveCalls()
onMove() will only be called across processes if this method returns true.
          CursorWindow  getWindow()
returns a pre-filled window, return NULL if no such window
    final      boolean  isAfterLast()
Returns whether the cursor is pointing to the position after the last row.
    final      boolean  isBeforeFirst()
Returns whether the cursor is pointing to the position before the first row.
          boolean  isClosed()
return true if the cursor is closed
    final      boolean  isFirst()
Returns whether the cursor is pointing to the first row.
    final      boolean  isLast()
Returns whether the cursor is pointing to the last row.
abstract          boolean  isNull(int column)
Returns true if the value in the indicated column is null.
    final      boolean  move(int offset)
Move the cursor by a relative amount, forward or backward, from the current position.
    final      boolean  moveToFirst()
Move the cursor to the first row.
    final      boolean  moveToLast()
Move the cursor to the last row.
    final      boolean  moveToNext()
Move the cursor to the next row.
    final      boolean  moveToPosition(int position)
Move the cursor to an absolute position.
    final      boolean  moveToPrevious()
Move the cursor to the previous row.
          boolean  onMove(int oldPosition, int newPosition)
This function is called every time the cursor is successfully scrolled to a new position, giving the subclass a chance to update any state it may have.
          void  registerContentObserver(ContentObserver observer)
Register an observer that is called when changes happen to the content backing this cursor.
          void  registerDataSetObserver(DataSetObserver observer)
Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via requery(), deactivate(), or close().
          boolean  requery()
Performs the query that created the cursor again, refreshing its contents.
          Bundle  respond(Bundle extras)
This is an out-of-band way for the the user of a cursor to communicate with the cursor.
          void  setNotificationUri(ContentResolver cr, Uri notifyUri)
Specifies a content URI to watch for changes.
          void  unregisterContentObserver(ContentObserver observer)
Unregister an observer that has previously been registered with this cursor via registerContentObserver(ContentObserver).
          void  unregisterDataSetObserver(DataSetObserver observer)
Unregister an observer that has previously been registered with this cursor via registerContentObserver(ContentObserver).

Protected Methods

          void  checkPosition()
This function throws CursorIndexOutOfBoundsException if the cursor position is out of bounds.
          void  finalize()
Called by the virtual machine when there are no longer any (non-weak) references to the receiver.
          Object  getUpdatedField(int columnIndex)
This function returns the uncommitted updated value for the field at columnIndex.
          boolean  isFieldUpdated(int columnIndex)
This function returns true if the field has been updated and is used in conjunction with getUpdatedField(int) to allow subclasses to support reading uncommitted updates.
          void  onChange(boolean selfChange)
Subclasses must call this method when they finish committing updates to notify all observers.
Methods inherited from class java.lang.Object
Methods inherited from interface android.database.CrossProcessCursor
Methods inherited from interface android.database.Cursor

Details

Fields

protected boolean mClosed

protected ContentResolver mContentResolver

protected Long mCurrentRowID

protected int mPos

protected int mRowIdColumnIndex

This must be set to the index of the row ID column by any subclass that wishes to support updates.

protected HashMap<LongMap<StringObject>> mUpdatedRows

This HashMap contains a mapping from Long rowIDs to another Map that maps from String column names to new values. A NULL value means to remove an existing value, and all numeric values are in their Java class forms, i.e. Integer, Long, Float, etc.

Public Constructors

public AbstractCursor()

Public Methods

public void close()

Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike deactivate() a call to requery() will not make the Cursor valid again.

public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer)

Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data

public void deactivate()

Deactivates the Cursor, making all calls on it fail until requery() is called. Inactive Cursors use fewer resources than active Cursors. Calling requery() will make the cursor active again.

public void deactivateInternal()

public void fillWindow(int position, CursorWindow window)

Copy data from cursor to CursorWindow

Parameters

position start position of data

public byte[] getBlob(int column)

Returns the value of the requested column as a byte array.

If the native content of that column is not blob exception may throw

public int getColumnCount()

Return total number of columns

public int getColumnIndex(String columnName)

Returns the zero-based index for the given column name.

public int getColumnIndexOrThrow(String columnName)

Returns the zero-based index for the given column name.

public String getColumnName(int columnIndex)

Returns the column name at the given zero-based column index.

public abstract String[] getColumnNames()

Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.

public abstract int getCount()

Returns the numbers of rows in the cursor.

public abstract double getDouble(int column)

Returns the value of the requested column as a double.

If the native content of that column is not numeric the result will be the result of passing the column value to Double.valueOf(x).

public Bundle getExtras()

Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.

These values may only change when requery is called.

public abstract float getFloat(int column)

Returns the value of the requested column as a float.

If the native content of that column is not numeric the result will be the result of passing the column value to Float.valueOf(x).

public abstract int getInt(int column)

Returns the value of the requested column as an int.

If the native content of that column is not numeric the result will be the result of passing the column value to Integer.valueOf(x).

public abstract long getLong(int column)

Returns the value of the requested column as a long.

If the native content of that column is not numeric the result will be the result of passing the column value to Long.valueOf(x).

public final int getPosition()

Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().

public abstract short getShort(int column)

Returns the value of the requested column as a short.

If the native content of that column is not numeric the result will be the result of passing the column value to Short.valueOf(x).

public abstract String getString(int column)

Returns the value of the requested column as a String.

If the native content of that column is not text the result will be the result of passing the column value to String.valueOf(x).

public boolean getWantsAllOnMoveCalls()

onMove() will only be called across processes if this method returns true.

public CursorWindow getWindow()

returns a pre-filled window, return NULL if no such window

public final boolean isAfterLast()

Returns whether the cursor is pointing to the position after the last row.

public final boolean isBeforeFirst()

Returns whether the cursor is pointing to the position before the first row.

public boolean isClosed()

return true if the cursor is closed

public final boolean isFirst()

Returns whether the cursor is pointing to the first row.

public final boolean isLast()

Returns whether the cursor is pointing to the last row.

public abstract boolean isNull(int column)

Returns true if the value in the indicated column is null.

public final boolean move(int offset)

Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.

This method will return true if the requested destination was reachable, otherwise, it returns false. For example, if the cursor is at currently on the second entry in the result set and move(-5) is called, the position will be pinned at -1, and false will be returned.

public final boolean moveToFirst()

Move the cursor to the first row.

This method will return false if the cursor is empty.

public final boolean moveToLast()

Move the cursor to the last row.

This method will return false if the cursor is empty.

public final boolean moveToNext()

Move the cursor to the next row.

This method will return false if the cursor is already past the last entry in the result set.

public final boolean moveToPosition(int position)

Move the cursor to an absolute position. The valid range of values is -1 <= position <= count.

This method will return true if the request destination was reachable, otherwise, it returns false.

public final boolean moveToPrevious()

Move the cursor to the previous row.

This method will return false if the cursor is already before the first entry in the result set.

public boolean onMove(int oldPosition, int newPosition)

This function is called every time the cursor is successfully scrolled to a new position, giving the subclass a chance to update any state it may have. If it returns false the move function will also do so and the cursor will scroll to the beforeFirst position.

Parameters

oldPosition the position that we're moving from
newPosition the position that we're moving to

Returns

  • true if the move is successful, false otherwise

public void registerContentObserver(ContentObserver observer)

Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until requery() is called.

public void registerDataSetObserver(DataSetObserver observer)

Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via requery(), deactivate(), or close().

public boolean requery()

Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to deactivate().

public Bundle respond(Bundle extras)

This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.

One use of this is to tell a cursor that it should retry its network request after it reported an error.

public void setNotificationUri(ContentResolver cr, Uri notifyUri)

Specifies a content URI to watch for changes.

Parameters

cr The content resolver from the caller's context.
notifyUri The URI to watch for changes. This can be a specific row URI, or a base URI for a whole class of content.

public void unregisterContentObserver(ContentObserver observer)

Unregister an observer that has previously been registered with this cursor via registerContentObserver(ContentObserver).

public void unregisterDataSetObserver(DataSetObserver observer)

Unregister an observer that has previously been registered with this cursor via registerContentObserver(ContentObserver).

Protected Methods

protected void checkPosition()

This function throws CursorIndexOutOfBoundsException if the cursor position is out of bounds. Subclass implementations of the get functions should call this before attempting to retrieve data.

protected void finalize()

Called by the virtual machine when there are no longer any (non-weak) references to the receiver. Subclasses can use this facility to guarantee that any associated resources are cleaned up before the receiver is garbage collected. Uncaught exceptions which are thrown during the running of the method cause it to terminate immediately, but are otherwise ignored.

Note: The virtual machine assumes that the implementation in class Object is empty.

protected Object getUpdatedField(int columnIndex)

This function returns the uncommitted updated value for the field at columnIndex. NOTE: This function and isFieldUpdated(int) should be called together inside of a block synchronized on mUpdatedRows.

Parameters

columnIndex the column index of the field to retrieve

Returns

  • the updated value

protected boolean isFieldUpdated(int columnIndex)

This function returns true if the field has been updated and is used in conjunction with getUpdatedField(int) to allow subclasses to support reading uncommitted updates. NOTE: This function and getUpdatedField(int) should be called together inside of a block synchronized on mUpdatedRows.

Parameters

columnIndex the column index of the field to check

Returns

  • true if the field has been updated, false otherwise

protected void onChange(boolean selfChange)

Subclasses must call this method when they finish committing updates to notify all observers.
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:48