diff options
Diffstat (limited to 'base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java b/base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java index d11e94543..0d887a871 100644 --- a/base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java +++ b/base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java @@ -18,6 +18,12 @@ package com.netscape.certsrv.cert; +import java.io.StringReader; +import java.io.StringWriter; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; @@ -25,6 +31,7 @@ import javax.xml.bind.annotation.XmlRootElement; import com.netscape.certsrv.dbs.certdb.CertId; import com.netscape.certsrv.request.CMSRequestInfo; +import com.netscape.certsrv.request.RequestStatus; @XmlRootElement(name = "CertRequestInfo") @XmlAccessorType(XmlAccessType.FIELD) @@ -82,4 +89,72 @@ public class CertRequestInfo extends CMSRequestInfo { return new CertId(id); } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((certRequestType == null) ? 0 : certRequestType.hashCode()); + result = prime * result + ((certURL == null) ? 0 : certURL.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CertRequestInfo other = (CertRequestInfo) obj; + if (certRequestType == null) { + if (other.certRequestType != null) + return false; + } else if (!certRequestType.equals(other.certRequestType)) + return false; + if (certURL == null) { + if (other.certURL != null) + return false; + } else if (!certURL.equals(other.certURL)) + return false; + return true; + } + + public String toString() { + try { + StringWriter sw = new StringWriter(); + Marshaller marshaller = JAXBContext.newInstance(CertRequestInfo.class).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.marshal(this, sw); + return sw.toString(); + + } catch (Exception e) { + return super.toString(); + } + } + + public static CertRequestInfo valueOf(String string) throws Exception { + try { + Unmarshaller unmarshaller = JAXBContext.newInstance(CertRequestInfo.class).createUnmarshaller(); + return (CertRequestInfo)unmarshaller.unmarshal(new StringReader(string)); + } catch (Exception e) { + return null; + } + } + + public static void main(String args[]) throws Exception { + + CertRequestInfo before = new CertRequestInfo(); + before.setRequestType("enrollment"); + before.setRequestStatus(RequestStatus.COMPLETE); + before.setCertRequestType("pkcs10"); + + String string = before.toString(); + System.out.println(string); + + CertRequestInfo after = CertRequestInfo.valueOf(string); + System.out.println(after); + + System.out.println(before.equals(after)); + } } |