aboutsummaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/pablotron/luigi/ResultHandler.java5
-rw-r--r--java/src/main/java/org/pablotron/luigi/Template.java9
-rw-r--r--java/src/test/java/org/pablotron/luigi/tests/TemplateTest.java24
3 files changed, 38 insertions, 0 deletions
diff --git a/java/src/main/java/org/pablotron/luigi/ResultHandler.java b/java/src/main/java/org/pablotron/luigi/ResultHandler.java
new file mode 100644
index 0000000..32690a2
--- /dev/null
+++ b/java/src/main/java/org/pablotron/luigi/ResultHandler.java
@@ -0,0 +1,5 @@
+package org.pablotron.luigi;
+
+public interface ResultHandler {
+ public abstract void append(final String s);
+};
diff --git a/java/src/main/java/org/pablotron/luigi/Template.java b/java/src/main/java/org/pablotron/luigi/Template.java
index 2b17a54..9af3a74 100644
--- a/java/src/main/java/org/pablotron/luigi/Template.java
+++ b/java/src/main/java/org/pablotron/luigi/Template.java
@@ -35,6 +35,15 @@ public final class Template {
return r.toString();
}
+ public void run(
+ final Map<String, String> args,
+ final ResultHandler r
+ ) throws LuigiError {
+ for (Action a: this.actions) {
+ r.append(a.run(this.filters, args));
+ }
+ }
+
public String toString() {
return this.template;
}
diff --git a/java/src/test/java/org/pablotron/luigi/tests/TemplateTest.java b/java/src/test/java/org/pablotron/luigi/tests/TemplateTest.java
index 5ff9ede..94e259e 100644
--- a/java/src/test/java/org/pablotron/luigi/tests/TemplateTest.java
+++ b/java/src/test/java/org/pablotron/luigi/tests/TemplateTest.java
@@ -3,6 +3,7 @@ import java.util.HashMap;
import org.pablotron.luigi.LuigiError;
import org.pablotron.luigi.Template;
+import org.pablotron.luigi.ResultHandler;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -35,6 +36,29 @@ public final class TemplateTest {
assertEquals("foofoo", r);
}
+ private static final class TestResultHandler implements ResultHandler {
+ private final StringBuilder sb;
+ public TestResultHandler(final StringBuilder sb) {
+ this.sb = sb;
+ }
+
+ public void append(final String s) {
+ sb.append(s);
+ }
+ };
+
+ @Test
+ public void testResultHandler() throws LuigiError {
+ final Template t = new Template("foo%{bar}");
+ final StringBuilder sb = new StringBuilder();
+ final TestResultHandler rh = new TestResultHandler(sb);
+
+ t.run(TEST_ARGS, rh);
+ final String r = sb.toString();
+
+ assertEquals("foofoo", sb.toString());
+ }
+
@Test
public void testMultipleKeys() throws LuigiError {
final Template t = new Template("foo%{bar}%{baz}");