Package picocli

Class CommandLine.Interpreter

  • Enclosing class:
    CommandLine

    private class CommandLine.Interpreter
    extends java.lang.Object
    Helper class responsible for processing command line arguments.
    • Field Detail

      • isHelpRequested

        private boolean isHelpRequested
      • position

        private int position
      • interactiveCount

        private int interactiveCount
      • endOfOptions

        private boolean endOfOptions
    • Constructor Detail

      • Interpreter

        Interpreter()
    • Method Detail

      • registerBuiltInConverters

        private void registerBuiltInConverters()
      • excl

        private boolean excl​(java.lang.String fqcn)
      • reg

        private void reg​(java.lang.Class<?> cls,
                         java.lang.reflect.Method method,
                         java.lang.Class<?>... paramTypes)
      • parse

        java.util.List<CommandLine> parse​(java.lang.String... args)
        Entry point into parsing command line arguments.
        Parameters:
        args - the command line arguments
        Returns:
        a list with all commands and subcommands initialized by this method
        Throws:
        CommandLine.ParameterException - if the specified command line arguments are invalid
      • addOrExpand

        private void addOrExpand​(java.lang.String arg,
                                 java.util.List<java.lang.String> arguments,
                                 java.util.Set<java.lang.String> visited)
      • expandArgumentFile

        private void expandArgumentFile​(java.lang.String fileName,
                                        java.util.List<java.lang.String> arguments,
                                        java.util.Set<java.lang.String> visited)
      • expandValidArgumentFile

        private void expandValidArgumentFile​(java.lang.String fileName,
                                             java.io.File file,
                                             java.util.List<java.lang.String> arguments,
                                             java.util.Set<java.lang.String> visited)
      • clear

        private void clear()
      • parse

        private void parse​(java.util.List<CommandLine> parsedCommands,
                           java.util.Stack<java.lang.String> argumentStack,
                           java.lang.String[] originalArgs,
                           java.util.List<java.lang.Object> nowProcessing,
                           java.util.Collection<CommandLine.Model.ArgSpec> inheritedRequired)
      • parse

        private void parse​(java.util.List<CommandLine> parsedCommands,
                           java.util.Stack<java.lang.String> argumentStack,
                           java.lang.String[] originalArgs,
                           java.util.List<java.lang.Object> nowProcessing,
                           java.util.Collection<CommandLine.Model.ArgSpec> inheritedRequired,
                           java.util.Set<CommandLine.Model.ArgSpec> initialized)
      • stack

        private java.util.Stack<java.lang.String> stack​(java.lang.String value)
      • processArguments

        private void processArguments​(java.util.List<CommandLine> parsedCommands,
                                      java.util.Stack<java.lang.String> args,
                                      java.util.Collection<CommandLine.Model.ArgSpec> required,
                                      java.util.Set<CommandLine.Model.ArgSpec> initialized,
                                      java.lang.String[] originalArgs,
                                      java.util.List<java.lang.Object> nowProcessing)
                               throws java.lang.Exception
        Throws:
        java.lang.Exception
      • isStandaloneOption

        private boolean isStandaloneOption​(java.lang.String arg)
      • handleUnmatchedArgument

        private void handleUnmatchedArgument​(java.util.Stack<java.lang.String> args)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • processRemainderAsPositionalParameters

        private void processRemainderAsPositionalParameters​(java.util.Collection<CommandLine.Model.ArgSpec> required,
                                                            java.util.Set<CommandLine.Model.ArgSpec> initialized,
                                                            java.util.Stack<java.lang.String> args)
                                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • processPositionalParameter

        private void processPositionalParameter​(java.util.Collection<CommandLine.Model.ArgSpec> required,
                                                java.util.Set<CommandLine.Model.ArgSpec> initialized,
                                                boolean alreadyUnquoted,
                                                java.util.Stack<java.lang.String> args)
                                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • processStandaloneOption

        private void processStandaloneOption​(java.util.Collection<CommandLine.Model.ArgSpec> required,
                                             java.util.Set<CommandLine.Model.ArgSpec> initialized,
                                             java.lang.String arg,
                                             boolean alreadyUnquoted,
                                             java.util.Stack<java.lang.String> args,
                                             CommandLine.LookBehind lookBehind)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • processClusteredShortOptions

        private void processClusteredShortOptions​(java.util.Collection<CommandLine.Model.ArgSpec> required,
                                                  java.util.Set<CommandLine.Model.ArgSpec> initialized,
                                                  java.lang.String arg,
                                                  boolean alreadyUnquoted,
                                                  java.util.Stack<java.lang.String> args)
                                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • consumeMapArguments

        private void consumeMapArguments​(CommandLine.Model.ArgSpec argSpec,
                                         CommandLine.LookBehind lookBehind,
                                         boolean alreadyUnquoted,
                                         CommandLine.Range arity,
                                         java.util.Stack<java.lang.String> args,
                                         java.util.Map<java.lang.Object,​java.lang.Object> result,
                                         java.lang.String argDescription)
                                  throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createMissingParameterMessageFoundOtherOption

        private java.lang.String createMissingParameterMessageFoundOtherOption​(CommandLine.Model.ArgSpec argSpec,
                                                                               java.util.Stack<java.lang.String> args,
                                                                               int i,
                                                                               CommandLine.Range arity)
      • isArgResemblesOptionThereforeDiscontinue

        private boolean isArgResemblesOptionThereforeDiscontinue​(CommandLine.Model.ArgSpec argSpec,
                                                                 java.util.Stack<java.lang.String> args,
                                                                 int i,
                                                                 CommandLine.Range arity)
                                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • consumeArguments

        private java.util.List<java.lang.Object> consumeArguments​(CommandLine.Model.ArgSpec argSpec,
                                                                  boolean negated,
                                                                  CommandLine.LookBehind lookBehind,
                                                                  boolean alreadyUnquoted,
                                                                  boolean unquoted,
                                                                  CommandLine.Range arity,
                                                                  java.util.Stack<java.lang.String> args,
                                                                  java.lang.String argDescription)
                                                           throws java.lang.Exception
        Throws:
        java.lang.Exception
      • addUserInputToList

        private int addUserInputToList​(CommandLine.Model.ArgSpec argSpec,
                                       java.util.List<java.lang.Object> result,
                                       int consumed,
                                       java.lang.String argDescription)
      • varargCanConsumeNextValue

        private boolean varargCanConsumeNextValue​(CommandLine.Model.ArgSpec argSpec,
                                                  java.lang.String nextValue)
        Returns whether the next argument can be assigned to a vararg option/positional parameter.

        Usually, we stop if we encounter '--', a command, or another option. However, if end-of-options has been reached, positional parameters may consume all remaining arguments.

      • isOption

        private boolean isOption​(java.lang.String arg)
        Returns true if the specified arg is "--", a registered option, or potentially a clustered POSIX option. Called when parsing varargs parameters for a multi-value option. When an option is encountered, the remainder should not be interpreted as vararg elements.
        Parameters:
        arg - the string to determine whether it is an option or not
        Returns:
        true if it is an option, false otherwise
      • isAnyHelpRequested

        private boolean isAnyHelpRequested()
      • createCollection

        private java.util.Collection<java.lang.Object> createCollection​(java.lang.Class<?> collectionClass,
                                                                        java.lang.Class<?>[] elementType)
                                                                 throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createMap

        private java.util.Map<java.lang.Object,​java.lang.Object> createMap​(java.lang.Class<?> mapClass)
                                                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createUserInputDebugString

        private java.lang.String createUserInputDebugString​(CommandLine.Model.ArgSpec argSpec,
                                                            char[] result,
                                                            java.lang.String name)
      • readPassword

        char[] readPassword​(java.lang.String prompt)
      • readUserInputWithEchoing

        char[] readUserInputWithEchoing​(java.lang.String prompt)