Package de.intarsys.tools.functor
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 Summary
Modifier and TypeMethodDescriptionaccept
(IFunctorCall call) Apply this declaration tocall
.An optional declaration context.boolean
isBlock()
true
if this declaration has child elements itself.
-
Method Details
-
accept
Apply this declaration tocall
.The semantics of this method is up to the designer.
- Parameters:
call
- TheIFunctorCall
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 theIFunctorCall
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 aIDeclarationBlock
, 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.
-