package net.curisit.securis.beans; import java.util.Date; import java.util.Map; import java.util.TreeMap; import org.codehaus.jackson.annotate.JsonAutoDetect; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonPropertyOrder; @JsonAutoDetect @JsonPropertyOrder( { "licenseCode", "licenseType", "expirationDate", "appCode", "arch", "osName", "customerCode", "macAddresses", "crcLogo", "metadata" }) public class LicenseBean extends RequestBean { private Date expirationDate; /** * Signature is stored in Base64 code */ private String signature; private String licenseType; private String licenseCode; private Map metadata; public LicenseBean() { } public LicenseBean(RequestBean req) { super.setAppCode(req.getAppCode()); super.setArch(req.getArch()); super.setCrcLogo(req.getCrcLogo()); super.setCustomerCode(req.getCustomerCode()); super.setMacAddresses(req.getMacAddresses()); super.setOsName(req.getOsName()); } public Map getMetadata() { return metadata; } public void setMetadata(Map metadata) { this.metadata = new TreeMap<>(metadata); } @JsonIgnore public String getSignature() { return signature; } @JsonProperty("signature") public void setSignature(String signature) { this.signature = signature; } public Date getExpirationDate() { return expirationDate; } public void setExpirationDate(Date expirationDate) { this.expirationDate = expirationDate; } @Override public boolean equals(Object obj) { if (!(obj instanceof LicenseBean)) return false; LicenseBean rb = (LicenseBean) obj; boolean result = true; result = result && ((expirationDate == null && rb.expirationDate == null) || (expirationDate != null && expirationDate.equals(rb.expirationDate))); result = result && ((signature == null && rb.signature == null) || (signature != null && signature.equals(rb.signature))); result = result && ((metadata == null && rb.metadata == null) || (metadata != null && metadata.equals(rb.metadata))); return result && super.equals(obj); } public String getLicenseCode() { return licenseCode; } public void setLicenseCode(String licenseCode) { this.licenseCode = licenseCode; } public String getLicenseType() { return licenseType; } public void setLicenseType(String licenseType) { this.licenseType = licenseType; } }