# Class NameCompletionTable

java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.ArrayList
bsh.util.NameCompletionTable

All Implemented Interfaces:
  `NameCompletion, Serializable, Cloneable, Iterable, Collection, List, RandomAccess, SequencedCollection`

public class NameCompletionTable extends ArrayList implements NameCompletion
NameCompletionTable is a utility that implements simple name completion for a collection of names, NameSources, and other NameCompletionTables. This implementation uses a trivial linear search and comparison...

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from class AbstractList

`modCount`

## Constructor Summary

Constructors
Constructor
Description
`NameCompletionTable()`

## Method Summary

Modifier and Type
Method
Description
`void`
`add(NameSource source)`
Add a NameSource which is monitored for names.
`void`
`add(NameCompletionTable table)`
Add a NameCompletionTable, which is more optimized than the more general NameSource
`String[]`
`completeName(String part)`
Return an array containing a string element of the maximum unambiguous namespace completion or, if there is no common prefix, return the list of ambiguous names.
`protected void`
`getMatchingNames(String part, List found)`
Add any matching names to list (including any from other tables)

### Methods inherited from class ArrayList

`add, add, addAll, addAll, addFirst, addLast, clear, clone, contains, ensureCapacity, equals, forEach, get, getFirst, getLast, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeIf, removeLast, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize`

### Methods inherited from class AbstractCollection

`containsAll, toString`

### Methods inherited from class Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface Collection

`parallelStream, stream, toArray`

### Methods inherited from interface List

`containsAll, reversed`

## Constructor Details

### NameCompletionTable

public NameCompletionTable()

## Method Details

### add

public void add(NameCompletionTable table)
Add a NameCompletionTable, which is more optimized than the more general NameSource

### add

public void add(NameSource source)
Add a NameSource which is monitored for names. Unimplemented - behavior is broken... no updates

### getMatchingNames

protected void getMatchingNames(String part, List found)
Add any matching names to list (including any from other tables)

### completeName

public String[] completeName(String part)
Description copied from interface: `NameCompletion`
Return an array containing a string element of the maximum unambiguous namespace completion or, if there is no common prefix, return the list of ambiguous names. e.g. input: "java.l" output: [ "java.lang." ] input: "java.lang." output: [ "java.lang.Thread", "java.lang.Integer", ... ] Note: Alternatively, make a NameCompletionResult object someday...

Specified by:
  `completeName` in interface `NameCompletion`