# Interface: com.pnfsoftware.jeb.util.interpreter.ICommandInterpreter

Definition of a command interpreter. 

 Plugins can provide command interpreters to offer advanced functionality to clients. In the JEB UI client, interpreters are made available in the Terminal panel.

## Method: autoComplete
- parameter: `command`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.util.interpreter.AutocompletionResult`

Description: Provide a best\-effort completion suggestion for the provided partial command.
parameter: command: partial command line
return: optional auto\-completion result object

## Method: executeCommand
- parameter: `command`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.util.interpreter.ExecutionResult`

Description: Execute a command.
parameter: command: command line to execute
return: the execution result

## Method: getBanner
- return type: `java.lang.String`

Description: Retrieve the interpreter's banner/logo string.
return: optional string that client code \(shells\) may display when the interpreter was just         instantiated

## Method: getDescription
- return type: `java.lang.String`

Description: Get the long name or description.
return: optional string

## Method: getName
- return type: `java.lang.String`

Description: Get the \(short\) name of this interpreter.
return: non\-null string

## Method: prepare

Description: Interpreters may place resource intensive preparation operations here. Clients may optionally call this method before invoking either: [#executeCommand(String)](#executeCommand(String)) or [#autoComplete(String)](#autoComplete(String)). Clients may decide to not call this method. An interpreter implementation must handle cases where prepare\(\) is never called, sometimes called, called multiple times, etc.

## Method: shouldDisplayRawResults
- return type: `boolean`

Description: Determine whether this interpreter prefers that the results of [executed commands](#executeCommand(String)) be printed as\-is. Clients decide whether or not they want to follow this guideline.
return: true if clients should display execution results without additional formatting

