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; } }