lib/openwfe/expressions/fe_losfor.rb in ruote-0.9.18 vs lib/openwfe/expressions/fe_losfor.rb in ruote-0.9.19

- old
+ new

@@ -1,34 +1,34 @@ # #-- # Copyright (c) 2006-2008, John Mettraux, OpenWFE.org # All rights reserved. -# -# Redistribution and use in source and binary forms, with or without +# +# Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: -# +# # . Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# . Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation +# list of conditions and the following disclaimer. +# +# . Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. -# +# # . Neither the name of the "OpenWFE" nor the names of its contributors may be # used to endorse or promote products derived from this software without # specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. #++ # # @@ -40,72 +40,72 @@ require 'openwfe/expressions/flowexpression' module OpenWFE - # - # Triggers the first (and supposedly unique child of this expression) - # but never wait for its reply (lose it). - # - # A 'lose' expression never replies to its parent expression. - # - # <lose> - # <participant ref="toto" /> - # </lose> - # - # Useful only some special process cases (like a concurrence - # expecting only a certain number of replies). - # - # The brother expressions is 'forget', but 'forget' triggers its child - # and immediately replies, whereas 'lose' doesn't reply. - # - class LoseExpression < FlowExpression + # + # Triggers the first (and supposedly unique child of this expression) + # but never wait for its reply (lose it). + # + # A 'lose' expression never replies to its parent expression. + # + # <lose> + # <participant ref="toto" /> + # </lose> + # + # Useful only some special process cases (like a concurrence + # expecting only a certain number of replies). + # + # The brother expressions is 'forget', but 'forget' triggers its child + # and immediately replies, whereas 'lose' doesn't reply. + # + class LoseExpression < FlowExpression - names :lose + names :lose - def apply (workitem) + def apply (workitem) - get_expression_pool.apply(children[0], workitem) \ - if (@children and @children.length > 0) - end + get_expression_pool.apply(children[0], workitem) \ + if (@children and @children.length > 0) + end - def reply (workitem) + def reply (workitem) - get_expression_pool.remove self - end + get_expression_pool.remove self end + end - # - # This expression triggers its child (in its own thread) and then - # forgets about it. It immediately replies to its parent expression. - # - # The brother expression 'lose' triggers its child but never replies to its - # parent expression. - # - # The 'forget' expression is useful for triggering process segments - # that are, well, dead ends. - # - class ForgetExpression < FlowExpression + # + # This expression triggers its child (in its own thread) and then + # forgets about it. It immediately replies to its parent expression. + # + # The brother expression 'lose' triggers its child but never replies to its + # parent expression. + # + # The 'forget' expression is useful for triggering process segments + # that are, well, dead ends. + # + class ForgetExpression < FlowExpression - names :forget + names :forget - def apply (workitem) + def apply (workitem) - if (@children and @children.length > 0) + if (@children and @children.length > 0) - wi = workitem.dup + wi = workitem.dup - child = @children[0] - get_expression_pool.forget self, child - get_expression_pool.apply child, wi - end + child = @children[0] + get_expression_pool.forget self, child + get_expression_pool.apply child, wi + end - reply_to_parent workitem - end + reply_to_parent workitem + end - def reply (workitem) - # never gets called - end + def reply (workitem) + # never gets called end + end end