public interface EvaluationEnvironment
| Modifier and Type | Field and Description |
|---|---|
static int |
EVENT_ENTER_FUNCTION_PARAMS
The code of event that indicates that we have started to evaluate the
parameter list in a function call.
|
static int |
EVENT_ENTER_HASH
The code of event that indicates that we have started to evaluate the
items in a hash.
|
static int |
EVENT_ENTER_HASH_KEY
The code of event that indicates that we have started to evaluate the
value in a key:value pair.
|
static int |
EVENT_ENTER_SEQUENCE
The code of event that indicates that we have started to evaluate the
items in a sequence.
|
static int |
EVENT_LEAVE_FUNCTION_PARAMS
The code of event that indicates that we have finished to evaluate the
parameter list in a function call.
|
static int |
EVENT_LEAVE_HASH
The code of event that indicates that we have finished to evaluate the
items in a sequence.
|
static int |
EVENT_LEAVE_HASH_KEY
The code of event that indicates that we have finished to evaluate the
value in a key:value pair.
|
static int |
EVENT_LEAVE_SEQUENCE
The code of event that indicates that we have finished to evaluate the
items in a sequence.
|
static java.lang.Object |
RETURN_FRAGMENT |
static java.lang.Object |
RETURN_SKIP |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
evalFunctionCall(FunctionCall fc,
Interpreter ip)
Evaluates the function call.
|
java.lang.Object |
notify(int event,
Interpreter ip,
java.lang.String name,
java.lang.Object extra)
Notifies about an event during expression evaluation.
|
static final int EVENT_ENTER_HASH_KEY
static final int EVENT_LEAVE_HASH_KEY
static final int EVENT_ENTER_FUNCTION_PARAMS
static final int EVENT_LEAVE_FUNCTION_PARAMS
static final int EVENT_ENTER_SEQUENCE
static final int EVENT_LEAVE_SEQUENCE
static final int EVENT_ENTER_HASH
static final int EVENT_LEAVE_HASH
static final java.lang.Object RETURN_SKIP
static final java.lang.Object RETURN_FRAGMENT
java.lang.Object evalFunctionCall(FunctionCall fc, Interpreter ip) throws java.lang.Exception
fc - the function call to evaluate.FunctionCall object, it will not be
evaluated again. This way, the final result of a TDD expression
evaluation can contain FunctionCall objects.java.lang.Exceptionjava.lang.Object notify(int event,
Interpreter ip,
java.lang.String name,
java.lang.Object extra)
throws java.lang.Exception
event - An EVENT_... constant. Further events may will
be added later, so the implementation must silently ignore events
that it does not know. It is guaranteed that for each
EVENT_ENTER_... event there will be an
EVENT_LEAVE_... event later, except if
notifyContextChange has thrown exception during handling
EVENT_ENTER_..., in which case it is guaranteed that
there will be no corresponding EVENT_LEAVE_... event.ip - the Interpreter instance that evaluates the text.
The value returned by Interpreter.getPosition() will be
the position in the text where the this even has been created:
EVENT_ENTER_HASH_KEY: points the first character
of the value of the key:value pair.
EVENT_ENTER_SEQUENCE, EVENT_ENTER_HASH, and
EVENT_ENTER_FUNCTION_PARAMS: points the first
character after the [ and ( respectively.
EVENT_LEAVE_SEQUENCE, EVENT_LEAVE_HASH, and
EVENT_LEAVE_FUNCTION_PARAMS: points the
terminating character, that is, the ] or )
or the character after the end of the string.
name - For EVENT_ENTER_HASH_KEY and
EVENT_ENTER_FUNCTION_PARAMS, the name of the hash key or
function. It is null otherwise.extra - Even specific extra information.
EVENT_ENTER_HASH, EVENT_LEAVE_HASH,
EVENT_ENTER_SEQUENCE, EVENT_LEAVE_SEQUENCE it
is the Map or List that is being
built by the hash or sequence. It's OK to modify this
Map or List.
null.
null always means
"do nothing special". The currently defiend non-null
return values for the events:
EVENT_ENTER_HASH_KEY:
RETURN_SKIP: Skip the key:value
pair. That is, the key:value pair will not be added to
the map. The value expression will not be evaluated.
RETURN_FRAGMENT: The value of the key:value pair
will be the Fragment that stores the value
expression. The value expression will not be evaluated.
However, if the value is implicit boolean
true, (i.e. you omit the value) then
RETURN_FRAGMENT has no effect.
EVENT_ENTER_HASH if the hash uses { and
}):
RETURN_FRAGMENT: The value of the hash will be
the Fragment that stores the hash expression.
The hash expression will not be evaluated.
java.lang.Exception