# Interface NameSource

All Known Implementing Classes:
  `BshClassPath, ExternalNameSpace, NameSpace`

public interface NameSource
This interface supports name completion, which is used primarily for command line tools, etc. It provides a flat source of "names" in a space. For example all of the classes in the classpath or all of the variables in a namespace (or all of those).

NameSource is the lightest weight mechanism for sources which wish to support name completion. In the future it might be better for NameSpace to implement NameCompletion directly in a more native and efficient fasion. However in general name competion is used for human interaction and therefore does not require high performance.

See Also:
  - `NameCompletion`
  - `NameCompletionTable`

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`NameSource.Listener`

## Method Summary

Modifier and Type
Method
Description
`void`
`addNameSourceListener(NameSource.Listener listener)`
`String[]`
`getAllNames()`

## Method Details

### getAllNames

String[] getAllNames()

### addNameSourceListener

void addNameSourceListener(NameSource.Listener listener)