Interface IDeclaration

All Known Subinterfaces:
IArgumentDeclaration, IDeclarationBlock, IDeclarationElement
All Known Implementing Classes:
ArgumentDeclaration, Declaration, DeclarationBlock, DeclarationElement, EmptyDeclarationBlock

public interface IDeclaration
A declaration allows to modify the state and or behavior of an IFunctorCall. The IDeclaration is attached to an object owning an IFunctor and should be executed against the IFunctorCall prior to performing the call.

An example for a declaration is IArgumentDeclaration, allowing for argument naming and ordering and to provide default values when an argument is missing.

Syntax, semantics and application to the IFunctorCall of declarations are up to the client.

  • Method Details

    • accept

      Apply this declaration to call.

      The semantics of this method is up to the designer.

      Parameters:
      call - The IFunctorCall to be modified.
      Returns:
      The modified or new IFunctorCall.
      Throws:
      DeclarationException
    • getDeclarationContext

      Object getDeclarationContext()
      An optional declaration context. This may be for example the object that will launch the IFunctorCall later and has parsed some declarations on startup.
      Returns:
      An optional declaration context.
    • isBlock

      boolean isBlock()
      true if this declaration has child elements itself.

      A IDeclarationElement may be a IDeclarationBlock, supporting nested declarations. You should not use "instanceof IDeclarationBlock" to check this behavior but this method.

      Returns:
      true if this declaration has child elements itself.