org.egothor.stemmer

## Class Trie

- java.lang.Object
- - org.egothor.stemmer.Trie

Direct Known Subclasses:
  MultiTrie

    public class Trie
    extends Object

A Trie is used to store a dictionary of words and their stems.

Actually, what is stored are words with their respective patch commands. A trie can be termed forward (keys read from left to right) or backward (keys read from right to left). This property will vary depending on the language for which a Trie is constructed.

### Constructor Summary

Constructors
Constructor and Description
`Trie(boolean forward)` Constructor for the Trie object.
`Trie(boolean forward, int root, List<CharSequence> cmds, List<Row> rows)` Constructor for the Trie object.
`Trie(DataInput is)` Constructor for the Trie object.

### Method Summary

Methods
`CharSequence[]` `getAll(CharSequence key)` Gets the all attribute of the Trie object
`int` `getCells()` Return the number of cells in this Trie object.
`int` `getCellsPnt()` Gets the cellsPnt attribute of the Trie object
`int` `getCellsVal()` Gets the cellsVal attribute of the Trie object
`CharSequence` `getFully(CharSequence key)` Return the element that is stored in a cell associated with the given key.
`CharSequence` `getLastOnPath(CharSequence key)` Return the element that is stored as last on a path associated with the given key.
`void` `printInfo(PrintStream out, CharSequence prefix)` writes debugging info to the printstream
`Trie` `reduce(Reduce by)` Remove empty rows from the given Trie and return the newly reduced Trie.
`void` `store(DataOutput os)` Write this Trie to the given output stream.

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

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

### Constructor Detail

#### Trie

    public Trie(DataInput is)
         throws IOException

Constructor for the Trie object.

Parameters:
  `is` - the input stream
Throws:
  `IOException` - if an I/O error occurs

#### Trie

    public Trie(boolean forward)

Constructor for the Trie object.

Parameters:
  `forward` - set to `true`

#### Trie

    public Trie(boolean forward,
        int root,
        List<CharSequence> cmds,
        List<Row> rows)

Constructor for the Trie object.

Parameters:
  `forward` - `true` if read left to right, `false` if read right to left
  `root` - index of the row that is the root node
  `cmds` - the patch commands to store
  `rows` - a Vector of Vectors. Each inner Vector is a node of this Trie

### Method Detail

#### getAll

    public CharSequence[] getAll(CharSequence key)

Gets the all attribute of the Trie object

Parameters:
  `key` - Description of the Parameter
Returns:
  The all value

#### getCells

    public int getCells()

Return the number of cells in this Trie object.

Returns:
  the number of cells

#### getCellsPnt

    public int getCellsPnt()

Gets the cellsPnt attribute of the Trie object

Returns:
  The cellsPnt value

#### getCellsVal

    public int getCellsVal()

Gets the cellsVal attribute of the Trie object

Returns:
  The cellsVal value

#### getFully

    public CharSequence getFully(CharSequence key)

Return the element that is stored in a cell associated with the given key.

Parameters:
  `key` - the key
Returns:
  the associated element

#### getLastOnPath

    public CharSequence getLastOnPath(CharSequence key)

Return the element that is stored as last on a path associated with the given key.

Parameters:
  `key` - the key associated with the desired element
Returns:
  the last on path element

#### store

    public void store(DataOutput os)
               throws IOException

Write this Trie to the given output stream.

Parameters:
  `os` - the output stream
Throws:
  `IOException` - if an I/O error occurs

#### reduce

    public Trie reduce(Reduce by)

Remove empty rows from the given Trie and return the newly reduced Trie.

Parameters:
  `by` - the Trie to reduce
Returns:
  the newly reduced Trie

#### printInfo

    public void printInfo(PrintStream out,
                 CharSequence prefix)

writes debugging info to the printstream