package automenta.netention; import java.util.Date; import java.util.LinkedList; import java.util.List; import java.util.UUID; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.UniqueConstraint; import org.eclipse.persistence.annotations.PrimaryKey; import org.vaadin.appfoundation.persistence.data.AbstractPojo; @Entity @Table(name = "appdetail", uniqueConstraints = { @UniqueConstraint(columnNames = {"id"})}) public class Detail extends AbstractPojo { protected String uuid; protected String name; private Mode mode; private List<String> patterns = new LinkedList(); private List<PropertyValue> properties = new LinkedList(); private String creator; @Temporal(TemporalType.TIMESTAMP) private Date whenCreated; @Temporal(TemporalType.TIMESTAMP) private Date whenModified; private String iconURL = null; public Detail() { this(""); } public Detail(String name) { this(name, Mode.Unknown); } public Detail(String name, Mode mode, String... initialPatterns) { super(); this.uuid = UUID.randomUUID().toString(); this.name = name; this.mode = mode; this.creator = "Me"; this.whenCreated = this.whenModified = new Date(); for (String p : initialPatterns) { addPattern(p); } } public String getUuid() { return uuid; } /** universally unique ID */ public String getID() { return uuid; } public String getName() { return name; } public void setName(String nextName) { this.name = nextName; } public String toString() { return getID() + " (" + getName() + ")"; } public int hashCode() { return getID().hashCode(); } public boolean equals(Object obj) { if (obj instanceof Node) { Node an = (Node) obj; return an.getID().equals(getID()); } return false; } public void setMode(Mode newMode) { this.mode = newMode; } public Mode getMode() { return mode; } public List<String> getPatterns() { return patterns; } public List<PropertyValue> getProperties() { return properties; } public boolean addProperty(String propID, PropertyValue p) { p.setProperty(propID); return getProperties().add(p); } //TODO impl // public boolean removeProperty(String propID) { // return false; // } public boolean addPattern(String... patternID) { for (String p : patternID) getPatterns().add(p); return true; } public boolean removePattern(String patternID) { return getPatterns().remove(patternID); } public String getCreator() { return creator; } public String getIconURL() { return iconURL; } public void setIconURL(String u) { this.iconURL = u; } public Date getWhenCreated() { return whenCreated; } public void setWhenCreated(Date whenCreated) { this.whenCreated = whenCreated; } public Date getWhenModified() { return whenModified; } public void setWhenModified(Date whenModified) { this.whenModified = whenModified; } }