Class Command

java.lang.Object
de.sormuras.bach.Command

public class Command
extends java.lang.Object
Command-line program argument list builder.
  • Constructor Summary

    Constructors 
    Constructor Description
    Command​(java.lang.String name, java.lang.Iterable<?> arguments)
    Initialize Command instance with zero or more arguments.
    Command​(java.lang.String name, java.lang.Object... args)
    Initialize Command instance with zero or more arguments.
  • Method Summary

    Modifier and Type Method Description
    Command add​(java.lang.Object argument)
    Add single argument by invoking Object.toString() on the given argument.
    Command add​(java.lang.Object key, java.lang.Object value)
    Add two arguments by invoking add(Object) for the key and value elements.
    Command add​(java.lang.Object key, java.util.Collection<java.nio.file.Path> paths)
    Add two (or zero) arguments, the key and the paths joined by system's path separator.
    Command add​(java.lang.Object key, java.util.stream.Stream<java.nio.file.Path> stream, java.util.function.UnaryOperator<java.lang.String> operator)
    Add two (or zero) arguments, the key and the paths joined by system's path separator.
    Command addEach​(java.lang.Iterable<?> arguments)
    Add all arguments by invoking add(Object) for each element.
    <T> Command addEach​(java.lang.Iterable<T> arguments, java.util.function.BiConsumer<Command,​T> visitor)
    Add all arguments by delegating to the passed visitor for each element.
    Command addEach​(java.lang.Object... arguments)
    Add all arguments by invoking add(Object) for each element.
    Command addEach​(java.util.stream.Stream<?> arguments)
    Add all arguments by invoking add(Object) for each element.
    Command addIff​(boolean condition, java.lang.Object argument)
    Add a single argument iff the conditions is true.
    Command addIff​(boolean condition, java.lang.Object key, java.lang.Object value)
    Add two arguments iff the conditions is true.
    Command addIff​(boolean condition, java.util.function.Consumer<Command> visitor)
    Let the consumer visit, usually modify, this instance iff the conditions is true.
    Command addIff​(java.lang.Object key, java.util.Optional<?> optionalValue)
    Add two arguments iff the given optional value is present.
    Command clone()  
    java.util.List<java.lang.String> getArguments()
    Return the command's arguments.
    java.lang.String getName()
    Return the command's name.
    java.lang.String toCommandLine()
    Return program's name and all arguments as single string using space as the delimiter.
    java.lang.String toCommandLine​(java.lang.String delimiter)
    Return program's name and all arguments as single string using passed delimiter.
    java.lang.String toString()  
    java.lang.String[] toStringArray()
    Return an array of String containing all of the collected arguments.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Command

      public Command​(java.lang.String name, java.lang.Object... args)
      Initialize Command instance with zero or more arguments.
    • Command

      public Command​(java.lang.String name, java.lang.Iterable<?> arguments)
      Initialize Command instance with zero or more arguments.
  • Method Details

    • clone

      public Command clone()
      Overrides:
      clone in class java.lang.Object
    • add

      public Command add​(java.lang.Object argument)
      Add single argument by invoking Object.toString() on the given argument.
    • add

      public Command add​(java.lang.Object key, java.lang.Object value)
      Add two arguments by invoking add(Object) for the key and value elements.
    • add

      public Command add​(java.lang.Object key, java.util.Collection<java.nio.file.Path> paths)
      Add two (or zero) arguments, the key and the paths joined by system's path separator.
    • add

      public Command add​(java.lang.Object key, java.util.stream.Stream<java.nio.file.Path> stream, java.util.function.UnaryOperator<java.lang.String> operator)
      Add two (or zero) arguments, the key and the paths joined by system's path separator.
    • addEach

      public Command addEach​(java.lang.Object... arguments)
      Add all arguments by invoking add(Object) for each element.
    • addEach

      public Command addEach​(java.lang.Iterable<?> arguments)
      Add all arguments by invoking add(Object) for each element.
    • addEach

      public Command addEach​(java.util.stream.Stream<?> arguments)
      Add all arguments by invoking add(Object) for each element.
    • addEach

      public <T> Command addEach​(java.lang.Iterable<T> arguments, java.util.function.BiConsumer<Command,​T> visitor)
      Add all arguments by delegating to the passed visitor for each element.
    • addIff

      public Command addIff​(boolean condition, java.lang.Object argument)
      Add a single argument iff the conditions is true.
    • addIff

      public Command addIff​(boolean condition, java.lang.Object key, java.lang.Object value)
      Add two arguments iff the conditions is true.
    • addIff

      public Command addIff​(java.lang.Object key, java.util.Optional<?> optionalValue)
      Add two arguments iff the given optional value is present.
    • addIff

      public Command addIff​(boolean condition, java.util.function.Consumer<Command> visitor)
      Let the consumer visit, usually modify, this instance iff the conditions is true.
    • getName

      public java.lang.String getName()
      Return the command's name.
    • getArguments

      public java.util.List<java.lang.String> getArguments()
      Return the command's arguments.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • toStringArray

      public java.lang.String[] toStringArray()
      Return an array of String containing all of the collected arguments.
    • toCommandLine

      public java.lang.String toCommandLine()
      Return program's name and all arguments as single string using space as the delimiter.
    • toCommandLine

      public java.lang.String toCommandLine​(java.lang.String delimiter)
      Return program's name and all arguments as single string using passed delimiter.