Fix bugs found in TN Slicing integration involving OOF
[so.git] / common / src / main / java / org / onap / so / beans / nsmf / SliceProfileAdapter.java
index 9b6df0f..2b31561 100644 (file)
@@ -25,7 +25,9 @@ import lombok.Data;
 import lombok.ToString;
 import org.springframework.beans.BeanUtils;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 @Data
 @ToString
@@ -43,7 +45,7 @@ public class SliceProfileAdapter implements Serializable {
     private String pLMNIdList = "";
 
     @JsonProperty(value = "maxNumberofUEs")
-    private long maxNumberofUEs;
+    private int maxNumberOfUEs;
 
     @JsonProperty(value = "coverageAreaTAList")
     private String coverageAreaTAList = "";
@@ -52,23 +54,68 @@ public class SliceProfileAdapter implements Serializable {
     private int latency;
 
     @JsonProperty(value = "uEMobilityLevel")
-    private String uEMobilityLevel;
+    private String ueMobilityLevel;
 
     @JsonProperty(value = "resourceSharingLevel")
     private String resourceSharingLevel;
 
     @JsonProperty(value = "maxBandwidth")
-    private String bandwidth;
+    private int maxBandwidth;
 
     @JsonProperty(value = "sST")
-    private String sST;
+    private String sST = "embb";
 
     @JsonProperty(value = "activityFactor")
-    private String activityFactor;
+    private int activityFactor;
 
     @JsonProperty(value = "survivalTime")
     private String survivalTime;
 
+    @JsonProperty(value = "expDataRateUL")
+    private int expDataRateUL;
+
+    @JsonProperty(value = "expDataRateDL")
+    private int expDataRateDL;
+
+    @JsonProperty(value = "areaTrafficCapUL")
+    private int areaTrafficCapUL;
+
+    @JsonProperty(value = "areaTrafficCapDL")
+    private int areaTrafficCapDL;
+
+    @JsonProperty(value = "jitter")
+    private int jitter;
+
+    @JsonProperty(value = "csAvailabilityTarget")
+    private float csAvailabilityTarget;
+
+    @JsonProperty(value = "expDataRate")
+    private int expDataRate;
+
+    @JsonProperty(value = "maxNumberofPDUSession")
+    private int maxNumberOfPDUSession;
+
+    @JsonProperty(value = "overallUserDensity")
+    private int overallUserDensity;
+
+    @JsonProperty(value = "cSReliabilityMeanTime")
+    private String csReliabilityMeanTime;
+
+    @JsonProperty(value = "msgSizeByte")
+    private String msgSizeByte;
+
+    @JsonProperty(value = "transferIntervalTarget")
+    private String transferIntervalTarget;
+
+    @JsonProperty(value = "ipAddress")
+    private String ipAddress;
+
+    @JsonProperty(value = "logicInterfaceId")
+    private String logicInterfaceId;
+
+    @JsonProperty(value = "nextHopInfo")
+    private String nextHopInfo;
+
     public AnSliceProfile trans2AnProfile() {
         AnSliceProfile anSliceProfile = new AnSliceProfile();
         BeanUtils.copyProperties(this, anSliceProfile);
@@ -81,11 +128,12 @@ public class SliceProfileAdapter implements Serializable {
             areasRes[i] = str2Code(areas[i]);
         }
         anSliceProfile.setCoverageAreaTAList(Arrays.asList(areasRes));
-        anSliceProfile.setUEMobilityLevel(UeMobilityLevel.fromString(this.uEMobilityLevel));
+
+        anSliceProfile.setUeMobilityLevel(UeMobilityLevel.fromString(this.ueMobilityLevel));
         anSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
-        PerfReq perfReq = new PerfReq();
-        // todo
-        anSliceProfile.setPerfReq(perfReq);
+        anSliceProfile.setMaxNumberOfPDUSession(this.maxNumberOfPDUSession);
+        anSliceProfile.setPerfReq(generatePerfReq());
+
         return anSliceProfile;
     }
 
@@ -98,19 +146,37 @@ public class SliceProfileAdapter implements Serializable {
         BeanUtils.copyProperties(this, cnSliceProfile);
         cnSliceProfile.setSnssaiList(Arrays.asList(this.sNSSAIList.split("\\|")));
         cnSliceProfile.setCoverageAreaTAList(Arrays.asList(this.coverageAreaTAList.split("\\|")));
-        cnSliceProfile.setPlmnIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
+        cnSliceProfile.setPLMNIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
         cnSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
-        PerfReq perfReq = new PerfReq();
-        // todo
-        cnSliceProfile.setPerfReq(perfReq);
+
+        cnSliceProfile.setPerfReq(generatePerfReq());
         return cnSliceProfile;
     }
 
+    private PerfReq generatePerfReq() {
+        PerfReq perfReq = new PerfReq();
+        if ("embb".equalsIgnoreCase(sST)) {
+            List<PerfReqEmbb> perfReqEmbbs = new ArrayList<>();
+            PerfReqEmbb perfReqEmbb = new PerfReqEmbb();
+            BeanUtils.copyProperties(this, perfReqEmbb);
+            perfReqEmbbs.add(perfReqEmbb);
+            perfReq.setPerfReqEmbbList(perfReqEmbbs);
+        } else if ("urllc".equalsIgnoreCase(sST)) {
+            List<PerfReqUrllc> perfReqUrllcs = new ArrayList<>();
+            PerfReqUrllc perfReqUrllc = new PerfReqUrllc();
+            BeanUtils.copyProperties(this, perfReqUrllc);
+            perfReqUrllcs.add(perfReqUrllc);
+            perfReq.setPerfReqUrllcList(perfReqUrllcs);
+        }
+        return perfReq;
+    }
+
     public TnSliceProfile trans2TnProfile() {
         TnSliceProfile tnSliceProfile = new TnSliceProfile();
         BeanUtils.copyProperties(this, tnSliceProfile);
         tnSliceProfile.setSNSSAIList(Arrays.asList(this.sNSSAIList.split("\\|")));
         tnSliceProfile.setPLMNIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
+        tnSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
         return tnSliceProfile;
     }
 }