@Retention(value=CLASS) @Target(value=TYPE) @Repeatable(value=NodeChildren.class) public @interface NodeChild
NodeChild
element defines an executable child for the enclosing Node
. A
Node
contains multiple NodeChildren
specified in linear execution order.Modifier and Type | Optional Element and Description |
---|---|
boolean |
allowUncached
Allow this child node to be used in uncached mode.
|
String[] |
executeWith
The
NodeChild.executeWith() property allows a node to pass the result of one child's
executable as an input to another child's executable. |
boolean |
implicit
Allows implicit creation of this child node.
|
String |
implicitCreate
Defines the initializer expression for implicit child node creation.
|
Class<?> |
type |
String |
uncached
Defines the expression to get an uncached instance of the child node.
|
String |
value |
public abstract String value
public abstract Class<?> type
public abstract String[] executeWith
NodeChild.executeWith()
property allows a node to pass the result of one child's
executable as an input to another child's executable. These referenced children must be
defined before the current node in the execution order. The current node NodeChild.type()
attribute must be set to a Node
which supports the evaluated execution with the
number of NodeChild.executeWith()
arguments that are defined. For example if this child is
executed with one argument, the NodeChild.type()
attribute must define a node which publicly
declares a method with the signature Object execute*(VirtualFrame, Object)
.public abstract boolean implicit
false
(the default),
the factory method of the parent node needs to be called with an instance of the child node
as argument. If NodeChild.implicit()
is true
, the child node will be implicitly created
when calling the factory method of the parent node.public abstract String implicitCreate
NodeChild.implicit()
mode on this child node automatically, this should not be
specified together with NodeChild.implicit()
. If NodeChild.implicit()
is true
, the
initializer expression defaults to "create()"
.NodeChild.implicit()
,
Cached
public abstract boolean allowUncached
false
(the default),
only execute methods that have an explicit argument for the child value can be used on the
uncached version of the parent node. If set to true
, execute methods that do not have
an explicit argument for the child value use an uncached version of the child node to compute
the missing value.GenerateUncached
public abstract String uncached
NodeChild.allowUncached()
on this child node, this should not
be specified together with NodeChild.allowUncached()
. If NodeChild.allowUncached()
is
true
, the uncached expression defaults to "getUncached()"
.NodeChild.allowUncached()
,
Cached