2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.examples.aadm.model;
23 import org.onap.policy.apex.model.basicmodel.concepts.ApexRuntimeException;
24 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
25 import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation;
26 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
27 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
28 import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum;
29 import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbums;
30 import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
31 import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
32 import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
33 import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
34 import org.onap.policy.apex.model.eventmodel.concepts.AxField;
35 import org.onap.policy.apex.model.policymodel.concepts.AxLogicReader;
36 import org.onap.policy.apex.model.policymodel.concepts.AxPolicies;
37 import org.onap.policy.apex.model.policymodel.concepts.AxPolicy;
38 import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
39 import org.onap.policy.apex.model.policymodel.concepts.AxState;
40 import org.onap.policy.apex.model.policymodel.concepts.AxStateOutput;
41 import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskOutputType;
42 import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskReference;
43 import org.onap.policy.apex.model.policymodel.concepts.AxTask;
44 import org.onap.policy.apex.model.policymodel.concepts.AxTaskLogic;
45 import org.onap.policy.apex.model.policymodel.concepts.AxTaskSelectionLogic;
46 import org.onap.policy.apex.model.policymodel.concepts.AxTasks;
47 import org.onap.policy.apex.model.policymodel.handling.PolicyLogicReader;
50 * The Class AADMDomainModelFactory.
52 public class AADMDomainModelFactory {
54 * Gets the AADM policy model.
56 * @return the AADM policy model
58 // CHECKSTYLE:OFF: checkstyle
59 public AxPolicyModel getAADMPolicyModel() {
60 // CHECKSTYLE:ON: checkstyle
61 // Data types for event parameters
62 final AxContextSchema imsi = new AxContextSchema(new AxArtifactKey("IMSI", "0.0.1"), "Java", "java.lang.Long");
63 final AxContextSchema ueIPAddress =
64 new AxContextSchema(new AxArtifactKey("UEIPAddress", "0.0.1"), "Java", "java.lang.String");
65 final AxContextSchema nwIPAddress =
66 new AxContextSchema(new AxArtifactKey("NWIPAddress", "0.0.1"), "Java", "java.lang.String");
67 final AxContextSchema dosFlag =
68 new AxContextSchema(new AxArtifactKey("DOSFlag", "0.0.1"), "Java", "java.lang.Boolean");
69 final AxContextSchema roundTripTime =
70 new AxContextSchema(new AxArtifactKey("RoundTripTime", "0.0.1"), "Java", "java.lang.Long");
71 final AxContextSchema applicationName =
72 new AxContextSchema(new AxArtifactKey("ApplicationName", "0.0.1"), "Java", "java.lang.String");
73 final AxContextSchema protocolGroup =
74 new AxContextSchema(new AxArtifactKey("ProtocolGroup", "0.0.1"), "Java", "java.lang.String");
75 final AxContextSchema eNodeBID =
76 new AxContextSchema(new AxArtifactKey("ENodeBID", "0.0.1"), "Java", "java.lang.Long");
77 final AxContextSchema httpHostClass =
78 new AxContextSchema(new AxArtifactKey("HttpHostClass", "0.0.1"), "Java", "java.lang.String");
79 final AxContextSchema tcpOnFlag =
80 new AxContextSchema(new AxArtifactKey("TCPOnFlag", "0.0.1"), "Java", "java.lang.Boolean");
81 final AxContextSchema probeOnFlag =
82 new AxContextSchema(new AxArtifactKey("ProbeOnFlag", "0.0.1"), "Java", "java.lang.Boolean");
83 final AxContextSchema blacklistOnFlag =
84 new AxContextSchema(new AxArtifactKey("BlacklistOnFlag", "0.0.1"), "Java", "java.lang.Boolean");
85 final AxContextSchema averageThroughput =
86 new AxContextSchema(new AxArtifactKey("AverageThroughput", "0.0.1"), "Java", "java.lang.Double");
87 final AxContextSchema serviceRequestCount =
88 new AxContextSchema(new AxArtifactKey("ServiceRequestCount", "0.0.1"), "Java", "java.lang.Integer");
89 final AxContextSchema attchCount =
90 new AxContextSchema(new AxArtifactKey("AttachCount", "0.0.1"), "Java", "java.lang.Integer");
91 final AxContextSchema subscriberCount =
92 new AxContextSchema(new AxArtifactKey("SubscriberCount", "0.0.1"), "Java", "java.lang.Integer");
93 final AxContextSchema averageServiceRequest =
94 new AxContextSchema(new AxArtifactKey("AverageServiceRequest", "0.0.1"), "Java", "java.lang.Double");
95 final AxContextSchema averageAttach =
96 new AxContextSchema(new AxArtifactKey("AverageAttach", "0.0.1"), "Java", "java.lang.Double");
97 final AxContextSchema actionTask =
98 new AxContextSchema(new AxArtifactKey("ActionTask", "0.0.1"), "Java", "java.lang.String");
99 final AxContextSchema version =
100 new AxContextSchema(new AxArtifactKey("Version", "0.0.1"), "Java", "java.lang.String");
101 final AxContextSchema profile =
102 new AxContextSchema(new AxArtifactKey("Profile", "0.0.1"), "Java", "java.lang.String");
103 final AxContextSchema threshold =
104 new AxContextSchema(new AxArtifactKey("Threshold", "0.0.1"), "Java", "java.lang.Long");
105 final AxContextSchema triggerSpec =
106 new AxContextSchema(new AxArtifactKey("TriggerSpec", "0.0.1"), "Java", "java.lang.String");
107 final AxContextSchema periodicEventCount =
108 new AxContextSchema(new AxArtifactKey("PeriodicEventCount", "0.0.1"), "Java", "java.lang.Long");
109 final AxContextSchema periodicDelay =
110 new AxContextSchema(new AxArtifactKey("PeriodicDelay", "0.0.1"), "Java", "java.lang.Long");
111 final AxContextSchema periodicTime =
112 new AxContextSchema(new AxArtifactKey("PeriodicTime", "0.0.1"), "Java", "java.lang.Long");
114 final AxContextSchemas aadmContextSchemas = new AxContextSchemas(new AxArtifactKey("AADMDatatypes", "0.0.1"));
115 aadmContextSchemas.getSchemasMap().put(imsi.getKey(), imsi);
116 aadmContextSchemas.getSchemasMap().put(ueIPAddress.getKey(), ueIPAddress);
117 aadmContextSchemas.getSchemasMap().put(nwIPAddress.getKey(), nwIPAddress);
118 aadmContextSchemas.getSchemasMap().put(dosFlag.getKey(), dosFlag);
119 aadmContextSchemas.getSchemasMap().put(roundTripTime.getKey(), roundTripTime);
120 aadmContextSchemas.getSchemasMap().put(applicationName.getKey(), applicationName);
121 aadmContextSchemas.getSchemasMap().put(protocolGroup.getKey(), protocolGroup);
122 aadmContextSchemas.getSchemasMap().put(eNodeBID.getKey(), eNodeBID);
123 aadmContextSchemas.getSchemasMap().put(httpHostClass.getKey(), httpHostClass);
124 aadmContextSchemas.getSchemasMap().put(tcpOnFlag.getKey(), tcpOnFlag);
125 aadmContextSchemas.getSchemasMap().put(probeOnFlag.getKey(), probeOnFlag);
126 aadmContextSchemas.getSchemasMap().put(blacklistOnFlag.getKey(), blacklistOnFlag);
127 aadmContextSchemas.getSchemasMap().put(averageThroughput.getKey(), averageThroughput);
128 aadmContextSchemas.getSchemasMap().put(serviceRequestCount.getKey(), serviceRequestCount);
129 aadmContextSchemas.getSchemasMap().put(attchCount.getKey(), attchCount);
130 aadmContextSchemas.getSchemasMap().put(subscriberCount.getKey(), subscriberCount);
131 aadmContextSchemas.getSchemasMap().put(averageServiceRequest.getKey(), averageServiceRequest);
132 aadmContextSchemas.getSchemasMap().put(averageAttach.getKey(), averageAttach);
133 aadmContextSchemas.getSchemasMap().put(actionTask.getKey(), actionTask);
134 aadmContextSchemas.getSchemasMap().put(version.getKey(), version);
135 aadmContextSchemas.getSchemasMap().put(profile.getKey(), profile);
136 aadmContextSchemas.getSchemasMap().put(threshold.getKey(), threshold);
137 aadmContextSchemas.getSchemasMap().put(triggerSpec.getKey(), triggerSpec);
138 aadmContextSchemas.getSchemasMap().put(periodicEventCount.getKey(), periodicEventCount);
139 aadmContextSchemas.getSchemasMap().put(periodicDelay.getKey(), periodicDelay);
140 aadmContextSchemas.getSchemasMap().put(periodicTime.getKey(), periodicTime);
142 final AxEvent aadmEvent =
143 new AxEvent(new AxArtifactKey("AADMEvent", "0.0.1"), "org.onap.policy.apex.examples.aadm.events");
144 aadmEvent.setSource("External");
145 aadmEvent.setTarget("Apex");
146 aadmEvent.getParameterMap().put("IMSI",
147 new AxField(new AxReferenceKey(aadmEvent.getKey(), "IMSI"), imsi.getKey()));
148 aadmEvent.getParameterMap().put("ENODEB_ID",
149 new AxField(new AxReferenceKey(aadmEvent.getKey(), "ENODEB_ID"), eNodeBID.getKey()));
150 aadmEvent.getParameterMap().put("IMSI_IP",
151 new AxField(new AxReferenceKey(aadmEvent.getKey(), "IMSI_IP"), ueIPAddress.getKey()));
152 aadmEvent.getParameterMap().put("NW_IP",
153 new AxField(new AxReferenceKey(aadmEvent.getKey(), "NW_IP"), nwIPAddress.getKey()));
154 aadmEvent.getParameterMap().put("DoS",
155 new AxField(new AxReferenceKey(aadmEvent.getKey(), "DoS"), dosFlag.getKey()));
156 aadmEvent.getParameterMap().put("TCP_UE_SIDE_MEDIAN_RTT_TX_TO_RX", new AxField(
157 new AxReferenceKey(aadmEvent.getKey(), "TCP_UE_SIDE_MEDIAN_RTT_TX_TO_RX"), roundTripTime.getKey()));
158 aadmEvent.getParameterMap().put("TCP_UE_SIDE_AVG_THROUGHPUT", new AxField(
159 new AxReferenceKey(aadmEvent.getKey(), "TCP_UE_SIDE_AVG_THROUGHPUT"), averageThroughput.getKey()));
160 aadmEvent.getParameterMap().put("APPLICATION",
161 new AxField(new AxReferenceKey(aadmEvent.getKey(), "APPLICATION"), applicationName.getKey()));
162 aadmEvent.getParameterMap().put("protocol_group",
163 new AxField(new AxReferenceKey(aadmEvent.getKey(), "protocol_group"), protocolGroup.getKey()));
164 aadmEvent.getParameterMap().put("http_host_class",
165 new AxField(new AxReferenceKey(aadmEvent.getKey(), "http_host_class"), httpHostClass.getKey()));
166 aadmEvent.getParameterMap().put("PROBE_ON",
167 new AxField(new AxReferenceKey(aadmEvent.getKey(), "PROBE_ON"), probeOnFlag.getKey()));
168 aadmEvent.getParameterMap().put("TCP_ON",
169 new AxField(new AxReferenceKey(aadmEvent.getKey(), "TCP_ON"), tcpOnFlag.getKey()));
170 aadmEvent.getParameterMap().put("SGW_IP_ADDRESS",
171 new AxField(new AxReferenceKey(aadmEvent.getKey(), "SGW_IP_ADDRESS"), nwIPAddress.getKey()));
172 aadmEvent.getParameterMap().put("UE_IP_ADDRESS",
173 new AxField(new AxReferenceKey(aadmEvent.getKey(), "UE_IP_ADDRESS"), ueIPAddress.getKey()));
174 aadmEvent.getParameterMap().put("SERVICE_REQUEST_COUNT", new AxField(
175 new AxReferenceKey(aadmEvent.getKey(), "SERVICE_REQUEST_COUNT"), serviceRequestCount.getKey()));
176 aadmEvent.getParameterMap().put("ATTACH_COUNT",
177 new AxField(new AxReferenceKey(aadmEvent.getKey(), "ATTACH_COUNT"), attchCount.getKey()));
178 aadmEvent.getParameterMap().put("NUM_SUBSCRIBERS",
179 new AxField(new AxReferenceKey(aadmEvent.getKey(), "NUM_SUBSCRIBERS"), subscriberCount.getKey()));
180 aadmEvent.getParameterMap().put("AVG_SUBSCRIBER_SERVICE_REQUEST",
181 new AxField(new AxReferenceKey(aadmEvent.getKey(), "AVG_SUBSCRIBER_SERVICE_REQUEST"),
182 averageServiceRequest.getKey()));
183 aadmEvent.getParameterMap().put("AVG_SUBSCRIBER_ATTACH",
184 new AxField(new AxReferenceKey(aadmEvent.getKey(), "AVG_SUBSCRIBER_ATTACH"), averageAttach.getKey()));
185 aadmEvent.getParameterMap().put("ACTTASK",
186 new AxField(new AxReferenceKey(aadmEvent.getKey(), "ACTTASK"), actionTask.getKey()));
188 final AxEvent aadmXStreamActEvent = new AxEvent(new AxArtifactKey("XSTREAM_AADM_ACT_EVENT", "0.0.1"),
189 "org.onap.policy.apex.examples.aadm.events");
190 aadmXStreamActEvent.setSource("Apex");
191 aadmXStreamActEvent.setTarget("External");
192 aadmXStreamActEvent.getParameterMap().put("IMSI",
193 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "IMSI"), imsi.getKey()));
194 aadmXStreamActEvent.getParameterMap().put("IMSI_IP",
195 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "IMSI_IP"), ueIPAddress.getKey()));
196 aadmXStreamActEvent.getParameterMap().put("ENODEB_ID",
197 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "ENODEB_ID"), eNodeBID.getKey()));
198 aadmXStreamActEvent.getParameterMap().put("NW_IP",
199 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "NW_IP"), nwIPAddress.getKey()));
200 aadmXStreamActEvent.getParameterMap().put("ACTTASK",
201 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "ACTTASK"), actionTask.getKey()));
202 aadmXStreamActEvent.getParameterMap().put("PROBE_ON",
203 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "PROBE_ON"), probeOnFlag.getKey()));
204 aadmXStreamActEvent.getParameterMap().put("TCP_ON",
205 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "TCP_ON"), tcpOnFlag.getKey()));
206 aadmXStreamActEvent.getParameterMap().put("VERSION",
207 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "VERSION"), version.getKey()));
208 aadmXStreamActEvent.getParameterMap().put("TRIGGER_SPEC",
209 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "TRIGGER_SPEC"), triggerSpec.getKey()));
210 aadmXStreamActEvent.getParameterMap().put("MAJ_MIN_MAINT_VERSION", new AxField(
211 new AxReferenceKey(aadmXStreamActEvent.getKey(), "MAJ_MIN_MAINT_VERSION"), version.getKey()));
212 aadmXStreamActEvent.getParameterMap().put("BLACKLIST_ON", new AxField(
213 new AxReferenceKey(aadmXStreamActEvent.getKey(), "BLACKLIST_ON"), blacklistOnFlag.getKey()));
214 aadmXStreamActEvent.getParameterMap().put("PROFILE",
215 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "PROFILE"), profile.getKey()));
216 aadmXStreamActEvent.getParameterMap().put("THRESHOLD",
217 new AxField(new AxReferenceKey(aadmXStreamActEvent.getKey(), "THRESHOLD"), threshold.getKey()));
219 final AxEvent vMMEEvent =
220 new AxEvent(new AxArtifactKey("VMMEEvent", "0.0.1"), "org.onap.policy.apex.examples.aadm.events");
221 vMMEEvent.setSource("External");
222 vMMEEvent.setTarget("Apex");
223 vMMEEvent.getParameterMap().put("IMSI",
224 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "IMSI"), imsi.getKey()));
225 vMMEEvent.getParameterMap().put("ENODEB_ID",
226 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "ENODEB_ID"), eNodeBID.getKey()));
227 vMMEEvent.getParameterMap().put("IMSI_IP",
228 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "IMSI_IP"), ueIPAddress.getKey()));
229 vMMEEvent.getParameterMap().put("NW_IP",
230 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "NW_IP"), nwIPAddress.getKey()));
231 vMMEEvent.getParameterMap().put("PROFILE",
232 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "PROFILE"), profile.getKey()));
233 vMMEEvent.getParameterMap().put("THRESHOLD",
234 new AxField(new AxReferenceKey(vMMEEvent.getKey(), "THRESHOLD"), threshold.getKey()));
236 final AxEvent sapcEvent =
237 new AxEvent(new AxArtifactKey("SAPCEvent", "0.0.1"), "org.onap.policy.apex.examples.aadm.events");
238 sapcEvent.setSource("External");
239 sapcEvent.setTarget("Apex");
240 sapcEvent.getParameterMap().put("IMSI",
241 new AxField(new AxReferenceKey(sapcEvent.getKey(), "IMSI"), imsi.getKey()));
242 sapcEvent.getParameterMap().put("ENODEB_ID",
243 new AxField(new AxReferenceKey(sapcEvent.getKey(), "ENODEB_ID"), eNodeBID.getKey()));
244 sapcEvent.getParameterMap().put("IMSI_IP",
245 new AxField(new AxReferenceKey(sapcEvent.getKey(), "IMSI_IP"), ueIPAddress.getKey()));
246 sapcEvent.getParameterMap().put("NW_IP",
247 new AxField(new AxReferenceKey(sapcEvent.getKey(), "NW_IP"), nwIPAddress.getKey()));
248 sapcEvent.getParameterMap().put("PROFILE",
249 new AxField(new AxReferenceKey(sapcEvent.getKey(), "PROFILE"), profile.getKey()));
250 sapcEvent.getParameterMap().put("THRESHOLD",
251 new AxField(new AxReferenceKey(sapcEvent.getKey(), "THRESHOLD"), threshold.getKey()));
252 sapcEvent.getParameterMap().put("TCP_ON",
253 new AxField(new AxReferenceKey(sapcEvent.getKey(), "TCP_ON"), tcpOnFlag.getKey()));
254 sapcEvent.getParameterMap().put("PROBE_ON",
255 new AxField(new AxReferenceKey(sapcEvent.getKey(), "PROBE_ON"), probeOnFlag.getKey()));
256 sapcEvent.getParameterMap().put("VERSION",
257 new AxField(new AxReferenceKey(sapcEvent.getKey(), "VERSION"), version.getKey()));
258 sapcEvent.getParameterMap().put("BLACKLIST_ON",
259 new AxField(new AxReferenceKey(sapcEvent.getKey(), "BLACKLIST_ON"), blacklistOnFlag.getKey()));
261 final AxEvent sapcBlacklistSubscriberEvent =
262 new AxEvent(new AxArtifactKey("SAPCBlacklistSubscriberEvent", "0.0.1"),
263 "org.onap.policy.apex.examples.aadm.events");
264 sapcBlacklistSubscriberEvent.setSource("Apex");
265 sapcBlacklistSubscriberEvent.setTarget("External");
266 sapcBlacklistSubscriberEvent.getParameterMap().put("IMSI",
267 new AxField(new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "IMSI"), imsi.getKey()));
268 sapcBlacklistSubscriberEvent.getParameterMap().put("PROFILE",
269 new AxField(new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "PROFILE"), profile.getKey()));
270 sapcBlacklistSubscriberEvent.getParameterMap().put("BLACKLIST_ON", new AxField(
271 new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "BLACKLIST_ON"), blacklistOnFlag.getKey()));
272 sapcBlacklistSubscriberEvent.getParameterMap().put("IMSI_IP", new AxField(
273 new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "IMSI_IP"), ueIPAddress.getKey()));
274 sapcBlacklistSubscriberEvent.getParameterMap().put("NW_IP",
275 new AxField(new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "NW_IP"), nwIPAddress.getKey()));
276 sapcBlacklistSubscriberEvent.getParameterMap().put("PROBE_ON", new AxField(
277 new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "PROBE_ON"), probeOnFlag.getKey()));
278 sapcBlacklistSubscriberEvent.getParameterMap().put("TCP_ON",
279 new AxField(new AxReferenceKey(sapcBlacklistSubscriberEvent.getKey(), "TCP_ON"), tcpOnFlag.getKey()));
281 final AxEvent periodicEvent =
282 new AxEvent(new AxArtifactKey("PeriodicEvent", "0.0.1"), "org.onap.policy.apex.examples.aadm.events");
283 periodicEvent.setSource("System");
284 periodicEvent.setTarget("Apex");
285 periodicEvent.getParameterMap().put("PERIODIC_EVENT_COUNT", new AxField(
286 new AxReferenceKey(periodicEvent.getKey(), "PERIODIC_EVENT_COUNT"), periodicEventCount.getKey()));
287 periodicEvent.getParameterMap().put("PERIODIC_DELAY",
288 new AxField(new AxReferenceKey(periodicEvent.getKey(), "PERIODIC_DELAY"), periodicDelay.getKey()));
289 periodicEvent.getParameterMap().put("PERIODIC_FIRST_TIME",
290 new AxField(new AxReferenceKey(periodicEvent.getKey(), "PERIODIC_FIRST_TIME"), periodicTime.getKey()));
291 periodicEvent.getParameterMap().put("PERIODIC_CURRENT_TIME", new AxField(
292 new AxReferenceKey(periodicEvent.getKey(), "PERIODIC_CURRENT_TIME"), periodicTime.getKey()));
293 periodicEvent.getParameterMap().put("PERIODIC_LAST_TIME",
294 new AxField(new AxReferenceKey(periodicEvent.getKey(), "PERIODIC_LAST_TIME"), periodicTime.getKey()));
296 final AxEvents aadmEvents = new AxEvents(new AxArtifactKey("AADMEvents", "0.0.1"));
297 aadmEvents.getEventMap().put(aadmEvent.getKey(), aadmEvent);
298 aadmEvents.getEventMap().put(aadmXStreamActEvent.getKey(), aadmXStreamActEvent);
299 aadmEvents.getEventMap().put(vMMEEvent.getKey(), vMMEEvent);
300 aadmEvents.getEventMap().put(sapcEvent.getKey(), sapcEvent);
301 aadmEvents.getEventMap().put(sapcBlacklistSubscriberEvent.getKey(), sapcBlacklistSubscriberEvent);
302 aadmEvents.getEventMap().put(periodicEvent.getKey(), periodicEvent);
304 // Data types for context
305 final AxContextSchema eNodeBStatus = new AxContextSchema(new AxArtifactKey("ENodeBStatus", "0.0.1"), "Java",
306 "org.onap.policy.apex.examples.aadm.concepts.ENodeBStatus");
307 final AxContextSchema imsiStatus = new AxContextSchema(new AxArtifactKey("IMSIStatus", "0.0.1"), "Java",
308 "org.onap.policy.apex.examples.aadm.concepts.IMSIStatus");
309 final AxContextSchema ipAddressStatus = new AxContextSchema(new AxArtifactKey("IPAddressStatus", "0.0.1"),
310 "Java", "org.onap.policy.apex.examples.aadm.concepts.IPAddressStatus");
311 aadmContextSchemas.getSchemasMap().put(eNodeBStatus.getKey(), eNodeBStatus);
312 aadmContextSchemas.getSchemasMap().put(imsiStatus.getKey(), imsiStatus);
313 aadmContextSchemas.getSchemasMap().put(ipAddressStatus.getKey(), ipAddressStatus);
315 // Three context albums for AADM
316 final AxContextAlbum eNodeBStatusAlbum = new AxContextAlbum(new AxArtifactKey("ENodeBStatusAlbum", "0.0.1"),
317 "APPLICATION", true, eNodeBStatus.getKey());
318 final AxContextAlbum imsiStatusAlbum = new AxContextAlbum(new AxArtifactKey("IMSIStatusAlbum", "0.0.1"),
319 "APPLICATION", true, imsiStatus.getKey());
320 final AxContextAlbum ipAddressStatusAlbum = new AxContextAlbum(
321 new AxArtifactKey("IPAddressStatusAlbum", "0.0.1"), "APPLICATION", true, ipAddressStatus.getKey());
323 final AxContextAlbums aadmAlbums = new AxContextAlbums(new AxArtifactKey("AADMContext", "0.0.1"));
324 aadmAlbums.getAlbumsMap().put(eNodeBStatusAlbum.getKey(), eNodeBStatusAlbum);
325 aadmAlbums.getAlbumsMap().put(imsiStatusAlbum.getKey(), imsiStatusAlbum);
326 aadmAlbums.getAlbumsMap().put(ipAddressStatusAlbum.getKey(), ipAddressStatusAlbum);
329 final AxLogicReader logicReader =
330 new PolicyLogicReader().setLogicPackage(this.getClass().getPackage().getName()).setDefaultLogic(null);
332 final AxTask aadmMatchTask = new AxTask(new AxArtifactKey("AADMMatchTask", "0.0.1"));
333 aadmMatchTask.duplicateInputFields(aadmEvent.getParameterMap());
334 aadmMatchTask.duplicateOutputFields(aadmEvent.getParameterMap());
335 aadmMatchTask.getContextAlbumReferences().add(eNodeBStatusAlbum.getKey());
336 aadmMatchTask.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
337 aadmMatchTask.getContextAlbumReferences().add(ipAddressStatusAlbum.getKey());
338 aadmMatchTask.setTaskLogic(new AxTaskLogic(aadmMatchTask.getKey(), "TaskLogic", "MVEL", logicReader));
340 final AxTask aadmEstablishTask = new AxTask(new AxArtifactKey("AADMEstablishTask", "0.0.1"));
341 aadmEstablishTask.duplicateInputFields(aadmEvent.getParameterMap());
342 aadmEstablishTask.duplicateOutputFields(aadmEvent.getParameterMap());
343 logicReader.setDefaultLogic("Default_TaskLogic");
344 aadmEstablishTask.setTaskLogic(new AxTaskLogic(aadmEstablishTask.getKey(), "TaskLogic", "MVEL", logicReader));
346 final AxTask aadmDecideTask = new AxTask(new AxArtifactKey("AADMDecideTask", "0.0.1"));
347 aadmDecideTask.duplicateInputFields(aadmEvent.getParameterMap());
348 aadmDecideTask.duplicateOutputFields(aadmEvent.getParameterMap());
349 aadmDecideTask.setTaskLogic(new AxTaskLogic(aadmDecideTask.getKey(), "TaskLogic", "MVEL", logicReader));
351 logicReader.setDefaultLogic(null);
353 final AxTask aadmDoSSuggestionActTask = new AxTask(new AxArtifactKey("AADMDoSSuggestionActTask", "0.0.1"));
354 aadmDoSSuggestionActTask.duplicateInputFields(aadmEvent.getParameterMap());
355 aadmDoSSuggestionActTask.duplicateOutputFields(aadmXStreamActEvent.getParameterMap());
356 aadmDoSSuggestionActTask.getContextAlbumReferences().add(eNodeBStatusAlbum.getKey());
357 aadmDoSSuggestionActTask.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
358 aadmDoSSuggestionActTask
359 .setTaskLogic(new AxTaskLogic(aadmDoSSuggestionActTask.getKey(), "TaskLogic", "MVEL", logicReader));
361 final AxTask aadmNoActTask = new AxTask(new AxArtifactKey("AADMNoActTask", "0.0.1"));
362 aadmNoActTask.duplicateInputFields(aadmEvent.getParameterMap());
363 aadmNoActTask.duplicateOutputFields(aadmXStreamActEvent.getParameterMap());
364 aadmNoActTask.setTaskLogic(new AxTaskLogic(aadmNoActTask.getKey(), "TaskLogic", "MVEL", logicReader));
366 final AxTask aadmDoSProvenActTask = new AxTask(new AxArtifactKey("AADMDoSProvenActTask", "0.0.1"));
367 aadmDoSProvenActTask.duplicateInputFields(aadmEvent.getParameterMap());
368 aadmDoSProvenActTask.duplicateOutputFields(aadmXStreamActEvent.getParameterMap());
369 aadmDoSProvenActTask.getContextAlbumReferences().add(eNodeBStatusAlbum.getKey());
370 aadmDoSProvenActTask.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
372 .setTaskLogic(new AxTaskLogic(aadmDoSProvenActTask.getKey(), "TaskLogic", "MVEL", logicReader));
374 final AxTask vMMEMatchTask = new AxTask(new AxArtifactKey("VMMEMatchTask", "0.0.1"));
375 vMMEMatchTask.duplicateInputFields(vMMEEvent.getParameterMap());
376 vMMEMatchTask.duplicateOutputFields(vMMEEvent.getParameterMap());
377 vMMEMatchTask.setTaskLogic(new AxTaskLogic(vMMEMatchTask.getKey(), "TaskLogic", "MVEL", logicReader));
379 final AxTask vMMEEstablishTask = new AxTask(new AxArtifactKey("VMMEEstablishTask", "0.0.1"));
380 vMMEEstablishTask.duplicateInputFields(vMMEEvent.getParameterMap());
381 vMMEEstablishTask.duplicateOutputFields(vMMEEvent.getParameterMap());
382 logicReader.setDefaultLogic("Default_TaskLogic");
383 vMMEEstablishTask.setTaskLogic(new AxTaskLogic(vMMEEstablishTask.getKey(), "TaskLogic", "MVEL", logicReader));
385 final AxTask vMMEDecideTask = new AxTask(new AxArtifactKey("VMMEDecideTask", "0.0.1"));
386 vMMEDecideTask.duplicateInputFields(vMMEEvent.getParameterMap());
387 vMMEDecideTask.duplicateOutputFields(vMMEEvent.getParameterMap());
388 vMMEDecideTask.setTaskLogic(new AxTaskLogic(vMMEDecideTask.getKey(), "TaskLogic", "MVEL", logicReader));
390 final AxTask vMMENoActTask = new AxTask(new AxArtifactKey("VMMENoActTask", "0.0.1"));
391 vMMENoActTask.duplicateInputFields(vMMEEvent.getParameterMap());
392 vMMENoActTask.duplicateOutputFields(vMMEEvent.getParameterMap());
393 vMMENoActTask.setTaskLogic(new AxTaskLogic(vMMENoActTask.getKey(), "TaskLogic", "MVEL", logicReader));
395 final AxTask vMMEActTask = new AxTask(new AxArtifactKey("VMMEActTask", "0.0.1"));
396 vMMEActTask.duplicateInputFields(vMMEEvent.getParameterMap());
397 vMMEActTask.duplicateOutputFields(vMMEEvent.getParameterMap());
398 logicReader.setDefaultLogic(null);
399 vMMEActTask.setTaskLogic(new AxTaskLogic(vMMEActTask.getKey(), "TaskLogic", "MVEL", logicReader));
401 final AxTask sapcMatchTask = new AxTask(new AxArtifactKey("SAPCMatchTask", "0.0.1"));
402 sapcMatchTask.duplicateInputFields(sapcEvent.getParameterMap());
403 sapcMatchTask.duplicateOutputFields(sapcBlacklistSubscriberEvent.getParameterMap());
404 sapcMatchTask.setTaskLogic(new AxTaskLogic(sapcMatchTask.getKey(), "TaskLogic", "MVEL", logicReader));
406 final AxTask sapcEstablishTask = new AxTask(new AxArtifactKey("SAPCEstablishTask", "0.0.1"));
407 sapcEstablishTask.duplicateInputFields(sapcEvent.getParameterMap());
408 sapcEstablishTask.duplicateOutputFields(sapcBlacklistSubscriberEvent.getParameterMap());
409 logicReader.setDefaultLogic("Default_TaskLogic");
410 sapcEstablishTask.setTaskLogic(new AxTaskLogic(sapcEstablishTask.getKey(), "TaskLogic", "MVEL", logicReader));
412 final AxTask sapcDecideTask = new AxTask(new AxArtifactKey("SAPCDecideTask", "0.0.1"));
413 sapcDecideTask.duplicateInputFields(sapcEvent.getParameterMap());
414 sapcDecideTask.duplicateOutputFields(sapcBlacklistSubscriberEvent.getParameterMap());
415 sapcDecideTask.setTaskLogic(new AxTaskLogic(sapcDecideTask.getKey(), "TaskLogic", "MVEL", logicReader));
417 final AxTask sapcActTask = new AxTask(new AxArtifactKey("SAPCActTask", "0.0.1"));
418 sapcActTask.duplicateInputFields(sapcEvent.getParameterMap());
419 sapcActTask.duplicateOutputFields(sapcBlacklistSubscriberEvent.getParameterMap());
420 sapcActTask.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
421 logicReader.setDefaultLogic(null);
422 sapcActTask.setTaskLogic(new AxTaskLogic(sapcActTask.getKey(), "TaskLogic", "MVEL", logicReader));
424 logicReader.setDefaultLogic("Default_TaskLogic");
426 final AxTask periodicMatchTask = new AxTask(new AxArtifactKey("PeriodicMatchTask", "0.0.1"));
427 periodicMatchTask.duplicateInputFields(periodicEvent.getParameterMap());
428 periodicMatchTask.duplicateOutputFields(periodicEvent.getParameterMap());
429 periodicMatchTask.setTaskLogic(new AxTaskLogic(periodicMatchTask.getKey(), "TaskLogic", "MVEL", logicReader));
431 final AxTask periodicEstablishTask = new AxTask(new AxArtifactKey("PeriodicEstablishTask", "0.0.1"));
432 periodicEstablishTask.duplicateInputFields(periodicEvent.getParameterMap());
433 periodicEstablishTask.duplicateOutputFields(periodicEvent.getParameterMap());
434 periodicEstablishTask
435 .setTaskLogic(new AxTaskLogic(periodicEstablishTask.getKey(), "TaskLogic", "MVEL", logicReader));
437 final AxTask periodicDecideTask = new AxTask(new AxArtifactKey("PeriodicDecideTask", "0.0.1"));
438 periodicDecideTask.duplicateInputFields(periodicEvent.getParameterMap());
439 periodicDecideTask.duplicateOutputFields(periodicEvent.getParameterMap());
440 periodicDecideTask.setTaskLogic(new AxTaskLogic(periodicDecideTask.getKey(), "TaskLogic", "MVEL", logicReader));
442 final AxTask periodicActTask = new AxTask(new AxArtifactKey("PeriodicActTask", "0.0.1"));
443 periodicActTask.duplicateInputFields(periodicEvent.getParameterMap());
444 periodicActTask.duplicateOutputFields(sapcBlacklistSubscriberEvent.getParameterMap());
445 periodicActTask.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
446 logicReader.setDefaultLogic(null);
447 periodicActTask.setTaskLogic(new AxTaskLogic(periodicActTask.getKey(), "TaskLogic", "MVEL", logicReader));
449 final AxTasks aadmTasks = new AxTasks(new AxArtifactKey("AADMTasks", "0.0.1"));
450 aadmTasks.getTaskMap().put(aadmMatchTask.getKey(), aadmMatchTask);
451 aadmTasks.getTaskMap().put(aadmEstablishTask.getKey(), aadmEstablishTask);
452 aadmTasks.getTaskMap().put(aadmDecideTask.getKey(), aadmDecideTask);
453 aadmTasks.getTaskMap().put(aadmDoSSuggestionActTask.getKey(), aadmDoSSuggestionActTask);
454 aadmTasks.getTaskMap().put(aadmNoActTask.getKey(), aadmNoActTask);
455 aadmTasks.getTaskMap().put(aadmDoSProvenActTask.getKey(), aadmDoSProvenActTask);
456 aadmTasks.getTaskMap().put(vMMEMatchTask.getKey(), vMMEMatchTask);
457 aadmTasks.getTaskMap().put(vMMEEstablishTask.getKey(), vMMEEstablishTask);
458 aadmTasks.getTaskMap().put(vMMEDecideTask.getKey(), vMMEDecideTask);
459 aadmTasks.getTaskMap().put(vMMENoActTask.getKey(), vMMENoActTask);
460 aadmTasks.getTaskMap().put(vMMEActTask.getKey(), vMMEActTask);
461 aadmTasks.getTaskMap().put(sapcMatchTask.getKey(), sapcMatchTask);
462 aadmTasks.getTaskMap().put(sapcEstablishTask.getKey(), sapcEstablishTask);
463 aadmTasks.getTaskMap().put(sapcDecideTask.getKey(), sapcDecideTask);
464 aadmTasks.getTaskMap().put(sapcActTask.getKey(), sapcActTask);
465 aadmTasks.getTaskMap().put(periodicMatchTask.getKey(), periodicMatchTask);
466 aadmTasks.getTaskMap().put(periodicEstablishTask.getKey(), periodicEstablishTask);
467 aadmTasks.getTaskMap().put(periodicDecideTask.getKey(), periodicDecideTask);
468 aadmTasks.getTaskMap().put(periodicActTask.getKey(), periodicActTask);
471 logicReader.setDefaultLogic(null);
473 final AxPolicy aadmPolicy = new AxPolicy(new AxArtifactKey("AADMPolicy", "0.0.1"));
474 aadmPolicy.setTemplate("MEDA");
476 final AxState aadmActState = new AxState(new AxReferenceKey(aadmPolicy.getKey(), "Act"));
477 aadmActState.setTrigger(aadmEvent.getKey());
478 final AxStateOutput aadmAct2Out =
479 new AxStateOutput(aadmActState.getKey(), AxReferenceKey.getNullKey(), aadmXStreamActEvent.getKey());
480 aadmActState.getStateOutputs().put(aadmAct2Out.getKey().getLocalName(), aadmAct2Out);
481 aadmActState.getContextAlbumReferences().add(ipAddressStatusAlbum.getKey());
482 aadmActState.getContextAlbumReferences().add(imsiStatusAlbum.getKey());
483 aadmActState.getContextAlbumReferences().add(eNodeBStatusAlbum.getKey());
484 aadmActState.setTaskSelectionLogic(
485 new AxTaskSelectionLogic(aadmActState.getKey(), "TaskSelectionLogic", "MVEL", logicReader));
486 aadmActState.setDefaultTask(aadmNoActTask.getKey());
487 aadmActState.getTaskReferences().put(aadmNoActTask.getKey(), new AxStateTaskReference(aadmActState.getKey(),
488 aadmNoActTask.getKey(), AxStateTaskOutputType.DIRECT, aadmAct2Out.getKey()));
489 aadmActState.getTaskReferences().put(aadmDoSSuggestionActTask.getKey(),
490 new AxStateTaskReference(aadmActState.getKey(), aadmDoSSuggestionActTask.getKey(),
491 AxStateTaskOutputType.DIRECT, aadmAct2Out.getKey()));
492 aadmActState.getTaskReferences().put(aadmDoSProvenActTask.getKey(),
493 new AxStateTaskReference(aadmActState.getKey(), aadmDoSProvenActTask.getKey(),
494 AxStateTaskOutputType.DIRECT, aadmAct2Out.getKey()));
496 logicReader.setDefaultLogic("Default_TaskSelectionLogic");
498 final AxState aadmDecideState = new AxState(new AxReferenceKey(aadmPolicy.getKey(), "Decide"));
499 aadmDecideState.setTrigger(aadmEvent.getKey());
500 final AxStateOutput aadmDec2Act =
501 new AxStateOutput(aadmDecideState.getKey(), aadmActState.getKey(), aadmEvent.getKey());
502 aadmDecideState.getStateOutputs().put(aadmDec2Act.getKey().getLocalName(), aadmDec2Act);
503 aadmDecideState.setTaskSelectionLogic(
504 new AxTaskSelectionLogic(aadmDecideState.getKey(), "TaskSelectionLogic", "MVEL", logicReader));
505 aadmDecideState.setDefaultTask(aadmDecideTask.getKey());
506 aadmDecideState.getTaskReferences().put(aadmDecideTask.getKey(), new AxStateTaskReference(
507 aadmDecideState.getKey(), aadmDecideTask.getKey(), AxStateTaskOutputType.DIRECT, aadmDec2Act.getKey()));
509 final AxState aadmEstablishState = new AxState(new AxReferenceKey(aadmPolicy.getKey(), "Establish"));
510 aadmEstablishState.setTrigger(aadmEvent.getKey());
511 final AxStateOutput aadmEst2Dec =
512 new AxStateOutput(aadmEstablishState.getKey(), aadmDecideState.getKey(), aadmEvent.getKey());
513 aadmEstablishState.getStateOutputs().put(aadmEst2Dec.getKey().getLocalName(), aadmEst2Dec);
514 aadmEstablishState.setTaskSelectionLogic(
515 new AxTaskSelectionLogic(aadmEstablishState.getKey(), "TaskSelectionLogic", "MVEL", logicReader));
516 aadmEstablishState.setDefaultTask(aadmEstablishTask.getKey());
517 aadmEstablishState.getTaskReferences().put(aadmEstablishTask.getKey(),
518 new AxStateTaskReference(aadmEstablishState.getKey(), aadmEstablishTask.getKey(),
519 AxStateTaskOutputType.DIRECT, aadmEst2Dec.getKey()));
521 final AxState aadmMatchState = new AxState(new AxReferenceKey(aadmPolicy.getKey(), "Match"));
522 aadmMatchState.setTrigger(aadmEvent.getKey());
523 final AxStateOutput aadmMat2Est =
524 new AxStateOutput(aadmMatchState.getKey(), aadmEstablishState.getKey(), aadmEvent.getKey());
525 aadmMatchState.getStateOutputs().put(aadmMat2Est.getKey().getLocalName(), aadmMat2Est);
526 aadmMatchState.setTaskSelectionLogic(
527 new AxTaskSelectionLogic(aadmMatchState.getKey(), "TaskSelectionLogic", "MVEL", logicReader));
528 aadmMatchState.setDefaultTask(aadmMatchTask.getKey());
529 aadmMatchState.getTaskReferences().put(aadmMatchTask.getKey(), new AxStateTaskReference(aadmMatchState.getKey(),
530 aadmMatchTask.getKey(), AxStateTaskOutputType.DIRECT, aadmMat2Est.getKey()));
532 aadmPolicy.setFirstState(aadmMatchState.getKey().getLocalName());
533 aadmPolicy.getStateMap().put(aadmMatchState.getKey().getLocalName(), aadmMatchState);
534 aadmPolicy.getStateMap().put(aadmEstablishState.getKey().getLocalName(), aadmEstablishState);
535 aadmPolicy.getStateMap().put(aadmDecideState.getKey().getLocalName(), aadmDecideState);
536 aadmPolicy.getStateMap().put(aadmActState.getKey().getLocalName(), aadmActState);
538 final AxPolicy vMMEPolicy = new AxPolicy(new AxArtifactKey("VMMEPolicy", "0.0.1"));
539 vMMEPolicy.setTemplate("MEDA");
541 final AxState vMMEActState = new AxState(new AxReferenceKey(vMMEPolicy.getKey(), "Act"));
542 vMMEActState.setTrigger(vMMEEvent.getKey());
543 final AxStateOutput vMMEAct2Out =
544 new AxStateOutput(vMMEActState.getKey(), AxReferenceKey.getNullKey(), vMMEEvent.getKey());
545 vMMEActState.getStateOutputs().put(vMMEAct2Out.getKey().getLocalName(), vMMEAct2Out);
546 vMMEActState.setDefaultTask(vMMEActTask.getKey());
547 vMMEActState.getTaskReferences().put(vMMEActTask.getKey(), new AxStateTaskReference(vMMEActState.getKey(),
548 vMMEActTask.getKey(), AxStateTaskOutputType.DIRECT, vMMEAct2Out.getKey()));
549 vMMEActState.getTaskReferences().put(vMMENoActTask.getKey(), new AxStateTaskReference(vMMEActState.getKey(),
550 vMMENoActTask.getKey(), AxStateTaskOutputType.DIRECT, vMMEAct2Out.getKey()));
552 final AxState vMMEDecideState = new AxState(new AxReferenceKey(vMMEPolicy.getKey(), "Decide"));
553 vMMEDecideState.setTrigger(vMMEEvent.getKey());
554 final AxStateOutput vMMEDec2Act =
555 new AxStateOutput(vMMEDecideState.getKey(), vMMEActState.getKey(), vMMEEvent.getKey());
556 vMMEDecideState.getStateOutputs().put(vMMEDec2Act.getKey().getLocalName(), vMMEDec2Act);
557 vMMEDecideState.setDefaultTask(vMMEDecideTask.getKey());
558 vMMEDecideState.getTaskReferences().put(vMMEDecideTask.getKey(), new AxStateTaskReference(
559 vMMEDecideState.getKey(), vMMEDecideTask.getKey(), AxStateTaskOutputType.DIRECT, vMMEDec2Act.getKey()));
561 final AxState vMMEEstablishState = new AxState(new AxReferenceKey(vMMEPolicy.getKey(), "Establish"));
562 vMMEEstablishState.setTrigger(vMMEEvent.getKey());
563 final AxStateOutput vMMEEst2Dec =
564 new AxStateOutput(vMMEEstablishState.getKey(), vMMEDecideState.getKey(), vMMEEvent.getKey());
565 vMMEEstablishState.getStateOutputs().put(vMMEEst2Dec.getKey().getLocalName(), vMMEEst2Dec);
566 vMMEEstablishState.setDefaultTask(vMMEEstablishTask.getKey());
567 vMMEEstablishState.getTaskReferences().put(vMMEEstablishTask.getKey(),
568 new AxStateTaskReference(vMMEEstablishState.getKey(), vMMEEstablishTask.getKey(),
569 AxStateTaskOutputType.DIRECT, vMMEEst2Dec.getKey()));
571 final AxState vMMEMatchState = new AxState(new AxReferenceKey(vMMEPolicy.getKey(), "Match"));
572 vMMEMatchState.setTrigger(vMMEEvent.getKey());
573 final AxStateOutput vMMEMat2Est =
574 new AxStateOutput(vMMEMatchState.getKey(), vMMEEstablishState.getKey(), vMMEEvent.getKey());
575 vMMEMatchState.getStateOutputs().put(vMMEMat2Est.getKey().getLocalName(), vMMEMat2Est);
576 vMMEMatchState.setDefaultTask(vMMEMatchTask.getKey());
577 vMMEMatchState.getTaskReferences().put(vMMEMatchTask.getKey(), new AxStateTaskReference(vMMEMatchState.getKey(),
578 vMMEMatchTask.getKey(), AxStateTaskOutputType.DIRECT, vMMEMat2Est.getKey()));
580 vMMEPolicy.setFirstState(vMMEMatchState.getKey().getLocalName());
581 vMMEPolicy.getStateMap().put(vMMEMatchState.getKey().getLocalName(), vMMEMatchState);
582 vMMEPolicy.getStateMap().put(vMMEEstablishState.getKey().getLocalName(), vMMEEstablishState);
583 vMMEPolicy.getStateMap().put(vMMEDecideState.getKey().getLocalName(), vMMEDecideState);
584 vMMEPolicy.getStateMap().put(vMMEActState.getKey().getLocalName(), vMMEActState);
586 final AxPolicy sapcPolicy = new AxPolicy(new AxArtifactKey("SAPCPolicy", "0.0.1"));
587 sapcPolicy.setTemplate("MEDA");
589 final AxState sapcActState = new AxState(new AxReferenceKey(sapcPolicy.getKey(), "Act"));
590 sapcActState.setTrigger(sapcEvent.getKey());
591 final AxStateOutput sapcAct2Out = new AxStateOutput(sapcActState.getKey(), AxReferenceKey.getNullKey(),
592 sapcBlacklistSubscriberEvent.getKey());
593 sapcActState.getStateOutputs().put(sapcAct2Out.getKey().getLocalName(), sapcAct2Out);
594 sapcActState.setDefaultTask(sapcActTask.getKey());
595 sapcActState.getTaskReferences().put(sapcActTask.getKey(), new AxStateTaskReference(sapcActState.getKey(),
596 sapcActTask.getKey(), AxStateTaskOutputType.DIRECT, sapcAct2Out.getKey()));
598 final AxState sapcDecideState = new AxState(new AxReferenceKey(sapcPolicy.getKey(), "Decide"));
599 sapcDecideState.setTrigger(sapcEvent.getKey());
600 final AxStateOutput sapcDec2Act =
601 new AxStateOutput(sapcDecideState.getKey(), sapcActState.getKey(), sapcEvent.getKey());
602 sapcDecideState.getStateOutputs().put(sapcDec2Act.getKey().getLocalName(), sapcDec2Act);
603 sapcDecideState.setDefaultTask(sapcDecideTask.getKey());
604 sapcDecideState.getTaskReferences().put(sapcDecideTask.getKey(), new AxStateTaskReference(
605 sapcDecideState.getKey(), sapcDecideTask.getKey(), AxStateTaskOutputType.DIRECT, sapcDec2Act.getKey()));
607 final AxState sapcEstablishState = new AxState(new AxReferenceKey(sapcPolicy.getKey(), "Establish"));
608 sapcEstablishState.setTrigger(sapcEvent.getKey());
609 final AxStateOutput sapcEst2Dec =
610 new AxStateOutput(sapcEstablishState.getKey(), sapcDecideState.getKey(), sapcEvent.getKey());
611 sapcEstablishState.getStateOutputs().put(sapcEst2Dec.getKey().getLocalName(), sapcEst2Dec);
612 sapcEstablishState.setDefaultTask(sapcEstablishTask.getKey());
613 sapcEstablishState.getTaskReferences().put(sapcEstablishTask.getKey(),
614 new AxStateTaskReference(sapcEstablishState.getKey(), sapcEstablishTask.getKey(),
615 AxStateTaskOutputType.DIRECT, sapcEst2Dec.getKey()));
617 final AxState sapcMatchState = new AxState(new AxReferenceKey(sapcPolicy.getKey(), "Match"));
618 sapcMatchState.setTrigger(aadmXStreamActEvent.getKey());
619 final AxStateOutput sapcMat2Est =
620 new AxStateOutput(sapcMatchState.getKey(), sapcEstablishState.getKey(), sapcEvent.getKey());
621 sapcMatchState.getStateOutputs().put(sapcMat2Est.getKey().getLocalName(), sapcMat2Est);
622 sapcMatchState.setDefaultTask(sapcMatchTask.getKey());
623 sapcMatchState.getTaskReferences().put(sapcMatchTask.getKey(), new AxStateTaskReference(sapcMatchState.getKey(),
624 sapcMatchTask.getKey(), AxStateTaskOutputType.DIRECT, sapcMat2Est.getKey()));
626 sapcPolicy.setFirstState(sapcMatchState.getKey().getLocalName());
627 sapcPolicy.getStateMap().put(sapcMatchState.getKey().getLocalName(), sapcMatchState);
628 sapcPolicy.getStateMap().put(sapcEstablishState.getKey().getLocalName(), sapcEstablishState);
629 sapcPolicy.getStateMap().put(sapcDecideState.getKey().getLocalName(), sapcDecideState);
630 sapcPolicy.getStateMap().put(sapcActState.getKey().getLocalName(), sapcActState);
632 final AxPolicy periodicPolicy = new AxPolicy(new AxArtifactKey("PeriodicPolicy", "0.0.1"));
633 periodicPolicy.setTemplate("MEDA");
635 final AxState periodicActState = new AxState(new AxReferenceKey(periodicPolicy.getKey(), "Act"));
636 periodicActState.setTrigger(periodicEvent.getKey());
637 final AxStateOutput perAct2Out = new AxStateOutput(periodicActState.getKey(), AxReferenceKey.getNullKey(),
638 sapcBlacklistSubscriberEvent.getKey());
639 periodicActState.getStateOutputs().put(perAct2Out.getKey().getLocalName(), perAct2Out);
640 periodicActState.setDefaultTask(periodicActTask.getKey());
641 periodicActState.getTaskReferences().put(periodicActTask.getKey(),
642 new AxStateTaskReference(periodicActState.getKey(), periodicActTask.getKey(),
643 AxStateTaskOutputType.DIRECT, perAct2Out.getKey()));
645 final AxState periodicDecideState = new AxState(new AxReferenceKey(periodicPolicy.getKey(), "Decide"));
646 periodicDecideState.setTrigger(periodicEvent.getKey());
647 final AxStateOutput perDec2Act =
648 new AxStateOutput(periodicDecideState.getKey(), periodicActState.getKey(), periodicEvent.getKey());
649 periodicDecideState.getStateOutputs().put(perDec2Act.getKey().getLocalName(), perDec2Act);
650 periodicDecideState.setDefaultTask(periodicDecideTask.getKey());
651 periodicDecideState.getTaskReferences().put(periodicDecideTask.getKey(),
652 new AxStateTaskReference(periodicDecideState.getKey(), periodicDecideTask.getKey(),
653 AxStateTaskOutputType.DIRECT, perDec2Act.getKey()));
655 final AxState periodicEstablishState = new AxState(new AxReferenceKey(periodicPolicy.getKey(), "Establish"));
656 periodicEstablishState.setTrigger(periodicEvent.getKey());
657 final AxStateOutput perEst2Dec = new AxStateOutput(periodicEstablishState.getKey(),
658 periodicDecideState.getKey(), periodicEvent.getKey());
659 periodicEstablishState.getStateOutputs().put(perEst2Dec.getKey().getLocalName(), perEst2Dec);
660 periodicEstablishState.setDefaultTask(periodicEstablishTask.getKey());
661 periodicEstablishState.getTaskReferences().put(periodicEstablishTask.getKey(),
662 new AxStateTaskReference(periodicEstablishState.getKey(), periodicEstablishTask.getKey(),
663 AxStateTaskOutputType.DIRECT, perEst2Dec.getKey()));
665 final AxState periodicMatchState = new AxState(new AxReferenceKey(periodicPolicy.getKey(), "Match"));
666 periodicMatchState.setTrigger(periodicEvent.getKey());
667 final AxStateOutput perMat2Est =
668 new AxStateOutput(periodicMatchState.getKey(), periodicEstablishState.getKey(), periodicEvent.getKey());
669 periodicMatchState.getStateOutputs().put(perMat2Est.getKey().getLocalName(), perMat2Est);
670 periodicMatchState.setDefaultTask(periodicMatchTask.getKey());
671 periodicMatchState.getTaskReferences().put(periodicMatchTask.getKey(),
672 new AxStateTaskReference(periodicMatchState.getKey(), periodicMatchTask.getKey(),
673 AxStateTaskOutputType.DIRECT, perMat2Est.getKey()));
675 periodicPolicy.setFirstState(periodicMatchState.getKey().getLocalName());
676 periodicPolicy.getStateMap().put(periodicMatchState.getKey().getLocalName(), periodicMatchState);
677 periodicPolicy.getStateMap().put(periodicEstablishState.getKey().getLocalName(), periodicEstablishState);
678 periodicPolicy.getStateMap().put(periodicDecideState.getKey().getLocalName(), periodicDecideState);
679 periodicPolicy.getStateMap().put(periodicActState.getKey().getLocalName(), periodicActState);
681 final AxPolicies aadmPolicies = new AxPolicies(new AxArtifactKey("AADMPolicies", "0.0.1"));
682 aadmPolicies.getPolicyMap().put(aadmPolicy.getKey(), aadmPolicy);
683 aadmPolicies.getPolicyMap().put(vMMEPolicy.getKey(), vMMEPolicy);
684 aadmPolicies.getPolicyMap().put(sapcPolicy.getKey(), sapcPolicy);
685 aadmPolicies.getPolicyMap().put(periodicPolicy.getKey(), periodicPolicy);
687 final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("AADMKeyInformation", "0.0.1"));
688 final AxPolicyModel aadmPolicyModel = new AxPolicyModel(new AxArtifactKey("AADMPolicyModel", "0.0.1"));
689 aadmPolicyModel.setPolicies(aadmPolicies);
690 aadmPolicyModel.setEvents(aadmEvents);
691 aadmPolicyModel.setTasks(aadmTasks);
692 aadmPolicyModel.setAlbums(aadmAlbums);
693 aadmPolicyModel.setSchemas(aadmContextSchemas);
694 aadmPolicyModel.setKeyInformation(keyInformation);
695 aadmPolicyModel.getKeyInformation().generateKeyInfo(aadmPolicyModel);
697 final AxValidationResult result = aadmPolicyModel.validate(new AxValidationResult());
698 if (!result.getValidationResult().equals(AxValidationResult.ValidationResult.VALID)) {
699 throw new ApexRuntimeException("model " + aadmPolicyModel.getId() + " is not valid" + result);
701 return aadmPolicyModel;