# Class NumericEntityUnescaper

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

public class NumericEntityUnescaper extends CharSequenceTranslator
Translates XML numeric entities of the form &#[xX]?\d+;? to the specific code point. Note that the semicolon is optional.

Since:
  1.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `NumericEntityUnescaper.OPTION`
  Enumerates NumericEntityUnescaper options for unescaping.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NumericEntityUnescaper(NumericEntityUnescaper.OPTION... options)`
  Creates a UnicodeUnescaper.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isSet(NumericEntityUnescaper.OPTION option)`
  Tests whether the passed in option is currently set.
  `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.

  ### Methods inherited from class CharSequenceTranslator

  `hex, translate, translate, with`

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### NumericEntityUnescaper

    public NumericEntityUnescaper(NumericEntityUnescaper.OPTION... options)
    Creates a UnicodeUnescaper. The constructor takes a list of options, only one type of which is currently available (whether to allow, error or ignore the semicolon on the end of a numeric entity to being missing).

    For example, to support numeric entities without a ';':

        new NumericEntityUnescaper(NumericEntityUnescaper.OPTION.semiColonOptional)

    and to throw an IllegalArgumentException when they're missing:

        new NumericEntityUnescaper(NumericEntityUnescaper.OPTION.errorIfNoSemiColon)

    Note that the default behavior is to ignore them.

    Parameters:
      `options` - to apply to this unescaper

- ## Method Details

  - ### isSet

    public boolean isSet(NumericEntityUnescaper.OPTION option)
    Tests whether the passed in option is currently set.
    Parameters:
      `option` - to check state of.
    Returns:
      whether the option is set.

  - ### translate

    public 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.
    Specified by:
      `translate` in class `CharSequenceTranslator`
    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.