summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java')
-rw-r--r--base/common/src/com/netscape/certsrv/cert/CertRequestInfo.java75
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));
+ }
}