package net.curisit.securis.db; import java.io.Serializable; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; 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.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonProperty; /** * Entity implementation class for Entity: application * */ @JsonAutoDetect @JsonInclude(Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @Entity @Table(name = "application") @NamedQueries({ @NamedQuery(name = "list-applications", query = "SELECT a FROM Application a") }) public class Application implements Serializable { private static final Logger LOG = LogManager.getLogger(Application.class); private static final long serialVersionUID = 1L; @Id @GeneratedValue private Integer id; private String code; private String name; private String description; @Column(name = "license_filename") @JsonProperty("license_filename") private String licenseFilename; @Column(name = "creation_timestamp") @JsonProperty("creation_timestamp") private Date creationTimestamp; // We don't include the referenced entities to limit the size of each row at // // the listing @JsonIgnore @OneToMany(fetch = FetchType.LAZY, mappedBy = "application") private Set licenseTypes; @OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.REFRESH }, mappedBy = "application") @JsonManagedReference private Set metadata; public Integer getId() { return id; } public void setId(Integer 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; } @JsonProperty("metadata") public Set getApplicationMetadata() { return metadata; } @JsonProperty("metadata") public void setApplicationMetadata(Set metadata) { this.metadata = metadata; } public String getLicenseFilename() { return licenseFilename; } public void setLicenseFilename(String licenseFilename) { this.licenseFilename = licenseFilename; } public Set getLicenseTypes() { LOG.info("Getting list license types!!!!"); return licenseTypes; } public void setLicenseTypes(Set licenseTypes) { this.licenseTypes = licenseTypes; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } @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()); } }