package org.argeo.slc.core.execution.generator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Default implementation of RunnableDataNode
*
*/
public class DefaultRunnableDataNode implements RunnableDataNode {
private List children = new ArrayList();
private RunnableDataNode parent;
/**
* Data of the RunnableDataNode. Does not contain
* parent data.
*/
private Map properData = new HashMap();
private String path;
private String beanName;
public boolean isLeaf() {
return children.size() == 0;
}
public List getChildren() {
return children;
}
public void addChild(RunnableDataNode child) {
child.setParent(this);
children.add(child);
}
public Map getData() {
Map data = new HashMap();
if(parent != null) {
Map parentData = parent.getData();
if(parentData != null) {
data.putAll(parentData);
}
}
// entries defined in parentData can be overridden
// in properData
if(properData != null) {
data.putAll(properData);
}
return data;
}
public Map getProperData() {
return properData;
}
public void setProperData(Map properData) {
this.properData = properData;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getBeanName() {
return beanName;
}
public void setBeanName(String beanName) {
this.beanName = beanName;
}
public void setParent(RunnableDataNode parent) {
this.parent = parent;
}
public RunnableDataNode getParent() {
return parent;
}
}