diff options
Diffstat (limited to 'base/util/src/netscape/security/x509/RevocationReason.java')
-rw-r--r-- | base/util/src/netscape/security/x509/RevocationReason.java | 141 |
1 files changed, 74 insertions, 67 deletions
diff --git a/base/util/src/netscape/security/x509/RevocationReason.java b/base/util/src/netscape/security/x509/RevocationReason.java index ae68ec525..183d9eecd 100644 --- a/base/util/src/netscape/security/x509/RevocationReason.java +++ b/base/util/src/netscape/security/x509/RevocationReason.java @@ -18,6 +18,10 @@ package netscape.security.x509; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; /** * Represent the enumerated type used in CRLReason Extension of CRL entry. @@ -29,94 +33,97 @@ import java.io.Serializable; public final class RevocationReason implements Serializable { private static final long serialVersionUID = -2582403666913588806L; + + public static final Collection<RevocationReason> INSTANCES = new ArrayList<RevocationReason>(); + public static final Map<Integer, RevocationReason> CODES = new LinkedHashMap<Integer, RevocationReason>(); + public static final Map<String, RevocationReason> LABELS = new LinkedHashMap<String, RevocationReason>(); + /** * Reasons */ - public static final RevocationReason UNSPECIFIED = new RevocationReason(0); - public static final RevocationReason KEY_COMPROMISE = new RevocationReason(1); - public static final RevocationReason CA_COMPROMISE = new RevocationReason(2); - public static final RevocationReason AFFILIATION_CHANGED = new RevocationReason(3); - public static final RevocationReason SUPERSEDED = new RevocationReason(4); - public static final RevocationReason CESSATION_OF_OPERATION = new RevocationReason(5); - public static final RevocationReason CERTIFICATE_HOLD = new RevocationReason(6); - public static final RevocationReason REMOVE_FROM_CRL = new RevocationReason(8); - public static final RevocationReason PRIVILEGE_WITHDRAWN = new RevocationReason(9); - public static final RevocationReason AA_COMPROMISE = new RevocationReason(10); + public static final RevocationReason UNSPECIFIED = new RevocationReason(0, "Unspecified"); + public static final RevocationReason KEY_COMPROMISE = new RevocationReason(1, "Key_Compromise"); + public static final RevocationReason CA_COMPROMISE = new RevocationReason(2, "CA_Compromise"); + public static final RevocationReason AFFILIATION_CHANGED = new RevocationReason(3, "Affiliation_Changed"); + public static final RevocationReason SUPERSEDED = new RevocationReason(4, "Superseded"); + public static final RevocationReason CESSATION_OF_OPERATION = new RevocationReason(5, "Cessation_of_Operation"); + public static final RevocationReason CERTIFICATE_HOLD = new RevocationReason(6, "Certificate_Hold"); + public static final RevocationReason REMOVE_FROM_CRL = new RevocationReason(8, "Remove_from_CRL"); + public static final RevocationReason PRIVILEGE_WITHDRAWN = new RevocationReason(9, "Privilege_Withdrawn"); + public static final RevocationReason AA_COMPROMISE = new RevocationReason(10, "AA_Compromise"); // Private data members - private int mReason; + private int code; + private String label; /** - * Create a RevocationReason with the passed integer value. + * Create a RevocationReason with the passed integer value and string label. * * @param reason integer value of the enumeration alternative. + * @param label string value of the enumeration alternative. */ - private RevocationReason(int reason) { - this.mReason = reason; + private RevocationReason(int reason, String label) { + this.code = reason; + this.label = label; + + INSTANCES.add(this); + CODES.put(reason, this); + LABELS.put(label.toLowerCase(), this); } - public int toInt() { - return mReason; + public int getCode() { + return code; + } + + public String getLabel() { + return label; } public static RevocationReason fromInt(int reason) { - if (reason == UNSPECIFIED.mReason) - return UNSPECIFIED; - if (reason == KEY_COMPROMISE.mReason) - return KEY_COMPROMISE; - if (reason == CA_COMPROMISE.mReason) - return CA_COMPROMISE; - if (reason == AFFILIATION_CHANGED.mReason) - return AFFILIATION_CHANGED; - if (reason == SUPERSEDED.mReason) - return SUPERSEDED; - if (reason == CESSATION_OF_OPERATION.mReason) - return CESSATION_OF_OPERATION; - if (reason == CERTIFICATE_HOLD.mReason) - return CERTIFICATE_HOLD; - if (reason == REMOVE_FROM_CRL.mReason) - return REMOVE_FROM_CRL; - if (reason == PRIVILEGE_WITHDRAWN.mReason) - return PRIVILEGE_WITHDRAWN; - if (reason == AA_COMPROMISE.mReason) - return AA_COMPROMISE; - return null; + return valueOf(reason); } - public boolean equals(Object other) { - if (this == other) - return true; - else if (other instanceof RevocationReason) - return ((RevocationReason) other).mReason == mReason; - else - return false; + public static RevocationReason valueOf(int reason) { + return CODES.get(reason); } - public int hashCode() { - return mReason; + public static RevocationReason valueOf(String string) { + return LABELS.get(string.toLowerCase()); + } + + public int toInt() { + return code; } public String toString() { - if (equals(UNSPECIFIED)) - return "Unspecified"; - if (equals(KEY_COMPROMISE)) - return "Key_Compromise"; - if (equals(CA_COMPROMISE)) - return "CA_Compromise"; - if (equals(AFFILIATION_CHANGED)) - return "Affiliation_Changed"; - if (equals(SUPERSEDED)) - return "Superseded"; - if (equals(CESSATION_OF_OPERATION)) - return "Cessation_of_Operation"; - if (equals(CERTIFICATE_HOLD)) - return "Certificate_Hold"; - if (equals(REMOVE_FROM_CRL)) - return "Remove_from_CRL"; - if (equals(PRIVILEGE_WITHDRAWN)) - return "Privilege_Withdrawn"; - if (equals(AA_COMPROMISE)) - return "AA_Compromise"; - return "[UNDEFINED]"; + return label; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RevocationReason other = (RevocationReason) obj; + if (code != other.code) + return false; + if (label == null) { + if (other.label != null) + return false; + } else if (!label.equals(other.label)) + return false; + return true; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + code; + result = prime * result + ((label == null) ? 0 : label.hashCode()); + return result; } } |