Class CharsetHolder

java.lang.Object
org.apache.tomcat.util.buf.CharsetHolder

public class CharsetHolder extends Object
Represents a character encoding to be used for a request or response.

Historically the Servlet API has used Strings for this information with lazy conversion to Charset. Sometimes the API required that an invalid name triggered an exception. Sometimes the invalid name was treated as if it had never been set. This resulted in classes storing both the String and, if the name was valid, the Charset with validation and conversion logic spread throughout those classes.

This class is an attempt to encapsulate that behaviour.

  • Field Details

  • Method Details

    • getInstance

      public static CharsetHolder getInstance(String name)
    • getInstance

      public static CharsetHolder getInstance(Charset encoding)
    • getName

      public String getName()
    • getCharset

      public Charset getCharset()
      Returns the Charset, null if no Charset has been specified, or null if the holder was created using the name of a Charset that the JRE does not recognise.
      Returns:
      The Charset or null it is not set or invalid
    • getValidatedCharset

      public Charset getValidatedCharset() throws UnsupportedEncodingException
      Returns the Charset or null if no Charset has been specified.
      Returns:
      The validated Charset or null if is not set
      Throws:
      UnsupportedEncodingException - if the holder was created using the name of a Charset that the JRE does not recognise
    • validate

      public void validate() throws UnsupportedEncodingException
      Throws an exception if the instance holds a name that without a matching Charset.
      Throws:
      UnsupportedEncodingException - if the holder contains a name without a matching Charset