Loading api/current.xml +7 −7 Original line number Diff line number Diff line Loading @@ -56529,7 +56529,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > <parameter name="columnIndex" type="int"> Loading Loading @@ -56597,7 +56597,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > <parameter name="columnIndex" type="int"> Loading Loading @@ -56883,7 +56883,7 @@ volatile="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > </field> Loading Loading @@ -57019,7 +57019,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57032,7 +57032,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57045,7 +57045,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57071,7 +57071,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> core/java/android/database/AbstractCursor.java +13 −27 Original line number Diff line number Diff line Loading @@ -330,9 +330,9 @@ public abstract class AbstractCursor implements CrossProcessCursor { return mDataSetObservable; } public void registerDataSetObserver(DataSetObserver observer) { mDataSetObservable.registerObserver(observer); } public void unregisterDataSetObserver(DataSetObserver observer) { Loading Loading @@ -387,36 +387,19 @@ public abstract class AbstractCursor implements CrossProcessCursor { } /** * This function returns true if the field has been updated and is * used in conjunction with {@link #getUpdatedField} to allow subclasses to * support reading uncommitted updates. NOTE: This function and * {@link #getUpdatedField} should be called together inside of a * block synchronized on mUpdatedRows. * * @param columnIndex the column index of the field to check * @return true if the field has been updated, false otherwise * @deprecated Always returns false since Cursors do not support updating rows */ @Deprecated protected boolean isFieldUpdated(int columnIndex) { if (mRowIdColumnIndex != -1 && mUpdatedRows.size() > 0) { Map<String, Object> updates = mUpdatedRows.get(mCurrentRowID); if (updates != null && updates.containsKey(getColumnNames()[columnIndex])) { return true; } } return false; } /** * This function returns the uncommitted updated value for the field * at columnIndex. NOTE: This function and {@link #isFieldUpdated} should * be called together inside of a block synchronized on mUpdatedRows. * * @param columnIndex the column index of the field to retrieve * @return the updated value * @deprecated Always returns null since Cursors do not support updating rows */ @Deprecated protected Object getUpdatedField(int columnIndex) { Map<String, Object> updates = mUpdatedRows.get(mCurrentRowID); return updates.get(getColumnNames()[columnIndex]); return null; } /** Loading Loading @@ -466,11 +449,9 @@ public abstract class AbstractCursor implements CrossProcessCursor { } /** * 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 class * forms, i.e. Integer, Long, Float, etc. * @deprecated This is never updated by this class and should not be used */ @Deprecated protected HashMap<Long, Map<String, Object>> mUpdatedRows; /** Loading @@ -480,6 +461,11 @@ public abstract class AbstractCursor implements CrossProcessCursor { protected int mRowIdColumnIndex; protected int mPos; /** * If {@link mRowIdColumnIndex} is not -1 this contains contains the value of * the column at {@link mRowIdColumnIndex} for the current row this cursor is * pointing at. */ protected Long mCurrentRowID; protected ContentResolver mContentResolver; protected boolean mClosed = false; Loading core/java/android/database/AbstractWindowedCursor.java +30 −100 Original line number Diff line number Diff line Loading @@ -19,175 +19,105 @@ package android.database; /** * A base class for Cursors that store their data in {@link CursorWindow}s. */ public abstract class AbstractWindowedCursor extends AbstractCursor { public abstract class AbstractWindowedCursor extends AbstractCursor { @Override public byte[] getBlob(int columnIndex) { public byte[] getBlob(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return (byte[])getUpdatedField(columnIndex); } } return mWindow.getBlob(mPos, columnIndex); } @Override public String getString(int columnIndex) { public String getString(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return (String)getUpdatedField(columnIndex); } } return mWindow.getString(mPos, columnIndex); } @Override public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { super.copyStringToBuffer(columnIndex, buffer); } } mWindow.copyStringToBuffer(mPos, columnIndex, buffer); } @Override public short getShort(int columnIndex) { public short getShort(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.shortValue(); } } return mWindow.getShort(mPos, columnIndex); } @Override public int getInt(int columnIndex) { public int getInt(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.intValue(); } } return mWindow.getInt(mPos, columnIndex); } @Override public long getLong(int columnIndex) { public long getLong(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.longValue(); } } return mWindow.getLong(mPos, columnIndex); } @Override public float getFloat(int columnIndex) { public float getFloat(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.floatValue(); } } return mWindow.getFloat(mPos, columnIndex); } @Override public double getDouble(int columnIndex) { public double getDouble(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.doubleValue(); } } return mWindow.getDouble(mPos, columnIndex); } @Override public boolean isNull(int columnIndex) { public boolean isNull(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return getUpdatedField(columnIndex) == null; } } return mWindow.getType(mPos, columnIndex) == Cursor.FIELD_TYPE_NULL; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isBlob(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_BLOB; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isString(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_STRING; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isLong(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_INTEGER; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isFloat(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_FLOAT; } @Override public int getType(int columnIndex) { public int getType(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return DatabaseUtils.getTypeOfObject(getUpdatedField(columnIndex)); } } return mWindow.getType(mPos, columnIndex); } @Override protected void checkPosition() { protected void checkPosition() { super.checkPosition(); if (mWindow == null) { throw new StaleDataException("Access closed cursor"); throw new StaleDataException("Attempting to access a closed cursor"); } } Loading Loading
api/current.xml +7 −7 Original line number Diff line number Diff line Loading @@ -56529,7 +56529,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > <parameter name="columnIndex" type="int"> Loading Loading @@ -56597,7 +56597,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > <parameter name="columnIndex" type="int"> Loading Loading @@ -56883,7 +56883,7 @@ volatile="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="protected" > </field> Loading Loading @@ -57019,7 +57019,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57032,7 +57032,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57045,7 +57045,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int"> Loading @@ -57071,7 +57071,7 @@ synchronized="false" static="false" final="false" deprecated="not deprecated" deprecated="deprecated" visibility="public" > <parameter name="columnIndex" type="int">
core/java/android/database/AbstractCursor.java +13 −27 Original line number Diff line number Diff line Loading @@ -330,9 +330,9 @@ public abstract class AbstractCursor implements CrossProcessCursor { return mDataSetObservable; } public void registerDataSetObserver(DataSetObserver observer) { mDataSetObservable.registerObserver(observer); } public void unregisterDataSetObserver(DataSetObserver observer) { Loading Loading @@ -387,36 +387,19 @@ public abstract class AbstractCursor implements CrossProcessCursor { } /** * This function returns true if the field has been updated and is * used in conjunction with {@link #getUpdatedField} to allow subclasses to * support reading uncommitted updates. NOTE: This function and * {@link #getUpdatedField} should be called together inside of a * block synchronized on mUpdatedRows. * * @param columnIndex the column index of the field to check * @return true if the field has been updated, false otherwise * @deprecated Always returns false since Cursors do not support updating rows */ @Deprecated protected boolean isFieldUpdated(int columnIndex) { if (mRowIdColumnIndex != -1 && mUpdatedRows.size() > 0) { Map<String, Object> updates = mUpdatedRows.get(mCurrentRowID); if (updates != null && updates.containsKey(getColumnNames()[columnIndex])) { return true; } } return false; } /** * This function returns the uncommitted updated value for the field * at columnIndex. NOTE: This function and {@link #isFieldUpdated} should * be called together inside of a block synchronized on mUpdatedRows. * * @param columnIndex the column index of the field to retrieve * @return the updated value * @deprecated Always returns null since Cursors do not support updating rows */ @Deprecated protected Object getUpdatedField(int columnIndex) { Map<String, Object> updates = mUpdatedRows.get(mCurrentRowID); return updates.get(getColumnNames()[columnIndex]); return null; } /** Loading Loading @@ -466,11 +449,9 @@ public abstract class AbstractCursor implements CrossProcessCursor { } /** * 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 class * forms, i.e. Integer, Long, Float, etc. * @deprecated This is never updated by this class and should not be used */ @Deprecated protected HashMap<Long, Map<String, Object>> mUpdatedRows; /** Loading @@ -480,6 +461,11 @@ public abstract class AbstractCursor implements CrossProcessCursor { protected int mRowIdColumnIndex; protected int mPos; /** * If {@link mRowIdColumnIndex} is not -1 this contains contains the value of * the column at {@link mRowIdColumnIndex} for the current row this cursor is * pointing at. */ protected Long mCurrentRowID; protected ContentResolver mContentResolver; protected boolean mClosed = false; Loading
core/java/android/database/AbstractWindowedCursor.java +30 −100 Original line number Diff line number Diff line Loading @@ -19,175 +19,105 @@ package android.database; /** * A base class for Cursors that store their data in {@link CursorWindow}s. */ public abstract class AbstractWindowedCursor extends AbstractCursor { public abstract class AbstractWindowedCursor extends AbstractCursor { @Override public byte[] getBlob(int columnIndex) { public byte[] getBlob(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return (byte[])getUpdatedField(columnIndex); } } return mWindow.getBlob(mPos, columnIndex); } @Override public String getString(int columnIndex) { public String getString(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return (String)getUpdatedField(columnIndex); } } return mWindow.getString(mPos, columnIndex); } @Override public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { super.copyStringToBuffer(columnIndex, buffer); } } mWindow.copyStringToBuffer(mPos, columnIndex, buffer); } @Override public short getShort(int columnIndex) { public short getShort(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.shortValue(); } } return mWindow.getShort(mPos, columnIndex); } @Override public int getInt(int columnIndex) { public int getInt(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.intValue(); } } return mWindow.getInt(mPos, columnIndex); } @Override public long getLong(int columnIndex) { public long getLong(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.longValue(); } } return mWindow.getLong(mPos, columnIndex); } @Override public float getFloat(int columnIndex) { public float getFloat(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.floatValue(); } } return mWindow.getFloat(mPos, columnIndex); } @Override public double getDouble(int columnIndex) { public double getDouble(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { Number value = (Number)getUpdatedField(columnIndex); return value.doubleValue(); } } return mWindow.getDouble(mPos, columnIndex); } @Override public boolean isNull(int columnIndex) { public boolean isNull(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return getUpdatedField(columnIndex) == null; } } return mWindow.getType(mPos, columnIndex) == Cursor.FIELD_TYPE_NULL; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isBlob(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_BLOB; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isString(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_STRING; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isLong(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_INTEGER; } /** * @deprecated Use {@link #getType} */ @Deprecated public boolean isFloat(int columnIndex) { return getType(columnIndex) == Cursor.FIELD_TYPE_FLOAT; } @Override public int getType(int columnIndex) { public int getType(int columnIndex) { checkPosition(); synchronized(mUpdatedRows) { if (isFieldUpdated(columnIndex)) { return DatabaseUtils.getTypeOfObject(getUpdatedField(columnIndex)); } } return mWindow.getType(mPos, columnIndex); } @Override protected void checkPosition() { protected void checkPosition() { super.checkPosition(); if (mWindow == null) { throw new StaleDataException("Access closed cursor"); throw new StaleDataException("Attempting to access a closed cursor"); } } Loading