3381d61b4c8ab23cbf45384579a5803a31bca612
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  */
18 /**
19  * @author herbert
20  *
21  */
22 package org.onap.ccsdk.features.sdnr.wt.devicemanager.impl.util;
23
24
25 import org.eclipse.jdt.annotation.Nullable;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.SeverityType;
27
28 public enum InternalSeverity {
29
30     NonAlarmed, Warning, Minor, Major, Critical;
31
32     public boolean isNoAlarmIndication() {
33         return this == NonAlarmed;
34     }
35
36     public String getValueAsString() {
37         return this.name();
38     }
39
40     @Override
41     public String toString() {
42         return this.name();
43     }
44
45     public String toNetconfString() {
46         switch (this) {
47             case NonAlarmed:
48                 return "non-alarmed";
49             case Warning:
50                 return "warning";
51             case Minor:
52                 return "minor";
53             case Major:
54                 return "major";
55             case Critical:
56                 return "critical";
57         }
58         return "not-specified";
59     }
60
61     public SeverityType toDataProviderSeverityType() {
62         switch (this) {
63             case NonAlarmed:
64                 return SeverityType.NonAlarmed;
65             case Warning:
66                 return SeverityType.Warning;
67             case Minor:
68                 return SeverityType.Minor;
69             case Major:
70                 return SeverityType.Major;
71             case Critical:
72                 return SeverityType.Critical;
73         }
74         return null; //Should never happen
75     }
76
77     //    /**
78     //     * convert ONF 1.2 Severity
79     //     * @param severity as input
80     //     * @return String with related output
81     //     */
82     public static InternalSeverity valueOf(
83             org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType severity) {
84         switch (severity) {
85             case NonAlarmed:
86                 return InternalSeverity.NonAlarmed;
87             case Warning:
88                 return InternalSeverity.Warning;
89             case Minor:
90                 return InternalSeverity.Minor;
91             case Major:
92                 return InternalSeverity.Major;
93             case Critical:
94                 return InternalSeverity.Critical;
95         }
96         return null;
97     }
98
99
100     public static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType toYang(
101             InternalSeverity severity) {
102         switch (severity) {
103             case NonAlarmed:
104                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.NonAlarmed;
105             case Warning:
106                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Warning;
107             case Minor:
108                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Minor;
109             case Major:
110                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Major;
111             case Critical:
112                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Critical;
113         }
114         return null;
115     }
116     public static org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType toYang(
117             @Nullable SeverityType severity) {
118         switch (severity) {
119             case NonAlarmed:
120                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.NonAlarmed;
121             case Warning:
122                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Warning;
123             case Minor:
124                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Minor;
125             case Major:
126                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Major;
127             case Critical:
128                 return org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.devicemanager.rev190109.SeverityType.Critical;
129         }
130         return null;
131     }
132     //
133     //    /**
134     //     * convert ONF 1.2.1.1 Severity
135     //     * @param severity as input
136     //     * @return String with related output
137     //     */
138     //    public static InternalSeverity valueOf(org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev180907.SeverityType severity ) {
139     //        switch( severity ) {
140     //            case NonAlarmed:
141     //                return InternalSeverity.NonAlarmed;
142     //            case Warning:
143     //                return InternalSeverity.Warning;
144     //            case Minor:
145     //                return InternalSeverity.Minor;
146     //            case Major:
147     //                return InternalSeverity.Major;
148     //            case Critical:
149     //                return InternalSeverity.Critical;
150     //        }
151     //        return null;
152     //    }
153     //
154     //    /**
155     //     * convert ONF 1.2.1.1p Severity
156     //     * @param severity as input
157     //     * @return String with related output
158     //     */
159     //    public static InternalSeverity valueOf(org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.microwave.model.rev181010.SeverityType severity ) {
160     //        switch( severity ) {
161     //            case NonAlarmed:
162     //                return InternalSeverity.NonAlarmed;
163     //            case Warning:
164     //                return InternalSeverity.Warning;
165     //            case Minor:
166     //                return InternalSeverity.Minor;
167     //            case Major:
168     //                return InternalSeverity.Major;
169     //            case Critical:
170     //                return InternalSeverity.Critical;
171     //        }
172     //        return null;
173     //    }
174
175
176
177     /**
178      * convert a text string into Severity
179      *
180      * @param severityString with textes: warning minor major critical non[-]alarmed. (Capital or lowercase)
181      * @return related enum. Unknown oe illegal are converted to NonAlarm
182      */
183     public static @Nullable InternalSeverity valueOfString(String severityString) {
184
185         switch (severityString.toLowerCase().trim()) {
186             case "warning":
187                 return InternalSeverity.Warning;
188             case "minor":
189                 return InternalSeverity.Minor;
190             case "major":
191                 return InternalSeverity.Major;
192             case "critical":
193                 return InternalSeverity.Critical;
194         }
195         return InternalSeverity.NonAlarmed;
196
197     }
198
199     /**
200      * Convert to InternalSeverity
201      *
202      * @param severity to be converted
203      * @return InternalSeverity, null converted to NonAlarmed
204      */
205     public static InternalSeverity valueOf(@org.eclipse.jdt.annotation.Nullable SeverityType severity) {
206         if (severity != null) {
207             switch (severity) {
208                 case NonAlarmed:
209                     return InternalSeverity.NonAlarmed;
210                 case Warning:
211                     return InternalSeverity.Warning;
212                 case Minor:
213                     return InternalSeverity.Minor;
214                 case Major:
215                     return InternalSeverity.Major;
216                 case Critical:
217                     return InternalSeverity.Critical;
218             }
219         }
220         return InternalSeverity.NonAlarmed;
221     }
222
223
224
225
226
227 }