org.egothor.stemmer

## Class MultiTrie

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

Direct Known Subclasses:
  MultiTrie2

    public class MultiTrie
    extends Trie

The MultiTrie is a Trie of Tries. It stores words and their associated patch commands. The MultiTrie handles patch commands individually (each command by itself).

### Constructor Summary

Constructors
Constructor and Description
`MultiTrie(boolean forward)` Constructor for the MultiTrie object
`MultiTrie(DataInput is)` Constructor for the MultiTrie object.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add(CharSequence key, CharSequence cmd)` Add an element to this structure consisting of the given key and patch command.
`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 belonging to the given key.
`void` `printInfo(PrintStream out, CharSequence prefix)` Print the given prefix and the position(s) in the Trie where it appears.
`Trie` `reduce(Reduce by)` Remove empty rows from the given Trie and return the newly reduced Trie.
`void` `store(DataOutput os)` Write this data structure to the given output stream.

### Methods inherited from class org.egothor.stemmer.Trie

`getAll, getCells, getCellsPnt, getCellsVal`

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

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

### Constructor Detail

#### MultiTrie

    public MultiTrie(DataInput is)
              throws IOException

Constructor for the MultiTrie object.

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

#### MultiTrie

    public MultiTrie(boolean forward)

Constructor for the MultiTrie object

Parameters:
  `forward` - set to `true` if the elements should be read left to right

### Method Detail

#### getFully

    public CharSequence getFully(CharSequence key)

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

Overrides:
  `getFully` in class `Trie`
Parameters:
  `key` - the key to the cell holding the desired element
Returns:
  the element

#### getLastOnPath

    public CharSequence getLastOnPath(CharSequence key)

Return the element that is stored as last on a path belonging to the given key.

Overrides:
  `getLastOnPath` in class `Trie`
Parameters:
  `key` - the key associated with the desired element
Returns:
  the element that is stored as last on a path

#### store

    public void store(DataOutput os)
               throws IOException

Write this data structure to the given output stream.

Overrides:
  `store` in class `Trie`
Parameters:
  `os` - the output stream
Throws:
  `IOException` - if an I/O error occurs

#### add

    public void add(CharSequence key,
                    CharSequence cmd)

Add an element to this structure consisting of the given key and patch command.

This method will return without executing if the `cmd` parameter's length is 0.

Parameters:
  `key` - the key
  `cmd` - the patch command

#### reduce

    public Trie reduce(Reduce by)

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

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

#### printInfo

    public void printInfo(PrintStream out,
                          CharSequence prefix)

Print the given prefix and the position(s) in the Trie where it appears.

Overrides:
  `printInfo` in class `Trie`
Parameters:
  `prefix` - the desired prefix