Implement persistence test for policies
[policy/models.git] / models-tosca / src / main / java / org / onap / policy / models / tosca / simple / serialization / ToscaServiceTemplateMessageBodyHandler.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
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  *
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.
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.policy.models.tosca.simple.serialization;
20
21 import com.google.gson.GsonBuilder;
22
23 import org.onap.policy.common.gson.GsonMessageBodyHandler;
24 import org.onap.policy.models.tosca.simple.concepts.ToscaPolicies;
25 import org.onap.policy.models.tosca.simple.concepts.ToscaPolicy;
26 import org.onap.policy.models.tosca.simple.concepts.ToscaServiceTemplate;
27 import org.onap.policy.models.tosca.simple.concepts.ToscaTopologyTemplate;
28 import org.slf4j.Logger;
29 import org.slf4j.LoggerFactory;
30
31 /**
32  * Provider used to serialize and deserialize TOSCA objects using GSON.
33  */
34 public class ToscaServiceTemplateMessageBodyHandler extends GsonMessageBodyHandler {
35
36     public static final Logger logger = LoggerFactory.getLogger(ToscaServiceTemplateMessageBodyHandler.class);
37
38     /**
39      * Constructs the object.
40      */
41     public ToscaServiceTemplateMessageBodyHandler() {
42         this(new GsonBuilder());
43
44         logger.info("Using GSON with TOSCA for REST calls");
45     }
46
47     /**
48      * Constructs the object.
49      *
50      * @param builder builder to use to create the gson object
51      */
52     public ToscaServiceTemplateMessageBodyHandler(final GsonBuilder builder) {
53         // @formatter:off
54         super(builder
55                 .registerTypeAdapter(ToscaServiceTemplate.class, new ToscaServiceTemplateJsonAdapter())
56                 .registerTypeAdapter(ToscaTopologyTemplate.class, new ToscaTopologyTemplateJsonAdapter())
57                 .registerTypeAdapter(ToscaPolicies.class, new ToscaPoliciesJsonAdapter())
58                 .registerTypeAdapter(ToscaPolicy.class, new ToscaPolicyJsonAdapter())
59                 .setPrettyPrinting()
60                 .create()
61         );
62         // @formatter:on
63     }
64
65 }