org.apache.commons.cli

## Class PatternOptionBuilder

- java.lang.Object
- - org.apache.commons.cli.PatternOptionBuilder

    public class PatternOptionBuilder
    extends Object

Allows Options to be created from a single String. The pattern contains various single character flags and via an optional punctuation character, their expected type.

Overview of PatternOptionBuilder patterns
a | -a flag
b@ | -b [classname]
c> | -c [filename]
d+ | -d [classname] (creates object via empty constructor)
e% | -e [number] (creates Double/Long instance depending on existing of a '.')
f/ | -f [url]
g: | -g [string]

For example, the following allows command line flags of '-v -p string-value -f /dir/file'. The exclamation mark precede a mandatory option.

         Options options = PatternOptionBuilder.parsePattern("vp:!f/");

TODO: These need to break out to OptionType and also to be pluggable.

Version:
  $Id: PatternOptionBuilder.java 1677406 2015-05-03 14:27:31Z britter $

### Field Summary

Fields
`static Class<?>` `CLASS_VALUE` Class class
`static Class<Date>` `DATE_VALUE` Date class
`static Class<FileInputStream>` `EXISTING_FILE_VALUE` FileInputStream class
`static Class<File>` `FILE_VALUE` File class
`static Class<File[]>` `FILES_VALUE` File array class
`static Class<Number>` `NUMBER_VALUE` Number class
`static Class<Object>` `OBJECT_VALUE` Object class
`static Class<String>` `STRING_VALUE` String class
`static Class<URL>` `URL_VALUE` URL class

### Constructor Summary

Constructors
Constructor and Description
`PatternOptionBuilder()`

### Method Summary

All Methods Static Methods Concrete Methods
`static Object` `getValueClass(char ch)` Retrieve the class that `ch` represents.
`static boolean` `isValueCode(char ch)` Returns whether `ch` is a value code, i.e.
`static Options` `parsePattern(String pattern)` Returns the `Options` instance represented by `pattern`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### STRING_VALUE

    public static final Class<String> STRING_VALUE

String class

#### OBJECT_VALUE

    public static final Class<Object> OBJECT_VALUE

Object class

#### NUMBER_VALUE

    public static final Class<Number> NUMBER_VALUE

Number class

#### DATE_VALUE

    public static final Class<Date> DATE_VALUE

Date class

#### CLASS_VALUE

    public static final Class<?> CLASS_VALUE

Class class

#### EXISTING_FILE_VALUE

    public static final Class<FileInputStream> EXISTING_FILE_VALUE

FileInputStream class

#### FILE_VALUE

    public static final Class<File> FILE_VALUE

File class

#### FILES_VALUE

    public static final Class<File[]> FILES_VALUE

File array class

#### URL_VALUE

    public static final Class<URL> URL_VALUE

URL class

### Constructor Detail

#### PatternOptionBuilder

    public PatternOptionBuilder()

### Method Detail

#### getValueClass

    public static Object getValueClass(char ch)

Retrieve the class that `ch` represents.

Parameters:
  `ch` - the specified character
Returns:
  The class that `ch` represents

#### isValueCode

    public static boolean isValueCode(char ch)

Returns whether `ch` is a value code, i.e. whether it represents a class in a pattern.

Parameters:
  `ch` - the specified character
Returns:
  true if `ch` is a value code, otherwise false.

#### parsePattern

    public static Options parsePattern(String pattern)

Returns the `Options` instance represented by `pattern`.

Parameters:
  `pattern` - the pattern string
Returns:
  The `Options` instance