package com.lidroid.xutils.db.sqlite;
import com.lidroid.xutils.db.table.ColumnUtils;
import com.lidroid.xutils.db.table.Finder;
import com.lidroid.xutils.db.table.Table;
import com.lidroid.xutils.exception.DbException;
import java.util.List;
/**
* Author: wyouflf
* Date: 13-9-10
* Time: 下午10:50
*/
public class FinderLazyLoader<T> {
private final Finder finderColumn;
private final Object finderValue;
public FinderLazyLoader(Finder finderColumn, Object value) {
this.finderColumn = finderColumn;
this.finderValue = ColumnUtils.convert2DbColumnValueIfNeeded(value);
}
public List<T> getAllFromDb() throws DbException {
List<T> entities = null;
Table table = finderColumn.getTable();
if (table != null) {
entities = table.db.findAll(
Selector.from(finderColumn.getTargetEntityType()).
where(finderColumn.getTargetColumnName(), "=", finderValue)
);
}
return entities;
}
public T getFirstFromDb() throws DbException {
T entity = null;
Table table = finderColumn.getTable();
if (table != null) {
entity = table.db.findFirst(
Selector.from(finderColumn.getTargetEntityType()).
where(finderColumn.getTargetColumnName(), "=", finderValue)
);
}
return entity;
}
}