//$Id:DefaultModelBuilder.java Feb 23, 2009 11:03:57 PM chaostone Exp $
/*
* Copyright c 2005-2009.
*
* Licensed under the GPL License, Version 2.0 (the "License")
* http://www.gnu.org/licenses/gpl-2.0.html
*
*/
package org.beanfuse.entity.context;
import java.io.InputStream;
import java.util.Properties;
import org.beanfuse.entity.EntityContext;
import org.beanfuse.entity.Model;
import org.beanfuse.entity.ModelBuilder;
import org.beanfuse.entity.Populator;
public class DefaultModelBuilder implements ModelBuilder {
private static final String POPULATOR_PRO = "model.populatorClass";
private static final String CONTEXT_PRO = "model.contextClass";
/**
* 初始化默认对象
*/
public void build() {
try {
Properties props = new Properties();
InputStream is = AbstractEntityContext.class
.getResourceAsStream("/org/beanfuse/entity/model-default.properties");
if (null != is) {
props.load(is);
}
is = AbstractEntityContext.class
.getResourceAsStream("/model.properties");
if (null != is) {
props.load(is);
}
if (null == Model.getContext()) {
Class contextClass = Class.forName((String) props
.get(CONTEXT_PRO));
Model.setContext((EntityContext) contextClass.newInstance());
}
if (null == Model.getPopulator()) {
Class populatorClass = Class.forName((String) props
.get(POPULATOR_PRO));
Model.setPopulator((Populator) populatorClass.newInstance());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public Model getModel() {
return Model.getInstance();
}
}