Interface Directive<T>

Type Parameters:
T - The generic type of the Directive's value.
All Superinterfaces:
org.refcodes.mixin.AliasAccessor, org.refcodes.mixin.Clonable, Cloneable, Comparable<Operand<?>>, org.refcodes.mixin.DescriptionAccessor, org.refcodes.exception.ExceptionAccessor<ArgsSyntaxException>, MatchCountAccessor, Operand<T>, OperationAccessor, ParsedArgsAccessor, org.refcodes.mixin.Resetable, org.refcodes.schema.Schemable, Synopsisable, Term, org.refcodes.mixin.TypeAccessor<T>, org.refcodes.mixin.ValueAccessor<T>, org.refcodes.graphical.VisibleAccessor, org.refcodes.graphical.VisibleAccessor.VisibleBuilder<Term>, org.refcodes.graphical.VisibleAccessor.VisibleMutator, org.refcodes.graphical.VisibleAccessor.VisibleProperty
All Known Implementing Classes:
AbstractDirective, ArrayDirective, BooleanDirective, CharDirective, DoubleDirective, EnumDirective, FileDirective, FloatDirective, IntDirective, LongDirective, StringDirective

public interface Directive<T> extends Operand<T>, OperationAccessor
An Directive represents a command line operation with the according operation's operand (value). An Directive can be seen as a key/value(s) pair usually represented by two succeeding arguments (e.g. "open someFile". A Directive has a state which changes with each invocation of the Term.parseArgs(String[], String[], CliContext) method.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.refcodes.mixin.AliasAccessor

    org.refcodes.mixin.AliasAccessor.AliasBuilder<B extends org.refcodes.mixin.AliasAccessor.AliasBuilder<B>>, org.refcodes.mixin.AliasAccessor.AliasMutator, org.refcodes.mixin.AliasAccessor.AliasProperty

    Nested classes/interfaces inherited from interface org.refcodes.mixin.DescriptionAccessor

    org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<B extends org.refcodes.mixin.DescriptionAccessor.DescriptionBuilder<B>>, org.refcodes.mixin.DescriptionAccessor.DescriptionMutator, org.refcodes.mixin.DescriptionAccessor.DescriptionProperty

    Nested classes/interfaces inherited from interface org.refcodes.exception.ExceptionAccessor

    org.refcodes.exception.ExceptionAccessor.ExceptionBuilder<EXC extends Throwable,B extends org.refcodes.exception.ExceptionAccessor.ExceptionBuilder<EXC,B>>, org.refcodes.exception.ExceptionAccessor.ExceptionMutator<EXC extends Throwable>, org.refcodes.exception.ExceptionAccessor.ExceptionProperty<EXC extends Throwable>

    Nested classes/interfaces inherited from interface org.refcodes.cli.ParsedArgsAccessor

    ParsedArgsAccessor.ParsedArgsMutator, ParsedArgsAccessor.ParsedArgsProperty

    Nested classes/interfaces inherited from interface org.refcodes.mixin.TypeAccessor

    org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B extends org.refcodes.mixin.TypeAccessor.TypeBuilder<T,B>>, org.refcodes.mixin.TypeAccessor.TypeMutator<T>, org.refcodes.mixin.TypeAccessor.TypeProperty<T>

    Nested classes/interfaces inherited from interface org.refcodes.mixin.ValueAccessor

    org.refcodes.mixin.ValueAccessor.ValueBuilder<V,B extends org.refcodes.mixin.ValueAccessor.ValueBuilder<V,B>>, org.refcodes.mixin.ValueAccessor.ValueMutator<V>, org.refcodes.mixin.ValueAccessor.ValueProperty<V>

    Nested classes/interfaces inherited from interface org.refcodes.graphical.VisibleAccessor

    org.refcodes.graphical.VisibleAccessor.VisibleBuilder<B extends org.refcodes.graphical.VisibleAccessor.VisibleBuilder<B>>, org.refcodes.graphical.VisibleAccessor.VisibleMutator, org.refcodes.graphical.VisibleAccessor.VisibleProperty
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the operation assigned to the Directive instance.
    default String[]
    Produces the keywords (short and/or long options, operations, commands, whatever) with the according prefix (if any) to be considered when overall parsing the command line arguments.
    default String
    toSpec(CliContext aCliCtx)
    Creates a specification including its arguments.
    default String
    Creates a syntax including its arguments.
    default String
    Creates a plain usage specification without any escape codes, helpful e.g. in human readable messages.

    Methods inherited from interface org.refcodes.mixin.Clonable

    clone

    Methods inherited from interface java.lang.Comparable

    compareTo

    Methods inherited from interface org.refcodes.mixin.DescriptionAccessor

    getDescription

    Methods inherited from interface org.refcodes.cli.Operand

    getAlias, getParsedArgs, getValue, hasValue, toSpec, toSpec, toSpec, toSpec, toUsage, toValue

    Methods inherited from interface org.refcodes.mixin.Resetable

    reset

    Methods inherited from interface org.refcodes.schema.Schemable

    toSchema

    Methods inherited from interface org.refcodes.cli.Synopsisable

    toSynopsis, toSynopsis, toSynopsis, toSynopsis

    Methods inherited from interface org.refcodes.mixin.TypeAccessor

    getType

    Methods inherited from interface org.refcodes.mixin.ValueAccessor

    getValueOr

    Methods inherited from interface org.refcodes.graphical.VisibleAccessor.VisibleBuilder

    withHide, withShow, withVisible

    Methods inherited from interface org.refcodes.graphical.VisibleAccessor.VisibleMutator

    hide, show

    Methods inherited from interface org.refcodes.graphical.VisibleAccessor.VisibleProperty

    letVisible
  • Method Details

    • getOperation

      String getOperation()
      Returns the operation assigned to the Directive instance.
      Specified by:
      getOperation in interface OperationAccessor
      Returns:
      The operation's String.
    • toKeywords

      default String[] toKeywords(CliContext aCliCtx)
      Produces the keywords (short and/or long options, operations, commands, whatever) with the according prefix (if any) to be considered when overall parsing the command line arguments.
      Specified by:
      toKeywords in interface Operand<T>
      Parameters:
      aCliCtx - The CliContext to use when assembling the keywords.
      Returns:
      The keywords with the according prefix.
    • toUsage

      default String toUsage(CliContext aCliCtx)
      Creates a plain usage specification without any escape codes, helpful e.g. in human readable messages.
      Specified by:
      toUsage in interface Operand<T>
      Parameters:
      aCliCtx - The CliContext to use when creating a beautiful usage text.
      Returns:
      The according usage text.
    • toSpec

      default String toSpec(CliContext aCliCtx)
      Creates a specification including its arguments.

      A specification differs from a syntax in that the specification provides the full definition not omitting any choices whereas the syntax only provides a syntactically correct variant. For example, having an option with a short option and a long option, the specification will show the short option and the long option whereas the syntax will only show either the short option or, if no short option is set, the long option.

      Specified by:
      toSpec in interface Operand<T>
      Parameters:
      aCliCtx - The CliContext to use when creating a beautiful specification text.
      Returns:
      The according specification text.
    • toSyntax

      default String toSyntax(CliContext aCliCtx)
      Creates a syntax including its arguments.

      A specification differs from a syntax in that the specification provides the full definition not omitting any choices whereas the syntax only provides a syntactically correct variant. For example, having an option with a short option and a long option, the specification will show the short option and the long option whereas the syntax will only show either the short option or, if no short option is set, the long option.

      Specified by:
      toSyntax in interface Operand<T>
      Specified by:
      toSyntax in interface Term
      Parameters:
      aCliCtx - The CLI context controlling notation and formatting
      Returns:
      The human readable command line syntax