package net.tsz.afinal.db.sqlite;
import net.tsz.afinal.FinalDb;
import java.util.ArrayList;
import java.util.List;
/**
*
* 一对多延迟加载类
* Created by pwy on 13-7-25.
* @param <O> 宿主实体的class
* @param <M> 多放实体class
*/
public class OneToManyLazyLoader<O,M> {
O ownerEntity;
Class<O> ownerClazz;
Class<M> listItemClazz;
FinalDb db;
public OneToManyLazyLoader(O ownerEntity,Class<O> ownerClazz,Class<M> listItemclazz,FinalDb db){
this.ownerEntity = ownerEntity;
this.ownerClazz = ownerClazz;
this.listItemClazz = listItemclazz;
this.db = db;
}
List<M> entities;
/**
* 如果数据未加载,则调用loadOneToMany填充数据
* @return
*/
public List<M> getList(){
if(entities==null){
this.db.loadOneToMany((O)this.ownerEntity,this.ownerClazz,this.listItemClazz);
}
if(entities==null){
entities =new ArrayList<M>();
}
return entities;
}
public void setList(List<M> value){
entities = value;
}
}