org.egothor.stemmer

## Class MultiTrie2

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

    public class MultiTrie2
    extends MultiTrie

The MultiTrie is a Trie of Tries.

It stores words and their associated patch commands. The MultiTrie handles patch commands broken into their constituent parts, as a MultiTrie does, but the commands are delimited by the skip command.

### Constructor Summary

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

### Method Summary

Methods
`void` `add(CharSequence key, CharSequence cmd)` Add an element to this structure consisting of the given key and patch command.
`CharSequence[]` `decompose(CharSequence cmd)` Break the given patch command into its constituent pieces.
`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.
`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.MultiTrie

`printInfo`

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

#### MultiTrie2

    public MultiTrie2(DataInput is)
               throws IOException

Constructor for the MultiTrie object.

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

#### MultiTrie2

    public MultiTrie2(boolean forward)

Constructor for the MultiTrie2 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 `MultiTrie`
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 `MultiTrie`
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 `MultiTrie`
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.

Overrides:
  `add` in class `MultiTrie`
Parameters:
  `key` - the key
  `cmd` - the patch command

#### decompose

    public CharSequence[] decompose(CharSequence cmd)

Break the given patch command into its constituent pieces. The pieces are delimited by NOOP commands.

Parameters:
  `cmd` - the patch command
Returns:
  an array containing the pieces of the command

#### reduce

    public Trie reduce(Reduce by)

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

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