package com.gettingmobile.google.reader.db;
import android.database.Cursor;
import com.gettingmobile.google.reader.Element;
import com.gettingmobile.google.reader.ElementId;
public abstract class ElementCursorAdapter<T extends Element> implements EntityCursorAdapter<T> {
int keyCol;
int idCol;
int titleCol;
@Override
public void init(Cursor c) {
keyCol = c.getColumnIndex(ElementTable.KEY);
idCol = c.getColumnIndex(ElementTable.ID);
titleCol = c.getColumnIndex(ElementTable.TITLE);
}
@Override
public long readEntityId(Cursor c) {
return c.getLong(keyCol);
}
@Override
public T readEntity(Cursor c) {
final T entity = createEntity();
entity.setKey(readEntityId(c));
entity.setId(new ElementId(c.getString(idCol)));
entity.setTitle(c.getString(titleCol));
return entity;
}
@Override
public void readEntityJoin(T entity, Cursor c) {
// nothing to be done by default
}
protected abstract T createEntity();
}