Class MultiValueFieldSetter

java.lang.Object
org.kohsuke.args4j.spi.MultiValueFieldSetter
All Implemented Interfaces:
Getter, Setter

final class MultiValueFieldSetter extends Object implements Getter, Setter
Setter that sets multiple values to a collection Field.
  • Field Details

    • bean

      private final Object bean
    • f

      private final Field f
  • Constructor Details

    • MultiValueFieldSetter

      public MultiValueFieldSetter(Object bean, Field f)
  • Method Details

    • isMultiValued

      public boolean isMultiValued()
      Description copied from interface: Setter
      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.

      Specified by:
      isMultiValued in interface Setter
    • asFieldSetter

      public FieldSetter asFieldSetter()
      Description copied from interface: Setter
      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()).
      Specified by:
      asFieldSetter in interface Setter
      Returns:
      null if this setter wraps a method.
    • asAnnotatedElement

      public AnnotatedElement asAnnotatedElement()
      Description copied from interface: Setter
      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.

      Specified by:
      asAnnotatedElement in interface Setter
    • getType

      public Class getType()
      Description copied from interface: Setter
      Gets the type of the underlying method/field.
      Specified by:
      getType in interface Setter
    • addValue

      public void addValue(Object value)
      Description copied from interface: Setter
      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.

      Specified by:
      addValue in interface Setter
    • doAddValue

      private void doAddValue(Object bean, Object value) throws IllegalAccessException
      Throws:
      IllegalAccessException
    • getValueList

      public List<Object> getValueList()
      Description copied from interface: Getter
      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.

      Specified by:
      getValueList in interface Getter
      Returns:
      empty list or null if there's no current value.