Package org.apache.jasper.xmlparser

## Class SymbolTable

- java.lang.Object
- - org.apache.jasper.xmlparser.SymbolTable

-     @Deprecated
      public class SymbolTable
      extends java.lang.Object

  Deprecated.
  Will be removed in Tomcat 9.0.x onwards
  This class is a symbol table implementation that guarantees that strings used as identifiers are unique references. Multiple calls to `addSymbol` will always return the same string reference.

  The symbol table performs the same task as `String.intern()` with the following differences:

  - A new string object does not need to be created in order to retrieve a unique reference. Symbols can be added by using a series of characters in a character array.
  - Users of the symbol table can provide their own symbol hashing implementation. For example, a simple string hashing algorithm may fail to produce a balanced set of hashcodes for symbols that are mostly unique. Strings with similar leading characters are especially prone to this poor hashing behavior.
  Author:
    Andy Clark

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SymbolTable()` | Deprecated. Constructs a symbol table with a default number of buckets.
    `SymbolTable​(int tableSize)` | Deprecated. Constructs a symbol table with a specified number of buckets.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `addSymbol​(char[] buffer, int offset, int length)` | Deprecated. Adds the specified symbol to the symbol table and returns a reference to the unique symbol.
    `int` | `hash​(char[] buffer, int offset, int length)` | Deprecated. Returns a hashcode value for the specified symbol information.

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

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

- - ### Constructor Detail

    - #### SymbolTable

          public SymbolTable()

      Deprecated.
      Constructs a symbol table with a default number of buckets.

    - #### SymbolTable

          public SymbolTable​(int tableSize)

      Deprecated.
      Constructs a symbol table with a specified number of buckets.
      Parameters:
        `tableSize` - The table size (default is 101)

  - ### Method Detail

    - #### addSymbol

          public java.lang.String addSymbol​(char[] buffer,
                                            int offset,
                                            int length)

      Deprecated.
      Adds the specified symbol to the symbol table and returns a reference to the unique symbol. If the symbol already exists, the previous symbol reference is returned instead, in order guarantee that symbol references remain unique.
      Parameters:
        `buffer` - The buffer containing the new symbol.
        `offset` - The offset into the buffer of the new symbol.
        `length` - The length of the new symbol in the buffer.
      Returns:
        the symbol added

    - #### hash

          public int hash​(char[] buffer,
                          int offset,
                          int length)

      Deprecated.
      Returns a hashcode value for the specified symbol information. The value returned by this method must be identical to the value returned by the `hash(String)` method when called with the string object created from the symbol information.
      Parameters:
        `buffer` - The character buffer containing the symbol.
        `offset` - The offset into the character buffer of the start of the symbol.
        `length` - The length of the symbol.
      Returns:
        the hash value