/** * Generate all Strings that matches the given Regex. * * @return */ public List<String> getAllMatchedStrings() { matchedStrings = new ArrayList<String>(); generate("", automaton.getInitialState(), Integer.MAX_VALUE); return matchedStrings; }
/** * Generate subList with a size of <code>limit</code> of Strings that matches the given Regex. the Strings are * ordered in lexicographical order. * * @param limit * @return */ public List<String> getMatchedStrings(int limit) { matchedStrings = new ArrayList<String>(); generate("", automaton.getInitialState(), limit); return matchedStrings; }
/** * Generate all Strings that matches the given Regex. * * @return */ public List<String> getAllMatchedStrings() { matchedStrings = new ArrayList<String>(); generate("", automaton.getInitialState(), Integer.MAX_VALUE); return matchedStrings; }
/** * Generate subList with a size of <code>limit</code> of Strings that matches the given Regex. the Strings are ordered in lexicographical order. * * @param limit * @return */ public List<String> getMatchedStrings(int limit) { matchedStrings = new ArrayList<String>(); generate("", automaton.getInitialState(), limit); return matchedStrings; }
private void generate(String strMatch, State state, int limit) { if (matchedStringCounter == limit) return; ++matchedStringCounter; List<Transition> transitions = state.getSortedTransitions(true); if (transitions.size() == 0) { matchedStrings.add(strMatch); return; } if (state.isAccept()) { matchedStrings.add(strMatch); } for (Transition transition : transitions) { for (char c = transition.getMin(); c <= transition.getMax(); ++c) { generate(strMatch + c, transition.getDest(), limit); } } }
private void generate(String strMatch, State state, int limit) { if (matchedStringCounter == limit) return; ++ matchedStringCounter; List<Transition> transitions = state.getSortedTransitions(true); if (transitions.size() == 0) { matchedStrings.add(strMatch); return; } if (state.isAccept()) { matchedStrings.add(strMatch); } for (Transition transition : transitions) { for (char c = transition.getMin(); c <= transition.getMax(); ++ c) { generate(strMatch + c, transition.getDest(), limit); } } }