diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java index 963437e..12f6891 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java @@ -17,8 +17,8 @@ import bjc.utils.funcdata.FunctionalStringTokenizer; * * @author ben * - * @param <E>The - * type of the state object to use + * @param <E> + * The type of the state object to use */ public class RuleBasedConfigReader<E> { private BiConsumer<FunctionalStringTokenizer, Pair<String, E>> startRule; @@ -48,11 +48,28 @@ public class RuleBasedConfigReader<E> { this.pragmas = new HashMap<>(); } + /** + * Add a pragma to this reader + * + * @param pragName + * The name of the pragma to add + * @param pragAct + * The function to execute when this pragma is read + */ public void addPragma(String pragName, BiConsumer<FunctionalStringTokenizer, E> pragAct) { pragmas.put(pragName, pragAct); } + /** + * Run a stream through this reader + * + * @param is + * The stream to get input + * @param initState + * The initial state of the reader + * @return The final state of the reader + */ public E fromStream(InputStream is, E initState) { Scanner scn = new Scanner(is); @@ -68,8 +85,8 @@ public class RuleBasedConfigReader<E> { continueRule.accept(new FunctionalStringTokenizer( ln.substring(1), " "), stat); } else { - FunctionalStringTokenizer stk = new FunctionalStringTokenizer( - ln, " "); + FunctionalStringTokenizer stk = + new FunctionalStringTokenizer(ln, " "); String nxtToken = stk.nextToken(); if (nxtToken.equals("#")) { @@ -82,8 +99,7 @@ public class RuleBasedConfigReader<E> { "Unknown pragma " + tk); }).accept(stk, stat); } else { - startRule.accept(stk, - new Pair<String, E>(nxtToken, stat)); + startRule.accept(stk, new Pair<>(nxtToken, stat)); } } } @@ -93,15 +109,33 @@ public class RuleBasedConfigReader<E> { return stat; } + /** + * Set the action to execute when continuing a rule + * + * @param continueRule + * The action to execute on continuation of a rule + */ public void setContinueRule( BiConsumer<FunctionalStringTokenizer, E> continueRule) { this.continueRule = continueRule; } + /** + * Set the action to execute when ending a rule + * + * @param endRule + * The action to execute on ending of a rule + */ public void setEndRule(Consumer<E> endRule) { this.endRule = endRule; } + /** + * Set the action to execute when starting a rule + * + * @param startRule + * The action to execute on starting of a rule + */ public void setStartRule( BiConsumer<FunctionalStringTokenizer, Pair<String, E>> startRule) { this.startRule = startRule; |
