55f898742cd0025d82f357f8b8b3e7fbc0481545
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / bpmn / buildingblock / HomingV2.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) Copyright (C) 2018 Bell Canada.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.buildingblock;
22
23 import java.util.Map;
24 import org.onap.so.bpmn.common.BuildingBlockExecution;
25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.stereotype.Component;
27
28 @Component
29 public class HomingV2 {
30
31     @Autowired
32     private OofHomingV2 oofHomingV2;
33     @Autowired
34     private SniroHomingV2 sniroHomingV2;
35
36     private static final String HOMINGSOLUTION = "Homing_Solution";
37
38     public void callHoming(BuildingBlockExecution execution) {
39         if (isOof(execution)) {
40             oofHomingV2.callOof(execution);
41         } else {
42             sniroHomingV2.callSniro(execution);
43         }
44     }
45
46     public void processSolution(BuildingBlockExecution execution, String asyncResponse) {
47         if (isOof(execution)) {
48             oofHomingV2.processSolution(execution, asyncResponse);
49         } else {
50             sniroHomingV2.processSolution(execution, asyncResponse);
51         }
52     }
53
54     // Default solution is SNIRO. OOF gets called only if specified.
55     private boolean isOof(BuildingBlockExecution execution) {
56         for (Map<String, Object> params : execution.getGeneralBuildingBlock().getRequestContext().getRequestParameters()
57             .getUserParams()) {
58             if (params.containsKey(HOMINGSOLUTION) && params.get(HOMINGSOLUTION).equals("oof")) {
59                 return true;
60             }
61         }
62         return false;
63     }
64 }