package dr.app.beauti.components.hpm;
import dr.app.beauti.components.ComponentFactory;
import dr.app.beauti.generator.ComponentGenerator;
import dr.app.beauti.options.BeautiOptions;
import dr.app.beauti.options.ComponentOptions;
/**
* @author Marc A. Suchard
* @version $Id$
*/
public class HierarchicalModelComponentFactory implements ComponentFactory {
private HierarchicalModelComponentFactory() {
// singleton pattern - private constructor
}
public ComponentGenerator getGenerator(final BeautiOptions beautiOptions) {
if (generator == null) {
generator = new HierarchicalModelComponentGenerator(beautiOptions);
}
return generator;
}
public ComponentOptions getOptions(final BeautiOptions beautiOptions) {
if (options == null) {
options = new HierarchicalModelComponentOptions(beautiOptions);
}
return options;
}
private HierarchicalModelComponentGenerator generator = null;
private HierarchicalModelComponentOptions options = null;
public static ComponentFactory INSTANCE = new HierarchicalModelComponentFactory();
}