package no.difi.datahotel.model; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; /** * The class creates a definintion that represent the definiton of a field in a * dataset. */ @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) public class Definition implements Comparable<Definition>, Light<DefinitionLight> { @XmlElement private String name; @XmlElement private String shortName; @XmlElement private String description; private List<Field> fields = new ArrayList<Field>(); public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = "".equals(description) ? null : description; } public void setShortName(String shortName) { this.shortName = shortName; } public String getShortName() { return shortName; } public List<Field> getFields() { return fields; } public void addField(Field field) { fields.add(field); field.setDefinition(this); } public void removeField(Field field) { fields.remove(field); } public DefinitionLight light() { return new DefinitionLight(this); } @Override public boolean equals(Object o) { if (o == null || !(o instanceof Definition)) return false; return String.valueOf(shortName).compareTo(String.valueOf(((Definition) o).shortName)) == 0; } @Override public int compareTo(Definition other) { return name.compareTo(other.name); } }