update websocketmanager
[ccsdk/features.git] / sdnr / wt / devicemanager-openroadm / provider / src / main / java / org / onap / ccsdk / features / sdnr / wt / devicemanager / openroadm / impl / PmDataBuilderOpenRoadm.java
index 7ad2003..f1fd447 100644 (file)
@@ -29,7 +29,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.onap.ccsdk.features.sdnr.wt.common.YangHelper;
-import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types.YangHelper2;
 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfBindingAccessor;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev191129.HistoricalPmList;
@@ -45,10 +44,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.pro
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.GranularityPeriodType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.entity.PerformanceDataBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.MeasurementKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Celsius;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DB;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.DBm;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.Fahrenheit;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.KHz;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.MW;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413.PerformanceMeasurementUnitId;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.osgi.framework.Bundle;
@@ -64,7 +68,7 @@ import org.slf4j.LoggerFactory;
  */
 public class PmDataBuilderOpenRoadm {
     // variables
-    private static final Logger log = LoggerFactory.getLogger(OpenroadmNetworkElement.class);
+    private static final Logger log = LoggerFactory.getLogger(PmDataBuilderOpenRoadm.class);
     private PmdataEntityBuilder pmDataBuilder;
     private Bundle b = FrameworkUtil.getBundle(this.getClass());
 
@@ -104,8 +108,6 @@ public class PmDataBuilderOpenRoadm {
                 } catch (ClassNotFoundException e) {
                     log.info("No relevant data found");
                 }
-                //              log.info("NodeName: {}, Scanner Id:{}, Period: {}", this.getNodeName(),
-                //                      this.getScannerId(), this.getGranularityPeriod().getName());
                 pmEntitiyList.add(this.pmDataBuilder.build());
 
                 log.info("PmListSize before db writing: {}", pmEntitiyList.size());
@@ -119,7 +121,7 @@ public class PmDataBuilderOpenRoadm {
     // private methods
     private void writeperformanceData(HistoricalPm historicalPm) throws ClassNotFoundException {
         Collection<Measurement> measurementList = YangHelper.getCollection(historicalPm.getMeasurement());
-          Map<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement> measurementMap=new HashMap<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement>();
+          Map<MeasurementKey, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement> measurementMap=new HashMap<>();
         // Map Performance data of PmDataEntity with MeasurmentData-HistoricalPm
         PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder();
         for (Measurement measurementData : measurementList) {
@@ -133,9 +135,6 @@ public class PmDataBuilderOpenRoadm {
                     measurementData.getPmParameterValue()));
 
 
-
-            //    log.info("Time:d{}, \n Scannerid: {}, \n UUID: {}", this.getGranularityPeriod().getName(),
-            //          pmDataBuilder.getScannerId(), this.getUuidInterface());
         }
 
         pmDataBuilder.setPerformanceData(performanceDataBuilder.setMeasurement(measurementMap).build());
@@ -143,15 +142,6 @@ public class PmDataBuilderOpenRoadm {
 
 
 
-    //Map Performance data of PmDataEntity with  MeasurmentData-HistoricalPm
-    private PerformanceData getPerformancedata(Measurement measurementData) {
-        PerformanceData performanceData;
-        PerformanceDataBuilder performanceDataBuilder = new PerformanceDataBuilder();
-        performanceData = performanceDataBuilder.setCses(YangHelper2.getInteger(measurementData.getBinNumber()))
-                .setSes(measurementData.getPmParameterValue().getUint64().intValue()).build();
-        return performanceData;
-    }
-
     // Mapping Granularity period of PmDataEntity with PmGranularity of MeasurmentData-HistoricalPm
     private GranularityPeriodType mapGranularityPeriod(PmGranularity pmGranularity) {
 
@@ -173,65 +163,76 @@ public class PmDataBuilderOpenRoadm {
         return granPeriod;
     }
 
-    private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() throws ClassNotFoundException {
+    private List<Class<? extends PerformanceMeasurementTypeId>> setMeasurementTypeId() {
         String packageName =
                 "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.openroadm.pm.types.rev200413";
         String packageName1 =
                 "/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/data/provider/openroadm/pm/types/rev200413/";
         List<Class<? extends PerformanceMeasurementTypeId>> measTypeObjList =
-                new ArrayList<Class<? extends PerformanceMeasurementTypeId>>();
+                new ArrayList<>();
         URL root = Thread.currentThread().getContextClassLoader().getResource(packageName1);
 
         log.info("path for type package: {}", root);
 
         Enumeration<URL> results = getFileURL(b, packageName);
         log.info("FOund Packages {}", results);
-        while (results.hasMoreElements()) {
-            URL path = results.nextElement();
-            //          log.info("Enumeration URL-file {}", path.getFile());
-            //          log.info("Enumeration URL-String {}", path.toString());
-            Class<?> cls1 = loadClass(b, path.getFile());
-
-            if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) {
-                measTypeObjList.add((Class<? extends PerformanceMeasurementTypeId>) cls1);
-            }
-            log.info("Class Added {}", cls1.getSimpleName());
+        if(results != null) {
+            while (results.hasMoreElements()) {
+                URL path = results.nextElement();
 
-        }
+                Class<?> cls1 = loadClass(b, path.getFile());
 
-        return measTypeObjList;
-    }
+                if (PerformanceMeasurementTypeId.class.isAssignableFrom(cls1)) {
+                    measTypeObjList.add((Class<? extends PerformanceMeasurementTypeId>) cls1);
 
-    private List<Class<? extends PerformanceMeasurementUnitId>> setMeasurementUnit() throws ClassNotFoundException {
-        String packageName =
-                "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.units.rev200413";
-        List<Class<? extends PerformanceMeasurementUnitId>> measUnitObjList =
-                new ArrayList<Class<? extends PerformanceMeasurementUnitId>>();
-        URL root = Thread.currentThread().getContextClassLoader().getResource(packageName.replace(".", "/"));
-        log.info("path for unit package{}", root);
-
-        Enumeration<URL> results_unit = getFileURL(b, packageName);
-        log.info("FOund Packages {}", results_unit);
-        while (results_unit.hasMoreElements()) {
-            URL path = results_unit.nextElement();
-            Class<?> cls1 = loadClass(b, path.getFile());
-            if (PerformanceMeasurementUnitId.class.isAssignableFrom(cls1)) {
-                measUnitObjList.add((Class<? extends PerformanceMeasurementUnitId>) cls1);
-            }
-            log.info("Class Added {}", cls1.getSimpleName());
+
+                }
+                if(cls1!=null) {
+                    log.info("Class Added {}", cls1.getSimpleName());
+                }
 
         }
 
-        return measUnitObjList;
+
+        }
+
+        return measTypeObjList;
     }
 
+    private Class<? extends PerformanceMeasurementUnitId> setMeasurementUnit(String unitName) {
+        Class<? extends PerformanceMeasurementUnitId>  measurementUnitClass = null;
+        switch (unitName) {
+            case ("celsius"):
+                measurementUnitClass = Celsius.class;
+                break;
+            case("dB"):
+                measurementUnitClass = DB.class;
+                break;
+            case("dBm"):
+                measurementUnitClass = DBm.class;
+                break;
+            case("fahrenheit"):
+                measurementUnitClass = Fahrenheit.class;
+                break;
+            case("kHz"):
+                measurementUnitClass = KHz.class;
+                break;
+            case("mW"):
+                measurementUnitClass = MW.class;
+                break;
+            default:
+                break;
+        }
+            return measurementUnitClass;
+     }
+
     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.pmdata.grp.Measurement measurementBuilder(
-            PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) throws ClassNotFoundException {
+            PmNamesEnum pmType, String pmUnit, PmDataType pmDataType) {
 
         MeasurementBuilder measBuilder = new MeasurementBuilder();
-        if (pmType.getName() == "erroredSeconds") {
+        if (pmType.getName().equals("erroredSeconds") ) {
             measBuilder.setPmKey(ErroredSecond.class);
-        } else if (pmType.getName() == "severelyErroredSeconds") {
+        } else if (pmType.getName().equals("severelyErroredSeconds")) {
             measBuilder.setPmKey(SeverelyErroredSecond.class);
         } else {
             for (Class<? extends PerformanceMeasurementTypeId> obj : setMeasurementTypeId()) {
@@ -240,11 +241,7 @@ public class PmDataBuilderOpenRoadm {
                 }
             }
         }
-        for (Class<? extends PerformanceMeasurementUnitId> obj : setMeasurementUnit()) {
-            if (obj.toString().contains(pmUnit)) {
-                measBuilder.setPmUnit(obj);
-            }
-        }
+        measBuilder.setPmUnit(setMeasurementUnit(pmUnit));
         measBuilder.setPmValue(pmDataType);
         return measBuilder.build();
 
@@ -254,7 +251,7 @@ public class PmDataBuilderOpenRoadm {
         String className = classFilePath.replaceFirst("^/", "").replace('/', '.').replaceFirst(".class$", "");
         try {
             return bundle.loadClass(className);
-        } catch (Throwable e) {
+        } catch (Exception e) {
             log.info(String.format("Class [%s] could not be loaded. Message: [%s].", className, e.getMessage()));
         }
         return null;
@@ -277,9 +274,7 @@ public class PmDataBuilderOpenRoadm {
 
         for (Bundle bundle : bundles) {
             resultUrl = bundle.findEntries("/" + classPath.replace(".", "/"), "*.class", false);
-            //          resultUrl = bundle.getEntryPaths("/" + classPath.replace(".", "/"));
             if (resultUrl != null) {
-                b = bundle;
                 break;
 
             }