org.apache.jasper.xmlparser

## Class SymbolTable

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

- Deprecated.
  Will be removed in Tomcat 9.0.x onwards

      @Deprecated
      public class SymbolTable
      extends Object

  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 and 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

    Methods
    Modifier and Type | Method and 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 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 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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.