/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.as.data; import com.intel.mtwilson.audit.handler.AuditEventHandler; import java.io.Serializable; import java.util.Collection; import java.util.Date; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import org.eclipse.persistence.annotations.Customizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author dsmagadx */ @Entity @Customizer(AuditEventHandler.class) @Table(name = "mw_module_manifest") @XmlRootElement @NamedQueries({ @NamedQuery(name = "TblModuleManifest.findAll", query = "SELECT t FROM TblModuleManifest t"), @NamedQuery(name = "TblModuleManifest.findById", query = "SELECT t FROM TblModuleManifest t WHERE t.id = :id"), @NamedQuery(name = "TblModuleManifest.findByDescription", query = "SELECT t FROM TblModuleManifest t WHERE t.description = :description"), // @NamedQuery(name = "TblModuleManifest.findByCreatedOn", query = "SELECT t FROM TblModuleManifest t WHERE t.createdOn = :createdOn"), @NamedQuery(name = "TblModuleManifest.findByMleId", query = "SELECT t FROM TblModuleManifest t WHERE t.mleId.id = :mleId"), @NamedQuery(name = "TblModuleManifest.findByUuidHex", query = "SELECT t FROM TblModuleManifest t WHERE t.uuid_hex = :uuid_hex"), @NamedQuery(name = "TblModuleManifest.findByMleUuidHex", query = "SELECT t FROM TblModuleManifest t WHERE t.mle_uuid_hex = :mle_uuid_hex"), @NamedQuery(name = "TblModuleManifest.findByComponentNameLike", query = "SELECT t FROM TblModuleManifest t WHERE t.componentName LIKE :name"), @NamedQuery(name = "TblModuleManifest.findByMleNameEventName", query = "SELECT t FROM TblModuleManifest t WHERE t.mleId.id = :mleId and t.componentName= :name and t.eventID.name = :eventName"), @NamedQuery(name = "TblModuleManifest.findByModuleValue", query = "SELECT t FROM TblModuleManifest t WHERE t.digestValue = :digestValue"), @NamedQuery(name = "TblModuleManifest.findByMleIDEventID", query = "SELECT t.id FROM TblModuleManifest t WHERE t.mleId.id = :mleId and t.eventID.id = :eventId and t.componentName= :name") }) // @NamedQuery(name = "TblModuleManifest.findByUpdatedOn", query = "SELECT t FROM TblModuleManifest t WHERE t.updatedOn = :updatedOn") public class TblModuleManifest implements Serializable { @Transient private Logger log = LoggerFactory.getLogger(getClass().getName()); @Basic(optional = false) @Column(name = "ComponentName") private String componentName; @Basic(optional = false) @Column(name = "DigestValue") private String digestValue; @Column(name = "ExtendedToPCR") private String extendedToPCR; @Column(name = "PackageName") private String packageName; @Column(name = "PackageVendor") private String packageVendor; @Column(name = "PackageVersion") private String packageVersion; @Column(name = "UseHostSpecificDigestValue") private Boolean useHostSpecificDigestValue; // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* @Basic(optional = false) @Column(name = "Created_On") @Temporal(TemporalType.TIMESTAMP) private Date createdOn; @Basic(optional = false) @Column(name = "Updated_On") @Temporal(TemporalType.TIMESTAMP) private Date updatedOn; */ @OneToMany(cascade = CascadeType.ALL, mappedBy = "moduleManifestID") private Collection<TblHostSpecificManifest> tblHostSpecificManifestCollection; @JoinColumn(name = "Event_ID", referencedColumnName = "ID") @ManyToOne(optional = false) private TblEventType eventID; @JoinColumn(name = "NameSpace_ID", referencedColumnName = "ID") @ManyToOne(optional = false) private TblPackageNamespace nameSpaceID; private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "ID") private Integer id; @Column(name = "Description") private String description; // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* @JoinColumn(name = "Updated_By", referencedColumnName = "ID") @ManyToOne(optional = false) private TblDbPortalUser updatedBy; @JoinColumn(name = "Created_By", referencedColumnName = "ID") @ManyToOne(optional = false) private TblDbPortalUser createdBy; */ @JoinColumn(name = "MLE_ID", referencedColumnName = "ID") @ManyToOne(optional = false) private TblMle mleId; @Column(name = "uuid_hex") private String uuid_hex; @Column(name = "mle_uuid_hex") private String mle_uuid_hex; public TblModuleManifest() { } public TblModuleManifest(Integer id) { this.id = id; } public TblModuleManifest(Integer id, Date createdOn, Date updatedOn) { this.id = id; // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* this.createdOn = createdOn; this.updatedOn = updatedOn; */ } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* public Date getCreatedOn() { return createdOn; } public void setCreatedOn(Date createdOn) { this.createdOn = createdOn; } public Date getUpdatedOn() { return updatedOn; } public void setUpdatedOn(Date updatedOn) { this.updatedOn = updatedOn; } */ // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* public TblDbPortalUser getUpdatedBy() { return updatedBy; } public void setUpdatedBy(TblDbPortalUser updatedBy) { this.updatedBy = updatedBy; } public TblDbPortalUser getCreatedBy() { return createdBy; } public void setCreatedBy(TblDbPortalUser createdBy) { this.createdBy = createdBy; } */ public TblMle getMleId() { return mleId; } public void setMleId(TblMle mleId) { this.mleId = mleId; } @Override public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { if (!(object instanceof TblModuleManifest)) { return false; } TblModuleManifest other = (TblModuleManifest) object; if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return "com.intel.mountwilson.as.data.TblModuleManifest[ id=" + id + " ]"; } public String getComponentName() { // fix for Bug #730 that affected postgres only because postgres does not automatically trim spaces on queries but mysql automatically trims if( this.componentName != null ) { //log.debug("trimming componentName"); this.componentName = this.componentName.trim(); } return componentName; } public void setComponentName(String componentName) { this.componentName = componentName; // fix for bug 2013-02-04 that affected postgres only because postgres does not automatically trim spaces on queries but mysql automatically trims if( this.componentName != null ) { //log.debug("trimming componentName"); this.componentName = this.componentName.trim(); } } public String getDigestValue() { return digestValue; } public void setDigestValue(String digestValue) { this.digestValue = digestValue; } public String getExtendedToPCR() { return extendedToPCR; } public void setExtendedToPCR(String extendedToPCR) { this.extendedToPCR = extendedToPCR; } public String getPackageName() { return packageName; } public void setPackageName(String packageName) { this.packageName = packageName; } public String getPackageVendor() { return packageVendor; } public void setPackageVendor(String packageVendor) { this.packageVendor = packageVendor; } public String getPackageVersion() { return packageVersion; } public void setPackageVersion(String packageVersion) { this.packageVersion = packageVersion; } public Boolean getUseHostSpecificDigestValue() { return useHostSpecificDigestValue; } public void setUseHostSpecificDigestValue(Boolean useHostSpecificDigestValue) { this.useHostSpecificDigestValue = useHostSpecificDigestValue; } @XmlTransient public Collection<TblHostSpecificManifest> getTblHostSpecificManifestCollection() { return tblHostSpecificManifestCollection; } public void setTblHostSpecificManifestCollection(Collection<TblHostSpecificManifest> tblHostSpecificManifestCollection) { this.tblHostSpecificManifestCollection = tblHostSpecificManifestCollection; } public TblEventType getEventID() { return eventID; } public void setEventID(TblEventType eventID) { this.eventID = eventID; } public TblPackageNamespace getNameSpaceID() { return nameSpaceID; } public void setNameSpaceID(TblPackageNamespace nameSpaceID) { this.nameSpaceID = nameSpaceID; } public String getUuid_hex() { return uuid_hex; } public void setUuid_hex(String uuid_hex) { this.uuid_hex = uuid_hex; } public String getMle_uuid_hex() { return mle_uuid_hex; } public void setMle_uuid_hex(String mle_uuid_hex) { this.mle_uuid_hex = mle_uuid_hex; } }