List of usage examples for org.springframework.statemachine.support.tree TreeTraverser TreeTraverser
TreeTraverser
From source file:org.springframework.statemachine.config.AbstractStateMachineFactory.java
private Iterator<Node<StateData<S, E>>> buildStateDataIterator(StateMachineModel<S, E> stateMachineModel) { Tree<StateData<S, E>> tree = new Tree<StateData<S, E>>(); treeAdd(tree, stateMachineModel.getStatesData().getStateData()); return new TreeTraverser<Node<StateData<S, E>>>() { @Override/*from ww w . j av a 2s . c om*/ public Iterable<Node<StateData<S, E>>> children(Node<StateData<S, E>> root) { return root.getChildren(); } }.postOrderTraversal(tree.getRoot()).iterator(); }
From source file:org.springframework.statemachine.recipes.tasks.TasksHandler.java
private static Iterator<Node<TaskWrapper>> buildTasksIterator(List<TaskWrapper> tasks) { Tree<TaskWrapper> tree = new Tree<TaskWrapper>(); for (TaskWrapper wrapper : tasks) { tree.add(wrapper, wrapper.id, wrapper.parent); }//from w w w . j av a 2 s . c om TreeTraverser<Node<TaskWrapper>> traverser = new TreeTraverser<Node<TaskWrapper>>() { @Override public Iterable<Node<TaskWrapper>> children(Node<TaskWrapper> root) { return root.getChildren(); } }; Iterable<Node<TaskWrapper>> postOrderTraversal = traverser.postOrderTraversal(tree.getRoot()); Iterator<Node<TaskWrapper>> iterator = postOrderTraversal.iterator(); return iterator; }