Improve Test coverage of DFC
[nonrtric/plt/ranpm.git] / datafilecollector / src / main / java / org / oran / datafile / model / FileReadyMessage.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019-2023 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  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.oran.datafile.model;
22
23 import java.util.List;
24
25 import lombok.Builder;
26
27 @Builder
28 public class FileReadyMessage {
29
30     /**
31      * Meta data about a fileReady message.
32      */
33     @Builder
34     public static class MessageMetaData {
35
36         @SuppressWarnings("java:S1104")
37         public String eventId;
38
39         @SuppressWarnings("java:S1104")
40         public String priority;
41
42         @SuppressWarnings("java:S1104")
43         public String version;
44
45         @SuppressWarnings("java:S1104")
46         public String reportingEntityName;
47
48         @SuppressWarnings("java:S1104")
49         public int sequence;
50
51         @SuppressWarnings("java:S1104")
52         public String domain;
53
54         @SuppressWarnings("java:S1104")
55         public String eventName;
56
57         @SuppressWarnings("java:S1104")
58         public String vesEventListenerVersion;
59
60         @SuppressWarnings("java:S1104")
61         public String sourceName;
62
63         @SuppressWarnings("java:S1104")
64         public long lastEpochMicrosec;
65
66         @SuppressWarnings("java:S1104")
67         public long startEpochMicrosec;
68
69         @SuppressWarnings("java:S1104")
70         public String timeZoneOffset;
71
72         @SuppressWarnings("java:S1104")
73         public String changeIdentifier;
74
75         /**
76          * Gets data from the event name. Defined as:
77          * {DomainAbbreviation}_{productName}-{vendorName}_{Description},
78          * example: Noti_RnNode-Ericsson_FileReady
79          *
80          */
81         @SuppressWarnings("java:S6035")
82         public String productName() {
83             String[] eventArray = eventName.split("_|-");
84             if (eventArray.length >= 2) {
85                 return eventArray[1];
86             } else {
87                 return eventName;
88             }
89         }
90
91         @SuppressWarnings("java:S6035")
92         public String vendorName() {
93             String[] eventArray = eventName.split("_|-");
94             if (eventArray.length >= 3) {
95                 return eventArray[2];
96             } else {
97                 return eventName;
98             }
99         }
100     }
101
102     @Builder
103     public static class FileInfo {
104         @SuppressWarnings("java:S1104")
105         public String fileFormatType;
106
107         @SuppressWarnings("java:S1104")
108         public String location;
109
110         @SuppressWarnings("java:S1104")
111         public String fileFormatVersion;
112
113         @SuppressWarnings("java:S1104")
114         public String compression;
115     }
116
117     @Builder
118     public static class ArrayOfNamedHashMap {
119         @SuppressWarnings("java:S1104")
120         public String name;
121
122         @SuppressWarnings("java:S1104")
123         public FileInfo hashMap;
124     }
125
126     @Builder
127     public static class NotificationFields {
128         @SuppressWarnings("java:S1104")
129         public String notificationFieldsVersion;
130
131         @SuppressWarnings("java:S1104")
132         public String changeType;
133
134         @SuppressWarnings("java:S1104")
135         public String changeIdentifier;
136
137         @SuppressWarnings("java:S1104")
138         public List<ArrayOfNamedHashMap> arrayOfNamedHashMap;
139     }
140
141     @Builder
142     public static class Event {
143         @SuppressWarnings("java:S1104")
144         public MessageMetaData commonEventHeader;
145
146         @SuppressWarnings("java:S1104")
147         public NotificationFields notificationFields;
148     }
149
150     @SuppressWarnings("java:S1104")
151     public Event event;
152
153 }