package org.whole.examples.lang.imp.reflect;
import org.whole.examples.lang.imp.codebase.Factorial;
import org.whole.examples.lang.imp.codebase.FunctionParam;
import org.whole.examples.lang.imp.codebase.MetaProgram;
import org.whole.examples.lang.imp.model.FunctionDeclaration;
import org.whole.lang.templates.AbstractTemplateManager;
import org.whole.lang.templates.AbstractTemplateFactory;
import org.whole.lang.factories.GenericEntityFactory;
/**
* @generator Whole
*/
public class ImpTemplateManager extends AbstractTemplateManager {
private static class SingletonHolder {
private static final ImpTemplateManager instance = new ImpTemplateManager();
}
public static ImpTemplateManager instance() {
return SingletonHolder.instance;
}
private ImpTemplateManager() {
put("empty", new AbstractTemplateFactory<FunctionDeclaration>() {
public FunctionDeclaration create() {
return GenericEntityFactory.instance
.create(ImpEntityDescriptorEnum.FunctionDeclaration);
}
});
put("factorial", new Factorial());
put("function as param", new FunctionParam());
put("meta program exec", new MetaProgram());
}
}