package org.argeo.slc.core.execution.generator; import java.util.List; import java.util.Map; /** * Stores information relative to a Runnable. * Allows to structure the information as a tree, each node * storing data as a Map. */ public interface RunnableDataNode { /** * @return a Map containing the data associated with this node. * Data associated with parent nodes are expected * to be contained in the returned Map */ public Map getData(); /** * @return the name of the bean to create. * Can be null if no bean shall be created for the * RunnableDataNode (e.g. is is a sub-node) */ public String getBeanName(); /** * @return the path of the flow bean to create. * Can be null if the bean to created is not an * ExecutionFlow or if no bean shall be created for the * RunnableDataNode (e.g. is is a sub-node) */ public String getPath(); /** * @return whether the RunnableDataNode has * children or not. * Expected to be equivalent to getChildren().empty() */ public boolean isLeaf(); /** * @return the list of RunnableDataNode children. * Can be empty. Shall not be null. */ public List getChildren(); /** * @return the RunnableDataNode parent. * Can be null if no parent is defined (top node). */ public RunnableDataNode getParent(); /** * Sets the RunnableDataNode parent * @param parent */ public void setParent(RunnableDataNode parent); }