public class Args
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
Args.ValueCreator |
| Modifier and Type | Field and Description |
|---|---|
private static java.util.List<Args.ValueCreator> |
DEFAULT_VALUE_CREATORS |
static Args.ValueCreator |
ENUM_CREATOR |
static Args.ValueCreator |
FROM_STRING_CONSTRUCTOR
Args.ValueCreator building object using a one arg constructor taking a String object as parameter |
private static java.util.List<Args.ValueCreator> |
valueCreators |
| Constructor and Description |
|---|
Args() |
| Modifier and Type | Method and Description |
|---|---|
private static void |
addArgument(java.lang.Class type,
java.lang.reflect.Field field,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter) |
private static void |
addPropertyArgument(java.lang.Class type,
java.beans.PropertyDescriptor property,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter) |
static Args.ValueCreator |
byStaticMethodInvocation(java.lang.Class<?> compatibleType,
java.lang.String methodName)
Creates a
Args.ValueCreator object able to create object assignable from given type,
using a static one arg method which name is the the given one taking a String object as parameter |
private static java.lang.Object |
consumeArgumentValue(java.lang.Class<?> type,
Argument argument,
java.util.Iterator<java.lang.String> i) |
private static java.lang.Object |
createValue(java.lang.Class<?> type,
java.lang.String valueAsString) |
private static void |
fieldUsage(java.io.PrintStream errStream,
java.lang.Object target,
java.lang.reflect.Field field) |
(package private) static java.lang.String |
getAlias(Argument argument) |
(package private) static java.lang.String |
getName(Argument argument,
java.lang.reflect.Field field) |
(package private) static java.lang.String |
getName(Argument argument,
java.beans.PropertyDescriptor property) |
private static java.lang.String |
getTypeName(java.lang.Class<?> type) |
private static java.lang.Object |
getValue(java.lang.Class<?> type,
java.lang.Object value,
java.lang.String delimiter) |
private static void |
makeAccessible(java.lang.reflect.AccessibleObject ao) |
static java.util.List<java.lang.String> |
parse(java.lang.Object target,
java.lang.String[] args) |
static java.util.List<java.lang.String> |
parse(java.lang.Object target,
java.lang.String[] args,
boolean failOnExtraFlags)
Parse a set of arguments and populate the target with the appropriate values.
|
static java.util.List<java.lang.String> |
parseOrExit(java.lang.Object target,
java.lang.String[] args)
A convenience method for parsing and automatically producing error messages.
|
private static void |
processField(java.lang.Object target,
java.lang.reflect.Field field,
java.util.List<java.lang.String> arguments) |
private static void |
processProperty(java.lang.Object target,
java.beans.PropertyDescriptor property,
java.util.List<java.lang.String> arguments) |
private static void |
propertyUsage(java.io.PrintStream errStream,
java.lang.Object target,
java.beans.PropertyDescriptor field) |
private static void |
propertyUsage(java.io.PrintStream errStream,
java.lang.String prefix,
java.lang.String name,
java.lang.String alias,
java.lang.Class<?> type,
java.lang.String delimiter,
java.lang.String description,
java.lang.Object defaultValue) |
static void |
registerValueCreator(Args.ValueCreator vc)
Allows external extension of the valiue creators.
|
static void |
resetValueCreators()
Cleanup of registered ValueCreators (mainly for tests)
|
(package private) static void |
setField(java.lang.Class<?> type,
java.lang.reflect.Field field,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter) |
(package private) static void |
setProperty(java.lang.Class<?> type,
java.beans.PropertyDescriptor property,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter) |
static void |
usage(java.lang.Object target)
Generate usage information based on the target annotations.
|
static void |
usage(java.io.PrintStream errStream,
java.lang.Object target)
Generate usage information based on the target annotations.
|
public static final Args.ValueCreator FROM_STRING_CONSTRUCTOR
Args.ValueCreator building object using a one arg constructor taking a String object as parameterpublic static final Args.ValueCreator ENUM_CREATOR
private static final java.util.List<Args.ValueCreator> DEFAULT_VALUE_CREATORS
private static java.util.List<Args.ValueCreator> valueCreators
public static java.util.List<java.lang.String> parseOrExit(java.lang.Object target,
java.lang.String[] args)
target - Either an instance or a classargs - The arguments you want to parse and populatepublic static java.util.List<java.lang.String> parse(java.lang.Object target,
java.lang.String[] args)
public static java.util.List<java.lang.String> parse(java.lang.Object target,
java.lang.String[] args,
boolean failOnExtraFlags)
target - Either an instance or a classargs - The arguments you want to parse and populatefailOnExtraFlags - Throw an IllegalArgumentException if extra flags are presentprivate static void processField(java.lang.Object target,
java.lang.reflect.Field field,
java.util.List<java.lang.String> arguments)
private static void addArgument(java.lang.Class type,
java.lang.reflect.Field field,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter)
private static void addPropertyArgument(java.lang.Class type,
java.beans.PropertyDescriptor property,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter)
private static void processProperty(java.lang.Object target,
java.beans.PropertyDescriptor property,
java.util.List<java.lang.String> arguments)
public static void usage(java.lang.Object target)
target - An instance or class.public static void usage(java.io.PrintStream errStream,
java.lang.Object target)
errStream - A PrintStream to print the usage information to.target - An instance or class.private static void fieldUsage(java.io.PrintStream errStream,
java.lang.Object target,
java.lang.reflect.Field field)
private static void propertyUsage(java.io.PrintStream errStream,
java.lang.Object target,
java.beans.PropertyDescriptor field)
private static void propertyUsage(java.io.PrintStream errStream,
java.lang.String prefix,
java.lang.String name,
java.lang.String alias,
java.lang.Class<?> type,
java.lang.String delimiter,
java.lang.String description,
java.lang.Object defaultValue)
private static java.lang.String getTypeName(java.lang.Class<?> type)
static java.lang.String getName(Argument argument, java.beans.PropertyDescriptor property)
private static java.lang.Object consumeArgumentValue(java.lang.Class<?> type,
Argument argument,
java.util.Iterator<java.lang.String> i)
static void setProperty(java.lang.Class<?> type,
java.beans.PropertyDescriptor property,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter)
static java.lang.String getAlias(Argument argument)
static java.lang.String getName(Argument argument, java.lang.reflect.Field field)
static void setField(java.lang.Class<?> type,
java.lang.reflect.Field field,
java.lang.Object target,
java.lang.Object value,
java.lang.String delimiter)
private static java.lang.Object getValue(java.lang.Class<?> type,
java.lang.Object value,
java.lang.String delimiter)
throws java.lang.NoSuchMethodException
java.lang.NoSuchMethodExceptionprivate static java.lang.Object createValue(java.lang.Class<?> type,
java.lang.String valueAsString)
throws java.lang.NoSuchMethodException
java.lang.NoSuchMethodExceptionprivate static void makeAccessible(java.lang.reflect.AccessibleObject ao)
public static Args.ValueCreator byStaticMethodInvocation(java.lang.Class<?> compatibleType, java.lang.String methodName)
Args.ValueCreator object able to create object assignable from given type,
using a static one arg method which name is the the given one taking a String object as parametercompatibleType - the base assignable for which this object will try to invoke the given methodmethodName - the name of the one arg method taking a String as parameter that will be used to built a new valuepublic static void registerValueCreator(Args.ValueCreator vc)
vc - another value creator to take into account for trying to create valuespublic static void resetValueCreators()