ea4472e8a3fde24d3efd0fad1339a67d6c7b2bc4
[ccsdk/apps.git] / sdnr / wireless-transport / code-Carbon-SR1 / apps / devicemanager / impl / src / main / java / org / opendaylight / mwtn / performancemanager / impl / database / types / EsHistoricalPerformanceBase.java
1 package org.opendaylight.mwtn.performancemanager.impl.database.types;
2
3 import org.opendaylight.mwtn.base.database.EsObject;
4 import org.opendaylight.mwtn.base.netconf.LinkIdentifyingObject;
5 import org.opendaylight.mwtn.base.netconf.NetconfTimeStamp;
6 import org.opendaylight.yang.gen.v1.uri.onf.coremodel.corenetworkmodule.objectclasses.rev160811.logicalterminationpoint.LpList;
7 import org.opendaylight.yang.gen.v1.uri.onf.g_874_1_model.object_classes.rev160710.OTNHistoryData;
8 import org.opendaylight.yang.gen.v1.uri.onf.g_874_1_model.type_definitions.rev160710.GranularityPeriodType;
9 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.core.model.rev170320.logical.termination.point.g.Lp;
10 import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.OtnHistoryDataG;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
13
14 import com.fasterxml.jackson.annotation.JsonGetter;
15 import com.fasterxml.jackson.annotation.JsonIgnore;
16
17 public class EsHistoricalPerformanceBase extends EsObject {
18
19     private static final Logger LOG = LoggerFactory.getLogger(EsHistoricalPerformanceBase.class);
20
21     @JsonIgnore private final String nodeName;
22     @JsonIgnore private final String uuidInterface;
23     @JsonIgnore private final String layerProtocolName;
24
25     @JsonIgnore private String radioSignalId = null;  //Meaning of connection Id
26     @JsonIgnore private String timeStamp = null;
27     @JsonIgnore private Boolean suspectIntervalFlag = null;
28     @JsonIgnore private String granularityPeriod = null;  //Representation of GranularityPeriodType
29     @JsonIgnore private String scannerId = null;
30     @JsonIgnore private Object performanceData = null;
31
32
33     public EsHistoricalPerformanceBase(String nodeName, LpList actualInterface) {
34         this.nodeName = nodeName;
35         this.uuidInterface = actualInterface.getUuid().getValue();
36         this.layerProtocolName = actualInterface.getLayerProtocolName().getValue();
37
38     }
39
40     public EsHistoricalPerformanceBase(String nodeName, Lp actualInterface) {
41         this.nodeName = nodeName;
42         this.uuidInterface = actualInterface.getUuid().getValue();
43         this.layerProtocolName = actualInterface.getLayerProtocolName().getValue();
44
45     }
46
47
48     protected <T extends OTNHistoryData> void set(T record) {
49         if (record == null) {
50             LOG.warn("PM Record: null record. Can not handle");
51             return;
52         }
53
54         if (LOG.isTraceEnabled()) {
55             LOG.trace("PM Record: class {} '{}' ", record.getClass().getSimpleName(), record);
56         }
57
58         timeStamp = NetconfTimeStamp.getTimeStampFromNetconf(record.getPeriodEndTime().getValue());
59         suspectIntervalFlag = record.isSuspectIntervalFlag();
60         granularityPeriod = getYangGranularityPeriodString( record.getGranularityPeriod() );
61         scannerId = record.getHistoryDataId();
62
63         if (record instanceof LinkIdentifyingObject) {
64             radioSignalId = ((LinkIdentifyingObject) record).getSignalId();
65         }
66
67         performanceData = new EsPerformanceData10( record );
68         setEsId(genSpecificEsId(record.getPeriodEndTime().getValue()));
69     }
70
71     protected <T extends OtnHistoryDataG> void set(T record) {
72         if (record == null) {
73             LOG.warn("PM Record: null record. Can not handle");
74             return;
75         }
76
77         if (LOG.isTraceEnabled()) {
78             LOG.trace("PM Record: class {} '{}' ", record.getClass().getSimpleName(), record);
79         }
80
81         timeStamp = NetconfTimeStamp.getTimeStampFromNetconf(record.getPeriodEndTime().getValue());
82         suspectIntervalFlag = record.isSuspectIntervalFlag();
83         granularityPeriod = getYangGranularityPeriodString( record.getGranularityPeriod() );
84         scannerId = record.getHistoryDataId();
85
86         if (record instanceof LinkIdentifyingObject) {
87             radioSignalId = ((LinkIdentifyingObject) record).getSignalId();
88         }
89
90         performanceData = new EsPerformanceData12( record );
91         setEsId(genSpecificEsId(record.getPeriodEndTime().getValue()));
92     }
93
94
95     @JsonGetter("node-name")
96     public String getNodeName() {
97         return nodeName;
98     }
99
100     @JsonGetter("uuid-interface")
101     public String getUuidInterface() {
102         return uuidInterface;
103     }
104
105     @JsonGetter("layer-protocol-name")
106     public String getLayerProtocolName() {
107         return layerProtocolName;
108     }
109
110     @JsonGetter("radio-signal-id")
111     public String getRadioSignalId() {
112         return radioSignalId;
113     }
114
115     @JsonGetter("time-stamp")
116     public String getTimeStamp() {
117         return timeStamp;
118     }
119
120     @JsonGetter("suspect-interval-flag")
121     public Boolean getSuspect() {
122         return suspectIntervalFlag;
123     }
124
125     @JsonGetter("granularity-period")
126     public String getGranularityPeriod() {
127         return granularityPeriod;
128     }
129
130     @JsonGetter("scanner-id")
131     public String getScannerId() {
132         return scannerId;
133     }
134
135     @JsonGetter("performance-data")
136     public Object getData() {
137         return performanceData;
138     }
139
140
141
142     //Adapt JSON Text
143     //@JsonGetter("granularityPeriod")
144     private static String getYangGranularityPeriodString(GranularityPeriodType yangGanularityPeriod) {
145         switch(yangGanularityPeriod == null ? GranularityPeriodType.UNKNOWN : yangGanularityPeriod) {
146             case PERIOD15MIN:
147                 return "PERIOD_15MIN";
148             case PERIOD24HOURS:
149                 return "PERIOD_24HOURS";
150             default:
151                 return "PERIOD_UNKOWN";
152         }
153     }
154
155     private static String getYangGranularityPeriodString(org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType yangGanularityPeriod) {
156         switch(yangGanularityPeriod == null ? org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.g._874._1.model.rev170320.GranularityPeriodType.Unknown : yangGanularityPeriod) {
157             case Period15Min:
158                 return "PERIOD_15MIN";
159             case Period24Hours:
160                 return "PERIOD_24HOURS";
161             default:
162                 return "PERIOD_UNKOWN";
163         }
164     }
165
166     /**
167      * Create a specific ES id for the current log.
168      * @param time is the input.
169      * @return a string with the generated ES Id
170      */
171     protected String genSpecificEsId(String time) {
172
173         StringBuffer strBuf = new StringBuffer();
174         strBuf.append(nodeName);
175         strBuf.append("/");
176         strBuf.append(uuidInterface);
177         strBuf.append("/");
178         strBuf.append(time == null || time.isEmpty() ? "Empty" : time);
179
180         return strBuf.toString();
181     }
182
183     @Override
184     public String toString() {
185         return "EsHistoricalPerformanceBase [nodeName=" + nodeName + ", uuidInterface=" + uuidInterface
186                 + ", layerProtocolName=" + layerProtocolName + ", radioSignalId=" + radioSignalId + ", timeStamp="
187                 + timeStamp + ", suspectIntervalFlag=" + suspectIntervalFlag + ", granularityPeriod="
188                 + granularityPeriod + ", scannerId=" + scannerId + ", performanceData=" + performanceData + "]";
189     }
190
191 }