Update snapshot and/or references of policy/models to latest snapshots
[policy/models.git] / models-interactions / model-simulators / src / main / java / org / onap / policy / simulators / AppcLcmTopicServer.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP
4  * ================================================================================
5  * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2024 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.simulators;
23
24 import org.onap.policy.appclcm.AppcLcmMessageWrapper;
25 import org.onap.policy.common.endpoints.event.comm.TopicSink;
26 import org.onap.policy.common.endpoints.event.comm.TopicSource;
27 import org.onap.policy.common.utils.coder.StandardCoder;
28 import org.onap.policy.common.utils.resources.ResourceUtils;
29
30 /**
31  * APPC-LCM topic server.
32  */
33 public class AppcLcmTopicServer extends TopicServer<AppcLcmMessageWrapper> {
34
35     public AppcLcmTopicServer(TopicSink sink, TopicSource source) {
36         super(sink, source, new StandardCoder(), AppcLcmMessageWrapper.class);
37     }
38
39     @Override
40     protected String process(AppcLcmMessageWrapper request) {
41         /*
42          * In case the request and response are on the same topic, this may be invoked
43          * with a request or with a response object. If the "output" is not null, then we
44          * know it's a response.
45          */
46         if (request.getBody().getOutput() != null) {
47             return null;
48         }
49
50         var response = ResourceUtils.getResourceAsString("org/onap/policy/simulators/appclcm/appc.lcm.success.json");
51         return response.replace("${replaceMe}", request.getBody().getInput().getCommonHeader().getSubRequestId());
52     }
53 }