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

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

Introduction

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

Prototype

Tree

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 w  ww .ja  v  a 2  s  .c o  m*/
        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 int topLevelTaskCount(List<TaskWrapper> tasks) {
    Tree<TaskWrapper> tree = new Tree<TaskWrapper>();
    for (TaskWrapper wrapper : tasks) {
        tree.add(wrapper, wrapper.id, wrapper.parent);
    }// ww w  .  j  a  va2 s.  c  o m
    return tree.getRoot().getChildren().size();
}

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);
    }/*  ww w.  j  a  va  2s. c o m*/

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