/** * Convenience method for {@code getConfig(SqlStatements.class).setTemplateEngine(rewriter)} * * @param templateEngine the template engine * @return this */ default This setTemplateEngine(TemplateEngine templateEngine) { return configure(SqlStatements.class, c -> c.setTemplateEngine(templateEngine)); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { registry.get(SqlStatements.class).setTemplateEngine(new StringTemplateEngine()); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { registry.get(SqlStatements.class).setTemplateEngine(new FreemarkerEngine()); }
@Override public void configureForMethod(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType, @Nullable Method method) { UseTemplateEngine anno = (UseTemplateEngine) annotation; TemplateEngine templateEngine = instantiate(anno.value(), sqlObjectType, method); registry.get(SqlStatements.class).setTemplateEngine(templateEngine); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { SqlLocator locator = (type, method, config) -> { String templateName = SqlAnnotations.getAnnotationValue(method).orElseGet(method::getName); findTemplate(sqlObjectType, templateName); return templateName; }; TemplateEngine templateEngine = (templateName, ctx) -> { Template template = findTemplate(sqlObjectType, templateName); StringWriter writer = new StringWriter(); try { template.process(ctx.getAttributes(), writer); return writer.toString(); } catch (TemplateException | IOException e) { throw new IllegalStateException("Failed to render template " + templateName, e); } }; registry.get(SqlObjects.class).setSqlLocator(locator); registry.get(SqlStatements.class).setTemplateEngine(templateEngine); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { UseStringSubstitutorTemplateEngine anno = (UseStringSubstitutorTemplateEngine) annotation; TemplateEngine engine = StringSubstitutorTemplateEngine.between(anno.prefix(), anno.suffix(), anno.escape()); registry.get(SqlStatements.class).setTemplateEngine(engine); }
@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); }
/** * Convenience method for {@code getConfig(SqlStatements.class).setTemplateEngine(rewriter)} * * @param templateEngine the template engine * @return this */ default This setTemplateEngine(TemplateEngine templateEngine) { return configure(SqlStatements.class, c -> c.setTemplateEngine(templateEngine)); }