package hu.sztaki.ilab.longneck; import hu.sztaki.ilab.longneck.process.constraint.ConstraintFlag; import java.util.ArrayList; import java.util.List; /** * A class representing data values; a field is an atomic data element. * * Fields are referenced by a name, and contain a value. * * The fields might be null, in that case they do not contain values. * * @author Csaba Sidló <sidlo@sztaki.mta.hu> */ public class Field { /** The field name. */ private String name ; /** null value indicates an undefined value (unknown if applicable, N/A if non-applicable) */ private String value; /** The list of applied flags. */ private List<ConstraintFlag> flags; public Field() { flags = new ArrayList<ConstraintFlag>(); } public Field(Field f) { this.name = f.getName(); this.value = f.getValue(); this.flags = new ArrayList<ConstraintFlag>(f.getFlags()); } /** * Creates a field with a name. * @param name The name of the field. */ public Field(String name) { this.name = name ; flags = new ArrayList<ConstraintFlag>(); } public Field(String name, String value) { this.name = name ; this.value = value ; flags = new ArrayList<ConstraintFlag>(); } public String getName() { return this.name ; } public void setName(String name) { this.name = name ; } public String getValue() { return this.value ; } public void setValue(String value) { this.value = value ; } @Override public String toString() { return String.format("%1$s: %2$s", name, value); } public List<ConstraintFlag> getFlags() { return flags; } public void setFlags(List<ConstraintFlag> flags) { this.flags = flags; } public void addFlag(ConstraintFlag flag) { if (! flags.contains(flag)) { flags.add(flag); } } public void removeFlag(ConstraintFlag flag) { flags.remove(flag); } public boolean hasFlag(ConstraintFlag flag) { return flags.contains(flag); } }