Package org.apache.jasper.xmlparser

# Class SymbolTable

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

@Deprecated public class SymbolTable extends 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

  Modifier and Type
  Method
  Description
  `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 Details

  - ### 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 Details

  - ### addSymbol

    public 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