package eu.europa.esig.dss.validation; import java.util.HashMap; import java.util.Map; public enum SignatureQualification { /** * Qualified Electronic Signature */ QESIG("QESig", "Qualified Electronic Signature"), /** * Qualified Electronic Seal */ QESEAL("QESeal", "Qualified Electronic Seal"), /** * Qualified Electronic Signature or Seal */ QES("QES?", "Qualified Electronic Signature or Seal"), /** * Advanced Electronic Signature supported by a Qualified Certificate */ ADESIG_QC("AdESig-QC", "Advanced Electronic Signature supported by a Qualified Certificate"), /** * Advanced Electronic Seal supported by a Qualified Certificate */ ADESEAL_QC("AdESeal-QC", "Advanced Electronic Seal supported by a Qualified Certificate"), /** * Advanced Electronic Signature or Seal supported by a Qualified Certificate */ ADES_QC("AdES?-QC", "Advanced Electronic Signature or Seal supported by a Qualified Certificate"), /** * Advanced Electronic Signature */ ADESIG("AdESig", "Advanced Electronic Signature"), /** * Advanced Electronic Seal */ ADESEAL("AdESeal", "Advanced Electronic Seal"), /** * Advanced Electronic Signature or Seal */ ADES("AdES?", "Advanced Electronic Signature or Seal"), /** * Indeterminate Qualified Electronic Signature */ INDETERMINATE_QESIG("Indeterminate QESig", "Indeterminate Qualified Electronic Signature"), /** * Indeterminate Qualified Electronic Seal */ INDETERMINATE_QESEAL("Indeterminate QESeal", "Indeterminate Qualified Electronic Seal"), /** * Indeterminate Qualified Electronic Signature or Seal */ INDETERMINATE_QES("Indeterminate QES?", "Indeterminate Qualified Electronic Signature or Seal"), /** * Indeterminate Advanced Electronic Signature supported by a Qualified Certificate */ INDETERMINATE_ADESIG_QC("Indeterminate AdESig-QC", "Indeterminate Advanced Electronic Signature supported by a Qualified Certificate"), /** * Indeterminate Advanced Electronic Seal supported by a Qualified Certificate */ INDETERMINATE_ADESEAL_QC("Indeterminate AdESeal-QC", "Indeterminate Advanced Electronic Seal supported by a Qualified Certificate"), /** * Indeterminate Advanced Electronic Signature or Seal supported by a Qualified Certificate */ INDETERMINATE_ADES_QC("Indeterminate AdES?-QC", "Indeterminate Advanced Electronic Signature or Seal supported by a Qualified Certificate"), /** * Indeterminate Advanced Electronic Signature */ INDETERMINATE_ADESIG("Indeterminate AdESig", "Indeterminate Advanced Electronic Signature"), /** * Indeterminate Advanced Electronic Seal */ INDETERMINATE_ADESEAL("Indeterminate AdESeal", "Indeterminate Advanced Electronic Seal"), /** * Indeterminate Advanced Electronic Signature or Seal */ INDETERMINATE_ADES("Indeterminate AdES?", "Indeterminate Advanced Electronic Signature or Seal"), /** * Not Advanced Electronic Signature but supported by a Qualified Certificate */ NOT_ADES_QC_QSCD("Not AdES but QC with QSCD", "Not Advanced Electronic Signature but supported by a Qualified Certificate"), /** * Not Advanced Electronic Signature but supported by a Qualified Certificate */ NOT_ADES_QC("Not AdES but QC", "Not Advanced Electronic Signature but supported by a Qualified Certificate"), /** * Not Advanced Electronic Signature */ NOT_ADES("Not AdES", "Not Advanced Electronic Signature"), /** * Not Applicable */ NA("N/A", "Not applicable"); private static class Registry { private final static Map<String, SignatureQualification> QUALIFS_BY_READABLE = registerByReadable(); private static Map<String, SignatureQualification> registerByReadable() { final Map<String, SignatureQualification> map = new HashMap<String, SignatureQualification>(); for (final SignatureQualification qualification : values()) { map.put(qualification.readable, qualification); } return map; } } private final String readable; private final String label; private SignatureQualification(String readable, String label) { this.readable = readable; this.label = label; } public String getReadable() { return readable; } public String getLabel() { return label; } /** * SignatureQualification can be null */ public static SignatureQualification forName(String value) { if ((value != null) && !value.isEmpty()) { return SignatureQualification.valueOf(value); } return null; } /** * SignatureQualification can be null */ public static SignatureQualification fromReadable(String readable) { if ((readable != null) && !readable.isEmpty()) { return Registry.QUALIFS_BY_READABLE.get(readable); } return null; } }