public interface Setter<T>
This abstracts away the difference between a field and a setter method, which object we are setting the value to, and/or how we handle collection fields differently.
Getter
Modifier and Type | Method and Description |
---|---|
void |
addValue(T value)
Adds/sets a value to the property of the option bean.
|
AnnotatedElement |
asAnnotatedElement()
Returns the
AnnotatedElement by which you can access annotations written on this setter. |
FieldSetter |
asFieldSetter()
If this setter encapsulates a field, return the direct access to that field as
FieldSetter . |
Class<T> |
getType()
Gets the type of the underlying method/field.
|
boolean |
isMultiValued()
Whether this setter is intrinsically multi-valued.
|
void addValue(T value) throws CmdLineException
A Setter
object has an implicit knowledge about the property it's setting,
and the instance of the option bean.
CmdLineException
boolean isMultiValued()
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.
FieldSetter asFieldSetter()
FieldSetter
. This method serves two purposes:
OptionHandler
s 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.FieldSetter.getValueList()
).null
if this setter wraps a method.AnnotatedElement asAnnotatedElement()
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.
Copyright © 2003-2016 Kohsuke Kawaguchi. All Rights Reserved.