package org.drools.informer.interaction; import org.drools.io.ResourceFactory; import org.mvel2.templates.*; import java.io.IOException; import java.io.InputStream; import java.util.HashSet; import java.util.Map; import java.util.Set; public class TemplateBuilder { private static TemplateRegistry kmr2Registry; protected static Set<String> NAMED_TEMPLATES; private static void init() { kmr2Registry = new SimpleTemplateRegistry(); NAMED_TEMPLATES = new HashSet<String>(); } public static TemplateRegistry getRegistry() { if ( kmr2Registry == null ) { init(); } return kmr2Registry; } public static void addTemplate( String path ) { try { InputStream stream = ResourceFactory.newClassPathResource( path, TemplateBuilder.class ).getInputStream(); getRegistry().addNamedTemplate( path.substring( path.lastIndexOf('/') + 1 ), TemplateCompiler.compileTemplate(stream) ); } catch (IOException e) { e.printStackTrace(); } } public static String applyTemplate( String template, Map args ) { return (String) TemplateRuntime.execute( TemplateCompiler.compileTemplate( template ), args ); } public static String applyNamedTemplate( String templateName, Map args ) { CompiledTemplate template = getRegistry().getNamedTemplate( templateName ); return (String) TemplateRuntime.execute( template, args ); } }