aboutsummaryrefslogtreecommitdiff
path: root/java/pablotron/luigi/Template.java
diff options
context:
space:
mode:
authorpabs@pablotron.org <pabs@pablotron.org>2014-12-18 15:10:23 -0500
committerpabs@pablotron.org <pabs@pablotron.org>2014-12-18 15:10:23 -0500
commit750550e6df3cf8c9013f7fa455218b8d3847e181 (patch)
treeebe5067d888da30367a4d738b08cd07025d9a386 /java/pablotron/luigi/Template.java
parent0585aba994f725566191d20f11af5e13d575985c (diff)
downloadluigi-template-750550e6df3cf8c9013f7fa455218b8d3847e181.tar.bz2
luigi-template-750550e6df3cf8c9013f7fa455218b8d3847e181.zip
add java implementation
Diffstat (limited to 'java/pablotron/luigi/Template.java')
-rw-r--r--java/pablotron/luigi/Template.java37
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();
+ }
+};