org.apache.ode.utils.cli

## Class FlagWithArgument

- java.lang.Object
- - org.apache.ode.utils.cli.FlagWithArgument

- All Implemented Interfaces:
    CommandlineFragment

      public class FlagWithArgument
      extends java.lang.Object
      implements CommandlineFragment

  A fragment that represents a flag with an argument, e.g., `--foo bar`.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.ode.utils.cli.CommandlineFragment

      `COMMAND_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FlagWithArgument(java.lang.String name, java.lang.String argName, java.lang.String description, boolean optional)` Construct a new fragment holder.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<java.lang.String>` | `consume(java.util.List<java.lang.String> s)` Grab the pieces of the commandline relevant to this argument, configure the implementation, and then return a new array of arguments that will have the pieces of the original commandline that this command used removed.
    `java.lang.String` | `getDescription()` Return a description of this commandline fragment.
    `java.lang.String` | `getUsage()` Construct a usage string for this commandline fragment.
    `java.lang.String` | `getValue()`
    `boolean` | `isOptional()`
    `boolean` | `isSet()`
    `void` | `reset()` Reset the fragment to its initial state.
    `void` | `setOptional(boolean o)`
    `boolean` | `validate()`

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

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

- - ### Constructor Detail

    - #### FlagWithArgument

          public FlagWithArgument(java.lang.String name,
                          java.lang.String argName,
                          java.lang.String description,
                          boolean optional)

      Construct a new fragment holder.
      Parameters:
        `name` - the name of the flag, as it will be used on the commandline
        `argName` - the name of the argument, as it will be used to generate usage and help
        `description` - the description of the flag
        `optional` - whether or not this flag is optional

  - ### Method Detail

    - #### isOptional

          public boolean isOptional()

      Specified by:
        `isOptional` in interface `CommandlineFragment`
      Returns:
        `true` if this fragment is optional.

    - #### setOptional

          public void setOptional(boolean o)

    - #### consume

          public java.util.List<java.lang.String> consume(java.util.List<java.lang.String> s)
                                                   throws CommandlineSyntaxException

      Description copied from interface: `CommandlineFragment`

      Grab the pieces of the commandline relevant to this argument, configure the implementation, and then return a new array of arguments that will have the pieces of the original commandline that this command used removed.

      Specified by:
        `consume` in interface `CommandlineFragment`
      Parameters:
        `s` - the list of arguments
      Returns:
        the list of arguments, post parse
      Throws:
        `CommandlineSyntaxException` - if the commandline is structurally invalid.

    - #### reset

          public void reset()

      Description copied from interface: `CommandlineFragment`

      Reset the fragment to its initial state. This is useful for reusing fragments in multiple commandline structures.

      Specified by:
        `reset` in interface `CommandlineFragment`

    - #### isSet

          public boolean isSet()

    - #### getValue

          public java.lang.String getValue()

    - #### getUsage

          public java.lang.String getUsage()

      Description copied from interface: `CommandlineFragment`

      Construct a usage string for this commandline fragment. The usage string is used when constructing a strawman commandline example and when formatting help.

      Specified by:
        `getUsage` in interface `CommandlineFragment`
      Returns:
        the usage string

    - #### getDescription

          public java.lang.String getDescription()

      Description copied from interface: `CommandlineFragment`

      Return a description of this commandline fragment. The description should be a (short) narrative item that describes the purpose of the fragment. It is only used when formatting help.

      Specified by:
        `getDescription` in interface `CommandlineFragment`
      Returns:
        the description

    - #### validate

          public boolean validate()