Class ArgumentBuilder

java.lang.Object
org.codehaus.mojo.jaxb2.shared.arguments.ArgumentBuilder

public final class ArgumentBuilder extends Object
Utility class to build an array containing method arguments, as received from a command-line invocation of a tool.
  • Field Details

  • Constructor Details

    • ArgumentBuilder

      public ArgumentBuilder()
  • Method Details

    • build

      public String[] build()

      Retrieves all arguments as a string array, usable by a method accepting a String[] for argument. This would be true of public static void main(String[] args), as well as the entry points for both the XJC and the Schemagen tools.

      Returns:
      an array holding all arguments in this ArgumentBuilder.
    • withFlag

      public ArgumentBuilder withFlag(boolean addFlag, String flag)

      Adds a flag on the form -someflag to the list of arguments contained within this ArgumentBuilder. If the flag argument does not start with a dash ('-'), one will be prepended.

      Typical usage:

      
           argumentBuilder
            .withFlag(someBooleanParameter, "foobar")
            .withFlag(someOtherBooleanParameter, "gnat")
            .withFlag(someThirdBooleanParameter, "gnu")
            ....
       
      Parameters:
      addFlag - if true, the flag will be added to the underlying list of arguments within this ArgumentBuilder.
      flag - The flag/argument to add. The flag must be a complete word, implying it cannot contain whitespace.
      Returns:
      This ArgumentBuilder, for chaining.
    • withNamedArgument

      public ArgumentBuilder withNamedArgument(boolean addNamedArgument, String name, String value)

      Adds a name and an argument on the form -name value to the list of arguments contained within this ArgumentBuilder. The two parts will yield 2 elements in the underlying argument list. If the name argument does not start with a dash ('-'), one will be prepended.

      Typical usage:

      
           // These values should be calculated as part of the business logic
           final boolean addFooBar = true;
           final boolean addGnat = true;
           final boolean addGnu = false;
      
           // Add all relevant arguments
           argumentBuilder
            .withNamedArgument(addFooBar, "foobar", "foobarValue")
            .withNamedArgument(addGnat, "-gnat", "gnatValue")
            .withNamedArgument(addGnu, "gnu", "gnuValue")
            ....
       
      Parameters:
      addNamedArgument - if true, the named argument (name and value) will be added to the underlying list of arguments within this ArgumentBuilder.
      name - The name of the namedArgument to add. Cannot be empty.
      value - The value of the namedArgument to add.
      Returns:
      This ArgumentBuilder, for chaining.
    • withNamedArgument

      public ArgumentBuilder withNamedArgument(String name, String value)
      Convenience form for the withNamedArgument method, where a named argument is only added if the value is non-null and non-empty after trimming.
      Parameters:
      name - The name of the namedArgument to add. Cannot be empty.
      value - The value of the namedArgument to add.
      Returns:
      This ArgumentBuilder, for chaining.
      See Also:
    • withPreCompiledArguments

      public ArgumentBuilder withPreCompiledArguments(List<String> preCompiledArguments)
      Adds the supplied pre-compiled arguments in the same order as they were given.
      Parameters:
      preCompiledArguments - A non-null List holding pre-compiled arguments.
      Returns:
      This ArgumentBuilder, for chaining.
    • getIndexForFlag

      private int getIndexForFlag(String name)
    • updateValueForNamedArgument

      private boolean updateValueForNamedArgument(String name, String newValue)