Class Options

  • All Implemented Interfaces:
    Option

    public class Options
    extends java.lang.Object
    implements Option
    Yet another GNU long options parser. This one is configured by parsing its Usage string.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.String> args  
      private java.lang.String[] defArgs  
      private java.lang.String defOpts  
      private java.lang.String error  
      private java.io.PrintStream errStream  
      private static int GROUP_ARG_1  
      private static int GROUP_DEFAULT  
      private static int GROUP_LONG_OPT_1  
      private static int GROUP_LONG_OPT_2  
      private static int GROUP_SHORT_OPT_1  
      private static int GROUP_SHORT_OPT_2  
      private java.lang.String[] gspec  
      static java.lang.String NL  
      private java.util.Map<java.lang.String,​java.lang.String> optAlias  
      private java.util.Map<java.lang.String,​java.lang.Object> optArg  
      private boolean optionsFirst  
      private java.util.Map<java.lang.String,​java.lang.String> optName  
      private java.util.Map<java.lang.String,​java.lang.Boolean> optSet  
      private java.util.regex.Pattern parser  
      private static java.lang.String regex  
      private java.lang.String[] spec  
      private boolean stopOnBadOption  
      private java.util.regex.Pattern uname  
      private static java.lang.String UNKNOWN  
      private java.util.Map<java.lang.String,​java.lang.Object> unmodifiableOptArg  
      private java.util.Map<java.lang.String,​java.lang.Boolean> unmodifiableOptSet  
      private int usageIndex  
      private java.lang.String usageName  
      private java.util.List<java.lang.Object> xargs  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Options​(java.lang.String[] spec, java.lang.String[] gspec, Option opt)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addArg​(java.lang.String name, java.lang.Object value)  
      java.util.List<java.lang.Object> argObjects()
      get remaining non-options args as Objects.
      java.util.List<java.lang.String> args()
      get remaining non-options args as Strings.
      static Option compile​(java.lang.String optSpec)  
      static Option compile​(java.lang.String[] optSpec)  
      static Option compile​(java.lang.String[] optSpec, java.lang.String[] gspec)  
      static Option compile​(java.lang.String[] optSpec, Option gopt)  
      java.lang.String get​(java.lang.String name)
      get value of named option.
      java.util.List<java.lang.String> getList​(java.lang.String name)
      get list of all values for named option.
      int getNumber​(java.lang.String name)
      get value of named option as a Number.
      java.lang.Object getObject​(java.lang.String name)
      get value of named option as an Object.
      java.util.List<java.lang.Object> getObjectList​(java.lang.String name)
      get list of all Object values for named option.
      boolean isSet​(java.lang.String name)
      test whether specified option has been explicitly set.
      static void main​(java.lang.String[] args)  
      Option parse​(java.lang.Object[] argv)
      parse arguments.
      Option parse​(java.lang.Object[] argv, boolean skipArg0)
      parse arguments.
      Option parse​(java.util.List<?> argv)
      parse arguments.
      Option parse​(java.util.List<?> argv, boolean skipArg0)
      parse arguments.
      private void parseSpec​(java.util.Map<java.lang.String,​java.lang.Boolean> myOptSet, java.util.Map<java.lang.String,​java.lang.Object> myOptArg)
      parse option spec.
      private void reset()  
      Option setOptionsFirst​(boolean optionsFirst)
      require options to precede args.
      Option setStopOnBadOption​(boolean stopOnBadOption)
      stop parsing on the first unknown option.
      java.lang.String toString()  
      void usage()
      print usage message to System.err.
      java.lang.IllegalArgumentException usageError​(java.lang.String s)
      prints usage message and returns IllegalArgumentException, for you to throw.
      • Methods inherited from class java.lang.Object

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

      • NL

        public static final java.lang.String NL
      • parser

        private final java.util.regex.Pattern parser
      • uname

        private final java.util.regex.Pattern uname
      • unmodifiableOptSet

        private final java.util.Map<java.lang.String,​java.lang.Boolean> unmodifiableOptSet
      • unmodifiableOptArg

        private final java.util.Map<java.lang.String,​java.lang.Object> unmodifiableOptArg
      • optSet

        private final java.util.Map<java.lang.String,​java.lang.Boolean> optSet
      • optArg

        private final java.util.Map<java.lang.String,​java.lang.Object> optArg
      • optName

        private final java.util.Map<java.lang.String,​java.lang.String> optName
      • optAlias

        private final java.util.Map<java.lang.String,​java.lang.String> optAlias
      • xargs

        private final java.util.List<java.lang.Object> xargs
      • args

        private java.util.List<java.lang.String> args
      • usageName

        private java.lang.String usageName
      • usageIndex

        private int usageIndex
      • spec

        private final java.lang.String[] spec
      • gspec

        private final java.lang.String[] gspec
      • defOpts

        private final java.lang.String defOpts
      • defArgs

        private final java.lang.String[] defArgs
      • errStream

        private java.io.PrintStream errStream
      • error

        private java.lang.String error
      • optionsFirst

        private boolean optionsFirst
      • stopOnBadOption

        private boolean stopOnBadOption
    • Constructor Detail

      • Options

        private Options​(java.lang.String[] spec,
                        java.lang.String[] gspec,
                        Option opt)
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
      • compile

        public static Option compile​(java.lang.String[] optSpec)
      • compile

        public static Option compile​(java.lang.String optSpec)
      • compile

        public static Option compile​(java.lang.String[] optSpec,
                                     Option gopt)
      • compile

        public static Option compile​(java.lang.String[] optSpec,
                                     java.lang.String[] gspec)
      • setStopOnBadOption

        public Option setStopOnBadOption​(boolean stopOnBadOption)
        Description copied from interface: Option
        stop parsing on the first unknown option. This allows one parser to get its own options and then pass the remaining options to another parser.
        Specified by:
        setStopOnBadOption in interface Option
      • setOptionsFirst

        public Option setOptionsFirst​(boolean optionsFirst)
        Description copied from interface: Option
        require options to precede args. Default is false, so options can appear between or after args.
        Specified by:
        setOptionsFirst in interface Option
      • isSet

        public boolean isSet​(java.lang.String name)
        Description copied from interface: Option
        test whether specified option has been explicitly set.
        Specified by:
        isSet in interface Option
        Returns:
      • getObject

        public java.lang.Object getObject​(java.lang.String name)
        Description copied from interface: Option
        get value of named option as an Object. If multiple options given, this method returns the last one. Use Option.getObjectList(String) to get all values.
        Specified by:
        getObject in interface Option
        Returns:
      • getObjectList

        public java.util.List<java.lang.Object> getObjectList​(java.lang.String name)
        Description copied from interface: Option
        get list of all Object values for named option.
        Specified by:
        getObjectList in interface Option
        Returns:
      • getList

        public java.util.List<java.lang.String> getList​(java.lang.String name)
        Description copied from interface: Option
        get list of all values for named option.
        Specified by:
        getList in interface Option
        Returns:
        empty list if option not given and no default specified.
      • addArg

        private void addArg​(java.lang.String name,
                            java.lang.Object value)
      • get

        public java.lang.String get​(java.lang.String name)
        Description copied from interface: Option
        get value of named option. If multiple options given, this method returns the last one. Use Option.getList(String) to get all values.
        Specified by:
        get in interface Option
        Returns:
      • getNumber

        public int getNumber​(java.lang.String name)
        Description copied from interface: Option
        get value of named option as a Number.
        Specified by:
        getNumber in interface Option
        Returns:
      • argObjects

        public java.util.List<java.lang.Object> argObjects()
        Description copied from interface: Option
        get remaining non-options args as Objects.
        Specified by:
        argObjects in interface Option
        Returns:
      • args

        public java.util.List<java.lang.String> args()
        Description copied from interface: Option
        get remaining non-options args as Strings.
        Specified by:
        args in interface Option
        Returns:
      • usage

        public void usage()
        Description copied from interface: Option
        print usage message to System.err.
        Specified by:
        usage in interface Option
      • usageError

        public java.lang.IllegalArgumentException usageError​(java.lang.String s)
        prints usage message and returns IllegalArgumentException, for you to throw.
        Specified by:
        usageError in interface Option
        Returns:
        IllegalArgumentException
      • parseSpec

        private void parseSpec​(java.util.Map<java.lang.String,​java.lang.Boolean> myOptSet,
                               java.util.Map<java.lang.String,​java.lang.Object> myOptArg)
        parse option spec.
      • reset

        private void reset()
      • parse

        public Option parse​(java.lang.Object[] argv)
        Description copied from interface: Option
        parse arguments.
        Specified by:
        parse in interface Option
      • parse

        public Option parse​(java.util.List<?> argv)
        Description copied from interface: Option
        parse arguments.
        Specified by:
        parse in interface Option
      • parse

        public Option parse​(java.lang.Object[] argv,
                            boolean skipArg0)
        Description copied from interface: Option
        parse arguments.
        Specified by:
        parse in interface Option
      • parse

        public Option parse​(java.util.List<?> argv,
                            boolean skipArg0)
        Description copied from interface: Option
        parse arguments. If skipArgv0 is true, then parsing begins at arg1. This allows for commands where argv0 is the command name rather than a real argument.
        Specified by:
        parse in interface Option
        Returns:
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object