Package edu.uiuc.ncsa.security.util.cli
Class CLITool2
- java.lang.Object
-
- edu.uiuc.ncsa.security.util.cli.CLITool2
-
- All Implemented Interfaces:
Logable
public abstract class CLITool2 extends Object implements Logable
Basic class for writing command line tools. This allows for verbose, debug and help options automatically. It supports logging to a file and specifying a configuration file names. In short, a lot of the random grunt work for using the commons command line toolkit is here.Created by Jeff Gaynor
on 9/7/11 at 12:31 PM
-
-
Field Summary
Fields Modifier and Type Field Description static StringCONFIG_FILE_LONG_OPTIONstatic StringCONFIG_FILE_OPTIONstatic intCONFIG_NAME_ACTIONstatic StringCONFIG_NAME_LONG_OPTIONstatic StringCONFIG_NAME_OPTIONstatic StringDEBUG_LONG_OPTIONstatic StringDEBUG_OPTIONstatic StringDEFAULT_LOG_FILEstatic StringHELP_LONG_OPTIONstatic StringHELP_OPTIONstatic StringLOG_FILE_LONG_OPTIONstatic StringLOG_FILE_OPTIONstatic intNO_ACTIONThe default action for this tool at startup.static StringVERBOSE_LONG_OPTIONstatic StringVERBOSE_OPTION
-
Constructor Summary
Constructors Constructor Description CLITool2()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voiddebug(String x)Write a debug message to the log.static voiddefaultHelp(boolean printHeader)Convenience method.abstract voiddoIt()Does the actual work.voiderror(String x)Write an error message to the log.voiderror(String x, Throwable t)BufferedReadergetBufferedReader()abstract StringgetComponentName()Returns the name of the configuration component (usually "server" or "client") that identifies the XML elements which might have the configuration.StringgetConfigFile()StringgetConfigName()protected org.apache.commons.configuration.tree.ConfigurationNodegetConfigurationNode()AbstractEnvironmentgetEnvironment()InputLinegetInputLine()Get the original input line.static IOInterfacegetIoInterface()abstract ConfigurationLoader<? extends AbstractEnvironment>getLoader()StringgetLogfileName()MyLoggingFacadegetMyLogger()protected booleangetOptions(String[] args)Returns true if execution should continue, false if not.booleanhasConfigFile()booleanhasConfigName()abstract voidhelp()This will be automatically invoked for you if the user supplies a help option.voidinfo(String x)Write an informational message to the logvoidinitialize()Sets up the configuration and runtime environment.booleanisDebugOn()Query if debugging is enabled for this logger.booleanisVerbose()protected Stringreadline()voidrun()Calls theinitialize()method and then runs the maindoIt()method.voidrun(String[] args)Main call.static voidsay(String x)Prints to the console.voidsay2(String x)Prints to the console WITHOUT a carriage return.voidsayv(String x)Prints to the console only if verbose is enabled.voidsetBufferedReader(BufferedReader bufferedReader)voidsetConfigFile(String configFile)voidsetConfigName(String configName)protected voidsetConfigurationNode(org.apache.commons.configuration.tree.ConfigurationNode configurationNode)voidsetDebugOn(boolean setOn)Enable/disable debugging for this loggervoidsetEnvironment(AbstractEnvironment environment)voidsetInputLine(InputLine inputLine)static voidsetIoInterface(IOInterface newIOInterface)voidsetLogfileName(String logfileName)voidsetMyLogger(MyLoggingFacade myLoggingFacade)voidsetVerbose(boolean verbose)voidwarn(String x)Write a warning to the log.
-
-
-
Field Detail
-
VERBOSE_OPTION
public static final String VERBOSE_OPTION
- See Also:
- Constant Field Values
-
VERBOSE_LONG_OPTION
public static final String VERBOSE_LONG_OPTION
- See Also:
- Constant Field Values
-
DEBUG_OPTION
public static final String DEBUG_OPTION
- See Also:
- Constant Field Values
-
DEBUG_LONG_OPTION
public static final String DEBUG_LONG_OPTION
- See Also:
- Constant Field Values
-
LOG_FILE_OPTION
public static final String LOG_FILE_OPTION
- See Also:
- Constant Field Values
-
LOG_FILE_LONG_OPTION
public static final String LOG_FILE_LONG_OPTION
- See Also:
- Constant Field Values
-
HELP_OPTION
public static final String HELP_OPTION
- See Also:
- Constant Field Values
-
HELP_LONG_OPTION
public static final String HELP_LONG_OPTION
- See Also:
- Constant Field Values
-
CONFIG_FILE_OPTION
public static final String CONFIG_FILE_OPTION
- See Also:
- Constant Field Values
-
CONFIG_FILE_LONG_OPTION
public static final String CONFIG_FILE_LONG_OPTION
- See Also:
- Constant Field Values
-
DEFAULT_LOG_FILE
public static final String DEFAULT_LOG_FILE
- See Also:
- Constant Field Values
-
CONFIG_NAME_OPTION
public static final String CONFIG_NAME_OPTION
- See Also:
- Constant Field Values
-
CONFIG_NAME_LONG_OPTION
public static final String CONFIG_NAME_LONG_OPTION
- See Also:
- Constant Field Values
-
CONFIG_NAME_ACTION
public static final int CONFIG_NAME_ACTION
- See Also:
- Constant Field Values
-
NO_ACTION
public static final int NO_ACTION
The default action for this tool at startup. Do nothing.- See Also:
- Constant Field Values
-
-
Method Detail
-
getEnvironment
public AbstractEnvironment getEnvironment() throws Exception
- Throws:
Exception
-
setEnvironment
public void setEnvironment(AbstractEnvironment environment)
-
getComponentName
public abstract String getComponentName()
Returns the name of the configuration component (usually "server" or "client") that identifies the XML elements which might have the configuration. These are resolved by their name attribute.- Returns:
-
getLoader
public abstract ConfigurationLoader<? extends AbstractEnvironment> getLoader() throws Exception
- Throws:
Exception
-
getBufferedReader
public BufferedReader getBufferedReader()
-
setBufferedReader
public void setBufferedReader(BufferedReader bufferedReader)
-
readline
protected String readline() throws IOException
- Throws:
IOException
-
getIoInterface
public static IOInterface getIoInterface()
-
setIoInterface
public static void setIoInterface(IOInterface newIOInterface)
-
doIt
public abstract void doIt() throws ExceptionDoes the actual work. This is where you put your executable code.- Throws:
Exception
-
getConfigurationNode
protected org.apache.commons.configuration.tree.ConfigurationNode getConfigurationNode()
-
setConfigurationNode
protected void setConfigurationNode(org.apache.commons.configuration.tree.ConfigurationNode configurationNode)
-
initialize
public void initialize() throws ExceptionSets up the configuration and runtime environment. This is called typically in the constructors before anything else is called. Always call super on this method if you override it! At the end of this method, the configuration node has been found and set for you to call in yourgetLoader()method.- Throws:
Exception
-
help
public abstract void help()
This will be automatically invoked for you if the user supplies a help option. This should just print out to the command line (using thesay(String)method), rather than logging the help.
-
defaultHelp
public static void defaultHelp(boolean printHeader)
Convenience method. This prints out a short message describing the built-in options for this class. Best called at the end of your custom help method. Prints a header (informational line) if you wish.
-
hasConfigFile
public boolean hasConfigFile()
-
getConfigFile
public String getConfigFile()
-
setConfigFile
public void setConfigFile(String configFile)
-
getLogfileName
public String getLogfileName()
-
setLogfileName
public void setLogfileName(String logfileName)
-
isVerbose
public boolean isVerbose()
-
setVerbose
public void setVerbose(boolean verbose)
-
getOptions
protected boolean getOptions(String[] args)
Returns true if execution should continue, false if not. Call this first to see if execution should proceed.- Parameters:
args-- Returns:
- Throws:
Exception
-
getInputLine
public InputLine getInputLine()
Get the original input line.- Returns:
-
setInputLine
public void setInputLine(InputLine inputLine)
-
getConfigName
public String getConfigName()
-
setConfigName
public void setConfigName(String configName)
-
hasConfigName
public boolean hasConfigName()
-
sayv
public void sayv(String x)
Prints to the console only if verbose is enabled.- Parameters:
x-
-
say
public static void say(String x)
Prints to the console.- Parameters:
x-
-
say2
public void say2(String x)
Prints to the console WITHOUT a carriage return. Useful for imput prompts rather than informational messages.- Parameters:
x-
-
setMyLogger
public void setMyLogger(MyLoggingFacade myLoggingFacade)
-
getMyLogger
public MyLoggingFacade getMyLogger()
-
debug
public void debug(String x)
Description copied from interface:LogableWrite a debug message to the log.
-
isDebugOn
public boolean isDebugOn()
Description copied from interface:LogableQuery if debugging is enabled for this logger.
-
setDebugOn
public void setDebugOn(boolean setOn)
Description copied from interface:LogableEnable/disable debugging for this logger- Specified by:
setDebugOnin interfaceLogable
-
info
public void info(String x)
Description copied from interface:LogableWrite an informational message to the log
-
warn
public void warn(String x)
Description copied from interface:LogableWrite a warning to the log. This indicates a severe, but non-fatal condition exists.
-
error
public void error(String x)
Description copied from interface:LogableWrite an error message to the log. Typically this is invoked as the last command before throwing an exception.
-
run
public void run() throws ThrowableCalls theinitialize()method and then runs the maindoIt()method. Call this if you set the target and source in the constructor.- Throws:
Throwable
-
run
public void run(String[] args) throws Throwable
Main call. This will grab the command line arguments, runinitialize()and then invokedoIt().- Parameters:
args-- Throws:
Throwable
-
-