Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2011 Tatsuhiro Tsujikawa
   *
   * Permission is hereby granted, free of charge, to any person
   * obtaining a copy of this software and associated documentation
   * files (the "Software"), to deal in the Software without
   * restriction, including without limitation the rights to use, copy,
   * modify, merge, publish, distribute, sublicense, and/or sell copies
   * of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be
  * included in all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
 package net.sourceforge.argparse4j.internal;
 
 import java.util.Map;
 
The application code must not use this class directly.
 
 public final class SubparsersImpl implements Subparsers {
 
     private ArgumentParserImpl mainParser_;
     private Map<StringSubparserImplparsers_ = new LinkedHashMap<StringSubparserImpl>();
     private String help_ = "";
     private String title_ = "";
     private String description_ = "";
     private String dest_ = "";
     private String metavar_ = "";
 
     public SubparsersImpl(ArgumentParserImpl mainParser) {
          = mainParser;
     }
 
     @Override
     public Subparser addParser(String command) {
         return addParser(commandtrue.getPrefixChars());
     }
 
     @Override
     public Subparser addParser(String commandboolean addHelp) {
         return addParser(commandaddHelp.getPrefixChars());
     }
 
     @Override
     public Subparser addParser(String commandboolean addHelp,
             String prefixChars) {
         if (command == null || command.isEmpty()) {
             throw new IllegalArgumentException(
                     "command cannot be null or empty");
         }
         SubparserImpl parser = new SubparserImpl(.getProg(),
                 addHelpprefixChars.getFromFilePrefixChars(),
                 .getTextWidthCounter(), command);
         .put(commandparser);
         return parser;
     }
 
     @Override
     public Subparsers dest(String dest) {
          = TextHelper.nonNull(dest);
         return this;
     }
 
     @Override
     public Subparsers help(String help) {
          = TextHelper.nonNull(help);
         return this;
     }
 
     @Override
     public Subparsers title(String title) {
          = TextHelper.nonNull(title);
         return this;
     }
 
     public String getTitle() {
         return ;
     }
 
    @Override
    public Subparsers description(String description) {
         = TextHelper.nonNull(description);
        return this;
    }
    public String getDescription() {
        return ;
    }
    @Override
    public Subparsers metavar(String metavar) {
         = TextHelper.nonNull(metavar);
        return this;
    }
    public boolean hasSubCommand() {
        return !.isEmpty();
    }
    public void parseArg(ParseState stateMap<StringObjectopts)
            throws ArgumentParserException {
        if (.isEmpty()) {
            throw new IllegalArgumentException("too many arguments");
        }
        SubparserImpl ap = .get(state.getArg());
        if (ap == null) {
            StringBuilder sb = new StringBuilder();
            for (Map.Entry<StringSubparserImplentry : .entrySet()) {
                sb.append("'").append(entry.getKey()).append("', ");
            }
            sb.delete(sb.length() - 2, sb.length());
            throw new UnrecognizedCommandException(String.format(
                    "invalid choice: '%s' (choose from %s)"state.getArg(),
                    sb.toString()), state.getArg());
        } else {
            ++state.index;
            ap.parseArgs(stateopts);
            // Call after parseArgs to overwrite dest_ attribute set by
            // sub-parsers.
            if (!.isEmpty()) {
                opts.put(ap.getCommand());
            }
        }
    }
    public String formatShortSyntax() {
        if (.isEmpty()) {
            StringBuilder sb = new StringBuilder();
            sb.append("{");
            for (Map.Entry<StringSubparserImplentry : .entrySet()) {
                sb.append(entry.getKey()).append(",");
            }
            if (sb.length() > 1) {
                sb.delete(sb.length() - 1, sb.length());
            }
            sb.append("}");
            return sb.toString();
        } else {
            return ;
        }
    }
    public void printSubparserHelp(PrintWriter writer) {
        TextHelper.printHelp(writerformatShortSyntax(), ,
                .getTextWidthCounter(),
                .);
        for (Map.Entry<StringSubparserImplentry : .entrySet()) {
            entry.getValue().printSubparserHelp(writer);
        }
    }
    public Collection<StringgetCommands() {
        return .keySet();
    }
New to GrepCode? Check out our FAQ X