Merge dev/fluorine work across to master
[unimgr.git] / impl / src / main / java / org / opendaylight / unimgr / mef / nrp / common / TapiUtils.java
index 12af37e8438c332646e1f9c316030c466cc8ae3b..a2bac079b80a5747fa0b94e8ce4a38cca145f49f 100644 (file)
@@ -7,55 +7,60 @@
  */
 package org.opendaylight.unimgr.mef.nrp.common;
 
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.LayerProtocol;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.LayerProtocolName;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.TerminationDirection;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.TerminationState;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.transfer.cost.pac.CostCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.transfer.cost.pac.CostCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.transfer.timing.pac.LatencyCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.transfer.timing.pac.LatencyCharacteristicBuilder;
-
-import java.util.Collections;
-import java.util.List;
+import org.opendaylight.unimgr.mef.nrp.api.TapiConstants;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.ServiceInterfacePointRef;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.service.end.point.ServiceInterfacePoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.service.end.point.ServiceInterfacePointBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.topology.constraint.IncludeNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.NodeRef;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.OwnedNodeEdgePointRef;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.link.NodeEdgePointBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.node.edge.point.MappedServiceInterfacePoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.node.edge.point.MappedServiceInterfacePointBuilder;
 
 /**
+ * Utility methods.
  * @author bartosz.michalik@amartus.com
  */
-public class TapiUtils {
-    public static org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.service._interface.point.LayerProtocol toSipPN(Class<? extends LayerProtocolName> name) {
-        org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.service._interface.point.LayerProtocolBuilder builder
-                = new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.service._interface.point.LayerProtocolBuilder();
+public final class TapiUtils {
 
-        return builder.setLayerProtocolName(name).setLocalId(name.toString()).build();
+    private TapiUtils() {
     }
 
+    @SuppressWarnings("unchecked")
+    public static <T extends ServiceInterfacePointRef> T toSipRef(Uuid uuid, Class<T> clazz) {
+        if (ServiceInterfacePoint.class.isAssignableFrom(clazz)) {
+            return (T) new ServiceInterfacePointBuilder().setServiceInterfacePointId(uuid).build();
+        }
+        if (MappedServiceInterfacePoint.class.isAssignableFrom(clazz)) {
+            return (T) new MappedServiceInterfacePointBuilder().setServiceInterfacePointId(uuid).build();
+        }
+        return null;
+    }
 
-    public static org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.node.edge.point.LayerProtocol toNepPN(Class<? extends LayerProtocolName> name) {
-        org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.node.edge.point.LayerProtocolBuilder builder
-                = new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.topology.rev171113.node.edge.point.LayerProtocolBuilder();
+    public static NodeRef toNodeRef(Uuid nodeUuid) {
+        String topo = TapiConstants.PRESTO_ABSTRACT_NODE.equals(nodeUuid.getValue())
+                ? TapiConstants.PRESTO_EXT_TOPO : TapiConstants.PRESTO_SYSTEM_TOPO;
+        return toNodeRef(new Uuid(topo), nodeUuid);
+    }
 
-        return builder
-                .setLayerProtocolName(name)
-                .setLocalId(name.toString())
-                .setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
-                .setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL)
+    public static NodeRef toNodeRef(Uuid topoUuid, Uuid nodeUuid) {
+        return new IncludeNodeBuilder()
+                .setTopologyId(topoUuid)
+                .setNodeId(nodeUuid)
                 .build();
     }
 
-    public static List<LatencyCharacteristic> emptyTransferCost() {
-        return Collections.singletonList(new LatencyCharacteristicBuilder()
-                .setTrafficPropertyName("empty")
-                .setTrafficPropertyQueingLatency("n/a").build()
-        );
+    public static OwnedNodeEdgePointRef toSysNepRef(Uuid nodeUuid, Uuid nepUuid) {
+        return toNepRef(new Uuid(TapiConstants.PRESTO_SYSTEM_TOPO), nodeUuid, nepUuid);
     }
 
-    public static List<CostCharacteristic> emptyCostCharacteristic() {
-        CostCharacteristic cost = new CostCharacteristicBuilder()
-                .setCostName("empty")
-                .setCostAlgorithm("n/a")
-                .setCostValue("0")
+    public static OwnedNodeEdgePointRef toNepRef(Uuid topoUuid, Uuid nodeUuid, Uuid nepUuid) {
+        return new NodeEdgePointBuilder()
+                .setTopologyId(topoUuid)
+                .setNodeId(nodeUuid)
+                .setOwnedNodeEdgePointId(nepUuid)
                 .build();
-        return Collections.singletonList(cost);
     }
 }