package com.airlock.iam.common.domain.model.sms;

import com.airlock.iam.plugin.framework.domain.model.property.EnumPropertyTranslator;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public enum SmppDataCodingScheme implements EnumPropertyTranslator {
   DEFAULT("SMSC Default Alphabet", (byte)0),
   IA5("IA5 (CCITT T.50)/ASCII (ANSI X3.4)", (byte)1),
   OCTET_UNSPECIFIED_2("Octet unspecified (8-bit unary)", (byte)2),
   LATIN1("ISO-8859-1 (Latin 1)", (byte)3),
   OCTET_UNSPECIFIED_4("Octet unspecified (8-bit unary)", (byte)4),
   JIS("JIS (X 0208-1990)", (byte)5),
   CYRILLIC("ISO-8859-5 (Cyrillic)", (byte)6),
   HEBREW("ISO-8859-8 (Latin/Hebrew)", (byte)7),
   UCS2("UCS-2 (ISO/IEC-10646)", (byte)8),
   KANJI("Extended Kanji JIS(X 0212-1990)", (byte)13),
   KSC5601("KS C 5601", (byte)14);

   private final String displayName;
   private final byte value;

   public String getDisplayValue() {
      return String.format("%1$s (0x%2$02X)", this.displayName, this.value);
   }

   public byte getValue() {
      return this.value;
   }

   @SuppressFBWarnings(justification = "generated code")
   SmppDataCodingScheme(final String displayName, final byte value) {
      this.displayName = displayName;
      this.value = value;
   }
}
