db0d402f6e918115eb948e89e170eea8532f48df
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix
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
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  *
16  *  SPDX-License-Identifier: Apache-2.0
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.onap.so.bpmn.infrastructure.decisionpoint.impl.camunda.controller.sdnc;
21
22 import org.camunda.bpm.engine.delegate.DelegateExecution;
23 import org.onap.so.bpmn.infrastructure.decisionpoint.api.ControllerContext;
24 import org.onap.so.bpmn.infrastructure.decisionpoint.impl.camunda.controller.LcmControllerDE;
25 import org.springframework.stereotype.Component;
26
27 /**
28  * This class is created to demonstrate how to support {@link DelegateExecution} API based SDNC controller.
29  *
30  * Function wise, it's similar to the Appc Controller, like in the AppcClient groovy code.
31  */
32 @Component
33 public class SdncControllerDE extends LcmControllerDE {
34
35     private static final int SDNC_DELEGATE_EXECUTION_ERROR_CODE = 1103;
36
37     @Override
38     public Boolean understand(ControllerContext<DelegateExecution> context) {
39         return context.getControllerActor().equalsIgnoreCase("sdnc");
40     }
41
42     @Override
43     public Boolean ready(ControllerContext<DelegateExecution> context) {
44         return true;
45     }
46
47     /**
48      * This method is left empty intentionally. If you are planning to use the SDNC Controller, please implement here.
49      *
50      * You can use the {@ref ApplicationControllerAction}, {@ref ApplicationControllerOrchestrator},
51      * {@ref ApplicationControllerClient} or create your own SDNC Client proxy.
52      */
53     @Override
54     protected int callLcmClient(ControllerContext<DelegateExecution> context) {
55         return 0;
56     }
57
58     @Override
59     protected int getErrorCode() {
60         return SDNC_DELEGATE_EXECUTION_ERROR_CODE;
61     }
62 }