package net.curisit.securis.beans; import java.util.Date; import java.util.Map; import java.util.TreeMap; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonAutoDetect @JsonPropertyOrder({ "appName", "licenseCode", "licenseTypeCode", "expirationDate", "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 licenseCode; private String appName; private Map metadata; public LicenseBean() { } public LicenseBean(RequestBean req) { super.setPackCode(req.getPackCode()); super.setLicenseTypeCode(req.getLicenseTypeCode()); super.setCustomerCode(req.getCustomerCode()); super.setArch(req.getArch()); super.setCrcLogo(req.getCrcLogo()); 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 int hashCode() { int code = 0; code += expirationDate != null ? expirationDate.hashCode() : 0; code += signature != null ? signature.hashCode() : 0; code += metadata != null ? metadata.hashCode() : 0; return code; }; @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 getAppName() { return appName; } public void setAppName(String appName) { this.appName = appName; } }