openwferu 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{README → README.txt} +16 -13
- data/bin/validate-workflow.rb +46 -22
- data/examples/README.txt +8 -0
- data/examples/homeworkreview.rb +66 -0
- data/examples/quotereporter.rb +154 -0
- data/lib/{openwferu.rb → openwfe.rb} +6 -8
- data/lib/{ru → openwfe}/contextual.rb +11 -3
- data/lib/{ru → openwfe/engine}/engine.rb +50 -36
- data/lib/{ru/participant.rb → openwfe/engine/file_persisted_engine.rb} +21 -22
- data/lib/openwfe/expool/expressionpool.rb +534 -0
- data/lib/openwfe/expool/expstorage.rb +184 -0
- data/lib/openwfe/expool/journalexpstorage.rb +312 -0
- data/lib/openwfe/expool/yamlexpstorage.rb +127 -0
- data/lib/{ru → openwfe/expressions}/environment.rb +19 -14
- data/lib/{ru → openwfe/expressions}/expressionmap.rb +48 -21
- data/lib/{ru → openwfe/expressions}/fe_concurrence.rb +111 -35
- data/lib/openwfe/expressions/fe_cursor.rb +236 -0
- data/lib/{ru → openwfe/expressions}/fe_define.rb +5 -5
- data/lib/openwfe/expressions/fe_fqv.rb +99 -0
- data/lib/openwfe/expressions/fe_iterator.rb +182 -0
- data/lib/{ru/fe_misc.rb → openwfe/expressions/fe_losfor.rb} +14 -56
- data/lib/openwfe/expressions/fe_misc.rb +102 -0
- data/lib/{ru → openwfe/expressions}/fe_participant.rb +25 -14
- data/lib/{ru → openwfe/expressions}/fe_raw.rb +39 -75
- data/lib/{ru/fe_base.rb → openwfe/expressions/fe_sequence.rb} +40 -35
- data/lib/{ru → openwfe/expressions}/fe_subprocess.rb +30 -14
- data/lib/{ru → openwfe/expressions}/fe_time.rb +59 -31
- data/lib/{ru → openwfe/expressions}/fe_utils.rb +42 -26
- data/lib/{ru → openwfe/expressions}/fe_value.rb +20 -14
- data/lib/openwfe/expressions/flowexpression.rb +434 -0
- data/lib/openwfe/expressions/raw_prog.rb +391 -0
- data/lib/openwfe/expressions/raw_xml.rb +128 -0
- data/lib/openwfe/flowexpressionid.rb +148 -0
- data/lib/{ru → openwfe}/logging.rb +10 -6
- data/lib/{osocket.rb → openwfe/osocket.rb} +36 -35
- data/lib/{otime.rb → openwfe/otime.rb} +71 -21
- data/lib/openwfe/participants/atomparticipants.rb +144 -0
- data/lib/openwfe/participants/enoparticipant.rb +73 -0
- data/lib/openwfe/participants/participant.rb +85 -0
- data/lib/{ru → openwfe/participants}/participantmap.rb +40 -12
- data/lib/{ru → openwfe/participants}/participants.rb +41 -12
- data/lib/openwfe/participants/soapparticipants.rb +96 -0
- data/lib/{controlclient.rb → openwfe/rest/controlclient.rb} +12 -13
- data/lib/{definitions.rb → openwfe/rest/definitions.rb} +3 -3
- data/lib/{exception.rb → openwfe/rest/exception.rb} +3 -3
- data/lib/{restclient.rb → openwfe/rest/restclient.rb} +13 -22
- data/lib/{worklistclient.rb → openwfe/rest/worklistclient.rb} +33 -46
- data/lib/openwfe/rest/xmlcodec.rb +575 -0
- data/lib/{ru → openwfe}/rudefinitions.rb +32 -4
- data/lib/{ru → openwfe}/service.rb +20 -8
- data/lib/openwfe/storage/yamlfilestorage.rb +159 -0
- data/lib/{ru → openwfe/util}/dollar.rb +10 -8
- data/lib/openwfe/util/lru_cache.rb +149 -0
- data/lib/{ru → openwfe/util}/scheduler.rb +18 -10
- data/lib/{ru → openwfe/util}/schedulers.rb +7 -7
- data/lib/{utils.rb → openwfe/utils.rb} +93 -9
- data/lib/openwfe/workitem.rb +366 -0
- data/lib/openwfe/worklist/worklists.rb +175 -0
- data/test/README.txt +27 -0
- data/test/atomtest.rb +99 -0
- data/test/crontest.rb +58 -0
- data/test/dollartest.rb +3 -3
- data/test/feitest.rb +42 -14
- data/test/file_persistence_test.rb +93 -0
- data/test/flowtestbase.rb +72 -26
- data/test/ft_0.rb +1 -97
- data/test/ft_0b_sequence.rb +33 -0
- data/test/ft_0c_testname.rb +29 -0
- data/test/ft_10_loop.rb +48 -0
- data/test/ft_11_ppd.rb +292 -0
- data/test/ft_12_blockparticipant.rb +45 -0
- data/test/ft_13_eno.rb +51 -0
- data/test/ft_14_subprocess.rb +90 -0
- data/test/ft_14b_subprocess.rb +40 -0
- data/test/ft_15_iterator.rb +70 -0
- data/test/ft_16_fqv.rb +57 -0
- data/test/ft_1_unset.rb +25 -1
- data/test/ft_2_concurrence.rb +10 -5
- data/test/ft_3_equals.rb +35 -1
- data/test/ft_4_misc.rb +16 -1
- data/test/ft_5_time.rb +26 -1
- data/test/ft_6_lambda.rb +2 -1
- data/test/{ft_7_losfor.rb → ft_7_lose.rb} +41 -35
- data/test/ft_8_forget.rb +46 -0
- data/test/ft_9_cursor.rb +94 -0
- data/test/journal_persistence_test.rb +147 -0
- data/test/misctest.rb +13 -9
- data/test/rake_ptest.rb +18 -0
- data/test/rake_qtest.rb +43 -0
- data/test/{fulltest.rb → rake_test.rb} +2 -2
- data/test/raw_prog_test.rb +236 -0
- data/test/rest_test.rb +189 -0
- data/test/rutest_utils.rb +1 -1
- data/test/timetest.rb +42 -34
- metadata +125 -82
- data/lib/codec.rb +0 -573
- data/lib/flowexpressionid.rb +0 -139
- data/lib/ru/expressionpool.rb +0 -382
- data/lib/ru/expressionstorage.rb +0 -99
- data/lib/ru/flowexpression.rb +0 -272
- data/lib/ru/ruutils.rb +0 -70
- data/lib/test.rb +0 -222
- data/lib/workitem.rb +0 -249
- data/test/quicktest.rb +0 -21
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
#--
|
|
3
|
-
# Copyright (c) 2006, John Mettraux, OpenWFE.org
|
|
3
|
+
# Copyright (c) 2006-2007, John Mettraux, OpenWFE.org
|
|
4
4
|
# All rights reserved.
|
|
5
5
|
#
|
|
6
6
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -39,60 +39,11 @@
|
|
|
39
39
|
# John Mettraux at openwfe.org
|
|
40
40
|
#
|
|
41
41
|
|
|
42
|
-
require '
|
|
43
|
-
require '
|
|
42
|
+
require 'openwfe/expressions/flowexpression'
|
|
43
|
+
require 'openwfe/expressions/fe_utils'
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
module
|
|
47
|
-
|
|
48
|
-
class PrintExpression < FlowExpression
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
# apply / reply
|
|
52
|
-
|
|
53
|
-
def apply (workitem)
|
|
54
|
-
|
|
55
|
-
escape = lookup_boolean_attribute('escape', workitem, false)
|
|
56
|
-
|
|
57
|
-
text = OpenWFEru::fetch_text_content(self, workitem, escape)
|
|
58
|
-
tracer = @application_context['__tracer']
|
|
59
|
-
|
|
60
|
-
if tracer
|
|
61
|
-
tracer << text
|
|
62
|
-
else
|
|
63
|
-
puts text
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
reply_to_parent(workitem)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
#def reply (workitem)
|
|
70
|
-
#end
|
|
71
|
-
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
# Evals some Ruby code contained within the process definition
|
|
76
|
-
# or within the workitem
|
|
77
|
-
#
|
|
78
|
-
class RevalExpression < FlowExpression
|
|
79
|
-
|
|
80
|
-
def apply (workitem)
|
|
81
|
-
|
|
82
|
-
escape = lookup_boolean_attribute('escape', workitem, false)
|
|
83
|
-
|
|
84
|
-
code = OpenWFEru::lookup_vf_attribute(self, workitem, 'code')
|
|
85
|
-
|
|
86
|
-
code = OpenWFEru::fetch_text_content(self, workitem, escape) \
|
|
87
|
-
if not code
|
|
88
|
-
|
|
89
|
-
result = eval(code.to_s)
|
|
90
|
-
|
|
91
|
-
OpenWFEru::set_result(workitem, result) if result != nil
|
|
92
|
-
|
|
93
|
-
reply_to_parent(workitem)
|
|
94
|
-
end
|
|
95
|
-
end
|
|
46
|
+
module OpenWFE
|
|
96
47
|
|
|
97
48
|
#
|
|
98
49
|
# Triggers the first (and supposedly unique child of this expression)
|
|
@@ -107,7 +58,7 @@ module OpenWFEru
|
|
|
107
58
|
end
|
|
108
59
|
|
|
109
60
|
def reply (workitem)
|
|
110
|
-
|
|
61
|
+
get_expression_pool.remove(self)
|
|
111
62
|
end
|
|
112
63
|
end
|
|
113
64
|
|
|
@@ -115,7 +66,7 @@ module OpenWFEru
|
|
|
115
66
|
# This method triggers its child (in its own thread) and then
|
|
116
67
|
# forgets about it. It immediately replies to its parent expression.
|
|
117
68
|
#
|
|
118
|
-
class ForgetExpression <
|
|
69
|
+
class ForgetExpression < FlowExpression
|
|
119
70
|
|
|
120
71
|
def apply (workitem)
|
|
121
72
|
|
|
@@ -125,11 +76,14 @@ module OpenWFEru
|
|
|
125
76
|
|
|
126
77
|
Thread.new do
|
|
127
78
|
begin
|
|
79
|
+
#child = get_expression_pool.fetch(@children[0])
|
|
80
|
+
#child.parent_id = nil
|
|
81
|
+
get_expression_pool.forget(@children[0])
|
|
128
82
|
get_expression_pool.apply(@children[0], wi)
|
|
129
83
|
rescue Exception => e
|
|
130
84
|
lwarn do
|
|
131
85
|
"apply() failed to apply child to forget "+
|
|
132
|
-
|
|
86
|
+
OpenWFE::exception_to_s(e)
|
|
133
87
|
end
|
|
134
88
|
end
|
|
135
89
|
end
|
|
@@ -137,6 +91,10 @@ module OpenWFEru
|
|
|
137
91
|
|
|
138
92
|
reply_to_parent(wi)
|
|
139
93
|
end
|
|
94
|
+
|
|
95
|
+
def reply (workitem)
|
|
96
|
+
# never gets called
|
|
97
|
+
end
|
|
140
98
|
end
|
|
141
99
|
|
|
142
100
|
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Copyright (c) 2006-2007, John Mettraux, OpenWFE.org
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
|
7
|
+
# modification, are permitted provided that the following conditions are met:
|
|
8
|
+
#
|
|
9
|
+
# . Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
# list of conditions and the following disclaimer.
|
|
11
|
+
#
|
|
12
|
+
# . Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
# and/or other materials provided with the distribution.
|
|
15
|
+
#
|
|
16
|
+
# . Neither the name of the "OpenWFE" nor the names of its contributors may be
|
|
17
|
+
# used to endorse or promote products derived from this software without
|
|
18
|
+
# specific prior written permission.
|
|
19
|
+
#
|
|
20
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
23
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
24
|
+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
25
|
+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
26
|
+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
27
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
29
|
+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
30
|
+
# POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
#++
|
|
32
|
+
#
|
|
33
|
+
# $Id: definitions.rb 2725 2006-06-02 13:26:32Z jmettraux $
|
|
34
|
+
#
|
|
35
|
+
|
|
36
|
+
#
|
|
37
|
+
# "made in Japan"
|
|
38
|
+
#
|
|
39
|
+
# John Mettraux at openwfe.org
|
|
40
|
+
#
|
|
41
|
+
|
|
42
|
+
require 'openwfe/expressions/flowexpression'
|
|
43
|
+
require 'openwfe/expressions/fe_utils'
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
module OpenWFE
|
|
47
|
+
|
|
48
|
+
class PrintExpression < FlowExpression
|
|
49
|
+
|
|
50
|
+
#
|
|
51
|
+
# apply / reply
|
|
52
|
+
|
|
53
|
+
def apply (workitem)
|
|
54
|
+
|
|
55
|
+
escape = lookup_boolean_attribute('escape', workitem, false)
|
|
56
|
+
|
|
57
|
+
text = OpenWFE::fetch_text_content(self, workitem, escape)
|
|
58
|
+
text << "\n"
|
|
59
|
+
|
|
60
|
+
tracer = @application_context['__tracer']
|
|
61
|
+
|
|
62
|
+
if tracer
|
|
63
|
+
tracer << text
|
|
64
|
+
else
|
|
65
|
+
puts text
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
reply_to_parent(workitem)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
#def reply (workitem)
|
|
72
|
+
#end
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
#
|
|
77
|
+
# <reval/>
|
|
78
|
+
#
|
|
79
|
+
# Evals some Ruby code contained within the process definition
|
|
80
|
+
# or within the workitem
|
|
81
|
+
#
|
|
82
|
+
class RevalExpression < FlowExpression
|
|
83
|
+
|
|
84
|
+
def apply (workitem)
|
|
85
|
+
|
|
86
|
+
escape = lookup_boolean_attribute('escape', workitem, false)
|
|
87
|
+
|
|
88
|
+
code = OpenWFE::lookup_vf_attribute(self, workitem, 'code')
|
|
89
|
+
|
|
90
|
+
code = OpenWFE::fetch_text_content(self, workitem, escape) \
|
|
91
|
+
if not code
|
|
92
|
+
|
|
93
|
+
result = eval(code.to_s)
|
|
94
|
+
|
|
95
|
+
OpenWFE::set_result(workitem, result) if result != nil
|
|
96
|
+
|
|
97
|
+
reply_to_parent(workitem)
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Copyright (c) 2006, John Mettraux, OpenWFE.org
|
|
2
|
+
#--
|
|
3
|
+
# Copyright (c) 2006-2007, John Mettraux, OpenWFE.org
|
|
4
4
|
# All rights reserved.
|
|
5
5
|
#
|
|
6
6
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
29
29
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
30
30
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
-
|
|
31
|
+
#++
|
|
32
32
|
#
|
|
33
33
|
# $Id: definitions.rb 2725 2006-06-02 13:26:32Z jmettraux $
|
|
34
34
|
#
|
|
@@ -39,34 +39,45 @@
|
|
|
39
39
|
# John Mettraux at openwfe.org
|
|
40
40
|
#
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
require '
|
|
44
|
-
require 'ru/fe_utils'
|
|
42
|
+
require 'openwfe/rudefinitions'
|
|
43
|
+
require 'openwfe/expressions/fe_utils'
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
#
|
|
48
47
|
# The participant expression, in its own file
|
|
49
48
|
#
|
|
50
49
|
|
|
51
|
-
module
|
|
50
|
+
module OpenWFE
|
|
52
51
|
|
|
52
|
+
#
|
|
53
|
+
# Participants sit at the edge between the engine and the external
|
|
54
|
+
# world. The participant expression transmit the workitem applied
|
|
55
|
+
# to it to the Participant instance it looks up in the participant map
|
|
56
|
+
# tied to the engine.
|
|
57
|
+
#
|
|
53
58
|
class ParticipantExpression < FlowExpression
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
attr_accessor \
|
|
61
|
+
:participant_name,
|
|
62
|
+
:applied_workitem
|
|
57
63
|
|
|
58
64
|
#
|
|
59
65
|
# apply / reply
|
|
60
66
|
|
|
61
67
|
def apply (workitem)
|
|
62
68
|
|
|
63
|
-
|
|
69
|
+
@applied_workitem = workitem
|
|
70
|
+
#puts "apply() \n#{@applied_workitem}"
|
|
71
|
+
#ldebug { "apply() \n#{@applied_workitem}" }
|
|
64
72
|
|
|
65
|
-
participant_name =
|
|
66
|
-
OpenWFEru::lookup_vf_attribute(self, workitem, 'ref')
|
|
73
|
+
@participant_name = OpenWFE::lookup_ref(self, workitem)
|
|
67
74
|
|
|
68
|
-
@
|
|
69
|
-
|
|
75
|
+
@participant_name = OpenWFE::fetch_text_content(self, workitem) \
|
|
76
|
+
unless @participant_name
|
|
77
|
+
|
|
78
|
+
store_itself()
|
|
79
|
+
|
|
80
|
+
get_participant_map.dispatch(participant_name, workitem)
|
|
70
81
|
end
|
|
71
82
|
|
|
72
83
|
#def reply (workitem)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
#--
|
|
3
|
-
# Copyright (c) 2006, John Mettraux, OpenWFE.org
|
|
3
|
+
# Copyright (c) 2006-2007, John Mettraux, OpenWFE.org
|
|
4
4
|
# All rights reserved.
|
|
5
5
|
#
|
|
6
6
|
# Redistribution and use in source and binary forms, with or without
|
|
@@ -39,29 +39,31 @@
|
|
|
39
39
|
# John Mettraux at openwfe.org
|
|
40
40
|
#
|
|
41
41
|
|
|
42
|
-
require 'rexml/document'
|
|
42
|
+
#require 'rexml/document'
|
|
43
43
|
|
|
44
|
-
require '
|
|
45
|
-
require '
|
|
46
|
-
require 'ru/engine'
|
|
47
|
-
require 'ru/rudefinitions'
|
|
48
|
-
require 'ru/flowexpression'
|
|
49
|
-
require 'ru/fe_base'
|
|
44
|
+
require 'openwfe/rudefinitions'
|
|
45
|
+
require 'openwfe/expressions/flowexpression'
|
|
50
46
|
|
|
51
47
|
|
|
52
|
-
module
|
|
48
|
+
module OpenWFE
|
|
53
49
|
|
|
50
|
+
#
|
|
51
|
+
# An 'abstract' class storing bits (trees) of process definitions just
|
|
52
|
+
# parsed. Upon application (apply()) these raw expressions get turned
|
|
53
|
+
# into real expressions.
|
|
54
|
+
# The first and classical extension of this class is XmlRawExpression.
|
|
55
|
+
#
|
|
54
56
|
class RawExpression < FlowExpression
|
|
55
57
|
|
|
56
|
-
attr_accessor \
|
|
57
|
-
|
|
58
|
+
#attr_accessor \
|
|
59
|
+
# :raw_representation
|
|
58
60
|
|
|
59
61
|
def initialize \
|
|
60
|
-
(fei, parent_id,
|
|
62
|
+
(fei, parent_id, env_id, application_context, raw_representation)
|
|
61
63
|
|
|
62
|
-
super(fei, parent_id,
|
|
64
|
+
super(fei, parent_id, env_id, application_context, nil)
|
|
63
65
|
|
|
64
|
-
@
|
|
66
|
+
@raw_representation = raw_representation
|
|
65
67
|
|
|
66
68
|
new_environment() if not @environment_id
|
|
67
69
|
end
|
|
@@ -74,6 +76,8 @@ module OpenWFEru
|
|
|
74
76
|
|
|
75
77
|
raise "unknown expression '#{expression_name}'" if not eclass
|
|
76
78
|
|
|
79
|
+
ldebug { "instantiate_real_expression() eclass is #{eclass}" }
|
|
80
|
+
|
|
77
81
|
expression = eclass.new(
|
|
78
82
|
@fei,
|
|
79
83
|
@parent_id,
|
|
@@ -101,89 +105,49 @@ module OpenWFEru
|
|
|
101
105
|
end
|
|
102
106
|
|
|
103
107
|
#def reply (workitem)
|
|
108
|
+
# no implementation necessary
|
|
104
109
|
#end
|
|
105
110
|
|
|
106
|
-
def is_expression? ()
|
|
107
|
-
return false if not @xml_element.kind_of?(REXML::XMLElement)
|
|
108
|
-
return expression_class() != nil
|
|
109
|
-
end
|
|
110
|
-
|
|
111
111
|
def is_definition? ()
|
|
112
112
|
return get_expression_map.is_definition?(expression_name())
|
|
113
113
|
end
|
|
114
114
|
|
|
115
|
-
def expression_name ()
|
|
116
|
-
return @xml_element.name
|
|
117
|
-
end
|
|
118
|
-
|
|
119
115
|
def expression_class ()
|
|
120
116
|
return get_expression_map().get_class(expression_name())
|
|
121
117
|
end
|
|
122
|
-
|
|
118
|
+
|
|
123
119
|
def definition_name ()
|
|
124
|
-
return
|
|
120
|
+
return raw_representation.attributes['name'].to_s
|
|
125
121
|
end
|
|
126
122
|
|
|
123
|
+
def expression_name ()
|
|
124
|
+
return raw_representation.name
|
|
125
|
+
end
|
|
126
|
+
|
|
127
127
|
protected
|
|
128
128
|
|
|
129
129
|
def launch_template (template, workitem)
|
|
130
130
|
|
|
131
|
-
attributes = extract_attributes()
|
|
131
|
+
@attributes = extract_attributes()
|
|
132
|
+
|
|
133
|
+
#require 'pp'
|
|
134
|
+
#pp attributes
|
|
135
|
+
#pp lookup_attributes(workitem, attributes)
|
|
132
136
|
|
|
133
|
-
get_expression_pool().launch_template(
|
|
137
|
+
get_expression_pool().launch_template(
|
|
134
138
|
self,
|
|
135
139
|
template,
|
|
136
140
|
workitem,
|
|
137
|
-
lookup_attributes(
|
|
141
|
+
lookup_attributes(workitem))
|
|
138
142
|
end
|
|
139
143
|
|
|
140
|
-
def extract_attributes ()
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def extract_children ()
|
|
149
|
-
|
|
150
|
-
c = []
|
|
151
|
-
i = 0
|
|
152
|
-
|
|
153
|
-
@xml_element.each_child do |elt|
|
|
154
|
-
|
|
155
|
-
if elt.kind_of?(REXML::Element)
|
|
156
|
-
|
|
157
|
-
cfei = @fei.dup
|
|
158
|
-
pfei = @fei
|
|
159
|
-
|
|
160
|
-
efei = @environment_id
|
|
161
|
-
|
|
162
|
-
cfei.expressionName = elt.name
|
|
163
|
-
cfei.expressionId = "#{cfei.expressionId}.#{i}"
|
|
164
|
-
|
|
165
|
-
rawchild = RawExpression\
|
|
166
|
-
.new(cfei, pfei, efei, @application_context, elt)
|
|
167
|
-
|
|
168
|
-
get_expression_pool().update(rawchild)
|
|
169
|
-
c << rawchild.fei
|
|
170
|
-
|
|
171
|
-
i = i+1
|
|
172
|
-
|
|
173
|
-
elsif elt.kind_of?(REXML::Comment)
|
|
174
|
-
|
|
175
|
-
next
|
|
176
|
-
|
|
177
|
-
else
|
|
178
|
-
|
|
179
|
-
s = elt.to_s.strip
|
|
180
|
-
c << s if s.length > 0
|
|
181
|
-
|
|
182
|
-
end
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
return c
|
|
186
|
-
end
|
|
144
|
+
#def extract_attributes ()
|
|
145
|
+
# raise "abstract method : not implemented here"
|
|
146
|
+
#end
|
|
147
|
+
#def extract_children ()
|
|
148
|
+
# raise "abstract method : not implemented here"
|
|
149
|
+
#end
|
|
187
150
|
end
|
|
151
|
+
|
|
188
152
|
end
|
|
189
153
|
|