diff options
Diffstat (limited to 'base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java b/base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java index f18e60e64..d9e5fbf1c 100644 --- a/base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java +++ b/base/common/src/com/netscape/certsrv/key/KeyRequestInfo.java @@ -18,6 +18,12 @@ package com.netscape.certsrv.key; +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.keydb.KeyId; import com.netscape.certsrv.request.CMSRequestInfo; +import com.netscape.certsrv.request.RequestStatus; @XmlRootElement(name = "KeyRequestInfo") @XmlAccessorType(XmlAccessType.FIELD) @@ -58,4 +65,66 @@ public class KeyRequestInfo extends CMSRequestInfo { public void setKeyURL(String keyURL) { this.keyURL = keyURL; } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((keyURL == null) ? 0 : keyURL.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) + return false; + if (getClass() != obj.getClass()) + return false; + KeyRequestInfo other = (KeyRequestInfo) obj; + if (keyURL == null) { + if (other.keyURL != null) + return false; + } else if (!keyURL.equals(other.keyURL)) + return false; + return true; + } + + public String toString() { + try { + StringWriter sw = new StringWriter(); + Marshaller marshaller = JAXBContext.newInstance(KeyRequestInfo.class).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.marshal(this, sw); + return sw.toString(); + + } catch (Exception e) { + return super.toString(); + } + } + + public static KeyRequestInfo valueOf(String string) throws Exception { + try { + Unmarshaller unmarshaller = JAXBContext.newInstance(KeyRequestInfo.class).createUnmarshaller(); + return (KeyRequestInfo)unmarshaller.unmarshal(new StringReader(string)); + } catch (Exception e) { + return null; + } + } + + public static void main(String args[]) throws Exception { + + KeyRequestInfo before = new KeyRequestInfo(); + before.setRequestType("securityDataEnrollment"); + before.setRequestStatus(RequestStatus.COMPLETE); + + String string = before.toString(); + System.out.println(string); + + KeyRequestInfo after = KeyRequestInfo.valueOf(string); + System.out.println(after); + + System.out.println(before.equals(after)); + } } |