diff options
author | Paul Duncan <pabs@pablotron.org> | 2018-09-06 08:57:51 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2018-09-06 08:57:51 -0400 |
commit | 2be7535e09e359d70b924013c9f4d25149fdf0ae (patch) | |
tree | 912223b1090cecc627c3ef7e845f4296acb88c51 /java/src | |
parent | f422534cd4cf1ba32523c9fc798c207065038ca5 (diff) | |
download | luigi-template-2be7535e09e359d70b924013c9f4d25149fdf0ae.tar.bz2 luigi-template-2be7535e09e359d70b924013c9f4d25149fdf0ae.zip |
java: add src/main/java/org/pablotron/luigi/ResultHandler.java, update tests
Diffstat (limited to 'java/src')
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}"); |