protected <STATE> Node createNodes(Nfa<STATE> nfa, STATE state, Map<STATE, Integer> names, Wrapper<Integer> lastName) { Integer name = names.get(state); if (name != null) return new Node(String.valueOf(name), true); lastName.set(lastName.get() + 1); names.put(state, lastName.get()); Node node = new Node(String.valueOf(lastName.get()), false); for (STATE follower : nfa.getFollowers(state)) node.children.add(createNodes(nfa, follower, names, lastName)); return node; } }
protected <STATE> Node createNodes(Nfa<STATE> nfa, STATE state, Map<STATE, Integer> names, Wrapper<Integer> lastName) { Integer name = names.get(state); if (name != null) return new Node(String.valueOf(name), true); lastName.set(lastName.get() + 1); names.put(state, lastName.get()); Node node = new Node(String.valueOf(lastName.get()), false); for (STATE follower : nfa.getFollowers(state)) node.children.add(createNodes(nfa, follower, names, lastName)); return node; } }