public class WorkflowNetworkFactory
extends java.lang.Object
Network graph to be drawn based on WorkflowActionModel| Constructor and Description |
|---|
WorkflowNetworkFactory() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
balanceCallbacks(java.util.Map<java.lang.String,WorkflowItem> nodesMap)
Sets the level of each node to one level above its average neighbors' levels.
|
protected void |
balanceMergingNodes(java.util.Map<java.lang.String,WorkflowItem> nodesMap)
Sets the level of merging nodes (e.g.
|
protected void |
balanceNodesLevels(java.util.Map<java.lang.String,WorkflowItem> nodesMap) |
protected java.util.Comparator<java.lang.String> |
byMostNeighborsPointingTo(java.util.Map<java.lang.String,WorkflowItem> nodes,
java.util.Collection<java.lang.String> targets) |
protected java.util.List<java.lang.String> |
collectEndActionsIds(java.util.Collection<WorkflowItem> items) |
Network |
create(java.util.Collection<WorkflowItem> items)
Returns the
Network with edges and nodes for later presentation. |
protected java.util.Map<java.lang.String,WorkflowItem> |
createNodesMap(java.util.Collection<WorkflowItem> items) |
protected java.util.List<Edge> |
extractEdges(java.util.Collection<WorkflowItem> items,
java.util.Map<java.lang.String,WorkflowItem> nodesMap) |
WorkflowItemModelFactory |
getWorkflowItemModelFactory() |
protected boolean |
isEndAction(WorkflowItem item) |
protected boolean |
isMergingNode(WorkflowItem node) |
protected static <T> java.util.function.Predicate<T> |
not(java.util.function.Predicate<T> predicate) |
void |
setWorkflowItemModelFactory(WorkflowItemModelFactory workflowItemModelFactory) |
protected static <T> java.util.function.Predicate<T> not(java.util.function.Predicate<T> predicate)
public Network create(java.util.Collection<WorkflowItem> items)
Network with edges and nodes for later presentation. The WorkflowItems are being walked
through starting from the ones with isEnd() set to true. Following their neighbors the algorithm favors visiting
nodes pointing to already visited ones. That results in nodes being sorted by their neighborhood. Initially with each
child of a node the level decreases. Later on the network is balanced vertically so each node is close to its
neighbors and the "and" nodes are half level below the merging decisions.items - from which the Network should be builtprotected java.util.Map<java.lang.String,WorkflowItem> createNodesMap(java.util.Collection<WorkflowItem> items)
protected java.util.List<java.lang.String> collectEndActionsIds(java.util.Collection<WorkflowItem> items)
protected boolean isEndAction(WorkflowItem item)
protected java.util.Comparator<java.lang.String> byMostNeighborsPointingTo(java.util.Map<java.lang.String,WorkflowItem> nodes, java.util.Collection<java.lang.String> targets)
protected void balanceNodesLevels(java.util.Map<java.lang.String,WorkflowItem> nodesMap)
protected void balanceMergingNodes(java.util.Map<java.lang.String,WorkflowItem> nodesMap)
nodesMap - a map containing nodes to balanceprotected boolean isMergingNode(WorkflowItem node)
protected void balanceCallbacks(java.util.Map<java.lang.String,WorkflowItem> nodesMap)
nodesMap - a map containing nodes to balanceprotected java.util.List<Edge> extractEdges(java.util.Collection<WorkflowItem> items, java.util.Map<java.lang.String,WorkflowItem> nodesMap)
public WorkflowItemModelFactory getWorkflowItemModelFactory()
public void setWorkflowItemModelFactory(WorkflowItemModelFactory workflowItemModelFactory)
Copyright © 2018 SAP SE. All Rights Reserved.