Class EscapedByteLookupCharset

java.lang.Object
java.nio.charset.Charset
net.freeutils.charset.EscapedByteLookupCharset
All Implemented Interfaces:
Comparable<Charset>
Direct Known Subclasses:
GSMCharset

public abstract class EscapedByteLookupCharset extends Charset
The EscapedByteLookupCharset class handles the encoding and decoding of simple charsets where the byte-to-char conversion is performed using a simple lookup table, with the addition of a special escape byte, such that the single byte following it is converted using an alternate lookup table.
Since:
2007-03-26
  • Constructor Details

    • EscapedByteLookupCharset

      protected EscapedByteLookupCharset(String canonicalName, String[] aliases, byte escape, int[] byteToChar, int[] byteToCharEscaped, int[][] charToByte, int[][] charToByteEscaped)
      Initializes a new charset with the given canonical name and alias set, and byte-to-char/char-to-byte lookup tables.

      Parameters:
      canonicalName - The canonical name of this charset
      aliases - An array of this charset's aliases, or null if it has no aliases
      escape - the special escape byte value
      byteToChar - a byte-to-char conversion table for this charset
      byteToCharEscaped - a byte-to-char conversion table for this charset for the escaped characters
      charToByte - a char-to-byte conversion table for this charset. It can be generated on-the-fly by calling createInverseLookupTable(byteToChar).
      charToByteEscaped - a char-to-byte conversion table for this charset for the escaped characters
      Throws:
      IllegalCharsetNameException - If the canonical name or any of the aliases are illegal
  • Method Details

    • contains

      public boolean contains(Charset cs)
      Tells whether or not this charset contains the given charset.

      A charset C is said to contain a charset D if, and only if, every character representable in D is also representable in C. If this relationship holds then it is guaranteed that every string that can be encoded in D can also be encoded in C without performing any replacements.

      That C contains D does not imply that each character representable in C by a particular byte sequence is represented in D by the same byte sequence, although sometimes this is the case.

      Every charset contains itself.

      This method computes an approximation of the containment relation: If it returns true then the given charset is known to be contained by this charset; if it returns false, however, then it is not necessarily the case that the given charset is not contained in this charset.

      Specified by:
      contains in class Charset
      Returns:
      true if, and only if, the given charset is contained in this charset
    • newDecoder

      public CharsetDecoder newDecoder()
      Constructs a new decoder for this charset.

      Specified by:
      newDecoder in class Charset
      Returns:
      A new decoder for this charset
    • newEncoder

      public CharsetEncoder newEncoder()
      Constructs a new encoder for this charset.

      Specified by:
      newEncoder in class Charset
      Returns:
      A new encoder for this charset
      Throws:
      UnsupportedOperationException - If this charset does not support encoding