package org.etsi.mts.tdl.execution.java.rt.core; import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.etsi.mts.tdl.execution.java.tri.Data; import org.etsi.mts.tdl.execution.java.tri.ElementAnnotation; import org.etsi.mts.tdl.execution.java.tri.Mapping; import org.etsi.mts.tdl.execution.java.tri.Type; import org.etsi.mts.tdl.execution.java.tri.Value; public class ValueImpl extends Value implements TriImpl> { private TypeImpl type; private boolean collection = false; private boolean structure = false; private Object value = null; private Map> parameters = new Hashtable>(); private List> items = new ArrayList>(); private MappingImpl mapping; public ValueImpl() { } public ValueImpl(TypeImpl type) { this.type = type; } public ValueImpl setType(TypeImpl type) { this.type = type; return this; } public ValueImpl setIsCollection(boolean collection) { this.collection = collection; return this; } public ValueImpl setIsStructure(boolean structure) { this.structure = structure; return this; } @Override public boolean isCollection() { return this.collection; } @Override public boolean isStructure() { return this.structure; } public ValueImpl setMapping(Mapping mapping) { this.mapping = (MappingImpl) mapping; return this; } @Override public MappingImpl getMapping() { return mapping; } @Override public Object getValue() { return this.value; } public ValueImpl setValue(Object value) { this.value = value; return this; } @Override public Collection getParameters() { return this.parameters.keySet(); } @Override public Data getParameter(String name) { return this.parameters.get(name); } @Override public ValueImpl setParameter(String name, Data value) { this.parameters.put(name, value); return this; } @Override public List> getItems() { return this.items; } public ValueImpl addItem(Data item) { this.items.add(item); return this; } public ValueImpl setItems(List> items) { this.items = items; return this; } @Override public ValueImpl setName(String name, String qualifiedName) { this.name = name; this.qualifiedName = qualifiedName; return this; } @Override public ValueImpl addAnnotation(String key, String value) { this.annotations.add(new ElementAnnotation(key, value)); return this; } public Data asData() { return new Data(type, this); } }