活动参数节点

作为一种行为,活动可以有参数(参见13.2)。当活动被调用时,可以通过输入参数(in或inout)向其传递值,并且值可以通过输出参数(inout、out或return)从活动执行中传出。

在活动中,活动的输入和输出使用ActivityParameterNodes(活动参数节点)来处理。每个活动参数节点都与活动的一个参数相关联。活动参数节点的类型应该与关联的参数类型相同。

活动参数节点要么只有流入活动边,要么只有流出活动边。具有流出边的是输入活动参数节点,带有流入边的是输出活动参数节点(注意,只有当活动参数节点与活动边相连后,才能判断它是输入还是输出)。

对于每个in、out或return参数都有一个相应的活动参数节点,对于每个inout参数有两个相应的活动参数节点(一个用于输入一个用于输出)。

如果一个输入活动参数节点与一个非流参数相关联,那么当活动被调用时,需要传递给该参数的值被封装在对象tokens中然后放在活动参数节点上。如果参数是有序的,那么放置在活动参数节点中的tokens要按照参数的顺序来对值进行排序;否则次序是未定义。然后活动参数节点把tokens提交给它的流出边。

在活动执行过程中,对象tokens会流入活动的输出活动参数节点内。输出活动参数节点接受所有交付给它的tokens,然后把它们放在节点上。如果一个输出活动参数节点与一个非流参数相关联,那么当活动执行结束时,由该活动参数节点持有的对象tokens中的值被传递给对应的参数。如果该参数是有序的,那么参数上的值按照活动参数节点上tokens的次序来排序。

如果一个输入活动参数节点与一个流参数相关联,那么当有新的值提高给参数的时候,该值就会被封装到一个对象token中,然而被放到活动参数节点上,由节点将它提交给所有的流出边。如果一个输出活动参数节点与一个流参数相关联,那么当该活动参数节点接受到一个新的对象token时,该token被立即从活动参数节点移除,它所包含的值被立即提交给相应的参数。(还可以参见13.2中对流参数语义的描述。)

results matching ""

    No results matching ""