@Override public boolean hasNext() { if (finished == false && current == null) { current = it.next(); if (current == null) { finished = true; } } return current != null; }
/** * Get all finite strings that start at {@code startState} and end at {@code endState}. */ public Iterator<TokenStream> getFiniteStrings(int startState, int endState) throws IOException { final FiniteStringsIterator it = new FiniteStringsIterator(det, startState, endState); return new Iterator<TokenStream> () { IntsRef current; boolean finished = false; @Override public boolean hasNext() { if (finished == false && current == null) { current = it.next(); if (current == null) { finished = true; } } return current != null; } @Override public TokenStream next() { if (current == null) { hasNext(); } TokenStream next = new FiniteStringsTokenStream(current); current = null; return next; } }; }
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
growStack(depth); nodes[depth].resetState(a, to); depth++;
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
growStack(depth); nodes[depth].resetState(a, to); depth++;
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
@Override public IntsRef next() { if (count >= limit) { // Abort on limit. return null; } IntsRef result = super.next(); if (result != null) { count++; } return result; }
/** * Get all finite strings that start at {@code startState} and end at {@code endState}. */ public Iterator<TokenStream> getFiniteStrings(int startState, int endState) throws IOException { final FiniteStringsIterator it = new FiniteStringsIterator(det, startState, endState); return new Iterator<TokenStream> () { IntsRef current; boolean finished = false; @Override public boolean hasNext() { if (finished == false && current == null) { current = it.next(); if (current == null) { finished = true; } } return current != null; } @Override public TokenStream next() { if (current == null) { hasNext(); } TokenStream next = new FiniteStringsTokenStream(current); current = null; return next; } }; }
growStack(depth); nodes[depth].resetState(a, to); depth++;
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
@Override public IntsRef next() { if (count >= limit) { // Abort on limit. return null; } IntsRef result = super.next(); if (result != null) { count++; } return result; }
growStack(depth); nodes[depth].resetState(a, to); depth++;
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
@Override public IntsRef next() { if (count >= limit) { // Abort on limit. return null; } IntsRef result = super.next(); if (result != null) { count++; } return result; }
Automaton toLevenshteinAutomata(Automaton automaton) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { if (string.length <= nonFuzzyPrefix || string.length < minFuzzyLength) { subs.add(Automata.makeString(string.ints, string.offset, string.length));
@Override public boolean hasNext() { if (finished == false && current == null) { current = it.next(); if (current == null) { finished = true; } } return current != null; }
private Automaton toLevenshteinAutomata(Automaton automaton, Set<IntsRef> refs) { List<Automaton> subs = new ArrayList<>(); FiniteStringsIterator finiteStrings = new FiniteStringsIterator(automaton); for (IntsRef string; (string = finiteStrings.next()) != null;) { refs.add(IntsRef.deepCopyOf(string));
@Override public IntsRef next() { if (count >= limit) { // Abort on limit. return null; } IntsRef result = super.next(); if (result != null) { count++; } return result; }
@Override public boolean incrementToken() throws IOException { clearAttributes(); if (finiteStrings == null) { Automaton automaton = toAutomaton(); finiteStrings = new LimitedFiniteStringsIterator(automaton, maxGraphExpansions); } IntsRef string = finiteStrings.next(); if (string == null) { return false; } Util.toBytesRef(string, bytesAtt.builder()); // now we have UTF-8 if (charTermAttribute != null) { charTermAttribute.setLength(0); charTermAttribute.append(bytesAtt.toUTF16()); } if (payload != null) { payloadAttr.setPayload(this.payload); } return true; }