Class LongOption

All Implemented Interfaces:
Cloneable, Comparable<Operand<?>>, ArgsAccessor, MatchCountAccessor, Operand<Long>, Option<Long>, Synopsisable, Term, org.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>, org.refcodes.mixin.AliasAccessor, org.refcodes.mixin.Clonable, org.refcodes.mixin.DescriptionAccessor, org.refcodes.mixin.Resetable, org.refcodes.mixin.Schemable, org.refcodes.mixin.TypeAccessor<Long>, org.refcodes.mixin.ValueAccessor<Long>

public class LongOption extends AbstractOption<Long>
The LongOption represents an Option holding long values.
  • Field Details

  • Constructor Details

    • LongOption

      public LongOption(Character aShortOption, String aLongOption, String aDescription)
      Instantiates a new LongOption with the given arguments. In case a long option is provided, the intance's alias will automatically be set with the long option, else the short option is used ass alias.
      Parameters:
      aShortOption - The short option to use.
      aLongOption - The long option to use.
      aDescription - The description of the LongOption
    • LongOption

      public LongOption(Character aShortOption, String aLongOption, String aDescription, Consumer<LongOption> aConsumer)
      Instantiates a new LongOption with the given arguments. In case a long option is provided, the intance's alias will automatically be set with the long option, else the short option is used ass alias.
      Parameters:
      aShortOption - The short option to use.
      aLongOption - The long option to use.
      aDescription - The description of the LongOption
      aConsumer - The Consumer being invoked in case this LongOption participated in successfully parsing the command line arguments.
    • LongOption

      public LongOption(Character aShortOption, String aLongOption, String aAlias, String aDescription)
      Instantiates a new LongOption with the given arguments.
      Parameters:
      aShortOption - The short option to use.
      aLongOption - The long option to use.
      aAlias - The alias to be used for naming purposes.
      aDescription - The description of the LongOption
    • LongOption

      public LongOption(Character aShortOption, String aLongOption, String aAlias, String aDescription, Consumer<LongOption> aConsumer)
      Instantiates a new LongOption with the given arguments.
      Parameters:
      aShortOption - The short option to use.
      aLongOption - The long option to use.
      aAlias - The alias to be used for naming purposes.
      aDescription - The description of the LongOption
      aConsumer - The Consumer being invoked in case this LongOption participated in successfully parsing the command line arguments.
    • LongOption

      public LongOption(org.refcodes.struct.Relation<String,Long> aProperty)
      Instantiates a new LongOption with the alias being the proerty's key and the value being the property's value. Depending on the provided property's key, the key is either used for the short option or the long option.
      Parameters:
      aProperty - The key (=alias) and the value for the operand.
    • LongOption

      public LongOption(org.refcodes.struct.Relation<String,Long> aProperty, Consumer<LongOption> aConsumer)
      Instantiates a new LongOption with the alias being the proerty's key and the value being the property's value. Depending on the provided property's key, the key is either used for the short option or the long option.
      Parameters:
      aProperty - The key (=alias) and the value for the operand.
      aConsumer - The Consumer being invoked in case this LongOption participated in successfully parsing the command line arguments.
    • LongOption

      public LongOption(String aLongOption, String aDescription)
      Instantiates a new LongOption with the given arguments. In case a long option is provided, the intance's alias will automatically be set with the long option.
      Parameters:
      aLongOption - The long option to use.
      aDescription - The description of the LongOption
    • LongOption

      public LongOption(String aLongOption, String aDescription, Consumer<LongOption> aConsumer)
      Instantiates a new LongOption with the given arguments. In case a long option is provided, the intance's alias will automatically be set with the long option.
      Parameters:
      aLongOption - The long option to use.
      aDescription - The description of the LongOption
      aConsumer - The Consumer being invoked in case this LongOption participated in successfully parsing the command line arguments.
    • LongOption

      public LongOption(String aLongOption, String aAlias, String aDescription)
      Instantiates a new LongOption with the given arguments.
      Parameters:
      aLongOption - The long option to use.
      aAlias - The alias to be used for naming purposes.
      aDescription - The description of the LongOption
    • LongOption

      public LongOption(String aLongOption, String aAlias, String aDescription, Consumer<LongOption> aConsumer)
      Instantiates a new LongOption with the given arguments.
      Parameters:
      aLongOption - The long option to use.
      aAlias - The alias to be used for naming purposes.
      aDescription - The description of the LongOption
      aConsumer - The Consumer being invoked in case this LongOption participated in successfully parsing the command line arguments.
  • Method Details

    • toType

      protected Long toType(String aArg) throws ParseArgsException
      Double dispatch hook to be implemented by subclasses of the AbstractOperand for converting a command line argument to the required Operand's type. In case conversion failed, then an according exception is to be thrown.
      Specified by:
      toType in class AbstractOperand<Long>
      Parameters:
      aArg - The command line argument to be converted to an instance of the given type T.
      Returns:
      An instance of type T from the provided command line argument.
      Throws:
      ParseArgsException - Thrown in case the provided command line arguments do not respect the required syntax or cannot be converted to the required type.
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface org.refcodes.mixin.DescriptionAccessor
    • getException

      public ArgsSyntaxException getException()
      Retrieves the ArgsSyntaxException exception in case invoking Term.parseArgs(String[], CliContext) failed. The exception (and the according suppressed ones alongside the causes) does not necessarily have been thrown by the Term.parseArgs(String[], CliContext) method depending on the semantics of the Term handing the exception (the AnyCondition provides any exceptions it caught even though it did not throw them as of its semantics).
      Specified by:
      getException in interface org.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>
      Specified by:
      getException in interface Term
      Returns:
      The ArgsSyntaxException exception occurring while parsing the arguments.
    • toArgsDiff

      protected static String[] toArgsDiff(String[] aArgs, List<? extends Operand<?>> aArgsSubset)
      Creates the difference between the provided set and the provided Lists therein found argument arrays subset (as of Operand.getArgs()).
      Parameters:
      aArgs - The set to be used for the diff operation.
      aArgsSubset - The subset to be used for the diff operation being the lists containing the Operand instances whose command line arguments are to be diffed.
      Returns:
      The difference between the set and the subset.
    • toArgsDiff

      protected static String[] toArgsDiff(String[] aArgs, Operand<?>[] aArgsSubset)
      Creates the difference between the provided set and the provided Lists therein found argument arrays subset (as of Operand.getArgs()).
      Parameters:
      aArgs - The set to be used for the diff operation.
      aArgsSubset - The subset to be used for the diff operation being the lists containing the Operand instances whose command line arguments are to be diffed.
      Returns:
      The difference between the set and the subset.
    • toArgsDiff

      protected static String[] toArgsDiff(String[] aArgs, String[] aArgsSubset)
      Creates the difference between the provided set and the provided subset.
      Parameters:
      aArgs - The set to be used for the diff operation.
      aArgsSubset - The subset to be used for the diff operation.
      Returns:
      The difference between the set and the subset.
    • toParsedArgs

      protected static String[] toParsedArgs(Operand<?>[]... aOperands)
      Takes all Operand instances found in the provided Lists and adds all therein found argument arrays (as of Operand.getArgs()) to the result.
      Parameters:
      aOperands - The lists containing the Operand instances whose command line arguments are to be added to the result.
      Returns:
      All the command line arguments detected in the provided Operands Lists.