Class CommandLine


  • public class CommandLine
    extends Object
    Base class for command line tools. Subclasses define fields annotated with Option, while will be initialized automatically by the constructor. The following options are automatically recognized by this class:

    -encoding  Set the input and output encoding.
    -help  Print the help summary.
    -locale  Set the locale for string, number and date formatting.
    Since:
    2.5
    Author:
    Martin Desruisseaux, Cédric Briançon
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int ABORT_EXIT_CODE
      The code given to System.exit(int) when the program aborted at user request.
      protected String[] arguments
      The remaining arguments after all option values have been assigned to the fields.
      static int BAD_CONTENT_EXIT_CODE
      The code given to System.exit(int) when the program failed because of bad content in a file.
      protected PrintWriter err
      Error stream to the console.
      static int ILLEGAL_ARGUMENT_EXIT_CODE
      The code given to System.exit(int) when the program failed because of an illegal user argument.
      static int IO_EXCEPTION_EXIT_CODE
      The code given to System.exit(int) when the program failed because of an IOException.
      protected Locale locale
      The locale inferred from the "-locale" option.
      protected PrintWriter out
      Output stream to the console.
      static int SQL_EXCEPTION_EXIT_CODE
      The code given to System.exit(int) when the program failed because of a SQLException.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected CommandLine​(String... args)
      Creates a new CommandLine instance from the given arguments.
      protected CommandLine​(String[] args, int maximumRemaining)
      Creates a new CommandLine instance from the given arguments.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void help()
      Prints a description of all arguments to the standard output.
      protected <T> T parse​(Class<T> type, String value)
      Parses the given string as a value of the given type.
      • Methods inherited from class Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ILLEGAL_ARGUMENT_EXIT_CODE

        public static final int ILLEGAL_ARGUMENT_EXIT_CODE
        The code given to System.exit(int) when the program failed because of an illegal user argument.
        See Also:
        Constant Field Values
      • ABORT_EXIT_CODE

        public static final int ABORT_EXIT_CODE
        The code given to System.exit(int) when the program aborted at user request.
        See Also:
        Constant Field Values
      • BAD_CONTENT_EXIT_CODE

        public static final int BAD_CONTENT_EXIT_CODE
        The code given to System.exit(int) when the program failed because of bad content in a file.
        See Also:
        Constant Field Values
      • IO_EXCEPTION_EXIT_CODE

        public static final int IO_EXCEPTION_EXIT_CODE
        The code given to System.exit(int) when the program failed because of an IOException.
        See Also:
        Constant Field Values
      • SQL_EXCEPTION_EXIT_CODE

        public static final int SQL_EXCEPTION_EXIT_CODE
        The code given to System.exit(int) when the program failed because of a SQLException.
        See Also:
        Constant Field Values
      • out

        protected final PrintWriter out
        Output stream to the console. This output stream may use the encoding specified by the "-encoding" argument, if presents.
      • err

        protected final PrintWriter err
        Error stream to the console.
      • locale

        protected final Locale locale
        The locale inferred from the "-locale" option. If no such option was provided, then this field is set to the default locale.
      • arguments

        protected final String[] arguments
        The remaining arguments after all option values have been assigned to the fields.
    • Constructor Detail

      • CommandLine

        protected CommandLine​(String... args)
        Creates a new CommandLine instance from the given arguments. This constructor expects no additional argument after the one annoted as Option.
        Parameters:
        args - The command-line arguments.
      • CommandLine

        protected CommandLine​(String[] args,
                              int maximumRemaining)
        Creates a new CommandLine instance from the given arguments. If this constructor fails because of a programming error (for example a type not handled by parse method), then an exception is thrown like usual. If this constructor fails because of some user error (e.g. if a mandatory argument is not provided) or some other external conditions (e.g. an IOException), then it prints a short error message and invokes System.exit(int) with one the EXIT_CODE constants.
        Parameters:
        args - The command-line arguments.
        maximumRemaining - The maximum number of arguments that may remain after processing of annotated fields. This is the maximum length of the arguments array. The default value is 0.
    • Method Detail

      • parse

        protected <T> T parse​(Class<T> type,
                              String value)
                       throws UnsupportedOperationException
        Parses the given string as a value of the given type. This method is invoked automatically for values that are not of one of the pre-defined types. The default implementation thrown an exception in all cases.
        Type Parameters:
        T - The field type.
        Parameters:
        type - The field type.
        value - The value given on the command line.
        Returns:
        The value for the given string to parse.
        Throws:
        UnsupportedOperationException - if the value can't be parsed.
      • help

        protected void help()
        Prints a description of all arguments to the standard output. This method is invoked automatically if the user provided the --help argument on the command line. Subclasses can override this method in order to prints a summary before the option list.