package org.robobinding.property;
import org.robobinding.itempresentationmodel.DataSetChangeListener;
import org.robobinding.itempresentationmodel.RefreshableItemPresentationModelFactory;
import org.robobinding.itempresentationmodel.TypedCursor;
/**
* @since 1.0
* @author Cheng Wei
*
*/
public class TypedCursorDataSet extends AbstractDataSet {
public TypedCursorDataSet(RefreshableItemPresentationModelFactory factory, AbstractGetSet<?> getSet) {
super(factory, getSet);
}
@Override
public int size() {
if (isDataSetNull()) {
return 0;
}
TypedCursor<Object> cursor = getDataSet();
return cursor.getCount();
}
@Override
public Object get(int position) {
TypedCursor<Object> cursor = getDataSet();
return cursor.getObjectAtPosition(position);
}
@Override
public void propertyChanged() {
TypedCursor<Object> oldCursor = getDataSet();
try {
updateDataSet();
} finally {
if (oldCursor != null) {
oldCursor.close();
}
}
}
@Override
public void addListener(DataSetChangeListener listener) {
//not supported.
}
@Override
public void removeListener(DataSetChangeListener listener) {
//not supported.
}
}