Made it possible to reuse Tokenizer. Simplified Tokenizer building.
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / string / tokenizer / Tokenizer.java
index 8b396ed..a89677b 100755 (executable)
@@ -17,22 +17,32 @@ public class Tokenizer {
 
     final Stack<Integer> tokenIndexes = new Stack<>();
     private final List<Terminator> terminators = new ArrayList<>();
-    private final String source;
+    private String source;
     private int currentIndex = 0;
 
     public Tokenizer(final String source) {
         this.source = source;
     }
 
-    public void addTerminator(final String startSequence,
-                              final boolean ignoreTerminator) {
+    public Tokenizer(){}
+
+    public Tokenizer setSource(String source){
+        this.source = source;
+        currentIndex = 0;
+        return this;
+    }
+
+    public Tokenizer addTerminator(final String startSequence,
+                                   final boolean ignoreTerminator) {
         terminators.add(new Terminator(startSequence, ignoreTerminator));
+        return this;
     }
 
-    public void addTerminator(final String startSequence,
-                              final String endSequence, final boolean ignoreTerminator) {
+    public Tokenizer addTerminator(final String startSequence,
+                                   final String endSequence, final boolean ignoreTerminator) {
         terminators.add(new Terminator(startSequence, endSequence,
                 ignoreTerminator));
+        return this;
     }
 
     public void expectNextToken(final String value)
@@ -85,7 +95,7 @@ public class Tokenizer {
 
     }
 
-    public boolean probeNextToken(final String token) {
+    public boolean isNextToken(final String token) {
         if (token.equals(getNextToken().token))
             return true;