diff options
Diffstat (limited to 'java/pablotron/luigi/Template.java')
-rw-r--r-- | java/pablotron/luigi/Template.java | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/java/pablotron/luigi/Template.java b/java/pablotron/luigi/Template.java new file mode 100644 index 0000000..2bf0bb7 --- /dev/null +++ b/java/pablotron/luigi/Template.java @@ -0,0 +1,37 @@ +package pablotron.luigi; + +import java.util.Map; +import pablotron.luigi.Parser; +import pablotron.luigi.Filter; +import pablotron.luigi.LuigiError; +import pablotron.luigi.actions.Action; + +public final class Template { + private static final String VERSION = "0.4.0"; + + private final String template; + private final Action actions[]; + private final Map<String, Filter.Handler> filters; + + public Template( + final String template, + final Map<String, Filter.Handler> filters + ) throws LuigiError { + this.template = template; + this.filters = filters; + this.actions = Parser.parse_template(template); + } + + public Template(final String template) throws LuigiError { + this(template, Filter.FILTERS); + } + + public String run(Map<String, String> args) throws LuigiError { + StringBuilder r = new StringBuilder(); + + for (Action a: this.actions) + r.append(a.run(this.filters, args)); + + return r.toString(); + } +}; |