private static ST findTemplateInGroup(String path, String name, STGroup group) { if (!group.isDefined(name)) { throw new IllegalStateException("No StringTemplate group " + name + " for path " + path); } return group.getInstanceOf(name); }
/** * Locates SQL for the given type and name. Example: Given a type <code>com.foo.Bar</code> and a name of * <code>baz</code>, loads a StringTemplate group file from the resource named <code>com/foo/Bar.sql.stg</code> on * the classpath, and returns the template with the given name from the group. * * @param type the type that "owns" the given StringTemplate group file. Dictates the filename of the * StringTemplate group file on the classpath. * @param name the template name within the StringTemplate group. * @return the located SQL. */ public static ST findStringTemplate(Class<?> type, String name) { STGroup group = findStringTemplateGroup(type); if (!group.isDefined(name)) { throw new IllegalStateException("No StringTemplate group " + name + " for class " + type); } return group.getInstanceOf(name); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { SqlLocator locator = (type, method, config) -> { String templateName = SqlAnnotations.getAnnotationValue(method).orElseGet(method::getName); STGroup group = findStringTemplateGroup(type); if (!group.isDefined(templateName)) { throw new IllegalStateException("No StringTemplate group " + templateName + " for class " + sqlObjectType); } return templateName; }; TemplateEngine templateEngine = (templateName, ctx) -> { STGroup group = findStringTemplateGroup(sqlObjectType); ST template = group.getInstanceOf(templateName); ctx.getAttributes().forEach(template::add); return template.render(); }; registry.get(SqlObjects.class).setSqlLocator(locator); registry.get(SqlStatements.class).setTemplateEngine(templateEngine); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
@Override public boolean isDefined(String name) { if ( !alreadyLoaded ) load(); return super.isDefined(name); }
public void loadPrecRuleTemplates() { String templateGroupFile = "org/antlr/v4/tool/templates/LeftRecursiveRules.stg"; recRuleTemplates = new STGroupFile(templateGroupFile); if ( !recRuleTemplates.isDefined("recRule") ) { tool.errMgr.toolError(ErrorType.MISSING_CODE_GEN_TEMPLATES, "LeftRecursiveRules"); } // use codegen to get correct language templates; that's it though CodeGenerator gen = new CodeGenerator(tool, null, language); codegenTemplates = gen.getTemplates(); }
public void loadPrecRuleTemplates() { String templateGroupFile = "org/antlr/v4/tool/templates/LeftRecursiveRules.stg"; recRuleTemplates = new STGroupFile(templateGroupFile); if ( !recRuleTemplates.isDefined("recRule") ) { tool.errMgr.toolError(ErrorType.MISSING_CODE_GEN_TEMPLATES, "LeftRecursiveRules"); } // use codegen to get correct language templates; that's it though CodeGenerator gen = new CodeGenerator(tool, null, language); codegenTemplates = gen.getTemplates(); }
public void loadPrecRuleTemplates() { String templateGroupFile = "org/antlr/v4/tool/templates/LeftRecursiveRules.stg"; recRuleTemplates = new STGroupFile(templateGroupFile); if ( !recRuleTemplates.isDefined("recRule") ) { tool.errMgr.toolError(ErrorType.MISSING_CODE_GEN_TEMPLATES, "LeftRecursiveRules"); } // use codegen to get correct language templates; that's it though CodeGenerator gen = new CodeGenerator(tool, null, language); codegenTemplates = gen.getTemplates(); }
public void loadPrecRuleTemplates() { String templateGroupFile = "org/antlr/v4/tool/templates/LeftRecursiveRules.stg"; recRuleTemplates = new STGroupFile(templateGroupFile); if ( !recRuleTemplates.isDefined("recRule") ) { tool.errMgr.toolError(ErrorType.MISSING_CODE_GEN_TEMPLATES, "LeftRecursiveRules"); } // use codegen to get correct language templates; that's it though CodeGenerator gen = new CodeGenerator(tool, null, language); codegenTemplates = gen.getTemplates(); }
public void writeHeaderFile() { String fileName = getHeaderFileName(); if ( fileName==null ) return; if ( getTemplates().isDefined("headerFile") ) { ST extST = getTemplates().getInstanceOf("headerFileExtension"); ST headerFileST = null; // TODO: don't hide this header file generation here! getTarget().genRecognizerHeaderFile(g, headerFileST, extST.render(lineWidth)); } }
public void writeHeaderFile() { String fileName = getHeaderFileName(); if ( fileName==null ) return; if ( getTemplates().isDefined("headerFile") ) { ST extST = getTemplates().getInstanceOf("headerFileExtension"); ST headerFileST = null; // TODO: don't hide this header file generation here! getTarget().genRecognizerHeaderFile(g, headerFileST, extST.render(lineWidth)); } }