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 anIFunctorCall
. TheIDeclaration
is attached to an object owning anIFunctor
and should be executed against theIFunctorCall
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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description IFunctorCall
accept(IFunctorCall call)
Apply this declaration tocall
.java.lang.Object
getDeclarationContext()
An optional declaration context.boolean
isBlock()
true
if this declaration has child elements itself.
-
-
-
Method Detail
-
accept
IFunctorCall accept(IFunctorCall call) throws DeclarationException
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
java.lang.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.
-
-