diff options
author | Jeff Brown <jeffbrown@google.com> | 2015-04-09 18:52:52 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2015-04-09 19:48:10 -0700 |
commit | 8faab36fdd2d7dd038885a5073eeb8354d8996d4 (patch) | |
tree | d24b171826d1b5d1e93a9328bfec5efc104ed8ad /core/java/android/database | |
parent | 4670513e70f8d55e40a359941e7c216604daae19 (diff) | |
download | frameworks_base-8faab36fdd2d7dd038885a5073eeb8354d8996d4.zip frameworks_base-8faab36fdd2d7dd038885a5073eeb8354d8996d4.tar.gz frameworks_base-8faab36fdd2d7dd038885a5073eeb8354d8996d4.tar.bz2 |
Clean up AbstractCursor API.
Deprecated three protected fields that should not have been
exposed in the API.
Bug: 6353797
Change-Id: Ic6710f880a452dd1508abf0613907a1d2b1fb557
Diffstat (limited to 'core/java/android/database')
-rw-r--r-- | core/java/android/database/AbstractCursor.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/core/java/android/database/AbstractCursor.java b/core/java/android/database/AbstractCursor.java index fcfcbb5..5762c1d 100644 --- a/core/java/android/database/AbstractCursor.java +++ b/core/java/android/database/AbstractCursor.java @@ -49,9 +49,24 @@ public abstract class AbstractCursor implements CrossProcessCursor { */ protected Long mCurrentRowID; + /** + * @deprecated Use {@link #getPosition()} instead. + */ + @Deprecated protected int mPos; + + /** + * @deprecated Use {@link #isClosed()} instead. + */ + @Deprecated protected boolean mClosed; + + /** + * @deprecated Do not use. + */ + @Deprecated protected ContentResolver mContentResolver; + private Uri mNotifyUri; private final Object mSelfObserverLock = new Object(); @@ -65,18 +80,28 @@ public abstract class AbstractCursor implements CrossProcessCursor { /* -------------------------------------------------------- */ /* These need to be implemented by subclasses */ + @Override abstract public int getCount(); + @Override abstract public String[] getColumnNames(); + @Override abstract public String getString(int column); + @Override abstract public short getShort(int column); + @Override abstract public int getInt(int column); + @Override abstract public long getLong(int column); + @Override abstract public float getFloat(int column); + @Override abstract public double getDouble(int column); + @Override abstract public boolean isNull(int column); + @Override public int getType(int column) { // Reflects the assumption that all commonly used field types (meaning everything // but blobs) are convertible to strings so it should be safe to call @@ -85,6 +110,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { } // TODO implement getBlob in all cursor types + @Override public byte[] getBlob(int column) { throw new UnsupportedOperationException("getBlob is not supported"); } @@ -97,14 +123,17 @@ public abstract class AbstractCursor implements CrossProcessCursor { * * @return The pre-filled window that backs this cursor, or null if none. */ + @Override public CursorWindow getWindow() { return null; } + @Override public int getColumnCount() { return getColumnNames().length; } + @Override public void deactivate() { onDeactivateOrClose(); } @@ -118,6 +147,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { mDataSetObservable.notifyInvalidated(); } + @Override public boolean requery() { if (mSelfObserver != null && mSelfObserverRegistered == false) { mContentResolver.registerContentObserver(mNotifyUri, true, mSelfObserver); @@ -127,10 +157,12 @@ public abstract class AbstractCursor implements CrossProcessCursor { return true; } + @Override public boolean isClosed() { return mClosed; } + @Override public void close() { mClosed = true; mContentObservable.unregisterAll(); @@ -147,11 +179,13 @@ public abstract class AbstractCursor implements CrossProcessCursor { * @param newPosition the position that we're moving to * @return true if the move is successful, false otherwise */ + @Override public boolean onMove(int oldPosition, int newPosition) { return true; } + @Override public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { // Default implementation, uses getString String result = getString(columnIndex); @@ -174,10 +208,12 @@ public abstract class AbstractCursor implements CrossProcessCursor { mPos = -1; } + @Override public final int getPosition() { return mPos; } + @Override public final boolean moveToPosition(int position) { // Make sure position isn't past the end of the cursor final int count = getCount(); @@ -212,35 +248,43 @@ public abstract class AbstractCursor implements CrossProcessCursor { DatabaseUtils.cursorFillWindow(this, position, window); } + @Override public final boolean move(int offset) { return moveToPosition(mPos + offset); } + @Override public final boolean moveToFirst() { return moveToPosition(0); } + @Override public final boolean moveToLast() { return moveToPosition(getCount() - 1); } + @Override public final boolean moveToNext() { return moveToPosition(mPos + 1); } + @Override public final boolean moveToPrevious() { return moveToPosition(mPos - 1); } + @Override public final boolean isFirst() { return mPos == 0 && getCount() != 0; } + @Override public final boolean isLast() { int cnt = getCount(); return mPos == (cnt - 1) && cnt != 0; } + @Override public final boolean isBeforeFirst() { if (getCount() == 0) { return true; @@ -248,6 +292,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { return mPos == -1; } + @Override public final boolean isAfterLast() { if (getCount() == 0) { return true; @@ -255,6 +300,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { return mPos == getCount(); } + @Override public int getColumnIndex(String columnName) { // Hack according to bug 903852 final int periodIndex = columnName.lastIndexOf('.'); @@ -280,6 +326,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { return -1; } + @Override public int getColumnIndexOrThrow(String columnName) { final int index = getColumnIndex(columnName); if (index < 0) { @@ -288,14 +335,17 @@ public abstract class AbstractCursor implements CrossProcessCursor { return index; } + @Override public String getColumnName(int columnIndex) { return getColumnNames()[columnIndex]; } + @Override public void registerContentObserver(ContentObserver observer) { mContentObservable.registerObserver(observer); } + @Override public void unregisterContentObserver(ContentObserver observer) { // cursor will unregister all observers when it close if (!mClosed) { @@ -303,10 +353,12 @@ public abstract class AbstractCursor implements CrossProcessCursor { } } + @Override public void registerDataSetObserver(DataSetObserver observer) { mDataSetObservable.registerObserver(observer); } + @Override public void unregisterDataSetObserver(DataSetObserver observer) { mDataSetObservable.unregisterObserver(observer); } @@ -333,6 +385,7 @@ public abstract class AbstractCursor implements CrossProcessCursor { * @param notifyUri The URI to watch for changes. This can be a * specific row URI, or a base URI for a whole class of content. */ + @Override public void setNotificationUri(ContentResolver cr, Uri notifyUri) { setNotificationUri(cr, notifyUri, UserHandle.myUserId()); } |