# Class CharSequenceTranslator

java.lang.Object
org.apache.commons.text.translate.CharSequenceTranslator

Direct Known Subclasses:
  `AggregateTranslator, CodePointTranslator, CsvTranslators.CsvEscaper, CsvTranslators.CsvUnescaper, LookupTranslator, NumericEntityUnescaper, OctalUnescaper, UnicodeUnescaper`

public abstract class CharSequenceTranslator extends Object
An API for translating text. Its core use is to escape and unescape text. Because escaping and unescaping is completely contextual, the API does not present two separate signatures.

Since:
  1.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CharSequenceTranslator()`
  Construct a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `hex(int codePoint)`
  Returns an upper case hexadecimal `String` for the given character.
  `final String`
  `translate(CharSequence input)`
  Helper for non-Writer usage.
  `abstract int`
  `translate(CharSequence input, int index, Writer writer)`
  Translate a set of code points, represented by an int index into a CharSequence, into another set of code points.
  `final void`
  `translate(CharSequence input, Writer writer)`
  Translate an input onto a Writer.
  `final CharSequenceTranslator`
  `with(CharSequenceTranslator... translators)`
  Helper method to create a merger of this translator with another set of translators.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### CharSequenceTranslator

    public CharSequenceTranslator()
    Construct a new instance.

- ## Method Details

  - ### hex

    public static String hex(int codePoint)
    Returns an upper case hexadecimal `String` for the given character.
    Parameters:
      `codePoint` - The code point to convert.
    Returns:
      An upper case hexadecimal `String`

  - ### translate

    public final String translate(CharSequence input)
    Helper for non-Writer usage.
    Parameters:
      `input` - CharSequence to be translated.
    Returns:
      String output of translation.

  - ### translate

    public abstract int translate(CharSequence input, int index, Writer writer) throws IOException
    Translate a set of code points, represented by an int index into a CharSequence, into another set of code points. The number of code points consumed must be returned, and the only IOExceptions thrown must be from interacting with the Writer so that the top level API may reliably ignore StringWriter IOExceptions.
    Parameters:
      `input` - CharSequence that is being translated.
      `index` - int representing the current point of translation.
      `writer` - Writer to translate the text to.
    Returns:
      int count of code points consumed.
    Throws:
      `IOException` - if and only if the Writer produces an IOException.

  - ### translate

    public final void translate(CharSequence input, Writer writer) throws IOException
    Translate an input onto a Writer. This is intentionally final as its algorithm is tightly coupled with the abstract method of this class.
    Parameters:
      `input` - CharSequence that is being translated.
      `writer` - Writer to translate the text to.
    Throws:
      `IOException` - if and only if the Writer produces an IOException.

  - ### with

    public final CharSequenceTranslator with(CharSequenceTranslator... translators)
    Helper method to create a merger of this translator with another set of translators. Useful in customizing the standard functionality.
    Parameters:
      `translators` - CharSequenceTranslator array of translators to merge with this one.
    Returns:
      CharSequenceTranslator merging this translator with the others.