Class ArgumentParser

java.lang.Object
opennlp.tools.cmdline.ArgumentParser

@Internal public class ArgumentParser extends Object
Parser for command line arguments. The parser creates a dynamic proxy which can be access via a command line argument interface.

The command line argument proxy interface must follow these conventions:
- Methods do not define arguments
- Method names must start with get
- Allowed return types are Integer, Boolean, String, File and Charset.

Note: Do not use this class, internal use only!

  • Method Details

    • createUsage

      public static <T> String createUsage(Class<T> argProxyInterface)
      Creates a usage string which can be printed in case the user did specify the arguments incorrectly. Incorrectly is defined as validateArguments(String[], Class) returns false.
      Parameters:
      argProxyInterface - interface with parameter descriptions
      Returns:
      the help message usage string
    • createArguments

      public static List<opennlp.tools.cmdline.ArgumentParser.Argument> createArguments(Class<?>... argProxyInterfaces)
      Outputs the arguments as a data structure, so it can be used to create documentation.
      Parameters:
      argProxyInterfaces - interfaces with parameter descriptions
      Returns:
      the help message usage string
    • createUsage

      public static String createUsage(Class<?>... argProxyInterfaces)
      Creates a usage string which can be printed in case the user did specify the arguments incorrectly. Incorrectly is defined as validateArguments(String[], Class[]) returns false.
      Parameters:
      argProxyInterfaces - interfaces with parameter descriptions
      Returns:
      the help message usage string
    • validateArguments

      public static <T> boolean validateArguments(String[] args, Class<T> argProxyInterface)
      Tests if the argument are correct or incorrect. Incorrect means, that mandatory arguments are missing or there are unknown arguments. The argument value itself can also be incorrect, but this is checked by the parse(String[], Class) method and reported accordingly.
      Parameters:
      args - command line arguments
      argProxyInterface - interface with parameters description
      Returns:
      true if arguments are valid, false otherwise
    • validateArguments

      public static boolean validateArguments(String[] args, Class<?>... argProxyInterfaces)
      Tests if the argument are correct or incorrect. Incorrect means, that mandatory arguments are missing or there are unknown arguments. The argument value itself can also be incorrect, but this is checked by the parse(String[], Class) method and reported accordingly.
      Parameters:
      args - command line arguments
      argProxyInterfaces - interfaces with parameters description
      Returns:
      true if arguments are valid, false otherwise
    • validateArgumentsLoudly

      public static String validateArgumentsLoudly(String[] args, Class<?> argProxyInterface)
      Tests if the arguments are correct or incorrect.
      Parameters:
      args - command line arguments
      argProxyInterface - interface with parameters description
      Returns:
      null, if arguments are valid or error message otherwise
    • validateArgumentsLoudly

      public static String validateArgumentsLoudly(String[] args, Class<?>... argProxyInterfaces)
      Tests if the arguments are correct or incorrect.
      Parameters:
      args - command line arguments
      argProxyInterfaces - interfaces with parameters description
      Returns:
      null, if arguments are valid or error message otherwise
    • parse

      public static <T> T parse(String[] args, Class<T> argProxyInterface)
      Parses the passed arguments and creates an instance of the proxy interface.

      In case an argument value cannot be parsed a TerminateToolException is thrown which contains an error message which explains the problems.

      Parameters:
      args - arguments
      argProxyInterface - interface with parameters description
      Returns:
      parsed parameters
      Throws:
      TerminateToolException - if an argument value cannot be parsed.
      IllegalArgumentException - if validateArguments returns false, if the proxy interface is not compatible.
    • filter

      public static <T> String[] filter(String[] args, Class<T> argProxyInterface)
      Filters arguments leaving only those pertaining to argProxyInterface.
      Type Parameters:
      T - T
      Parameters:
      args - arguments
      argProxyInterface - interface with parameters description
      Returns:
      arguments pertaining to argProxyInterface