package org.activityinfo.io.xform.form; import com.google.common.base.Strings; import com.google.common.collect.Lists; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import java.util.ArrayList; import java.util.List; @XmlJavaTypeAdapter(InstanceElementAdapter.class) public class InstanceElement { private String id; private String name; private String value; private List<InstanceElement> children; public InstanceElement(String name) { this.name = name; this.children = Lists.newArrayList(); } public InstanceElement(String name, InstanceElement... children) { this.name = name; this.children = Lists.newArrayList(children); } public InstanceElement(String name, String value) { this.name = name; this.value = value; this.children = Lists.newArrayList(); } public String getName() { return name; } public String getValue() { return value; } public void setValue(String value) { this.value = Strings.emptyToNull(value); } public List<InstanceElement> getChildren() { return children; } public String getId() { return id; } public void setId(String id) { this.id = id; } public boolean hasChildren() { return this.children.size() > 0; } public void addChild(InstanceElement instanceElement) { children.add(instanceElement); } }