Class ConsoleEngineImpl

All Implemented Interfaces:
CommandRegistry, ConsoleEngine

public class ConsoleEngineImpl extends JlineCommandRegistry implements ConsoleEngine
Manage console variables, commands and script execution.
Author:
Matti Rinta-Nikkola
  • Constructor Details

  • Method Details

    • setLineReader

      public void setLineReader(org.jline.reader.LineReader reader)
      Description copied from interface: ConsoleEngine
      Sets lineReader
      Specified by:
      setLineReader in interface ConsoleEngine
      Parameters:
      reader - LineReader
    • isExecuting

      public boolean isExecuting()
      Description copied from interface: ConsoleEngine
      Checks if consoleEngine is executing script
      Specified by:
      isExecuting in interface ConsoleEngine
      Returns:
      true when executing script
    • setSystemRegistry

      public void setSystemRegistry(SystemRegistry systemRegistry)
      Description copied from interface: ConsoleEngine
      Sets systemRegistry
      Specified by:
      setSystemRegistry in interface ConsoleEngine
      Parameters:
      systemRegistry - SystemRegistry
    • setScriptExtension

      public void setScriptExtension(String extension)
      Description copied from interface: ConsoleEngine
      Sets file name extension used by console scripts
      Specified by:
      setScriptExtension in interface ConsoleEngine
      Parameters:
      extension - console script file extension
    • hasAlias

      public boolean hasAlias(String name)
      Description copied from interface: ConsoleEngine
      Returns true if alias 'name' exists
      Specified by:
      hasAlias in interface ConsoleEngine
      Parameters:
      name - alias name
      Returns:
      true if alias exists
    • getAlias

      public String getAlias(String name)
      Description copied from interface: ConsoleEngine
      Returns alias 'name' value
      Specified by:
      getAlias in interface ConsoleEngine
      Parameters:
      name - alias name
      Returns:
      value of alias
    • getPipes

      public Map<String,List<String>> getPipes()
      Description copied from interface: ConsoleEngine
      Returns defined pipes
      Specified by:
      getPipes in interface ConsoleEngine
      Returns:
      map of defined pipes
    • getNamedPipes

      public List<String> getNamedPipes()
      Description copied from interface: ConsoleEngine
      Returns named pipe names
      Specified by:
      getNamedPipes in interface ConsoleEngine
      Returns:
      list of named pipe names
    • scriptCompleters

      public List<org.jline.reader.Completer> scriptCompleters()
      Description copied from interface: ConsoleEngine
      Returns script and variable completers
      Specified by:
      scriptCompleters in interface ConsoleEngine
      Returns:
      script and variable completers
    • scripts

      public Map<String,Boolean> scripts()
      Description copied from interface: ConsoleEngine
      Returns all scripts found from PATH
      Specified by:
      scripts in interface ConsoleEngine
      Returns:
      map keys have script file names and value is true if it is console script
    • expandParameters

      public Object[] expandParameters(String[] args) throws Exception
      Description copied from interface: ConsoleEngine
      Substituting args references with their values.
      Specified by:
      expandParameters in interface ConsoleEngine
      Parameters:
      args - the arguments to be expanded
      Returns:
      expanded arguments
      Throws:
      Exception - in case of error
    • expandToList

      public String expandToList(List<String> params)
      Description copied from interface: ConsoleEngine
      Expands parameter list to string
      Specified by:
      expandToList in interface ConsoleEngine
      Parameters:
      params - list of script parameters
      Returns:
      expanded parameters list
    • execute

      public Object execute(Path script, String cmdLine, String[] args) throws Exception
      Description copied from interface: ConsoleEngine
      Executes either JLine or ScriptEngine script.
      Specified by:
      execute in interface ConsoleEngine
      Parameters:
      script - script file
      cmdLine - raw command line
      args - script arguments
      Returns:
      script execution result
      Throws:
      Exception - in case of error
    • expandCommandLine

      public String expandCommandLine(String line)
      Description copied from interface: ConsoleEngine
      Substitutes command line with system registry invoke method call.
      Specified by:
      expandCommandLine in interface ConsoleEngine
      Parameters:
      line - command line to be expanded
      Returns:
      expanded command line
    • execute

      public Object execute(String cmd, String line, String[] args) throws 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 interface ConsoleEngine
      Parameters:
      cmd - parsed command/script name
      line - raw command line
      args - parsed arguments of the command
      Returns:
      command line execution result
      Throws:
      Exception - in case of error
    • purge

      public void purge()
      Description copied from interface: ConsoleEngine
      Delete temporary console variables
      Specified by:
      purge in interface ConsoleEngine
    • putVariable

      public void putVariable(String name, Object value)
      Description copied from interface: ConsoleEngine
      Create console variable
      Specified by:
      putVariable in interface ConsoleEngine
      Parameters:
      name - name of the variable
      value - value of the variable
    • getVariable

      public Object getVariable(String name)
      Description copied from interface: ConsoleEngine
      Get variable value
      Specified by:
      getVariable in interface ConsoleEngine
      Parameters:
      name - name of the variable
      Returns:
      variable value
    • hasVariable

      public boolean hasVariable(String name)
      Description copied from interface: ConsoleEngine
      Test if variable with name exists
      Specified by:
      hasVariable in interface ConsoleEngine
      Parameters:
      name - name of the variable
      Returns:
      true if variable with name exists
    • executeWidget

      public boolean executeWidget(Object function)
      Description copied from interface: ConsoleEngine
      Execute widget function
      Specified by:
      executeWidget in interface ConsoleEngine
      Parameters:
      function - to execute
      Returns:
      true on success
    • consoleOption

      public <T> T consoleOption(String option, T defval)
      Description copied from interface: ConsoleEngine
      Read console option value
      Specified by:
      consoleOption in interface ConsoleEngine
      Type Parameters:
      T - option type
      Parameters:
      option - option name
      defval - default value
      Returns:
      option value
    • setConsoleOption

      public void setConsoleOption(String name, Object value)
      Description copied from interface: ConsoleEngine
      Set console option value
      Specified by:
      setConsoleOption in interface ConsoleEngine
      Parameters:
      name - the option name
      value - value to assign console option
    • postProcess

      public ConsoleEngine.ExecutionResult postProcess(String line, Object result, 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 interface ConsoleEngine
      Parameters:
      line - command line
      result - command result to process
      output - command redirected output
      Returns:
      processed result
    • postProcess

      public ConsoleEngine.ExecutionResult postProcess(Object result)
      Description copied from interface: ConsoleEngine
      Post processes execution result.
      Specified by:
      postProcess in interface ConsoleEngine
      Parameters:
      result - command result to process
      Returns:
      processed result
    • invoke

      public Object invoke(CommandRegistry.CommandSession session, String command, Object... args) throws Exception
      Description copied from interface: CommandRegistry
      Execute a command.
      Specified by:
      invoke in interface CommandRegistry
      Overrides:
      invoke in class AbstractCommandRegistry
      Parameters:
      session - the data of the current command session
      command - the name of the command
      args - arguments of the command
      Returns:
      result of the command execution
      Throws:
      Exception - in case of error
    • trace

      public void trace(Object object)
      Description copied from interface: ConsoleEngine
      Print object if trace is enabled
      Specified by:
      trace in interface ConsoleEngine
      Parameters:
      object - object to print
    • println

      public void println(Object object)
      Description copied from interface: ConsoleEngine
      Print object.
      Specified by:
      println in interface ConsoleEngine
      Parameters:
      object - object to print
    • persist

      public void persist(Path file, Object object)
      Description copied from interface: ConsoleEngine
      Persist object to file
      Specified by:
      persist in interface ConsoleEngine
      Parameters:
      file - file where object should be written
      object - object to persist
    • slurp

      public Object slurp(Path file) throws IOException
      Description copied from interface: ConsoleEngine
      Read object from file
      Specified by:
      slurp in interface ConsoleEngine
      Parameters:
      file - file from where object should be read
      Returns:
      object
      Throws:
      IOException - in case of error