# MacExpertEncoding.java

    /*
     * Licensed to the Apache Software Foundation (ASF) under one or more
     * contributor license agreements.  See the NOTICE file distributed with
     * this work for additional information regarding copyright ownership.
     * The ASF licenses this file to You under the Apache License, Version 2.0
     * (the "License"); you may not use this file except in compliance with
     * the License.  You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    package org.apache.pdfbox.pdmodel.font.encoding;

    import org.apache.pdfbox.cos.COSBase;
    import org.apache.pdfbox.cos.COSName;

    /**
     * This is an interface to a text encoder.
     */
    public class MacExpertEncoding extends Encoding
    {
        /**
         * Table of octal character codes and their corresponding names.
         */
        private static final Object[][] MAC_EXPERT_ENCODING_TABLE = {
            {0276, "AEsmall"},
            {0207, "Aacutesmall"},
            {0211, "Acircumflexsmall"},
            {047, "Acutesmall"},
            {0212, "Adieresissmall"},
            {0210, "Agravesmall"},
            {0214, "Aringsmall"},
            {0141, "Asmall"},
            {0213, "Atildesmall"},
            {0363, "Brevesmall"},
            {0142, "Bsmall"},
            {0256, "Caronsmall"},
            {0215, "Ccedillasmall"},
            {0311, "Cedillasmall"},
            {0136, "Circumflexsmall"},
            {0143, "Csmall"},
            {0254, "Dieresissmall"},
            {0372, "Dotaccentsmall"},
            {0144, "Dsmall"},
            {0216, "Eacutesmall"},
            {0220, "Ecircumflexsmall"},
            {0221, "Edieresissmall"},
            {0217, "Egravesmall"},
            {0145, "Esmall"},
            {0104, "Ethsmall"},
            {0146, "Fsmall"},
            {0140, "Gravesmall"},
            {0147, "Gsmall"},
            {0150, "Hsmall"},
            {042, "Hungarumlautsmall"},
            {0222, "Iacutesmall"},
            {0224, "Icircumflexsmall"},
            {0225, "Idieresissmall"},
            {0223, "Igravesmall"},
            {0151, "Ismall"},
            {0152, "Jsmall"},
            {0153, "Ksmall"},
            {0302, "Lslashsmall"},
            {0154, "Lsmall"},
            {0364, "Macronsmall"},
            {0155, "Msmall"},
            {0156, "Nsmall"},
            {0226, "Ntildesmall"},
            {0317, "OEsmall"},
            {0227, "Oacutesmall"},
            {0231, "Ocircumflexsmall"},
            {0232, "Odieresissmall"},
            {0362, "Ogoneksmall"},
            {0230, "Ogravesmall"},
            {0277, "Oslashsmall"},
            {0157, "Osmall"},
            {0233, "Otildesmall"},
            {0160, "Psmall"},
            {0161, "Qsmall"},
            {0373, "Ringsmall"},
            {0162, "Rsmall"},
            {0247, "Scaronsmall"},
            {0163, "Ssmall"},
            {0271, "Thornsmall"},
            {0176, "Tildesmall"},
            {0164, "Tsmall"},
            {0234, "Uacutesmall"},
            {0236, "Ucircumflexsmall"},
            {0237, "Udieresissmall"},
            {0235, "Ugravesmall"},
            {0165, "Usmall"},
            {0166, "Vsmall"},
            {0167, "Wsmall"},
            {0170, "Xsmall"},
            {0264, "Yacutesmall"},
            {0330, "Ydieresissmall"},
            {0171, "Ysmall"},
            {0275, "Zcaronsmall"},
            {0172, "Zsmall"},
            {046, "ampersandsmall"},
            {0201, "asuperior"},
            {0365, "bsuperior"},
            {0251, "centinferior"},
            {043, "centoldstyle"},
            {0202, "centsuperior"},
            {072, "colon"},
            {0173, "colonmonetary"},
            {054, "comma"},
            {0262, "commainferior"},
            {0370, "commasuperior"},
            {0266, "dollarinferior"},
            {044, "dollaroldstyle"},
            {045, "dollarsuperior"},
            {0353, "dsuperior"},
            {0245, "eightinferior"},
            {070, "eightoldstyle"},
            {0241, "eightsuperior"},
            {0344, "esuperior"},
            {0326, "exclamdownsmall"},
            {041, "exclamsmall"},
            {0126, "ff"},
            {0131, "ffi"},
            {0132, "ffl"},
            {0127, "fi"},
            {0320, "figuredash"},
            {0114, "fiveeighths"},
            {0260, "fiveinferior"},
            {065, "fiveoldstyle"},
            {0336, "fivesuperior"},
            {0130, "fl"},
            {0242, "fourinferior"},
            {064, "fouroldstyle"},
            {0335, "foursuperior"},
            {057, "fraction"},
            {055, "hyphen"},
            {0137, "hypheninferior"},
            {0321, "hyphensuperior"},
            {0351, "isuperior"},
            {0361, "lsuperior"},
            {0367, "msuperior"},
            {0273, "nineinferior"},
            {071, "nineoldstyle"},
            {0341, "ninesuperior"},
            {0366, "nsuperior"},
            {053, "onedotenleader"},
            {0112, "oneeighth"},
            {0174, "onefitted"},
            {0110, "onehalf"},
            {0301, "oneinferior"},
            {061, "oneoldstyle"},
            {0107, "onequarter"},
            {0332, "onesuperior"},
            {0116, "onethird"},
            {0257, "osuperior"},
            {0133, "parenleftinferior"},
            {050, "parenleftsuperior"},
            {0135, "parenrightinferior"},
            {051, "parenrightsuperior"},
            {056, "period"},
            {0263, "periodinferior"},
            {0371, "periodsuperior"},
            {0300, "questiondownsmall"},
            {077, "questionsmall"},
            {0345, "rsuperior"},
            {0175, "rupiah"},
            {073, "semicolon"},
            {0115, "seveneighths"},
            {0246, "seveninferior"},
            {067, "sevenoldstyle"},
            {0340, "sevensuperior"},
            {0244, "sixinferior"},
            {066, "sixoldstyle"},
            {0337, "sixsuperior"},
            {040, "space"},
            {0352, "ssuperior"},
            {0113, "threeeighths"},
            {0243, "threeinferior"},
            {063, "threeoldstyle"},
            {0111, "threequarters"},
            {075, "threequartersemdash"},
            {0334, "threesuperior"},
            {0346, "tsuperior"},
            {052, "twodotenleader"},
            {0252, "twoinferior"},
            {062, "twooldstyle"},
            {0333, "twosuperior"},
            {0117, "twothirds"},
            {0274, "zeroinferior"},
            {060, "zerooldstyle"},
            {0342, "zerosuperior"}
        };

        /**
         * Singleton instance of this class.
         */
        public static final MacExpertEncoding INSTANCE = new MacExpertEncoding();

        /**
         * Constructor.
         */
        public MacExpertEncoding()
        {
            for (Object[] encodingEntry : MAC_EXPERT_ENCODING_TABLE)
            {
                add((Integer) encodingEntry[CHAR_CODE], encodingEntry[CHAR_NAME].toString());
            }
        }

        @Override
        public COSBase getCOSObject()
        {
            return COSName.MAC_EXPERT_ENCODING;
        }

        @Override
        public String getEncodingName()
        {
            return "MacExpertEncoding";
        }
    }