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
command.com
cmd.exe
Modifier and Type | Field and Description |
---|---|
private char |
argQuoteDelimiter |
private static char[] |
DEFAULT_QUOTING_TRIGGER_CHARS |
private java.lang.String |
executable |
private char |
exeQuoteDelimiter |
private boolean |
quotedArgumentsEnabled |
private boolean |
quotedExecutableEnabled |
private java.util.List<java.lang.String> |
shellArgs |
private java.lang.String |
shellCommand |
private boolean |
singleQuotedArgumentEscaped |
private boolean |
singleQuotedExecutableEscaped |
private boolean |
unconditionalQuoting |
private java.lang.String |
workingDir |
Constructor and Description |
---|
Shell() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone() |
(package private) char |
getArgumentQuoteDelimiter() |
(package private) java.util.List<java.lang.String> |
getCommandLine(java.lang.String executableParameter,
java.lang.String... argumentsParameter)
Get the command line for the provided executable and arguments in this shell
|
(package private) char[] |
getEscapeChars(boolean includeSingleQuote,
boolean includeDoubleQuote) |
java.lang.String |
getExecutable() |
(package private) char |
getExecutableQuoteDelimiter() |
(package private) java.lang.String |
getExecutionPreamble() |
(package private) char[] |
getQuotingTriggerChars() |
(package private) java.util.List<java.lang.String> |
getRawCommandLine(java.lang.String executableParameter,
java.lang.String... argumentsParameter) |
(package private) java.lang.String[] |
getShellArgs()
Get the shell arguments
|
(package private) java.util.List<java.lang.String> |
getShellArgsList() |
(package private) java.lang.String |
getShellCommand()
Get the command to execute the shell
|
java.util.List<java.lang.String> |
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() |
(package private) java.lang.String |
getWorkingDirectoryAsString() |
protected boolean |
isDoubleQuotedArgumentEscaped() |
(package private) boolean |
isDoubleQuotedExecutableEscaped() |
(package private) boolean |
isQuotedArgumentsEnabled() |
(package private) boolean |
isQuotedExecutableEnabled() |
protected boolean |
isSingleQuotedArgumentEscaped() |
(package private) boolean |
isSingleQuotedExecutableEscaped() |
boolean |
isUnconditionalQuoting() |
protected java.lang.String |
quoteOneItem(java.lang.String inputString,
boolean isExecutable) |
(package private) void |
setArgumentQuoteDelimiter(char argQuoteDelimiterParameter) |
void |
setExecutable(java.lang.String executable)
Sets the executable to run.
|
(package private) void |
setExecutableQuoteDelimiter(char exeQuoteDelimiterParameter) |
void |
setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled) |
(package private) void |
setQuotedExecutableEnabled(boolean quotedExecutableEnabled) |
(package private) void |
setShellArgs(java.lang.String[] shellArgs)
Set the shell arguments when calling a command line (not the executable arguments)
(eg.
|
(package private) void |
setShellCommand(java.lang.String shellCommand)
Set the command to execute the shell (eg.
|
(package private) void |
setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped) |
(package private) void |
setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped) |
void |
setUnconditionalQuoting(boolean unconditionalQuoting) |
void |
setWorkingDirectory(java.io.File workingDirectory)
Sets execution directory.
|
void |
setWorkingDirectory(java.lang.String path)
Sets execution directory.
|
private static final char[] DEFAULT_QUOTING_TRIGGER_CHARS
private java.lang.String shellCommand
private final java.util.List<java.lang.String> shellArgs
private boolean quotedArgumentsEnabled
private boolean unconditionalQuoting
private java.lang.String executable
private java.lang.String workingDir
private boolean quotedExecutableEnabled
private boolean singleQuotedArgumentEscaped
private boolean singleQuotedExecutableEscaped
private char argQuoteDelimiter
private char exeQuoteDelimiter
void setShellCommand(java.lang.String shellCommand)
shellCommand
- The commandjava.lang.String getShellCommand()
void setShellArgs(java.lang.String[] shellArgs)
shellArgs
- the arguments to the shelljava.lang.String[] getShellArgs()
protected java.lang.String quoteOneItem(java.lang.String inputString, boolean isExecutable)
java.util.List<java.lang.String> getCommandLine(java.lang.String executableParameter, java.lang.String... argumentsParameter)
executableParameter
- executable that the shell has to callargumentsParameter
- arguments for the executable, not the shelljava.util.List<java.lang.String> getRawCommandLine(java.lang.String executableParameter, java.lang.String... argumentsParameter)
executableParameter
- Executable.argumentsParameter
- The arguments for the executable.char[] getQuotingTriggerChars()
java.lang.String getExecutionPreamble()
char[] getEscapeChars(boolean includeSingleQuote, boolean includeDoubleQuote)
protected boolean isDoubleQuotedArgumentEscaped()
protected boolean isSingleQuotedArgumentEscaped()
singleQuotedArgumentEscaped
boolean isDoubleQuotedExecutableEscaped()
boolean isSingleQuotedExecutableEscaped()
void setArgumentQuoteDelimiter(char argQuoteDelimiterParameter)
argQuoteDelimiterParameter
- argQuoteDelimiter
char getArgumentQuoteDelimiter()
void setExecutableQuoteDelimiter(char exeQuoteDelimiterParameter)
exeQuoteDelimiterParameter
- exeQuoteDelimiter
char getExecutableQuoteDelimiter()
public java.util.List<java.lang.String> getShellCommandLine(java.lang.String... arguments)
arguments
- arguments for the executable, not the shelljava.util.List<java.lang.String> getShellArgsList()
public void setQuotedArgumentsEnabled(boolean quotedArgumentsEnabled)
quotedArgumentsEnabled
- quotedArgumentsEnabled
boolean isQuotedArgumentsEnabled()
void setQuotedExecutableEnabled(boolean quotedExecutableEnabled)
boolean isQuotedExecutableEnabled()
public void setExecutable(java.lang.String executable)
executable
- The executable.public java.lang.String getExecutable()
public void setWorkingDirectory(java.lang.String path)
path
- The path which should be used as working directory.public void setWorkingDirectory(java.io.File workingDirectory)
workingDirectory
- The working directory.public java.io.File getWorkingDirectory()
java.lang.String getWorkingDirectoryAsString()
public java.lang.Object clone()
clone
in class java.lang.Object
void setSingleQuotedArgumentEscaped(boolean singleQuotedArgumentEscaped)
void setSingleQuotedExecutableEscaped(boolean singleQuotedExecutableEscaped)
public boolean isUnconditionalQuoting()
public void setUnconditionalQuoting(boolean unconditionalQuoting)