Top Description Fields Constructors Methods
org.kohsuke.args4j.spi

pack-priv final Class ArrayFieldSetter

extends Object
implements Getter, Setter
Class Inheritance
All Implemented Interfaces
org.kohsuke.args4j.spi.Setter, org.kohsuke.args4j.spi.Getter
Imports
org.kohsuke.args4j.CmdLineParser, .IllegalAnnotationError, java.lang.reflect.AnnotatedElement, .Array, .Field, java.util.ArrayList, .List

Setter that allows multiple values to be stored into one array field.

Because of the CmdLineParser abstractions of allowing incremental parsing of options, this implementation creates a whole new array each time a new value is found. This is also why we don't support a setter method that takes list/array as arguments.

Author
Kohsuke Kawaguchi

Field Summary

Modifier and TypeField and Description
private final Object
private Object
private final Field
f

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
addValue(Object value)

Implements org.kohsuke.args4j.spi.Setter.addValue.

Adds/sets a value to the property of the option bean.

public AnnotatedElement
asAnnotatedElement()

Implements org.kohsuke.args4j.spi.Setter.asAnnotatedElement.

Returns the AnnotatedElement by which you can access annotations written on this setter.

public FieldSetter
asFieldSetter()

Implements org.kohsuke.args4j.spi.Setter.asFieldSetter.

If this setter encapsulates a field, return the direct access to that field as FieldSetter.

private void
doAddValue(Object bean, Object value)

private void
public Class<T>
getType()

Implements org.kohsuke.args4j.spi.Setter.getType.

Gets the type of the underlying method/field.

public List<Object>
getValueList()

Implements org.kohsuke.args4j.spi.Getter.getValueList.

Gets the current value of the property.

public boolean
isMultiValued()

Implements org.kohsuke.args4j.spi.Setter.isMultiValued.

Whether this setter is intrinsically multi-valued.

private void
trySetDefault(Object bean1)

Remember default so we throw away the default when adding user values.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

beanback to summary
private final Object bean
defaultArrayback to summary
private Object defaultArray
fback to summary
private final Field f

Constructor Detail

ArrayFieldSetterback to summary
public ArrayFieldSetter(Object bean, Field f)

Method Detail

addValueback to summary
public void addValue(Object value)

Implements org.kohsuke.args4j.spi.Setter.addValue.

Doc from org.kohsuke.args4j.spi.Setter.addValue.

Adds/sets a value to the property of the option bean.

A Setter object has an implicit knowledge about the property it's setting, and the instance of the option bean.

asAnnotatedElementback to summary
public AnnotatedElement asAnnotatedElement()

Implements org.kohsuke.args4j.spi.Setter.asAnnotatedElement.

Doc from org.kohsuke.args4j.spi.Setter.asAnnotatedElement.

Returns the AnnotatedElement by which you can access annotations written on this setter. This is the same AnnotatedElement that had Option/Argument.

This enables OptionHandler to further tweak its behavior based on additional annotations.

asFieldSetterback to summary
public FieldSetter asFieldSetter()

Implements org.kohsuke.args4j.spi.Setter.asFieldSetter.

Doc from org.kohsuke.args4j.spi.Setter.asFieldSetter.

If this setter encapsulates a field, return the direct access to that field as FieldSetter. This method serves two purposes:

  1. This lets OptionHandlers bypass the collection/array handling of fields. This is useful if you're defining an option handler that produces array or collection from a single argument.
  2. The other is to retrieve the current value of the field (via FieldSetter#getValueList()).
Returns:FieldSetter

null if this setter wraps a method.

doAddValueback to summary
private void doAddValue(Object bean, Object value) throws IllegalAccessException
doSetDefaultback to summary
private void doSetDefault(Object bean) throws IllegalAccessException
getTypeback to summary
public Class<T> getType()

Implements org.kohsuke.args4j.spi.Setter.getType.

Doc from org.kohsuke.args4j.spi.Setter.getType.

Gets the type of the underlying method/field.

getValueListback to summary
public List<Object> getValueList()

Implements org.kohsuke.args4j.spi.Getter.getValueList.

Doc from org.kohsuke.args4j.spi.Getter.getValueList.

Gets the current value of the property.

A Getter object has an implicit knowledge about the property it's getting, and the instance of the option bean.

Returns:List<Object>

empty list or null if there's no current value.

isMultiValuedback to summary
public boolean isMultiValued()

Implements org.kohsuke.args4j.spi.Setter.isMultiValued.

Doc from org.kohsuke.args4j.spi.Setter.isMultiValued.

Whether this setter is intrinsically multi-valued.

When parsing arguments (instead of options), intrinsically multi-valued setters consume all the remaining arguments. So, if the setter can store multiple values, this method should return true.

This characteristics of a setter doesn't affect option parsing at all; any options can be specified multiple times. In many cases, this is a no-op--but when your shell script expands multiple environment variables (each of which may contain options), tolerating such redundant options can be useful.

trySetDefaultback to summary
private void trySetDefault(Object bean1) throws IllegalAccessError

Remember default so we throw away the default when adding user values.