2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.apex.testsuites.integration.common.model;
24 import java.util.ArrayList;
25 import java.util.List;
28 import java.util.TreeMap;
29 import java.util.TreeSet;
30 import org.onap.policy.apex.model.basicmodel.concepts.ApexRuntimeException;
31 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
32 import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation;
33 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
34 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
35 import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum;
36 import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbums;
37 import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
38 import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
39 import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
40 import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
41 import org.onap.policy.apex.model.eventmodel.concepts.AxField;
42 import org.onap.policy.apex.model.policymodel.concepts.AxLogicReader;
43 import org.onap.policy.apex.model.policymodel.concepts.AxPolicies;
44 import org.onap.policy.apex.model.policymodel.concepts.AxPolicy;
45 import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
46 import org.onap.policy.apex.model.policymodel.concepts.AxState;
47 import org.onap.policy.apex.model.policymodel.concepts.AxStateOutput;
48 import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskOutputType;
49 import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskReference;
50 import org.onap.policy.apex.model.policymodel.concepts.AxTask;
51 import org.onap.policy.apex.model.policymodel.concepts.AxTaskLogic;
52 import org.onap.policy.apex.model.policymodel.concepts.AxTaskParameter;
53 import org.onap.policy.apex.model.policymodel.concepts.AxTaskSelectionLogic;
54 import org.onap.policy.apex.model.policymodel.concepts.AxTasks;
55 import org.onap.policy.apex.model.policymodel.handling.PolicyLogicReader;
58 * This class creates sample Policy Models.
60 * @author Liam Fallon (liam.fallon@ericsson.com)
62 public class SampleDomainModelFactory {
63 // Recurring string constants
64 private static final String TASK = "Task_";
65 private static final String PARAMETER2 = "Parameter2";
66 private static final String PARAMETER1 = "Parameter1";
67 private static final String DEFAULT_VALUE2 = "DefaultValue2";
68 private static final String DEFAULT_VALUE1 = "DefaultValue1";
69 private static final String PARAMETER0 = "Parameter0";
70 private static final String DEFAULT_VALUE0 = "DefaultValue0";
71 private static final String TASK_SELECTION_LIGIC = "TaskSelectionLigic";
72 private static final String TEST_ACT_STATE_TIME = "TestActStateTime";
73 private static final String TEST_ACT_CASE_SELECTED = "TestActCaseSelected";
74 private static final String TEST_DECIDE_STATE_TIME = "TestDecideStateTime";
75 private static final String TEST_DECIDE_CASE_SELECTED = "TestDecideCaseSelected";
76 private static final String TEST_ESTABLISH_STATE_TIME = "TestEstablishStateTime";
77 private static final String TEST_ESTABLISH_CASE_SELECTED = "TestEstablishCaseSelected";
78 private static final String DECIDE = "Decide";
79 private static final String TEST_MATCH_STATE_TIME = "TestMatchStateTime";
80 private static final String TEST_MATCH_CASE_SELECTED = "TestMatchCaseSelected";
81 private static final String ESTABLISH = "Establish";
82 private static final String TEST_MATCH_CASE = "TestMatchCase";
83 private static final String MATCH = "Match";
84 private static final String DEFAULT_SOURCE = "Outside";
85 private static final String DEFAULT_NAMESPACE = "org.onap.policy.apex.sample.events";
86 private static final String TEST_TEMPERATURE = "TestTemperature";
87 private static final String TEST_TIMESTAMP = "TestTimestamp";
88 private static final String TEST_SLOGAN = "TestSlogan";
89 private static final String DEFAULT_VERSION = "0.0.1";
91 private static final int THIRD_ENTRY = 3;
94 * Get a sample policy model.
96 * @param axLogicExecutorType The type of logic executor, the scripting language being used
97 * @return the sample policy model
99 // CHECKSTYLE:OFF: checkstyle:maximumMethodLength
100 public AxPolicyModel getSamplePolicyModel(final String axLogicExecutorType) {
101 AxContextSchema testSlogan = new AxContextSchema(new AxArtifactKey(TEST_SLOGAN, DEFAULT_VERSION), "Java",
103 AxContextSchema testCase = new AxContextSchema(new AxArtifactKey("TestCase", DEFAULT_VERSION), "Java",
105 AxContextSchema testTimestamp = new AxContextSchema(new AxArtifactKey(TEST_TIMESTAMP, DEFAULT_VERSION), "Java",
107 AxContextSchema testTemperature = new AxContextSchema(new AxArtifactKey(TEST_TEMPERATURE, DEFAULT_VERSION),
108 "Java", "java.lang.Double");
110 AxContextSchema testContextItem000 = new AxContextSchema(
111 new AxArtifactKey("TestContextItem000", DEFAULT_VERSION), "Java",
112 "org.onap.policy.apex.context.test.concepts.TestContextItem000");
113 AxContextSchema testContextItem001 = new AxContextSchema(
114 new AxArtifactKey("TestContextItem001", DEFAULT_VERSION), "Java",
115 "org.onap.policy.apex.context.test.concepts.TestContextItem001");
116 AxContextSchema testContextItem002 = new AxContextSchema(
117 new AxArtifactKey("TestContextItem002", DEFAULT_VERSION), "Java",
118 "org.onap.policy.apex.context.test.concepts.TestContextItem002");
119 AxContextSchema testContextItem003 = new AxContextSchema(
120 new AxArtifactKey("TestContextItem003", DEFAULT_VERSION), "Java",
121 "org.onap.policy.apex.context.test.concepts.TestContextItem003");
122 AxContextSchema testContextItem004 = new AxContextSchema(
123 new AxArtifactKey("TestContextItem004", DEFAULT_VERSION), "Java",
124 "org.onap.policy.apex.context.test.concepts.TestContextItem004");
125 AxContextSchema testContextItem005 = new AxContextSchema(
126 new AxArtifactKey("TestContextItem005", DEFAULT_VERSION), "Java",
127 "org.onap.policy.apex.context.test.concepts.TestContextItem005");
128 AxContextSchema testContextItem006 = new AxContextSchema(
129 new AxArtifactKey("TestContextItem006", DEFAULT_VERSION), "Java",
130 "org.onap.policy.apex.context.test.concepts.TestContextItem006");
131 AxContextSchema testContextItem007 = new AxContextSchema(
132 new AxArtifactKey("TestContextItem007", DEFAULT_VERSION), "Java",
133 "org.onap.policy.apex.context.test.concepts.TestContextItem007");
134 AxContextSchema testContextItem008 = new AxContextSchema(
135 new AxArtifactKey("TestContextItem008", DEFAULT_VERSION), "Java",
136 "org.onap.policy.apex.context.test.concepts.TestContextItem008");
137 AxContextSchema testContextItem009 = new AxContextSchema(
138 new AxArtifactKey("TestContextItem009", DEFAULT_VERSION), "Java",
139 "org.onap.policy.apex.context.test.concepts.TestContextItem009");
140 AxContextSchema testContextItem00A = new AxContextSchema(
141 new AxArtifactKey("TestContextItem00A", DEFAULT_VERSION), "Java",
142 "org.onap.policy.apex.context.test.concepts.TestContextItem00A");
143 AxContextSchema testContextItem00B = new AxContextSchema(
144 new AxArtifactKey("TestContextItem00B", DEFAULT_VERSION), "Java",
145 "org.onap.policy.apex.context.test.concepts.TestContextItem00B");
146 AxContextSchema testContextItem00C = new AxContextSchema(
147 new AxArtifactKey("TestContextItem00C", DEFAULT_VERSION), "Java",
148 "org.onap.policy.apex.context.test.concepts.TestContextItem00C");
150 AxContextSchema testPolicyContextItem = new AxContextSchema(
151 new AxArtifactKey("TestPolicyContextItem", DEFAULT_VERSION), "Java",
152 "org.onap.policy.apex.context.test.concepts.TestPolicyContextItem");
153 AxContextSchema testGlobalContextItem = new AxContextSchema(
154 new AxArtifactKey("TestGlobalContextItem", DEFAULT_VERSION), "Java",
155 "org.onap.policy.apex.context.test.concepts.TestGlobalContextItem");
156 AxContextSchema testExternalContextItem = new AxContextSchema(
157 new AxArtifactKey("TestExternalContextItem", DEFAULT_VERSION), "Java",
158 "org.onap.policy.apex.context.test.concepts.TestExternalContextItem");
160 AxContextSchemas axContextSchemas = new AxContextSchemas(new AxArtifactKey("TestDatatypes", DEFAULT_VERSION));
161 axContextSchemas.getSchemasMap().put(testSlogan.getKey(), testSlogan);
162 axContextSchemas.getSchemasMap().put(testCase.getKey(), testCase);
163 axContextSchemas.getSchemasMap().put(testTimestamp.getKey(), testTimestamp);
164 axContextSchemas.getSchemasMap().put(testTemperature.getKey(), testTemperature);
166 axContextSchemas.getSchemasMap().put(testContextItem000.getKey(), testContextItem000);
167 axContextSchemas.getSchemasMap().put(testContextItem001.getKey(), testContextItem001);
168 axContextSchemas.getSchemasMap().put(testContextItem002.getKey(), testContextItem002);
169 axContextSchemas.getSchemasMap().put(testContextItem003.getKey(), testContextItem003);
170 axContextSchemas.getSchemasMap().put(testContextItem004.getKey(), testContextItem004);
171 axContextSchemas.getSchemasMap().put(testContextItem005.getKey(), testContextItem005);
172 axContextSchemas.getSchemasMap().put(testContextItem006.getKey(), testContextItem006);
173 axContextSchemas.getSchemasMap().put(testContextItem007.getKey(), testContextItem007);
174 axContextSchemas.getSchemasMap().put(testContextItem008.getKey(), testContextItem008);
175 axContextSchemas.getSchemasMap().put(testContextItem009.getKey(), testContextItem009);
176 axContextSchemas.getSchemasMap().put(testContextItem00A.getKey(), testContextItem00A);
177 axContextSchemas.getSchemasMap().put(testContextItem00B.getKey(), testContextItem00B);
178 axContextSchemas.getSchemasMap().put(testContextItem00C.getKey(), testContextItem00C);
180 axContextSchemas.getSchemasMap().put(testPolicyContextItem.getKey(), testPolicyContextItem);
181 axContextSchemas.getSchemasMap().put(testGlobalContextItem.getKey(), testGlobalContextItem);
182 axContextSchemas.getSchemasMap().put(testExternalContextItem.getKey(), testExternalContextItem);
184 AxEvent event0000 = new AxEvent(new AxArtifactKey("Event0000", DEFAULT_VERSION),
186 event0000.setSource(DEFAULT_SOURCE);
187 event0000.setTarget(MATCH);
188 event0000.getParameterMap().put(TEST_SLOGAN,
189 new AxField(new AxReferenceKey(event0000.getKey(), TEST_SLOGAN), testSlogan.getKey()));
190 event0000.getParameterMap().put(TEST_MATCH_CASE,
191 new AxField(new AxReferenceKey(event0000.getKey(), TEST_MATCH_CASE), testCase.getKey()));
192 event0000.getParameterMap().put(TEST_TIMESTAMP,
193 new AxField(new AxReferenceKey(event0000.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
194 event0000.getParameterMap().put(TEST_TEMPERATURE, new AxField(
195 new AxReferenceKey(event0000.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
197 AxEvent event0001 = new AxEvent(new AxArtifactKey("Event0001", DEFAULT_VERSION),
199 event0001.setSource(MATCH);
200 event0001.setTarget(ESTABLISH);
201 event0001.getParameterMap().put(TEST_SLOGAN,
202 new AxField(new AxReferenceKey(event0001.getKey(), TEST_SLOGAN), testSlogan.getKey()));
203 event0001.getParameterMap().put(TEST_MATCH_CASE,
204 new AxField(new AxReferenceKey(event0001.getKey(), TEST_MATCH_CASE), testCase.getKey()));
205 event0001.getParameterMap().put(TEST_TIMESTAMP,
206 new AxField(new AxReferenceKey(event0001.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
207 event0001.getParameterMap().put(TEST_TEMPERATURE, new AxField(
208 new AxReferenceKey(event0001.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
209 event0001.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
210 new AxReferenceKey(event0001.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
211 event0001.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
212 new AxReferenceKey(event0001.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
214 AxEvent event0002 = new AxEvent(new AxArtifactKey("Event0002", DEFAULT_VERSION),
216 event0002.setSource(ESTABLISH);
217 event0002.setTarget(DECIDE);
218 event0002.getParameterMap().put(TEST_SLOGAN,
219 new AxField(new AxReferenceKey(event0002.getKey(), TEST_SLOGAN), testSlogan.getKey()));
220 event0002.getParameterMap().put(TEST_MATCH_CASE,
221 new AxField(new AxReferenceKey(event0002.getKey(), TEST_MATCH_CASE), testCase.getKey()));
222 event0002.getParameterMap().put(TEST_TIMESTAMP,
223 new AxField(new AxReferenceKey(event0002.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
224 event0002.getParameterMap().put(TEST_TEMPERATURE, new AxField(
225 new AxReferenceKey(event0002.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
226 event0002.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
227 new AxReferenceKey(event0002.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
228 event0002.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
229 new AxReferenceKey(event0002.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
230 event0002.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
231 new AxReferenceKey(event0002.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
232 event0002.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
233 new AxReferenceKey(event0002.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
235 AxEvent event0003 = new AxEvent(new AxArtifactKey("Event0003", DEFAULT_VERSION),
237 event0003.setSource(DECIDE);
238 event0003.setTarget("Act");
239 event0003.getParameterMap().put(TEST_SLOGAN,
240 new AxField(new AxReferenceKey(event0003.getKey(), TEST_SLOGAN), testSlogan.getKey()));
241 event0003.getParameterMap().put(TEST_MATCH_CASE,
242 new AxField(new AxReferenceKey(event0003.getKey(), TEST_MATCH_CASE), testCase.getKey()));
243 event0003.getParameterMap().put(TEST_TIMESTAMP,
244 new AxField(new AxReferenceKey(event0003.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
245 event0003.getParameterMap().put(TEST_TEMPERATURE, new AxField(
246 new AxReferenceKey(event0003.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
247 event0003.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
248 new AxReferenceKey(event0003.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
249 event0003.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
250 new AxReferenceKey(event0003.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
251 event0003.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
252 new AxReferenceKey(event0003.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
253 event0003.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
254 new AxReferenceKey(event0003.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
255 event0003.getParameterMap().put(TEST_DECIDE_CASE_SELECTED, new AxField(
256 new AxReferenceKey(event0003.getKey(), TEST_DECIDE_CASE_SELECTED), testCase.getKey()));
257 event0003.getParameterMap().put(TEST_DECIDE_STATE_TIME, new AxField(
258 new AxReferenceKey(event0003.getKey(), TEST_DECIDE_STATE_TIME), testTimestamp.getKey()));
260 AxEvent event0004 = new AxEvent(new AxArtifactKey("Event0004", DEFAULT_VERSION),
262 event0004.setSource("Act");
263 event0004.setTarget(DEFAULT_SOURCE);
264 event0004.getParameterMap().put(TEST_SLOGAN,
265 new AxField(new AxReferenceKey(event0004.getKey(), TEST_SLOGAN), testSlogan.getKey()));
266 event0004.getParameterMap().put(TEST_MATCH_CASE,
267 new AxField(new AxReferenceKey(event0004.getKey(), TEST_MATCH_CASE), testCase.getKey()));
268 event0004.getParameterMap().put(TEST_TIMESTAMP,
269 new AxField(new AxReferenceKey(event0004.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
270 event0004.getParameterMap().put(TEST_TEMPERATURE, new AxField(
271 new AxReferenceKey(event0004.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
272 event0004.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
273 new AxReferenceKey(event0004.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
274 event0004.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
275 new AxReferenceKey(event0004.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
276 event0004.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
277 new AxReferenceKey(event0004.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
278 event0004.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
279 new AxReferenceKey(event0004.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
280 event0004.getParameterMap().put(TEST_DECIDE_CASE_SELECTED, new AxField(
281 new AxReferenceKey(event0004.getKey(), TEST_DECIDE_CASE_SELECTED), testCase.getKey()));
282 event0004.getParameterMap().put(TEST_DECIDE_STATE_TIME, new AxField(
283 new AxReferenceKey(event0004.getKey(), TEST_DECIDE_STATE_TIME), testTimestamp.getKey()));
284 event0004.getParameterMap().put(TEST_ACT_CASE_SELECTED,
285 new AxField(new AxReferenceKey(event0004.getKey(), TEST_ACT_CASE_SELECTED), testCase.getKey()));
286 event0004.getParameterMap().put(TEST_ACT_STATE_TIME, new AxField(
287 new AxReferenceKey(event0004.getKey(), TEST_ACT_STATE_TIME), testTimestamp.getKey()));
289 AxEvent event0100 = new AxEvent(new AxArtifactKey("Event0100", DEFAULT_VERSION),
291 event0100.setSource(DEFAULT_SOURCE);
292 event0100.setTarget(MATCH);
293 event0100.getParameterMap().put(TEST_SLOGAN,
294 new AxField(new AxReferenceKey(event0100.getKey(), TEST_SLOGAN), testSlogan.getKey()));
295 event0100.getParameterMap().put(TEST_MATCH_CASE,
296 new AxField(new AxReferenceKey(event0100.getKey(), TEST_MATCH_CASE), testCase.getKey()));
297 event0100.getParameterMap().put(TEST_TIMESTAMP,
298 new AxField(new AxReferenceKey(event0100.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
299 event0100.getParameterMap().put(TEST_TEMPERATURE, new AxField(
300 new AxReferenceKey(event0100.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
302 AxEvent event0101 = new AxEvent(new AxArtifactKey("Event0101", DEFAULT_VERSION),
304 event0101.setSource(MATCH);
305 event0101.setTarget(ESTABLISH);
306 event0101.getParameterMap().put(TEST_SLOGAN,
307 new AxField(new AxReferenceKey(event0101.getKey(), TEST_SLOGAN), testSlogan.getKey()));
308 event0101.getParameterMap().put(TEST_MATCH_CASE,
309 new AxField(new AxReferenceKey(event0101.getKey(), TEST_MATCH_CASE), testCase.getKey()));
310 event0101.getParameterMap().put(TEST_TIMESTAMP,
311 new AxField(new AxReferenceKey(event0101.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
312 event0101.getParameterMap().put(TEST_TEMPERATURE, new AxField(
313 new AxReferenceKey(event0101.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
314 event0101.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
315 new AxReferenceKey(event0101.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
316 event0101.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
317 new AxReferenceKey(event0101.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
319 AxEvent event0102 = new AxEvent(new AxArtifactKey("Event0102", DEFAULT_VERSION),
321 event0102.setSource(ESTABLISH);
322 event0102.setTarget(DECIDE);
323 event0102.getParameterMap().put(TEST_SLOGAN,
324 new AxField(new AxReferenceKey(event0102.getKey(), TEST_SLOGAN), testSlogan.getKey()));
325 event0102.getParameterMap().put(TEST_MATCH_CASE,
326 new AxField(new AxReferenceKey(event0102.getKey(), TEST_MATCH_CASE), testCase.getKey()));
327 event0102.getParameterMap().put(TEST_TIMESTAMP,
328 new AxField(new AxReferenceKey(event0102.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
329 event0102.getParameterMap().put(TEST_TEMPERATURE, new AxField(
330 new AxReferenceKey(event0102.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
331 event0102.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
332 new AxReferenceKey(event0102.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
333 event0102.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
334 new AxReferenceKey(event0102.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
335 event0102.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
336 new AxReferenceKey(event0102.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
337 event0102.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
338 new AxReferenceKey(event0102.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
340 AxEvent event0103 = new AxEvent(new AxArtifactKey("Event0103", DEFAULT_VERSION),
342 event0103.setSource(DECIDE);
343 event0103.setTarget("Act");
344 event0103.getParameterMap().put(TEST_SLOGAN,
345 new AxField(new AxReferenceKey(event0103.getKey(), TEST_SLOGAN), testSlogan.getKey()));
346 event0103.getParameterMap().put(TEST_MATCH_CASE,
347 new AxField(new AxReferenceKey(event0103.getKey(), TEST_MATCH_CASE), testCase.getKey()));
348 event0103.getParameterMap().put(TEST_TIMESTAMP,
349 new AxField(new AxReferenceKey(event0103.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
350 event0103.getParameterMap().put(TEST_TEMPERATURE, new AxField(
351 new AxReferenceKey(event0103.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
352 event0103.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
353 new AxReferenceKey(event0103.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
354 event0103.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
355 new AxReferenceKey(event0103.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
356 event0103.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
357 new AxReferenceKey(event0103.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
358 event0103.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
359 new AxReferenceKey(event0103.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
360 event0103.getParameterMap().put(TEST_DECIDE_CASE_SELECTED, new AxField(
361 new AxReferenceKey(event0103.getKey(), TEST_DECIDE_CASE_SELECTED), testCase.getKey()));
362 event0103.getParameterMap().put(TEST_DECIDE_STATE_TIME, new AxField(
363 new AxReferenceKey(event0103.getKey(), TEST_DECIDE_STATE_TIME), testTimestamp.getKey()));
365 AxEvent event0104 = new AxEvent(new AxArtifactKey("Event0104", DEFAULT_VERSION),
367 event0104.setSource("Act");
368 event0104.setTarget(DEFAULT_SOURCE);
369 event0104.getParameterMap().put(TEST_SLOGAN,
370 new AxField(new AxReferenceKey(event0104.getKey(), TEST_SLOGAN), testSlogan.getKey()));
371 event0104.getParameterMap().put(TEST_MATCH_CASE,
372 new AxField(new AxReferenceKey(event0104.getKey(), TEST_MATCH_CASE), testCase.getKey()));
373 event0104.getParameterMap().put(TEST_TIMESTAMP,
374 new AxField(new AxReferenceKey(event0104.getKey(), TEST_TIMESTAMP), testTimestamp.getKey()));
375 event0104.getParameterMap().put(TEST_TEMPERATURE, new AxField(
376 new AxReferenceKey(event0104.getKey(), TEST_TEMPERATURE), testTemperature.getKey()));
377 event0104.getParameterMap().put(TEST_MATCH_CASE_SELECTED, new AxField(
378 new AxReferenceKey(event0104.getKey(), TEST_MATCH_CASE_SELECTED), testCase.getKey()));
379 event0104.getParameterMap().put(TEST_MATCH_STATE_TIME, new AxField(
380 new AxReferenceKey(event0104.getKey(), TEST_MATCH_STATE_TIME), testTimestamp.getKey()));
381 event0104.getParameterMap().put(TEST_ESTABLISH_CASE_SELECTED, new AxField(
382 new AxReferenceKey(event0104.getKey(), TEST_ESTABLISH_CASE_SELECTED), testCase.getKey()));
383 event0104.getParameterMap().put(TEST_ESTABLISH_STATE_TIME, new AxField(
384 new AxReferenceKey(event0104.getKey(), TEST_ESTABLISH_STATE_TIME), testTimestamp.getKey()));
385 event0104.getParameterMap().put(TEST_DECIDE_CASE_SELECTED, new AxField(
386 new AxReferenceKey(event0104.getKey(), TEST_DECIDE_CASE_SELECTED), testCase.getKey()));
387 event0104.getParameterMap().put(TEST_DECIDE_STATE_TIME, new AxField(
388 new AxReferenceKey(event0104.getKey(), TEST_DECIDE_STATE_TIME), testTimestamp.getKey()));
389 event0104.getParameterMap().put(TEST_ACT_CASE_SELECTED,
390 new AxField(new AxReferenceKey(event0104.getKey(), TEST_ACT_CASE_SELECTED), testCase.getKey()));
391 event0104.getParameterMap().put(TEST_ACT_STATE_TIME, new AxField(
392 new AxReferenceKey(event0104.getKey(), TEST_ACT_STATE_TIME), testTimestamp.getKey()));
394 AxEvents events = new AxEvents(new AxArtifactKey("Events", DEFAULT_VERSION));
395 events.getEventMap().put(event0000.getKey(), event0000);
396 events.getEventMap().put(event0001.getKey(), event0001);
397 events.getEventMap().put(event0002.getKey(), event0002);
398 events.getEventMap().put(event0003.getKey(), event0003);
399 events.getEventMap().put(event0004.getKey(), event0004);
400 events.getEventMap().put(event0100.getKey(), event0100);
401 events.getEventMap().put(event0101.getKey(), event0101);
402 events.getEventMap().put(event0102.getKey(), event0102);
403 events.getEventMap().put(event0103.getKey(), event0103);
404 events.getEventMap().put(event0104.getKey(), event0104);
406 AxContextAlbum externalContextAlbum = new AxContextAlbum(
407 new AxArtifactKey("ExternalContextAlbum", DEFAULT_VERSION), "EXTERNAL", false,
408 testExternalContextItem.getKey());
409 AxContextAlbum globalContextAlbum = new AxContextAlbum(new AxArtifactKey("GlobalContextAlbum", DEFAULT_VERSION),
410 "GLOBAL", true, testGlobalContextItem.getKey());
411 AxContextAlbum policy0ContextAlbum = new AxContextAlbum(
412 new AxArtifactKey("Policy0ContextAlbum", DEFAULT_VERSION), "APPLICATION", true,
413 testPolicyContextItem.getKey());
414 AxContextAlbum policy1ContextAlbum = new AxContextAlbum(
415 new AxArtifactKey("Policy1ContextAlbum", DEFAULT_VERSION), "APPLICATION", true,
416 testPolicyContextItem.getKey());
418 AxContextAlbums albums = new AxContextAlbums(new AxArtifactKey("Context", DEFAULT_VERSION));
419 albums.getAlbumsMap().put(externalContextAlbum.getKey(), externalContextAlbum);
420 albums.getAlbumsMap().put(globalContextAlbum.getKey(), globalContextAlbum);
421 albums.getAlbumsMap().put(policy0ContextAlbum.getKey(), policy0ContextAlbum);
422 albums.getAlbumsMap().put(policy1ContextAlbum.getKey(), policy1ContextAlbum);
424 Set<AxArtifactKey> referenceKeySet0 = new TreeSet<>();
425 referenceKeySet0.add(policy0ContextAlbum.getKey());
426 referenceKeySet0.add(policy1ContextAlbum.getKey());
427 referenceKeySet0.add(globalContextAlbum.getKey());
428 referenceKeySet0.add(externalContextAlbum.getKey());
430 Set<AxArtifactKey> referenceKeySet1 = new TreeSet<>();
431 referenceKeySet1.add(policy0ContextAlbum.getKey());
432 referenceKeySet1.add(globalContextAlbum.getKey());
434 Set<AxArtifactKey> referenceKeySet2 = new TreeSet<>();
435 referenceKeySet2.add(policy1ContextAlbum.getKey());
436 referenceKeySet2.add(globalContextAlbum.getKey());
438 Set<AxArtifactKey> referenceKeySet3 = new TreeSet<>();
439 referenceKeySet3.add(globalContextAlbum.getKey());
440 referenceKeySet3.add(externalContextAlbum.getKey());
442 List<Set<AxArtifactKey>> referenceKeySetList = new ArrayList<>();
443 referenceKeySetList.add(referenceKeySet0);
444 referenceKeySetList.add(referenceKeySet1);
445 referenceKeySetList.add(referenceKeySet2);
446 referenceKeySetList.add(referenceKeySet3);
448 AxTasks tasks = new AxTasks(new AxArtifactKey("Tasks", DEFAULT_VERSION));
449 tasks.getTaskMap().putAll(getTaskMap(MATCH, event0000.getParameterMap(), event0001.getParameterMap(),
450 referenceKeySetList, axLogicExecutorType));
451 tasks.getTaskMap().putAll(getTaskMap(ESTABLISH, event0001.getParameterMap(), event0002.getParameterMap(),
452 referenceKeySetList, axLogicExecutorType));
453 tasks.getTaskMap().putAll(getTaskMap(DECIDE, event0002.getParameterMap(), event0003.getParameterMap(),
454 referenceKeySetList, axLogicExecutorType));
455 tasks.getTaskMap().putAll(getTaskMap("Act", event0003.getParameterMap(), event0004.getParameterMap(),
456 referenceKeySetList, axLogicExecutorType));
458 Set<AxArtifactKey> matchTasks = new TreeSet<>();
459 Set<AxArtifactKey> establishTasks = new TreeSet<>();
460 Set<AxArtifactKey> decideTasks = new TreeSet<>();
461 Set<AxArtifactKey> actTasks = new TreeSet<>();
462 for (AxTask task : tasks.getTaskMap().values()) {
463 if (task.getKey().getName().contains(MATCH)) {
464 matchTasks.add(task.getKey());
466 if (task.getKey().getName().contains(ESTABLISH)) {
467 establishTasks.add(task.getKey());
469 if (task.getKey().getName().contains(DECIDE)) {
470 decideTasks.add(task.getKey());
472 if (task.getKey().getName().contains("Act")) {
473 actTasks.add(task.getKey());
476 List<Set<AxArtifactKey>> taskReferenceList = new ArrayList<>();
477 taskReferenceList.add(matchTasks);
478 taskReferenceList.add(establishTasks);
479 taskReferenceList.add(decideTasks);
480 taskReferenceList.add(actTasks);
482 List<AxArtifactKey> p0InEventList = new ArrayList<>();
483 p0InEventList.add(event0000.getKey());
484 p0InEventList.add(event0001.getKey());
485 p0InEventList.add(event0002.getKey());
486 p0InEventList.add(event0003.getKey());
488 List<AxArtifactKey> p0OutEventList = new ArrayList<>();
489 p0OutEventList.add(event0001.getKey());
490 p0OutEventList.add(event0002.getKey());
491 p0OutEventList.add(event0003.getKey());
492 p0OutEventList.add(event0004.getKey());
494 List<AxArtifactKey> p0defaultTaskList = new ArrayList<>();
495 p0defaultTaskList.add(tasks.get("Task_Match0").getKey());
496 p0defaultTaskList.add(tasks.get("Task_Establish2").getKey());
497 p0defaultTaskList.add(tasks.get("Task_Decide3").getKey());
498 p0defaultTaskList.add(tasks.get("Task_Act1").getKey());
500 List<AxArtifactKey> p1InEventList = new ArrayList<>();
501 p1InEventList.add(event0100.getKey());
502 p1InEventList.add(event0101.getKey());
503 p1InEventList.add(event0102.getKey());
504 p1InEventList.add(event0103.getKey());
506 List<AxArtifactKey> p1OutEventList = new ArrayList<>();
507 p1OutEventList.add(event0101.getKey());
508 p1OutEventList.add(event0102.getKey());
509 p1OutEventList.add(event0103.getKey());
510 p1OutEventList.add(event0104.getKey());
512 List<AxArtifactKey> p1defaultTaskList = new ArrayList<>();
513 p1defaultTaskList.add(tasks.get("Task_Match3").getKey());
514 p1defaultTaskList.add(tasks.get("Task_Establish1").getKey());
515 p1defaultTaskList.add(tasks.get("Task_Decide3").getKey());
516 p1defaultTaskList.add(tasks.get("Task_Act0").getKey());
518 Set<AxArtifactKey> p0ReferenceKeySet0 = new TreeSet<>();
519 p0ReferenceKeySet0.add(policy0ContextAlbum.getKey());
520 p0ReferenceKeySet0.add(globalContextAlbum.getKey());
522 Set<AxArtifactKey> p0ReferenceKeySet1 = new TreeSet<>();
523 p0ReferenceKeySet1.add(policy1ContextAlbum.getKey());
524 p0ReferenceKeySet1.add(globalContextAlbum.getKey());
525 p0ReferenceKeySet1.add(externalContextAlbum.getKey());
527 Set<AxArtifactKey> p0ReferenceKeySet2 = new TreeSet<>();
528 p0ReferenceKeySet2.add(policy0ContextAlbum.getKey());
529 p0ReferenceKeySet2.add(globalContextAlbum.getKey());
530 p0ReferenceKeySet2.add(externalContextAlbum.getKey());
532 Set<AxArtifactKey> p0ReferenceKeySet3 = new TreeSet<>();
533 p0ReferenceKeySet3.add(globalContextAlbum.getKey());
535 List<Set<AxArtifactKey>> p0ReferenceKeySetList = new ArrayList<>();
536 p0ReferenceKeySetList.add(p0ReferenceKeySet0);
537 p0ReferenceKeySetList.add(p0ReferenceKeySet1);
538 p0ReferenceKeySetList.add(p0ReferenceKeySet2);
539 p0ReferenceKeySetList.add(p0ReferenceKeySet3);
541 AxPolicy policy0 = new AxPolicy(new AxArtifactKey("Policy0", DEFAULT_VERSION));
542 policy0.setTemplate("MEDA");
543 policy0.setStateMap(getStateMap(policy0.getKey(), p0InEventList, p0OutEventList, p0ReferenceKeySetList,
544 axLogicExecutorType, p0defaultTaskList, taskReferenceList));
545 policy0.setFirstState(policy0.getStateMap().get(MATCH).getKey().getLocalName());
547 Set<AxArtifactKey> p1ReferenceKeySet0 = new TreeSet<>();
548 p1ReferenceKeySet0.add(policy1ContextAlbum.getKey());
549 p1ReferenceKeySet0.add(globalContextAlbum.getKey());
550 p1ReferenceKeySet0.add(externalContextAlbum.getKey());
552 Set<AxArtifactKey> p1ReferenceKeySet1 = new TreeSet<>();
553 p1ReferenceKeySet1.add(policy1ContextAlbum.getKey());
554 p1ReferenceKeySet1.add(globalContextAlbum.getKey());
555 p1ReferenceKeySet1.add(externalContextAlbum.getKey());
557 Set<AxArtifactKey> p1ReferenceKeySet2 = new TreeSet<>();
558 p1ReferenceKeySet2.add(policy1ContextAlbum.getKey());
559 p1ReferenceKeySet2.add(globalContextAlbum.getKey());
560 p1ReferenceKeySet2.add(externalContextAlbum.getKey());
562 Set<AxArtifactKey> p1ReferenceKeySet3 = new TreeSet<>();
563 p1ReferenceKeySet3.add(globalContextAlbum.getKey());
565 List<Set<AxArtifactKey>> p1ReferenceKeySetList = new ArrayList<>();
566 p1ReferenceKeySetList.add(p1ReferenceKeySet0);
567 p1ReferenceKeySetList.add(p1ReferenceKeySet1);
568 p1ReferenceKeySetList.add(p1ReferenceKeySet2);
569 p1ReferenceKeySetList.add(p1ReferenceKeySet3);
571 AxPolicy policy1 = new AxPolicy(new AxArtifactKey("Policy1", DEFAULT_VERSION));
572 policy1.setTemplate("MEDA");
573 policy1.setStateMap(getStateMap(policy1.getKey(), p1InEventList, p1OutEventList, p1ReferenceKeySetList,
574 axLogicExecutorType, p1defaultTaskList, taskReferenceList));
575 policy1.setFirstState(policy1.getStateMap().get(MATCH).getKey().getLocalName());
577 AxPolicies policies = new AxPolicies(new AxArtifactKey("Policies", DEFAULT_VERSION));
578 policies.getPolicyMap().put(policy0.getKey(), policy0);
579 policies.getPolicyMap().put(policy1.getKey(), policy1);
581 AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInformation", DEFAULT_VERSION));
582 AxPolicyModel policyModel = new AxPolicyModel(
583 new AxArtifactKey("SamplePolicyModel" + axLogicExecutorType, DEFAULT_VERSION));
584 policyModel.setKeyInformation(keyInformation);
585 policyModel.setPolicies(policies);
586 policyModel.setEvents(events);
587 policyModel.setTasks(tasks);
588 policyModel.setAlbums(albums);
589 policyModel.setSchemas(axContextSchemas);
590 policyModel.getKeyInformation().generateKeyInfo(policyModel);
592 AxValidationResult result = policyModel.validate(new AxValidationResult());
593 if (!result.getValidationResult().equals(AxValidationResult.ValidationResult.VALID)) {
594 throw new ApexRuntimeException("model " + policyModel.getId() + " is not valid" + result);
600 * Gets the state map.
602 * @param policyKey the policy key
603 * @param inEventKeyList the in event key list
604 * @param outEventKeyList the out event key list
605 * @param referenceKeySetList the reference key set list
606 * @param axLogicExecutorType the ax logic executor type
607 * @param defaultTaskList the default task list
608 * @param taskKeySetList the task key set list
609 * @return the state map
611 private Map<String, AxState> getStateMap(final AxArtifactKey policyKey, final List<AxArtifactKey> inEventKeyList,
612 final List<AxArtifactKey> outEventKeyList, final List<Set<AxArtifactKey>> referenceKeySetList,
613 final String axLogicExecutorType, final List<AxArtifactKey> defaultTaskList,
614 final List<Set<AxArtifactKey>> taskKeySetList) {
616 AxState actState = new AxState(new AxReferenceKey(policyKey, "Act"));
617 actState.setTrigger(inEventKeyList.get(3));
618 AxStateOutput act2Out = new AxStateOutput(actState.getKey(), AxReferenceKey.getNullKey(),
619 outEventKeyList.get(3));
620 actState.getStateOutputs().put(act2Out.getKey().getLocalName(), act2Out);
621 actState.setContextAlbumReferences(referenceKeySetList.get(3));
623 AxLogicReader logicReader = new PolicyLogicReader().setLogicPackage(this.getClass().getPackage().getName())
624 .setDefaultLogic("DefaultStateLogic");
625 actState.setTaskSelectionLogic(new AxTaskSelectionLogic(actState.getKey(), TASK_SELECTION_LIGIC,
626 axLogicExecutorType, logicReader));
627 actState.setDefaultTask(defaultTaskList.get(3));
628 for (AxArtifactKey taskKey : taskKeySetList.get(3)) {
629 actState.getTaskReferences().put(taskKey, new AxStateTaskReference(actState.getKey(), taskKey,
630 AxStateTaskOutputType.DIRECT, act2Out.getKey()));
633 AxState decideState = new AxState(new AxReferenceKey(policyKey, DECIDE));
634 decideState.setTrigger(inEventKeyList.get(2));
635 AxStateOutput decide2Act = new AxStateOutput(decideState.getKey(), actState.getKey(), outEventKeyList.get(2));
636 decideState.getStateOutputs().put(decide2Act.getKey().getLocalName(), decide2Act);
637 decideState.setContextAlbumReferences(referenceKeySetList.get(2));
638 decideState.setTaskSelectionLogic(new AxTaskSelectionLogic(decideState.getKey(), TASK_SELECTION_LIGIC,
639 axLogicExecutorType, logicReader));
640 decideState.setDefaultTask(defaultTaskList.get(2));
641 for (AxArtifactKey taskKey : taskKeySetList.get(2)) {
642 decideState.getTaskReferences().put(taskKey, new AxStateTaskReference(decideState.getKey(), taskKey,
643 AxStateTaskOutputType.DIRECT, decide2Act.getKey()));
646 AxState establishState = new AxState(new AxReferenceKey(policyKey, ESTABLISH));
647 establishState.setTrigger(inEventKeyList.get(1));
648 AxStateOutput establish2Decide = new AxStateOutput(establishState.getKey(), decideState.getKey(),
649 outEventKeyList.get(1));
650 establishState.getStateOutputs().put(establish2Decide.getKey().getLocalName(), establish2Decide);
651 establishState.setContextAlbumReferences(referenceKeySetList.get(1));
652 establishState.setTaskSelectionLogic(new AxTaskSelectionLogic(establishState.getKey(), TASK_SELECTION_LIGIC,
653 axLogicExecutorType, logicReader));
654 establishState.setDefaultTask(defaultTaskList.get(1));
655 for (AxArtifactKey taskKey : taskKeySetList.get(1)) {
656 establishState.getTaskReferences().put(taskKey, new AxStateTaskReference(establishState.getKey(), taskKey,
657 AxStateTaskOutputType.DIRECT, establish2Decide.getKey()));
660 AxState matchState = new AxState(new AxReferenceKey(policyKey, MATCH));
661 matchState.setTrigger(inEventKeyList.get(0));
662 AxStateOutput match2Establish = new AxStateOutput(matchState.getKey(), establishState.getKey(),
663 outEventKeyList.get(0));
664 matchState.getStateOutputs().put(match2Establish.getKey().getLocalName(), match2Establish);
665 matchState.setContextAlbumReferences(referenceKeySetList.get(0));
666 matchState.setTaskSelectionLogic(new AxTaskSelectionLogic(matchState.getKey(), TASK_SELECTION_LIGIC,
667 axLogicExecutorType, logicReader));
668 matchState.setDefaultTask(defaultTaskList.get(0));
669 for (AxArtifactKey taskKey : taskKeySetList.get(0)) {
670 matchState.getTaskReferences().put(taskKey, new AxStateTaskReference(matchState.getKey(), taskKey,
671 AxStateTaskOutputType.DIRECT, match2Establish.getKey()));
674 Map<String, AxState> stateMap = new TreeMap<>();
675 stateMap.put(matchState.getKey().getLocalName(), matchState);
676 stateMap.put(establishState.getKey().getLocalName(), establishState);
677 stateMap.put(decideState.getKey().getLocalName(), decideState);
678 stateMap.put(actState.getKey().getLocalName(), actState);
682 // CHECKSTYLE:ON: checkstyle:maximumMethodLength
687 * @param state the state
688 * @param inputFields the input fields
689 * @param outputFields the output fields
690 * @param referenceKeySetList the reference key set list
691 * @param axLogicExecutorType the ax logic executor type
692 * @return the task map
694 private Map<AxArtifactKey, AxTask> getTaskMap(final String state, final Map<String, AxField> inputFields,
695 final Map<String, AxField> outputFields, final List<Set<AxArtifactKey>> referenceKeySetList,
696 final String axLogicExecutorType) {
698 AxTask testTask0 = new AxTask(new AxArtifactKey(TASK + state + "0", DEFAULT_VERSION));
699 testTask0.duplicateInputFields(inputFields);
700 testTask0.duplicateOutputFields(outputFields);
701 AxTaskParameter parameter00 = new AxTaskParameter(new AxReferenceKey(testTask0.getKey(), PARAMETER0),
703 AxTaskParameter parameter01 = new AxTaskParameter(new AxReferenceKey(testTask0.getKey(), PARAMETER1),
705 AxTaskParameter parameter02 = new AxTaskParameter(new AxReferenceKey(testTask0.getKey(), PARAMETER2),
707 testTask0.getTaskParameters().put(parameter00.getKey().getLocalName(), parameter00);
708 testTask0.getTaskParameters().put(parameter01.getKey().getLocalName(), parameter01);
709 testTask0.getTaskParameters().put(parameter02.getKey().getLocalName(), parameter02);
710 testTask0.setContextAlbumReferences(referenceKeySetList.get(0));
712 AxLogicReader logicReader = new PolicyLogicReader().setLogicPackage(this.getClass().getPackage().getName())
713 .setDefaultLogic("DefaultTaskLogic");
714 testTask0.setTaskLogic(getTaskLogic(testTask0, logicReader, axLogicExecutorType, state, "2"));
716 AxTask testTask1 = new AxTask(new AxArtifactKey(TASK + state + "1", DEFAULT_VERSION));
717 testTask1.duplicateInputFields(inputFields);
718 testTask1.duplicateOutputFields(outputFields);
719 AxTaskParameter parameter10 = new AxTaskParameter(new AxReferenceKey(testTask1.getKey(), PARAMETER0),
721 AxTaskParameter parameter11 = new AxTaskParameter(new AxReferenceKey(testTask1.getKey(), PARAMETER1),
723 testTask1.getTaskParameters().put(parameter10.getKey().getLocalName(), parameter10);
724 testTask1.getTaskParameters().put(parameter11.getKey().getLocalName(), parameter11);
725 testTask1.setContextAlbumReferences(referenceKeySetList.get(1));
726 testTask1.setTaskLogic(getTaskLogic(testTask1, logicReader, axLogicExecutorType, state, "3"));
728 AxTask testTask2 = new AxTask(new AxArtifactKey(TASK + state + "2", DEFAULT_VERSION));
729 testTask2.duplicateInputFields(inputFields);
730 testTask2.duplicateOutputFields(outputFields);
731 AxTaskParameter parameter20 = new AxTaskParameter(new AxReferenceKey(testTask2.getKey(), PARAMETER0),
733 testTask2.getTaskParameters().put(parameter20.getKey().getLocalName(), parameter20);
734 testTask2.setContextAlbumReferences(referenceKeySetList.get(2));
735 testTask2.setTaskLogic(getTaskLogic(testTask2, logicReader, axLogicExecutorType, state, "0"));
737 AxTask testTask3 = new AxTask(new AxArtifactKey(TASK + state + "3", DEFAULT_VERSION));
738 testTask3.duplicateInputFields(inputFields);
739 testTask3.duplicateOutputFields(outputFields);
740 AxTaskParameter parameter30 = new AxTaskParameter(new AxReferenceKey(testTask3.getKey(), PARAMETER0),
742 testTask3.getTaskParameters().put(parameter30.getKey().getLocalName(), parameter30);
743 testTask3.setContextAlbumReferences(referenceKeySetList.get(THIRD_ENTRY));
744 testTask3.setTaskLogic(getTaskLogic(testTask3, logicReader, axLogicExecutorType, state, "1"));
746 Map<AxArtifactKey, AxTask> taskMap = new TreeMap<>();
747 taskMap.put(testTask0.getKey(), testTask0);
748 taskMap.put(testTask1.getKey(), testTask1);
749 taskMap.put(testTask2.getKey(), testTask2);
750 taskMap.put(testTask3.getKey(), testTask3);
756 * Gets the task logic.
758 * @param task the task
759 * @param logicReader the logic reader
760 * @param logicFlavour the logic flavour
761 * @param stateName the state name
762 * @param caseToUse the case to use
763 * @return the task logic
765 private AxTaskLogic getTaskLogic(final AxTask task, final AxLogicReader logicReader, final String logicFlavour,
766 final String stateName, final String caseToUse) {
767 AxTaskLogic axLogic = new AxTaskLogic(new AxReferenceKey(task.getKey(), "_TaskLogic"), logicFlavour,
770 axLogic.setLogic(axLogic.getLogic().replace("<STATE_NAME>", stateName)
771 .replace("<TASK_NAME>", task.getKey().getName())
772 .replace("<RANDOM_BYTE_VALUE>", caseToUse));