package net.curisit.securis.db; import java.io.Serializable; import java.util.Date; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import org.codehaus.jackson.annotate.JsonAutoDetect; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.map.annotate.JsonSerialize; /** * Entity implementation class for Entity: application * */ @JsonAutoDetect @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @Entity @Table(name = "application") @NamedQueries({ @NamedQuery(name = "list-applications", query = "SELECT a FROM Application a") }) public class Application implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; private String name; private String description; @Column(name = "creation_timestamp") private Date creationTimestamp; @JsonIgnore // We don't include the referenced entities to limit the size of each row at // the listing @OneToMany(fetch = FetchType.LAZY, mappedBy = "application") private Set licenseTypes; @OneToMany(fetch = FetchType.LAZY, mappedBy = "application") private Set metadata; public int getId() { return id; } public void setId(int id) { this.id = id; } 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 = description; } public Date getCreationTimestamp() { return creationTimestamp; } public void setCreationTimestamp(Date creationTimestamp) { this.creationTimestamp = creationTimestamp; } public Set getLicenseTypes() { return licenseTypes; } public void setLicenseTypes(Set licenseTypes) { this.licenseTypes = licenseTypes; } @JsonProperty("metadata") public Set getApplicationMetadata() { return metadata; } @JsonProperty("metadata") public void setApplicationMetadata(Set metadata) { this.metadata = metadata; } @Override public boolean equals(Object obj) { if (!(obj instanceof Application)) return false; Application other = (Application)obj; return id.equals(other.id); } @Override public int hashCode() { return (id == null ? 0 : id.hashCode()); } }