20
20
21
21
import java .util .Iterator ;
22
22
import java .util .NoSuchElementException ;
23
- import java .util .function .BiFunction ;
24
23
import java .util .function .IntPredicate ;
25
24
26
25
public class BufferedTokenizer {
27
26
28
27
private final DataSplitter dataSplitter ;
29
28
private final Iterable <String > iterable ;
30
- // private Integer sizeLimit;
31
29
32
30
static abstract class IteratorDecorator <T > implements Iterator <T > {
33
31
protected final Iterator <String > iterator ;
@@ -42,29 +40,11 @@ public boolean hasNext() {
42
40
}
43
41
}
44
42
45
- // static class ValueLimitIteratorDecorator extends IteratorDecorator<String> {
46
- // private final int limit;
47
- //
48
- // ValueLimitIteratorDecorator(Iterator<String> iterator, int sizeLimit) {
49
- // super(iterator);
50
- // this.limit = sizeLimit;
51
- // }
52
- //
53
- // @Override
54
- // public String next() {
55
- // String value = iterator.next();
56
- // if (value.length() > limit) {
57
- // throw new IllegalStateException("input buffer full, consumed token which exceeded the sizeLimit " + limit);
58
- // }
59
- // return value;
60
- // }
61
- // }
62
-
63
43
static class DataSplitter implements Iterator <String > {
64
44
private final String separator ;
65
45
private final IntPredicate sizeChecker ;
66
- private int currentIdx = 0 ;
67
46
private final StringBuilder accumulator = new StringBuilder ();
47
+ private int currentIdx = 0 ;
68
48
private boolean dropNextPartialFragments = false ;
69
49
70
50
DataSplitter (String separator ) {
@@ -147,7 +127,6 @@ public BufferedTokenizer() {
147
127
public BufferedTokenizer (String separator ) {
148
128
this .dataSplitter = new DataSplitter (separator );
149
129
this .iterable = () -> dataSplitter ;
150
- // this.iterable = setupIterable();
151
130
}
152
131
153
132
public BufferedTokenizer (String separator , int sizeLimit ) {
@@ -156,9 +135,7 @@ public BufferedTokenizer(String separator, int sizeLimit) {
156
135
}
157
136
158
137
this .dataSplitter = new DataSplitter (separator , tokenSize -> tokenSize > sizeLimit );
159
- // this.sizeLimit = sizeLimit;
160
138
this .iterable = () -> dataSplitter ;
161
- // this.iterable = setupIterable();
162
139
}
163
140
164
141
public Iterable <String > extract (String data ) {
@@ -167,16 +144,6 @@ public Iterable<String> extract(String data) {
167
144
return iterable ;
168
145
}
169
146
170
- // private Iterable<String> setupIterable() {
171
- // return () -> {
172
- // Iterator<String> returnedIterator = dataSplitter;
173
- // if (sizeLimit != null) {
174
- // returnedIterator = new ValueLimitIteratorDecorator(returnedIterator, sizeLimit);
175
- // }
176
- // return returnedIterator;
177
- // };
178
- // }
179
-
180
147
public String flush () {
181
148
return dataSplitter .flush ();
182
149
}
0 commit comments