Updates to Renderer
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / openroadminterface / OpenRoadmOtu4Interface.java
index 7597b366a60b496dca7f661f6fe449706bdc4ad7..9881212c3369c13494237799b8a001a6c6786085 100644 (file)
@@ -10,11 +10,21 @@ package org.opendaylight.transportpce.renderer.openroadminterface;
 
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.MountPointService;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOtu;
+
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.OTU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.OtuAttributes.Fec;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.otu.container.OtuBuilder;
 
 public class OpenRoadmOtu4Interface extends OpenRoadmInterfaces {
 
-    public OpenRoadmOtu4Interface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint) {
-        super(db, mps, nodeId, logicalConnPoint);
+    public OpenRoadmOtu4Interface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint,
+            String serviceName) {
+        super(db, mps, nodeId, logicalConnPoint, serviceName);
 
     }
 
@@ -25,9 +35,28 @@ public class OpenRoadmOtu4Interface extends OpenRoadmInterfaces {
      * @return Name of the interface if successful, otherwise return null.
      */
 
-    public String createInterface() {
-        // TODO: Implement this method
-        return null;
+    public String createInterface(String supportOchInterface) {
+        // Create generic interface
+        InterfaceBuilder otuInterfaceBldr = getIntfBuilder(portMap);
+        otuInterfaceBldr.setType(OtnOtu.class);
+        otuInterfaceBldr.setSupportingInterface(supportOchInterface);
+        otuInterfaceBldr.setName(logicalConnPoint + "-OTU");
+        otuInterfaceBldr.setKey(new InterfaceKey(logicalConnPoint + "-OTU"));
+
+        // OTU interface specific data
+        OtuBuilder otuIfBuilder = new OtuBuilder();
+        otuIfBuilder.setFec(Fec.Scfec);
+        otuIfBuilder.setRate(OTU4.class);
+
+        // Create Interface1 type object required for adding as augmentation
+        Interface1Builder otuIf1Builder = new Interface1Builder();
+        otuInterfaceBldr.addAugmentation(Interface1.class, otuIf1Builder.setOtu(otuIfBuilder.build()).build());
+
+        // Post interface on the device
+        if (postInterface(otuInterfaceBldr)) {
+            return otuInterfaceBldr.getName();
+        } else {
+            return null;
+        }
     }
-
 }