package dr.app.beauti.components.discrete; import dr.app.beauti.components.ComponentFactory; import dr.app.beauti.generator.ComponentGenerator; import dr.app.beauti.options.ComponentOptions; import dr.app.beauti.options.BeautiOptions; /** * @author Andrew Rambaut * @version $Id$ */ public class DiscreteTraitsComponentFactory implements ComponentFactory { private DiscreteTraitsComponentFactory() { // singleton pattern - private constructor } public ComponentGenerator getGenerator(final BeautiOptions beautiOptions) { if (generator == null) { generator = new DiscreteTraitsComponentGenerator(beautiOptions); } return generator; } public ComponentOptions getOptions(final BeautiOptions beautiOptions) { if (options == null) { options = new DiscreteTraitsComponentOptions(beautiOptions); } return options; } private DiscreteTraitsComponentGenerator generator = null; private DiscreteTraitsComponentOptions options = null; public static ComponentFactory INSTANCE = new DiscreteTraitsComponentFactory(); }