/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.ms.data;
import com.intel.mtwilson.ms.converter.ByteArrayToBase64Converter;
import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.persistence.Convert;
/**
@QueryParam("expiresAfter") String expiresAfter,
@QueryParam("expiresBefore") String expiresBefore,
@QueryParam("fingerprintEqualTo") String fingerprintEqualTo,
@QueryParam("issuerEqualTo") String issuerEqualTo,
@QueryParam("nameContains") String nameContains,
@QueryParam("nameEqualTo") String nameEqualTo,
@QueryParam("serialNumberEqualTo") String serialNumberEqualTo,
@QueryParam("statusEqualTo") String statusEqualTo
*/
/**
*
* @author dsmagadx
*/
@Entity
@Table(name = "mw_api_client_x509")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "ApiClientX509.findAll", query = "SELECT a FROM ApiClientX509 a"),
@NamedQuery(name = "ApiClientX509.findById", query = "SELECT a FROM ApiClientX509 a WHERE a.id = :id"),
@NamedQuery(name = "ApiClientX509.findByName", query = "SELECT a FROM ApiClientX509 a WHERE a.name = :name"),
@NamedQuery(name = "ApiClientX509.findByNameLike", query = "SELECT a FROM ApiClientX509 a WHERE a.name LIKE :name"), // it's the caller's responsibility to add "%" before and/or after the name value
@NamedQuery(name = "ApiClientX509.findByFingerprint", query = "SELECT a FROM ApiClientX509 a WHERE a.fingerprint = :fingerprint"), // added to facilitate authentication filter -jabuhacx 20120621
@NamedQuery(name = "ApiClientX509.findByFingerprintEnabled", query = "SELECT a FROM ApiClientX509 a WHERE a.fingerprint = :fingerprint AND a.enabled = :enabled"),
@NamedQuery(name = "ApiClientX509.findByIssuer", query = "SELECT a FROM ApiClientX509 a WHERE a.issuer = :issuer"),
@NamedQuery(name = "ApiClientX509.findBySerialNumber", query = "SELECT a FROM ApiClientX509 a WHERE a.serialNumber = :serialNumber"),
@NamedQuery(name = "ApiClientX509.findByCommentLike", query = "SELECT a FROM ApiClientX509 a WHERE a.comment LIKE :comment"), // it's the caller's responsibility to add "%" before and/or after the name value
@NamedQuery(name = "ApiClientX509.findByExpires", query = "SELECT a FROM ApiClientX509 a WHERE a.expires = :expires"),
@NamedQuery(name = "ApiClientX509.findByExpiresAfter", query = "SELECT a FROM ApiClientX509 a WHERE a.expires > :expires"),
@NamedQuery(name = "ApiClientX509.findByExpiresBefore", query = "SELECT a FROM ApiClientX509 a WHERE a.expires < :expires"),
@NamedQuery(name = "ApiClientX509.findByEnabled", query = "SELECT a FROM ApiClientX509 a WHERE a.enabled = :enabled"),
@NamedQuery(name = "ApiClientX509.findByStatus", query = "SELECT a FROM ApiClientX509 a WHERE a.status = :status"),
@NamedQuery(name = "ApiClientX509.findByEnabledStatus", query = "SELECT a FROM ApiClientX509 a WHERE a.enabled = :enabled AND a.status = :status"),
@NamedQuery(name = "ApiClientX509.findByUuid", query = "SELECT a FROM ApiClientX509 a WHERE a.uuid_hex = :uuid_hex"),
@NamedQuery(name = "ApiClientX509.findByUserUuid", query = "SELECT a FROM ApiClientX509 a WHERE a.user_uuid_hex = :user_uuid_hex")})
public class ApiClientX509 implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@Basic(optional = false)
@Column(name = "name")
private String name;
@Basic(optional = false)
@Lob
@Column(name = "certificate")
// @Convert(converter=ByteArrayToBase64Converter.class)
private byte[] certificate;
@Basic(optional = false)
@Lob
@Column(name = "fingerprint")
private byte[] fingerprint;
@Column(name = "issuer")
private String issuer;
@Column(name = "serial_number")
private Integer serialNumber;
@Column(name = "expires")
@Temporal(TemporalType.TIMESTAMP)
private Date expires;
@Basic(optional = false)
@Column(name = "enabled")
private boolean enabled;
@Basic(optional = false)
@Column(name = "status")
private String status;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "apiClientX509")
private Collection<ApiRoleX509> apiRoleX509Collection;
@Basic(optional = true)
@Column(name = "comment")
private String comment;
@Basic(optional = true)
@Column(name = "locale")
private String locale;
@Basic(optional = false)
@Column(name = "uuid_hex")
private String uuid_hex;
@Basic(optional = false)
@Column(name = "user_uuid_hex")
private String user_uuid_hex;
public ApiClientX509() {
}
public ApiClientX509(Integer id) {
this.id = id;
}
public ApiClientX509(Integer id, String name, byte[] certificate, byte[] fingerprint, boolean enabled, String status) {
this.id = id;
this.name = name;
this.certificate = certificate;
this.fingerprint = fingerprint;
this.enabled = enabled;
this.status = status;
}
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 byte[] getCertificate() {
return certificate;
}
public void setCertificate(byte[] certificate) {
this.certificate = certificate;
}
public byte[] getFingerprint() {
return fingerprint;
}
public void setFingerprint(byte[] fingerprint) {
this.fingerprint = fingerprint;
}
public String getIssuer() {
return issuer;
}
public void setIssuer(String issuer) {
this.issuer = issuer;
}
public Integer getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
public Date getExpires() {
return expires;
}
public void setExpires(Date expires) {
this.expires = expires;
}
public boolean getEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@XmlTransient
public Collection<ApiRoleX509> getApiRoleX509Collection() {
return apiRoleX509Collection;
}
public void setApiRoleX509Collection(Collection<ApiRoleX509> apiRoleX509Collection) {
this.apiRoleX509Collection = apiRoleX509Collection;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
this.locale = locale;
}
public String getUuid_hex() {
return uuid_hex;
}
public void setUuid_hex(String uuid_hex) {
this.uuid_hex = uuid_hex;
}
public String getUser_uuid_hex() {
return user_uuid_hex;
}
public void setUser_uuid_hex(String user_uuid_hex) {
this.user_uuid_hex = user_uuid_hex;
}
public String getUserNameFromName() {
String x509UserName = name;
String[] parts = x509UserName.split(",");
String[] subParts = parts[0].split("=");
String userName = subParts[1];
return userName;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
if (!(object instanceof ApiClientX509)) {
return false;
}
ApiClientX509 other = (ApiClientX509) 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.ms.data.ApiClientX509[ id=" + id + " ]";
}
}