Class OpenWFE::SequenceExpression
In: lib/openwfe/expressions/fe_sequence.rb
Parent: FlowExpression

This expression sequentially executes each of its children expression. For a more sophisticated version of it, see the ‘cursor’ expression (fe_cursor.rb).

Methods

apply   next_child   reply  

Public Instance methods

[Source]

    # File lib/openwfe/expressions/fe_sequence.rb, line 59
59:         def apply (workitem)
60: 
61:             #store_itself
62:                 #
63:                 # remove that !
64: 
65:             reply workitem
66:         end

[Source]

    # File lib/openwfe/expressions/fe_sequence.rb, line 68
68:         def reply (workitem)
69: 
70:             cfei = next_child workitem.fei
71: 
72:             return reply_to_parent(workitem) \
73:                 unless cfei
74: 
75:             #ldebug do 
76:             #    "reply() self : \n#{self.to_s}\n" +
77:             #    "reply() next is #{@current_child_id} : #{cfei.to_debug_s}"
78:             #end
79: 
80:             get_expression_pool.apply cfei, workitem
81:         end

Protected Instance methods

Returns the flowExpressionId of the next child to apply, or nil if the sequence is over.

[Source]

     # File lib/openwfe/expressions/fe_sequence.rb, line 89
 89:             def next_child (current_fei)
 90: 
 91:                 next_id = if (current_fei == self.fei)
 92:                     0
 93:                 else
 94:                     current_fei.child_id.to_i + 1
 95:                 end
 96: 
 97:                 loop do
 98: 
 99:                     break if next_id >= @children.length
100: 
101:                     child = @children[next_id]
102:                     return child if child.is_a?(FlowExpressionId)
103: 
104:                     next_id += 1
105:                 end
106: 
107:                 nil
108:             end

[Validate]