From 3a818da77acf50e7ea0d2c02d669cb67b9f114e3 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Tue, 6 Oct 2020 20:05:00 -0400 Subject: Add unit tests for defines Adds unit tests for SimpleDefine and IteratedDefine. This also fixes an issue with IteratedDefine, where once you had consumed a replacer, it was consumed for good; you couldn't use it in the future, even in a different call to apply(). This was fixed through the introduction of a new iterator type from esodata - ResettableIterator. See that project/type for more details on what exactly this does; but suffice to say, it allows to restore our iterator and re-iterate over the same elements on every call to apply. --- .../java/bjc/utils/parserutils/defines/SimpleDefine.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'base/src/main/java/bjc/utils/parserutils/defines/SimpleDefine.java') diff --git a/base/src/main/java/bjc/utils/parserutils/defines/SimpleDefine.java b/base/src/main/java/bjc/utils/parserutils/defines/SimpleDefine.java index b31d937..f20e22a 100644 --- a/base/src/main/java/bjc/utils/parserutils/defines/SimpleDefine.java +++ b/base/src/main/java/bjc/utils/parserutils/defines/SimpleDefine.java @@ -26,6 +26,18 @@ public class SimpleDefine implements UnaryOperator { repl = replace; } + + /** + * Create a new simple define. + * + * @param pattern + * The pattern to match against. + * @param replace + * The text to use as a replacement. + */ + public SimpleDefine(String pattern, String replace) { + this(Pattern.compile(pattern), replace); + } @Override public String apply(String line) { -- cgit v1.2.3