BUG-1089: convert TopologyReader
[controller.git] / opendaylight / md-sal / compatibility / inventory-topology-compatibility / src / main / java / org / opendaylight / controller / md / compatibility / topology / TopologyReader.xtend
diff --git a/opendaylight/md-sal/compatibility/inventory-topology-compatibility/src/main/java/org/opendaylight/controller/md/compatibility/topology/TopologyReader.xtend b/opendaylight/md-sal/compatibility/inventory-topology-compatibility/src/main/java/org/opendaylight/controller/md/compatibility/topology/TopologyReader.xtend
deleted file mode 100644 (file)
index 6ebe20b..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.compatibility.topology
-
-import java.util.ArrayList
-import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider
-import org.opendaylight.controller.sal.core.Edge
-import org.opendaylight.controller.sal.core.NodeConnector
-import org.opendaylight.controller.switchmanager.ISwitchManager
-import org.opendaylight.controller.topologymanager.ITopologyManager
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.DestinationBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.link.attributes.SourceBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.LinkBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder
-import org.opendaylight.yangtools.yang.binding.DataObject
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-
-class TopologyReader implements RuntimeDataProvider {
-
-    @Property
-    var ISwitchManager switchManager;
-
-    @Property
-    var ITopologyManager topologyManager;
-
-    @Property
-    val TopologyKey topologyKey;
-
-    @Property
-    val InstanceIdentifier<Topology> topologyPath;
-
-    @Property
-    val extension TopologyMapping mapping;
-
-    new() {
-        _topologyKey = new TopologyKey(new TopologyId("compatibility:ad-sal"));
-        _topologyPath = InstanceIdentifier.builder(NetworkTopology).child(Topology, topologyKey).toInstance;
-        _mapping = new TopologyMapping(topologyKey, topologyPath);
-    }
-
-    override readConfigurationData(InstanceIdentifier<? extends DataObject> path) {
-
-        // Topology and Inventory are operational only
-        return null;
-    }
-
-    override readOperationalData(InstanceIdentifier<? extends DataObject> path) {
-        val type = path.targetType;
-        var DataObject data = null;
-        if (false == topologyPath.contains(path)) {
-            return null;
-        }
-        switch (type) {
-            case Topology:
-                data = readTopology(path as InstanceIdentifier<Topology>)
-            case Node:
-                data = readNode(path as InstanceIdentifier<Node>)
-            case TerminationPoint:
-                data = readTerminationPoint(path as InstanceIdentifier<TerminationPoint>)
-            case Link:
-                data = readLink(path as InstanceIdentifier<Link>)
-        }
-        return data;
-    }
-
-    def DataObject readLink(InstanceIdentifier<Link> identifier) {
-        val edge = identifier.toAdTopologyEdge();
-        val properties = topologyManager?.edges?.get(edge);
-
-        return constructLink(edge);
-    }
-
-    def DataObject readTerminationPoint(InstanceIdentifier<TerminationPoint> identifier) {
-        val nodeConnector = identifier.toAdTopologyNodeConnector();
-        return constructTerminationPoint(nodeConnector)
-    }
-
-    def DataObject readNode(InstanceIdentifier<Node> identifier) {
-        val node = identifier.toAdTopologyNode();
-        return constructNode(node);
-    }
-
-    def DataObject readTopology(InstanceIdentifier<Topology> identifier) {
-
-        //val nodeConnectors = switchManager.
-        val nodes = switchManager.nodes
-        val edges = topologyManager.edges
-
-        val nodeList = new ArrayList<Node>(nodes.size)
-        for (node : nodes) {
-            nodeList.add(constructNode(node))
-        }
-
-        val linkList = new ArrayList<Link>(edges.size)
-        for (edge : edges.keySet) {
-            linkList.add(constructLink(edge))
-        }
-
-        val it = new TopologyBuilder();
-        key = topologyKey
-        node = nodeList
-        link = linkList
-        return build()
-    }
-
-    def constructLink(Edge edge) {
-        val sourceNc = edge.tailNodeConnector
-        val destNc = edge.headNodeConnector
-
-        val it = new LinkBuilder()
-        key = edge.toTopologyLinkKey();
-        source = new SourceBuilder().setSourceNode(sourceNc.node.toTopologyNodeKey.nodeId).setSourceTp(
-            sourceNc.toTopologyTerminationPointKey.tpId).build()
-        destination = new DestinationBuilder().setDestNode(destNc.node.toTopologyNodeKey.nodeId).setDestTp(
-            destNc.toTopologyTerminationPointKey.tpId).build
-        return build()
-    }
-
-    def Node constructNode(org.opendaylight.controller.sal.core.Node node) {
-        val connectors = switchManager.getNodeConnectors(node)
-
-        val tpList = new ArrayList<TerminationPoint>(connectors.size)
-        for (connector : connectors) {
-            tpList.add(constructTerminationPoint(connector));
-        }
-
-        val it = new NodeBuilder()
-        key = node.toTopologyNodeKey();
-        terminationPoint = tpList
-        return build();
-    }
-
-    def TerminationPoint constructTerminationPoint(NodeConnector connector) {
-        val it = new TerminationPointBuilder()
-        key = connector.toTopologyTerminationPointKey
-        return build();
-    }
-
-}