package automenta.netention; import java.io.Serializable; abstract public class Property implements Serializable { private String desc; private String id; private String name; private int cardinalityMax = 1; private int cardinalityMin = 0; public Property() { super(); this.desc = ""; } public Property(String id, String name) { this(); this.id = id; this.name = name; } public String getDescription() { return desc; } public String getID() { return id; } public String getName() { if (name == null) return getID(); return name; } @Override public String toString() { return "(" + getID() + ": " + getClass().getSimpleName() + ")"; } public abstract PropertyValue newDefaultValue(Mode mode); /** max cardinality, -1 if unlimited */ public int getCardinalityMax() { return cardinalityMax; } /** min cardinality, >= 0 */ public int getCardinalityMin() { return cardinalityMin; } public void setCardinalityMax(int cardinalityMax) { this.cardinalityMax = cardinalityMax; } public void setCardinalityMin(int cardinalityMin) { this.cardinalityMin = cardinalityMin; } public Property setDescription(String description) { this.desc = description; return this; } }