org.codehaus.plexus.util.cli.shell
Class Shell

java.lang.Object
  extended by org.codehaus.plexus.util.cli.shell.Shell
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
BourneShell, CmdShell, CommandShell

public class Shell
extends java.lang.Object
implements java.lang.Cloneable

Class that abstracts the Shell functionality, with subclases for shells that behave particularly, like

Since:
1.2
Version:
$Id: Shell.java 8010 2009-01-07 12:59:50Z vsiveton $
Author:
Carlos Sanchez

Constructor Summary
Shell()
           
 
Method Summary
 void addShellArg(java.lang.String arg)
           
 void clearArguments()
           
 java.lang.Object clone()
           
protected  char getArgumentQuoteDelimiter()
           
 java.util.List getCommandLine(java.lang.String executable, java.lang.String[] arguments)
          Get the command line for the provided executable and arguments in this shell
protected  char[] getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote)
           
 java.lang.String getExecutable()
           
protected  char getExecutableQuoteDelimiter()
           
protected  java.lang.String getExecutionPreamble()
           
 java.util.List getOriginalCommandLine(java.lang.String executable, java.lang.String[] arguments)
           
 java.lang.String getOriginalExecutable()
           
protected  char[] getQuotingTriggerChars()
           
protected  java.util.List getRawCommandLine(java.lang.String executable, java.lang.String[] arguments)
           
 java.lang.String[] getShellArgs()
          Get the shell arguments
 java.util.List getShellArgsList()
           
 java.lang.String getShellCommand()
          Get the command to execute the shell
 java.util.List getShellCommandLine(java.lang.String[] arguments)
          Get the full command line to execute, including shell command, shell arguments, executable and executable arguments
 java.io.File getWorkingDirectory()
           
 java.lang.String getWorkingDirectoryAsString()
           
protected  boolean isDoubleQuotedArgumentEscaped()
           
protected  boolean isDoubleQuotedExecutableEscaped()
           
 boolean isQuotedArgumentsEnabled()
           
 boolean isQuotedExecutableEnabled()
           
protected  boolean isSingleQuotedArgumentEscaped()
           
protected  boolean isSingleQuotedExecutableEscaped()
           
protected  void setArgumentQuoteDelimiter(char argQuoteDelimiter)
           
protected  void setDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)
           
protected  void setDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)
           
 void setExecutable(java.lang.String executable)
          Sets the executable to run.
protected  void setExecutableQuoteDelimiter(char exeQuoteDelimiter)
           
 void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)
           
 void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)
           
 void setShellArgs(java.lang.String[] shellArgs)
          Set the shell arguments when calling a command line (not the executable arguments) (eg.
 void setShellCommand(java.lang.String shellCommand)
          Set the command to execute the shell (eg.
protected  void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)
           
protected  void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)
           
 void setWorkingDirectory(java.io.File workingDir)
          Sets execution directory.
 void setWorkingDirectory(java.lang.String path)
          Sets execution directory.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Shell

public Shell()
Method Detail

setShellCommand

public void setShellCommand(java.lang.String shellCommand)
Set the command to execute the shell (eg. COMMAND.COM, /bin/bash,...)

Parameters:
shellCommand -

getShellCommand

public java.lang.String getShellCommand()
Get the command to execute the shell

Returns:

setShellArgs

public void setShellArgs(java.lang.String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments) (eg. /X /C for CMD.EXE)

Parameters:
shellArgs -

getShellArgs

public java.lang.String[] getShellArgs()
Get the shell arguments

Returns:

getCommandLine

public java.util.List getCommandLine(java.lang.String executable,
                                     java.lang.String[] arguments)
Get the command line for the provided executable and arguments in this shell

Parameters:
executable - executable that the shell has to call
arguments - arguments for the executable, not the shell
Returns:
List with one String object with executable and arguments quoted as needed

getRawCommandLine

protected java.util.List getRawCommandLine(java.lang.String executable,
                                           java.lang.String[] arguments)

getQuotingTriggerChars

protected char[] getQuotingTriggerChars()

getExecutionPreamble

protected java.lang.String getExecutionPreamble()

getEscapeChars

protected char[] getEscapeChars(boolean includeSingleQuote,
                                boolean includeDoubleQuote)

isDoubleQuotedArgumentEscaped

protected boolean isDoubleQuotedArgumentEscaped()

isSingleQuotedArgumentEscaped

protected boolean isSingleQuotedArgumentEscaped()

isDoubleQuotedExecutableEscaped

protected boolean isDoubleQuotedExecutableEscaped()

isSingleQuotedExecutableEscaped

protected boolean isSingleQuotedExecutableEscaped()

setArgumentQuoteDelimiter

protected void setArgumentQuoteDelimiter(char argQuoteDelimiter)

getArgumentQuoteDelimiter

protected char getArgumentQuoteDelimiter()

setExecutableQuoteDelimiter

protected void setExecutableQuoteDelimiter(char exeQuoteDelimiter)

getExecutableQuoteDelimiter

protected char getExecutableQuoteDelimiter()

getShellCommandLine

public java.util.List getShellCommandLine(java.lang.String[] arguments)
Get the full command line to execute, including shell command, shell arguments, executable and executable arguments

Parameters:
arguments - arguments for the executable, not the shell
Returns:
List of String objects, whose array version is suitable to be used as argument of Runtime.getRuntime().exec()

getShellArgsList

public java.util.List getShellArgsList()

addShellArg

public void addShellArg(java.lang.String arg)

setQuotedArgumentsEnabled

public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)

isQuotedArgumentsEnabled

public boolean isQuotedArgumentsEnabled()

setQuotedExecutableEnabled

public void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)

isQuotedExecutableEnabled

public boolean isQuotedExecutableEnabled()

setExecutable

public void setExecutable(java.lang.String executable)
Sets the executable to run.


getExecutable

public java.lang.String getExecutable()

setWorkingDirectory

public void setWorkingDirectory(java.lang.String path)
Sets execution directory.


setWorkingDirectory

public void setWorkingDirectory(java.io.File workingDir)
Sets execution directory.


getWorkingDirectory

public java.io.File getWorkingDirectory()

getWorkingDirectoryAsString

public java.lang.String getWorkingDirectoryAsString()

clearArguments

public void clearArguments()

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

getOriginalExecutable

public java.lang.String getOriginalExecutable()

getOriginalCommandLine

public java.util.List getOriginalCommandLine(java.lang.String executable,
                                             java.lang.String[] arguments)

setDoubleQuotedArgumentEscaped

protected void setDoubleQuotedArgumentEscaped(boolean doubleQuotedArgumentEscaped)

setDoubleQuotedExecutableEscaped

protected void setDoubleQuotedExecutableEscaped(boolean doubleQuotedExecutableEscaped)

setSingleQuotedArgumentEscaped

protected void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)

setSingleQuotedExecutableEscaped

protected void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)


Copyright © 2001-2009 Codehaus. All Rights Reserved.