English | Site Directory

Android - An Open Handset Alliance Project

android.database
public abstract class

android.database.AbstractCursor

java.lang.Object
android.database.AbstractCursor Cursor

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      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  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  abortUpdates()
Reverts all updates made to the cursor since the last call to commitUpdates.
        void  close()
Closes the Cursor, releasing all of its resources and making it completely invalid.
        boolean  commitUpdates(Map values)
Atomically commits all updates to the backing store, as well as the updates included in values.
        boolean  commitUpdates()
Atomically commits all updates to the backing store.
abstract        int  count()
Returns the numbers of rows in the cursor.
        void  deactivate()
Deactivates the Cursor, making all calls on it fail until requery() is called.
        boolean  deleteRow()
Removes the row at the current cursor position from the underlying data store.
    final    boolean  first()
Move the cursor to the first row.
        int  getColumnIndex(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        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.
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.
        boolean  hasUpdates()
Returns true if there are pending updates that have not yet been committed.
    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.
    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  last()
Move the cursor to the last row.
    final    boolean  move(int offset)
Move the cursor by a relative amount, forward or backward, from the current position.
    final    boolean  moveTo(int position)
Move the cursor to an absolute position.
    final    boolean  next()
Move the cursor to the next row.
    final    int  position()
Returns the current position of the cursor in the row set.
    final    boolean  prev()
Move the cursor to the previous row.
        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.
        boolean  supportsUpdates()
Returns true if the cursor supports updates.
        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).
        boolean  update(int columnIndex, Object obj)
        boolean  updateDouble(int columnIndex, double value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateFloat(int columnIndex, float value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateInt(int columnIndex, int value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateLong(int columnIndex, long value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateShort(int columnIndex, short value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateString(int columnIndex, String value)
Updates the value for the given column in the row the cursor is currently pointing at.
        boolean  updateToNull(int columnIndex)
Removes the value for the given column in the row the cursor is currently pointing at.

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.
        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.
Methods inherited from class java.lang.Object
Methods inherited from interface android.database.Cursor

Details

Fields

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 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 abortUpdates()

Reverts all updates made to the cursor since the last call to commitUpdates.

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 boolean commitUpdates(Map values)

Atomically commits all updates to the backing store, as well as the updates included in values. After completion, this method leaves the data in an inconsistent state and you should call requery() before reading data from the cursor again.

public boolean commitUpdates()

Atomically commits all updates to the backing store. After completion, this method leaves the data in an inconsistent state and you should call requery() before reading data from the cursor again.

public abstract int count()

Returns the numbers of rows in the cursor.

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 boolean deleteRow()

Removes the row at the current cursor position from the underlying data store. After this method returns the cursor will be pointing to the row after the row that is deleted. This has the side effect of decrementing the result of count() by one.

public final boolean first()

Move the cursor to the first row.

This method will return false if the cursor is empty.

public int getColumnIndex(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 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 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 boolean hasUpdates()

Returns true if there are pending updates that have not yet been committed.

Returns

  • true if there are pending updates that have not yet been committed.

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 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 last()

Move the cursor to the last row.

This method will return false if the cursor is empty.

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 moveTo(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 next()

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 int position()

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 final boolean prev()

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 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 boolean supportsUpdates()

Returns true if the cursor supports updates.

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).

public boolean update(int columnIndex, Object obj)

public boolean updateDouble(int columnIndex, double value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateFloat(int columnIndex, float value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateInt(int columnIndex, int value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateLong(int columnIndex, long value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateShort(int columnIndex, short value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateString(int columnIndex, String value)

Updates the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

public boolean updateToNull(int columnIndex)

Removes the value for the given column in the row the cursor is currently pointing at. Updates are not committed to the backing store until commitUpdates() is called.

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.

protected 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
Build m5-rc15g - 14 May 2008 12:50