Fix serialization of the "key" property
[aai/champ.git] / champ-lib / champ-core / src / main / java / org / onap / aai / champcore / event / envelope / ChampEventEnvelope.java
1 /**
2  * ============LICENSE_START==========================================
3  * org.onap.aai
4  * ===================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017 Amdocs
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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22 package org.onap.aai.champcore.event.envelope;
23
24 import org.onap.aai.champcore.event.ChampEvent;
25 import com.fasterxml.jackson.annotation.JsonInclude.Include;
26 import com.fasterxml.jackson.core.JsonProcessingException;
27 import com.fasterxml.jackson.databind.ObjectMapper;
28
29 public class ChampEventEnvelope {
30
31     private ChampEventHeader header;
32     private ChampEvent body;
33
34     public ChampEventEnvelope(ChampEvent event) {
35         this.header = new ChampEventHeader.Builder(ChampEventHeader.EventType.UPDATE_NOTIFICATION)
36                 .requestId(event.getTransactionId()).build();
37         this.body = event;
38     }
39
40     public ChampEventEnvelope(ChampEventHeader header, ChampEvent body) {
41         this.header = header;
42         this.body = body;
43     }
44
45     public ChampEventHeader getHeader() {
46         return header;
47     }
48
49     public void setHeader(ChampEventHeader header) {
50         this.header = header;
51     }
52
53     public ChampEvent getBody() {
54         return body;
55     }
56
57     public void setBody(ChampEvent body) {
58         this.body = body;
59     }
60
61     /**
62      * Serializes this Vertex object into a JSON string.
63      *
64      * @return - A JSON format string representation of this Vertex.
65      */
66     public String toJson() {
67         ObjectMapper mapper = new ObjectMapper();
68         mapper.setSerializationInclusion(Include.NON_NULL);
69
70         try {
71             return mapper.writeValueAsString(this);
72         } catch (JsonProcessingException e) {
73             return "Unmarshallable: " + e.getMessage();
74         }
75     }
76
77     @Override
78     public String toString() {
79         return toJson();
80     }
81 }