1 package org.opendaylight.md.controller.topology.manager
3 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey
4 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef
5 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef
10 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.node.TerminationPoint
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated
12 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.node.TerminationPointBuilder
13 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.node.TerminationPointKey
14 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.TpId
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId
16 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.NodeId
17 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.NodeBuilder
18 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.link.attributes.SourceBuilder
19 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.link.attributes.DestinationBuilder
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.LinkBuilder
21 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.network.topology.topology.LinkKey
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev130712.LinkId
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeBuilder
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnectorBuilder
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode
29 class FlowCapableNodeMapping {
31 static def NodeKey getNodeKey(NodeRef ref) {
32 (ref?.value?.path?.get(1) as IdentifiableItem<Node,NodeKey>).key
35 static def NodeKey getNodeKey(NodeConnectorRef ref) {
36 (ref?.value?.path?.get(1) as IdentifiableItem<Node,NodeKey>).key
39 static def NodeConnectorKey getNodeConnectorKey(NodeConnectorRef ref) {
40 (ref?.value?.path?.get(2) as IdentifiableItem<NodeConnector,NodeConnectorKey>).key
43 static def NodeId toToplogyNodeId(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId nodeId) {
44 return new NodeId(nodeId);
47 static def toTerminationPointId(NodeConnectorId id) {
51 static def toTopologyNode(NodeId nodeId,NodeRef invNodeRef) {
52 val nb = new NodeBuilder();
54 val inb = new InventoryNodeBuilder
55 inb.setInventoryNodeRef(invNodeRef)
56 nb.addAugmentation(InventoryNode,inb.build)
60 static def toTerminationPoint(TpId id, NodeConnectorRef invNodeConnectorRef) {
61 val tpb = new TerminationPointBuilder
63 val incb = new InventoryNodeConnectorBuilder
64 incb.setInventoryNodeConnectorRef(invNodeConnectorRef)
65 tpb.addAugmentation(InventoryNodeConnector,incb.build())
69 static def toTopologyLink(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.Link link) {
70 val sb = new SourceBuilder();
71 sb.setSourceNode(link.source.nodeKey.id.toToplogyNodeId)
72 sb.setSourceTp(link.source.nodeConnectorKey.id.toTerminationPointId)
73 val db = new DestinationBuilder();
74 db.setDestNode(link.destination.nodeKey.id.toToplogyNodeId)
75 db.setDestTp(link.destination.nodeConnectorKey.id.toTerminationPointId)
76 val lb = new LinkBuilder();
77 lb.setSource(sb.build())
78 lb.setDestination(db.build());
79 lb.setLinkId(new LinkId(lb.source.sourceTp.value))