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

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

Introduction

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

Prototype

public void add(T data, Object id, Object parent) 

Source Link

Usage

From source file:org.springframework.statemachine.config.AbstractStateMachineFactory.java

private void treeAdd(Tree<StateData<S, E>> tree, Collection<StateData<S, E>> stateDatas) {
    // recursive call due to possible submachine data ref
    if (stateDatas == null) {
        return;//from w w w. j a  va2s .c  o  m
    }
    for (StateData<S, E> stateData : stateDatas) {
        tree.add(stateData, stateData.getState(), stateData.getParent());
        treeAdd(tree, stateData.getSubmachineStateData());
    }
}

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);
    }//from   w w w  .jav a2  s . c  om
    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);
    }//  w  ww . j  a v  a 2s  .  co 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;
}