package com.gettingmobile.google.reader.db; import android.database.ContentObserver; import android.database.CursorIndexOutOfBoundsException; import android.database.DataSetObserver; public class EmptyEntityCursor<T> implements EntityCursor<T> { private boolean closed = false; @Override public void close() { closed = true; } @Override public boolean isClosed() { return closed; } @Override public boolean isGroupHeader() { return fail(); } @Override public String getGroupTitle() { fail(); return null; } @Override public long getEntityId() { fail(); return 0; } @Override public T getEntity() { fail(); return null; } @Override public int getCount() { return 0; } @Override public int getPosition() { return -1; } @Override public boolean isBeforeFirst() { return true; } @Override public boolean isAfterLast() { return false; } @Override public boolean isFirst() { return false; } @Override public boolean isLast() { return false; } @Override public boolean moveToFirst() { return fail(); } @Override public boolean moveToLast() { return fail(); } @Override public boolean moveToNext() { return fail(); } @Override public boolean moveToPrevious() { return fail(); } @Override public boolean move(int offset) { return offset == 0 || fail(); } @Override public boolean moveToPosition(int position) { return position == -1 || fail(); } @Override public void registerContentObserver(ContentObserver observer) { } @Override public void unregisterContentObserver(ContentObserver observer) { } @Override public void registerDataSetObserver(DataSetObserver observer) { } @Override public void unregisterDataSetObserver(DataSetObserver observer) { } private boolean fail() throws CursorIndexOutOfBoundsException { throw new CursorIndexOutOfBoundsException(-1, 0); } }