org.apache.pdfbox.pdmodel.font.encoding

## Class Encoding

- java.lang.Object
- - org.apache.pdfbox.pdmodel.font.encoding.Encoding

All Implemented Interfaces:
  COSObjectable

Direct Known Subclasses:
  BuiltInEncoding, DictionaryEncoding, MacExpertEncoding, MacRomanEncoding, StandardEncoding, SymbolEncoding, Type1Encoding, WinAnsiEncoding, ZapfDingbatsEncoding

    public abstract class Encoding
    extends Object
    implements COSObjectable

A PostScript encoding vector, maps character codes to glyph names.

Author:
  Ben Litchfield

### Field Summary

Fields
`protected static int` `CHAR_CODE`
`protected static int` `CHAR_NAME`
`protected Map<Integer,String>` `codeToName` code-to-name map.
`protected Map<String,Integer>` `inverted` name-to-code map.

### Constructor Summary

Constructors
Constructor and Description
`Encoding()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `add(int code, String name)` This will add a character encoding.
`boolean` `contains(int code)` Determines if the encoding has a mapping for the given code value.
`boolean` `contains(String name)` Determines if the encoding has a mapping for the given name value.
`Map<Integer,String>` `getCodeToNameMap()` Returns an unmodifiable view of the code -> name mapping.
`abstract String` `getEncodingName()` Returns the name of this encoding.
`static Encoding` `getInstance(COSName name)` This will get an encoding by name.
`String` `getName(int code)` This will take a character code and get the name from the code.
`Map<String,Integer>` `getNameToCodeMap()` Returns an unmodifiable view of the name -> code mapping.
`protected void` `overwrite(int code, String name)` This will add a character encoding.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.pdfbox.pdmodel.common.COSObjectable

`getCOSObject`

### Field Detail

#### CHAR_CODE

    protected static final int CHAR_CODE

See Also:
  Constant Field Values

#### CHAR_NAME

    protected static final int CHAR_NAME

See Also:
  Constant Field Values

#### codeToName

    protected final Map<Integer,String> codeToName

code-to-name map. Derived classes should not modify the map after class construction.

#### inverted

    protected final Map<String,Integer> inverted

name-to-code map. Derived classes should not modify the map after class construction.

### Constructor Detail

#### Encoding

    public Encoding()

### Method Detail

#### getInstance

    public static Encoding getInstance(COSName name)

This will get an encoding by name. May return null.

Parameters:
  `name` - The name of the encoding to get.
Returns:
  The encoding that matches the name.

#### getCodeToNameMap

    public Map<Integer,String> getCodeToNameMap()

Returns an unmodifiable view of the code -> name mapping.

Returns:
  the code -> name map

#### getNameToCodeMap

    public Map<String,Integer> getNameToCodeMap()

Returns an unmodifiable view of the name -> code mapping. More than one name may map to the same code.

Returns:
  the name -> code map

#### add

    protected void add(int code,
                       String name)

This will add a character encoding. An already existing mapping is preserved when creating the reverse mapping. Should only be used during construction of the class.

Parameters:
  `code` - character code
  `name` - PostScript glyph name
See Also:
  `overwrite(int, String)`

#### overwrite

    protected void overwrite(int code,
                             String name)

This will add a character encoding. An already existing mapping is overwritten when creating the reverse mapping. Should only be used during construction of the class.

Parameters:
  `code` - character code
  `name` - PostScript glyph name
See Also:
  `add(int, String)`

#### contains

    public boolean contains(String name)

Determines if the encoding has a mapping for the given name value.

Parameters:
  `name` - PostScript glyph name
Returns:
  true if the encoding has a mapping for the given name value

#### contains

    public boolean contains(int code)

Determines if the encoding has a mapping for the given code value.

Parameters:
  `code` - character code
Returns:
  if the encoding has a mapping for the given code value

#### getName

    public String getName(int code)

This will take a character code and get the name from the code.

Parameters:
  `code` - character code
Returns:
  PostScript glyph name

#### getEncodingName

    public abstract String getEncodingName()

Returns the name of this encoding.

Returns:
  the name of the encoding