Example usage for org.springframework.statemachine.support.tree TreeTraverser TreeTraverser

List of usage examples for org.springframework.statemachine.support.tree TreeTraverser TreeTraverser

Introduction

In this page you can find the example usage for org.springframework.statemachine.support.tree TreeTraverser TreeTraverser.

Prototype

TreeTraverser

Source Link

Usage

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;
}