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