package org.apache.haox.asn1; public enum EncodingOption { UNKNOWN(-1), PRIMITIVE(1), CONSTRUCTED(2), CONSTRUCTED_DEFLEN(3), CONSTRUCTED_INDEFLEN(4), IMPLICIT(5), EXPLICIT(6), BER(7), DER(8), CER(9); private int value; private EncodingOption(int value) { this.value = value; } public static int CONSTRUCTED_FLAG = 0x20; public static boolean isConstructed(int tag) { return (tag & CONSTRUCTED_FLAG) != 0; } public int getValue() { return value; } public boolean isPrimitive() { return this == PRIMITIVE; } public boolean isConstructed() { return this == CONSTRUCTED || this == CONSTRUCTED_DEFLEN || this == CONSTRUCTED_INDEFLEN; } public boolean isImplicit() { return this == IMPLICIT; } public boolean isExplicit() { return this == EXPLICIT; } public boolean isDer() { return this == DER; } public boolean isCer() { return this == CER; } public static EncodingOption fromValue(int value) { for (EncodingOption e : values()) { if (e.getValue() == value) { return (EncodingOption) e; } } return UNKNOWN; } }