summaryrefslogtreecommitdiffstats
path: root/core/java/android/database
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2015-04-09 18:52:52 -0700
committerJeff Brown <jeffbrown@google.com>2015-04-09 19:48:10 -0700
commit8faab36fdd2d7dd038885a5073eeb8354d8996d4 (patch)
treed24b171826d1b5d1e93a9328bfec5efc104ed8ad /core/java/android/database
parent4670513e70f8d55e40a359941e7c216604daae19 (diff)
downloadframeworks_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.java53
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());
}