public class

SoftReferenceSymbolTable

extends SymbolTable
java.lang.Object
   ↳ org.apache.xerces.util.SymbolTable
     ↳ org.apache.xerces.util.SoftReferenceSymbolTable

Class Overview

This symbol table uses SoftReferences to its String entries, which means that table entries that have no references to them can be garbage collected when memory is needed. Thus, in documents with very very large numbers of unique strings, using this SymbolTable will prevent an out of memory error from occuring.

See Also

Summary

Nested Classes
class SoftReferenceSymbolTable.SREntry This class is a symbol table entry. 
class SoftReferenceSymbolTable.SREntryData  
[Expand]
Inherited Constants
From class org.apache.xerces.util.SymbolTable
Fields
protected SREntry[] fBuckets
[Expand]
Inherited Fields
From class org.apache.xerces.util.SymbolTable
Public Constructors
SoftReferenceSymbolTable(int initialCapacity, float loadFactor)
Constructs a new, empty SymbolTable with the specified initial capacity and the specified load factor.
SoftReferenceSymbolTable(int initialCapacity)
Constructs a new, empty SymbolTable with the specified initial capacity and default load factor, which is 0.75.
SoftReferenceSymbolTable()
Constructs a new, empty SymbolTable with a default initial capacity (101) and load factor, which is 0.75.
Public Methods
String addSymbol(char[] buffer, int offset, int length)
Adds the specified symbol to the symbol table and returns a reference to the unique symbol.
String addSymbol(String symbol)
Adds the specified symbol to the symbol table and returns a reference to the unique symbol.
boolean containsSymbol(char[] buffer, int offset, int length)
Returns true if the symbol table already contains the specified symbol.
boolean containsSymbol(String symbol)
Returns true if the symbol table already contains the specified symbol.
Protected Methods
void rehash()
Increases the capacity of and internally reorganizes this SymbolTable, in order to accommodate and access its entries more efficiently.
[Expand]
Inherited Methods
From class org.apache.xerces.util.SymbolTable
From class java.lang.Object

Fields

protected SREntry[] fBuckets

Public Constructors

public SoftReferenceSymbolTable (int initialCapacity, float loadFactor)

Constructs a new, empty SymbolTable with the specified initial capacity and the specified load factor.

Parameters
initialCapacity the initial capacity of the SymbolTable.
loadFactor the load factor of the SymbolTable.
Throws
IllegalArgumentException if the initial capacity is less than zero, or if the load factor is nonpositive.

public SoftReferenceSymbolTable (int initialCapacity)

Constructs a new, empty SymbolTable with the specified initial capacity and default load factor, which is 0.75.

Parameters
initialCapacity the initial capacity of the hashtable.
Throws
IllegalArgumentException if the initial capacity is less than zero.

public SoftReferenceSymbolTable ()

Constructs a new, empty SymbolTable with a default initial capacity (101) and load factor, which is 0.75.

Public Methods

public String addSymbol (char[] buffer, int offset, int length)

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.

public String addSymbol (String symbol)

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
symbol The new symbol.

public boolean containsSymbol (char[] buffer, int offset, int length)

Returns true if the symbol table already contains the specified symbol.

Parameters
buffer The buffer containing the symbol to look for.
offset The offset into the buffer.
length The length of the symbol in the buffer.

public boolean containsSymbol (String symbol)

Returns true if the symbol table already contains the specified symbol.

Parameters
symbol The symbol to look for.

Protected Methods

protected void rehash ()

Increases the capacity of and internally reorganizes this SymbolTable, in order to accommodate and access its entries more efficiently. This method is called automatically when the number of keys in the SymbolTable exceeds this hashtable's capacity and load factor.