Class | OpenWFE::FilterExpression |
In: |
lib/openwfe/expressions/fe_filter.rb
|
Parent: | FlowExpression |
This expression applies a filter to the workitem used by the process segment nested within it.
class TestFilter48a0 < ProcessDefinition sequence do set :field => "readable", :value => "bible" set :field => "writable", :value => "sand" set :field => "randw", :value => "notebook" set :field => "hidden", :value => "playboy" alice filter :name => "filter0" do sequence do bob charly end end doug end filter_definition :name => "filter0" do field :regex => "readable", :permissions => "r" field :regex => "writable", :permissions => "w" field :regex => "randw", :permissions => "rw" field :regex => "hidden", :permissions => "" end end
In this example, the filter ‘filter0’ is applied upon entering bob and charly‘s sequence.
Please note that the filter will not be enforced between bob and charly, it is enforced just before entering the sequence and just after leaving it.
Note also that the ParticipantExpression accepts a ‘filter’ attribute, thus :
<filter name="filter0"> <participant ref="toto" /> </filter>
can be simplified to :
<participant ref="toto" filter="filter0" />
applied_workitem | [RW] | |
filter | [RW] |
# File lib/openwfe/expressions/fe_filter.rb, line 105 105: def apply workitem 106: 107: if @children.length < 1 108: reply_to_parent workitem 109: return 110: end 111: 112: @applied_workitem = workitem.dup 113: filter_in workitem, :name 114: 115: store_itself 116: 117: get_expression_pool.apply @children[0], workitem 118: end