Package org.jline.console.impl
Class ConsoleEngineImpl
- java.lang.Object
-
- org.jline.console.impl.AbstractCommandRegistry
-
- org.jline.console.impl.JlineCommandRegistry
-
- org.jline.console.impl.ConsoleEngineImpl
-
- All Implemented Interfaces:
CommandRegistry
,ConsoleEngine
public class ConsoleEngineImpl extends JlineCommandRegistry implements ConsoleEngine
Manage console variables, commands and script execution.- Author:
- Matti Rinta-Nikkola
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ConsoleEngineImpl.Command
-
Nested classes/interfaces inherited from interface org.jline.console.CommandRegistry
CommandRegistry.CommandSession
-
Nested classes/interfaces inherited from interface org.jline.console.ConsoleEngine
ConsoleEngine.ExecutionResult, ConsoleEngine.WidgetCreator
-
-
Field Summary
-
Fields inherited from interface org.jline.console.ConsoleEngine
VAR_NANORC
-
-
Constructor Summary
Constructors Constructor Description ConsoleEngineImpl(java.util.Set<ConsoleEngineImpl.Command> commands, ScriptEngine engine, Printer printer, java.util.function.Supplier<java.nio.file.Path> workDir, ConfigurationPath configPath)
ConsoleEngineImpl(ScriptEngine engine, Printer printer, java.util.function.Supplier<java.nio.file.Path> workDir, ConfigurationPath configPath)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
consoleOption(java.lang.String option, T defval)
Read console option valuejava.lang.Object
execute(java.lang.String cmd, java.lang.String line, java.lang.String[] args)
Executes command line that does not contain known command by the system registry.java.lang.Object
execute(java.nio.file.Path script, java.lang.String cmdLine, java.lang.String[] args)
Executes either JLine or ScriptEngine script.boolean
executeWidget(java.lang.Object function)
Execute widget functionjava.lang.String
expandCommandLine(java.lang.String line)
Substitutes command line with system registry invoke method call.java.lang.Object[]
expandParameters(java.lang.String[] args)
Substituting args references with their values.java.lang.String
expandToList(java.util.List<java.lang.String> params)
Expands parameter list to stringjava.lang.String
getAlias(java.lang.String name)
Returns alias 'name' valuejava.util.List<java.lang.String>
getNamedPipes()
Returns named pipe namesjava.util.Map<java.lang.String,java.util.List<java.lang.String>>
getPipes()
Returns defined pipesjava.lang.Object
getVariable(java.lang.String name)
Get variable valueboolean
hasAlias(java.lang.String name)
Returns true if alias 'name' existsboolean
hasVariable(java.lang.String name)
Test if variable with name existsjava.lang.Object
invoke(CommandRegistry.CommandSession session, java.lang.String command, java.lang.Object... args)
Execute a command.boolean
isExecuting()
Checks if consoleEngine is executing scriptvoid
persist(java.nio.file.Path file, java.lang.Object object)
Persist object to fileConsoleEngine.ExecutionResult
postProcess(java.lang.Object result)
Post processes execution result.ConsoleEngine.ExecutionResult
postProcess(java.lang.String line, java.lang.Object result, java.lang.String output)
Post processes execution result.void
println(java.lang.Object object)
Print object.void
purge()
Delete temporary console variablesvoid
putVariable(java.lang.String name, java.lang.Object value)
Create console variablejava.util.List<Completer>
scriptCompleters()
Returns script and variable completersjava.util.Map<java.lang.String,java.lang.Boolean>
scripts()
Returns all scripts found from PATHvoid
setConsoleOption(java.lang.String name, java.lang.Object value)
Set console option valuevoid
setLineReader(LineReader reader)
Sets lineReadervoid
setScriptExtension(java.lang.String extension)
Sets file name extension used by console scriptsvoid
setSystemRegistry(SystemRegistry systemRegistry)
Sets systemRegistryjava.lang.Object
slurp(java.nio.file.Path file)
Read object from filevoid
trace(java.lang.Object object)
Print object if trace is enabled-
Methods inherited from class org.jline.console.impl.JlineCommandRegistry
commandDescription, commandInfo, commandOptions, compileCommandDescription, compileCommandInfo, compileCommandOptions, defaultCompleter, parseOptions
-
Methods inherited from class org.jline.console.impl.AbstractCommandRegistry
alias, commandAliases, commandNames, compileCompleters, doHelpDesc, getCommandMethods, hasCommand, registerCommands, registerCommands, registeredCommand, rename, saveException
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jline.console.CommandRegistry
commandAliases, commandDescription, commandInfo, commandNames, compileCompleters, hasCommand, name
-
Methods inherited from interface org.jline.console.ConsoleEngine
execute, execute
-
-
-
-
Constructor Detail
-
ConsoleEngineImpl
public ConsoleEngineImpl(ScriptEngine engine, Printer printer, java.util.function.Supplier<java.nio.file.Path> workDir, ConfigurationPath configPath) throws java.io.IOException
- Throws:
java.io.IOException
-
ConsoleEngineImpl
public ConsoleEngineImpl(java.util.Set<ConsoleEngineImpl.Command> commands, ScriptEngine engine, Printer printer, java.util.function.Supplier<java.nio.file.Path> workDir, ConfigurationPath configPath) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
setLineReader
public void setLineReader(LineReader reader)
Description copied from interface:ConsoleEngine
Sets lineReader- Specified by:
setLineReader
in interfaceConsoleEngine
- Parameters:
reader
- LineReader
-
isExecuting
public boolean isExecuting()
Description copied from interface:ConsoleEngine
Checks if consoleEngine is executing script- Specified by:
isExecuting
in interfaceConsoleEngine
- Returns:
- true when executing script
-
setSystemRegistry
public void setSystemRegistry(SystemRegistry systemRegistry)
Description copied from interface:ConsoleEngine
Sets systemRegistry- Specified by:
setSystemRegistry
in interfaceConsoleEngine
- Parameters:
systemRegistry
- SystemRegistry
-
setScriptExtension
public void setScriptExtension(java.lang.String extension)
Description copied from interface:ConsoleEngine
Sets file name extension used by console scripts- Specified by:
setScriptExtension
in interfaceConsoleEngine
- Parameters:
extension
- console script file extension
-
hasAlias
public boolean hasAlias(java.lang.String name)
Description copied from interface:ConsoleEngine
Returns true if alias 'name' exists- Specified by:
hasAlias
in interfaceConsoleEngine
- Parameters:
name
- alias name- Returns:
- true if alias exists
-
getAlias
public java.lang.String getAlias(java.lang.String name)
Description copied from interface:ConsoleEngine
Returns alias 'name' value- Specified by:
getAlias
in interfaceConsoleEngine
- Parameters:
name
- alias name- Returns:
- value of alias
-
getPipes
public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getPipes()
Description copied from interface:ConsoleEngine
Returns defined pipes- Specified by:
getPipes
in interfaceConsoleEngine
- Returns:
- map of defined pipes
-
getNamedPipes
public java.util.List<java.lang.String> getNamedPipes()
Description copied from interface:ConsoleEngine
Returns named pipe names- Specified by:
getNamedPipes
in interfaceConsoleEngine
- Returns:
- list of named pipe names
-
scriptCompleters
public java.util.List<Completer> scriptCompleters()
Description copied from interface:ConsoleEngine
Returns script and variable completers- Specified by:
scriptCompleters
in interfaceConsoleEngine
- Returns:
- script and variable completers
-
scripts
public java.util.Map<java.lang.String,java.lang.Boolean> scripts()
Description copied from interface:ConsoleEngine
Returns all scripts found from PATH- Specified by:
scripts
in interfaceConsoleEngine
- Returns:
- map keys have script file names and value is true if it is console script
-
expandParameters
public java.lang.Object[] expandParameters(java.lang.String[] args) throws java.lang.Exception
Description copied from interface:ConsoleEngine
Substituting args references with their values.- Specified by:
expandParameters
in interfaceConsoleEngine
- Parameters:
args
- the arguments to be expanded- Returns:
- expanded arguments
- Throws:
java.lang.Exception
- in case of error
-
expandToList
public java.lang.String expandToList(java.util.List<java.lang.String> params)
Description copied from interface:ConsoleEngine
Expands parameter list to string- Specified by:
expandToList
in interfaceConsoleEngine
- Parameters:
params
- list of script parameters- Returns:
- expanded parameters list
-
execute
public java.lang.Object execute(java.nio.file.Path script, java.lang.String cmdLine, java.lang.String[] args) throws java.lang.Exception
Description copied from interface:ConsoleEngine
Executes either JLine or ScriptEngine script.- Specified by:
execute
in interfaceConsoleEngine
- Parameters:
script
- script filecmdLine
- raw command lineargs
- script arguments- Returns:
- script execution result
- Throws:
java.lang.Exception
- in case of error
-
expandCommandLine
public java.lang.String expandCommandLine(java.lang.String line)
Description copied from interface:ConsoleEngine
Substitutes command line with system registry invoke method call.- Specified by:
expandCommandLine
in interfaceConsoleEngine
- Parameters:
line
- command line to be expanded- Returns:
- expanded command line
-
execute
public java.lang.Object execute(java.lang.String cmd, java.lang.String line, java.lang.String[] args) throws java.lang.Exception
Description copied from interface:ConsoleEngine
Executes command line that does not contain known command by the system registry. If the line is neither JLine or ScriptEngine script it will be evaluated as ScriptEngine statement.- Specified by:
execute
in interfaceConsoleEngine
- Parameters:
cmd
- parsed command/script nameline
- raw command lineargs
- parsed arguments of the command- Returns:
- command line execution result
- Throws:
java.lang.Exception
- in case of error
-
purge
public void purge()
Description copied from interface:ConsoleEngine
Delete temporary console variables- Specified by:
purge
in interfaceConsoleEngine
-
putVariable
public void putVariable(java.lang.String name, java.lang.Object value)
Description copied from interface:ConsoleEngine
Create console variable- Specified by:
putVariable
in interfaceConsoleEngine
- Parameters:
name
- name of the variablevalue
- value of the variable
-
getVariable
public java.lang.Object getVariable(java.lang.String name)
Description copied from interface:ConsoleEngine
Get variable value- Specified by:
getVariable
in interfaceConsoleEngine
- Parameters:
name
- name of the variable- Returns:
- variable value
-
hasVariable
public boolean hasVariable(java.lang.String name)
Description copied from interface:ConsoleEngine
Test if variable with name exists- Specified by:
hasVariable
in interfaceConsoleEngine
- Parameters:
name
- name of the variable- Returns:
- true if variable with name exists
-
executeWidget
public boolean executeWidget(java.lang.Object function)
Description copied from interface:ConsoleEngine
Execute widget function- Specified by:
executeWidget
in interfaceConsoleEngine
- Parameters:
function
- to execute- Returns:
- true on success
-
consoleOption
public <T> T consoleOption(java.lang.String option, T defval)
Description copied from interface:ConsoleEngine
Read console option value- Specified by:
consoleOption
in interfaceConsoleEngine
- Type Parameters:
T
- option type- Parameters:
option
- option namedefval
- default value- Returns:
- option value
-
setConsoleOption
public void setConsoleOption(java.lang.String name, java.lang.Object value)
Description copied from interface:ConsoleEngine
Set console option value- Specified by:
setConsoleOption
in interfaceConsoleEngine
- Parameters:
name
- the option namevalue
- value to assign console option
-
postProcess
public ConsoleEngine.ExecutionResult postProcess(java.lang.String line, java.lang.Object result, java.lang.String output)
Description copied from interface:ConsoleEngine
Post processes execution result. If result is to be assigned to the console variable then method will return null.- Specified by:
postProcess
in interfaceConsoleEngine
- Parameters:
line
- command lineresult
- command result to processoutput
- command redirected output- Returns:
- processed result
-
postProcess
public ConsoleEngine.ExecutionResult postProcess(java.lang.Object result)
Description copied from interface:ConsoleEngine
Post processes execution result.- Specified by:
postProcess
in interfaceConsoleEngine
- Parameters:
result
- command result to process- Returns:
- processed result
-
invoke
public java.lang.Object invoke(CommandRegistry.CommandSession session, java.lang.String command, java.lang.Object... args) throws java.lang.Exception
Description copied from interface:CommandRegistry
Execute a command.- Specified by:
invoke
in interfaceCommandRegistry
- Overrides:
invoke
in classAbstractCommandRegistry
- Parameters:
session
- the data of the current command sessioncommand
- the name of the commandargs
- arguments of the command- Returns:
- result of the command execution
- Throws:
java.lang.Exception
- in case of error
-
trace
public void trace(java.lang.Object object)
Description copied from interface:ConsoleEngine
Print object if trace is enabled- Specified by:
trace
in interfaceConsoleEngine
- Parameters:
object
- object to print
-
println
public void println(java.lang.Object object)
Description copied from interface:ConsoleEngine
Print object.- Specified by:
println
in interfaceConsoleEngine
- Parameters:
object
- object to print
-
persist
public void persist(java.nio.file.Path file, java.lang.Object object)
Description copied from interface:ConsoleEngine
Persist object to file- Specified by:
persist
in interfaceConsoleEngine
- Parameters:
file
- file where object should be writtenobject
- object to persist
-
slurp
public java.lang.Object slurp(java.nio.file.Path file) throws java.io.IOException
Description copied from interface:ConsoleEngine
Read object from file- Specified by:
slurp
in interfaceConsoleEngine
- Parameters:
file
- file from where object should be read- Returns:
- object
- Throws:
java.io.IOException
- in case of error
-
-