Topology manager small sonar issues 25/42225/3
authorAndrej Leitner <anleitne@cisco.com>
Thu, 21 Jul 2016 09:31:51 +0000 (11:31 +0200)
committerAndrej Leitner <anleitne@cisco.com>
Mon, 25 Jul 2016 08:16:33 +0000 (08:16 +0000)
(+ optimized imports)

Change-Id: I123ebdc38a6955b6a8677c78dda97a396108d29c
Signed-off-by: Andrej Leitner <anleitne@cisco.com>
applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableNodeMapping.java
applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporter.java
applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImpl.java
applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/OperationProcessor.java
applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/TopologyManagerUtil.java
applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/DataChangeListenerBase.java
applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/FlowCapableTopologyExporterTest.java
applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/NodeChangeListenerImplTest.java
applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/OperationProcessorTest.java
applications/topology-manager/src/test/java/org/opendaylight/openflowplugin/applications/topology/manager/TerminationPointChangeListenerImplTest.java

index f76f650a0a22abb96bd6c5ffe2672fa684af4774..d2e1550505de9c130888dff0bc3f824138032c36 100644 (file)
@@ -66,35 +66,35 @@ public final class FlowCapableNodeMapping {
 
     public static org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node toTopologyNode(
             final NodeId nodeId, final NodeRef invNodeRef) {
-        return new NodeBuilder() //
-                .setNodeId(nodeId) //
-                .addAugmentation(InventoryNode.class, new InventoryNodeBuilder() //
-                        .setInventoryNodeRef(invNodeRef) //
-                        .build()) //
+        return new NodeBuilder()
+                .setNodeId(nodeId)
+                .addAugmentation(InventoryNode.class, new InventoryNodeBuilder()
+                        .setInventoryNodeRef(invNodeRef)
+                        .build())
                 .build();
     }
 
     public static TerminationPoint toTerminationPoint(final TpId id, final NodeConnectorRef invNodeConnectorRef) {
-        return new TerminationPointBuilder() //
-                .setTpId(id) //
-                .addAugmentation(InventoryNodeConnector.class, new InventoryNodeConnectorBuilder() //
-                        .setInventoryNodeConnectorRef(invNodeConnectorRef) //
-                        .build()) //
+        return new TerminationPointBuilder()
+                .setTpId(id)
+                .addAugmentation(InventoryNodeConnector.class, new InventoryNodeConnectorBuilder()
+                    .setInventoryNodeConnectorRef(invNodeConnectorRef)
+                    .build())
                 .build();
     }
 
     public static Link toTopologyLink(
             final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.Link link) {
-        return new LinkBuilder() //
-                .setSource(new SourceBuilder() //
-                        .setSourceNode(toTopologyNodeId(link.getSource())) //
-                        .setSourceTp(toTerminationPointId(link.getSource())) //
-                        .build()) //
-                .setDestination(new DestinationBuilder() //
-                        .setDestNode(toTopologyNodeId(link.getDestination())) //
-                        .setDestTp(toTerminationPointId(link.getDestination())) //
-                        .build()) //
-                .setLinkId(new LinkId(getNodeConnectorKey(link.getSource()).getId())) //
+        return new LinkBuilder()
+                .setSource(new SourceBuilder()
+                        .setSourceNode(toTopologyNodeId(link.getSource()))
+                        .setSourceTp(toTerminationPointId(link.getSource()))
+                        .build())
+                .setDestination(new DestinationBuilder()
+                        .setDestNode(toTopologyNodeId(link.getDestination()))
+                        .setDestTp(toTerminationPointId(link.getDestination()))
+                        .build())
+                .setLinkId(new LinkId(getNodeConnectorKey(link.getSource()).getId()))
                 .build();
     }
 }
index cb39795b86297250336915a7e0f90445fd027446..cb7d973c18793978f57edd1c9f23b3bc7a45396a 100644 (file)
@@ -115,8 +115,6 @@ class FlowCapableTopologyExporter implements FlowTopologyDiscoveryListener {
         return tpPath(toTopologyNodeId(invNodeKey.getId()), toTerminationPointId(invNodeConnectorKey.getId()));
     }
 
-
-
     private InstanceIdentifier<Node> getNodePath(final NodeId nodeId) {
         return iiToTopology.child(Node.class, new NodeKey(nodeId));
     }
index 653e2bed290fa8bf5c3d6b8e2ce27e7375ea577f..b0ed434bb4d5449c1c02f69396c4edd390845fbb 100644 (file)
@@ -45,7 +45,7 @@ public class NodeChangeListenerImpl extends DataChangeListenerImpl {
     }
 
     /**
-     * @param removedPaths
+     * @param removedNodes
      */
     private void processRemovedNode(final Set<InstanceIdentifier<?>> removedNodes) {
         for (InstanceIdentifier<?> removedNode : removedNodes) {
@@ -66,17 +66,17 @@ public class NodeChangeListenerImpl extends DataChangeListenerImpl {
         }
     }
 
-    /**
-     * @param updatedData
-     */
-    // private void processUpdatedNode(Map<InstanceIdentifier<?>, DataObject> updatedData) {
-    // //TODO: only node id is used from incomming data object.
-    // //if it is changed what should happen? Listener is on FlocCapableNode so change
-    // //of node id (only data which are used) isn't caught.
-    // }
+//    /**
+//     * @param updatedData
+//     */
+//     private void processUpdatedNode(Map<InstanceIdentifier<?>, DataObject> updatedData) {
+//         //TODO: only node id is used from incoming data object.
+//         //if it is changed what should happen? Listener is on FlowCapableNode so change
+//         //of node id (only data which are used) isn't caught.
+//     }
 
     /**
-     * @param createdData
+     * @param addedDatas
      */
     private void processAddedNode(final Map<InstanceIdentifier<?>, DataObject> addedDatas) {
         for (Entry<InstanceIdentifier<?>, DataObject> addedData : addedDatas.entrySet()) {
@@ -97,7 +97,7 @@ public class NodeChangeListenerImpl extends DataChangeListenerImpl {
     /**
      * @param nodeIdInTopology
      * @param iiToNodeInInventory
-     * @return
+     * @return Node
      */
     private static org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node prepareTopologyNode(final NodeId nodeIdInTopology, final InstanceIdentifier<?> iiToNodeInInventory) {
         final InventoryNode inventoryNode = new InventoryNodeBuilder()
index 96365a338868467d728dcd204d384633be24c106..bbfae52b84910b179fe182d9b3fa345a0ef90934 100644 (file)
@@ -77,16 +77,7 @@ public final class OperationProcessor implements AutoCloseable, Runnable, Transa
                     } while (op != null);
 
                     LOG.debug("Processed {} operations, submitting transaction", ops);
-
-                    try {
-                        tx.submit().checkedGet();
-                    } catch (final TransactionCommitFailedException e) {
-                        LOG.warn("Stat DataStoreOperation unexpected State!", e);
-                        transactionChain.close();
-                        transactionChain = dataBroker.createTransactionChain(this);
-                        cleanDataStoreOperQueue();
-                    }
-
+                    submitTransaction(tx);
                 } catch (final IllegalStateException e) {
                     LOG.warn("Stat DataStoreOperation unexpected State!", e);
                     transactionChain.close();
@@ -94,7 +85,7 @@ public final class OperationProcessor implements AutoCloseable, Runnable, Transa
                     cleanDataStoreOperQueue();
                 } catch (final InterruptedException e) {
                     // This should mean we're shutting down.
-                    LOG.debug("Stat Manager DS Operation thread interupted!", e);
+                    LOG.debug("Stat Manager DS Operation thread interrupted!", e);
                     finishing = true;
                 } catch (final Exception e) {
                     LOG.warn("Stat DataStore Operation executor fail!", e);
@@ -104,6 +95,17 @@ public final class OperationProcessor implements AutoCloseable, Runnable, Transa
         cleanDataStoreOperQueue();
     }
 
+    private void submitTransaction(ReadWriteTransaction tx) {
+        try {
+            tx.submit().checkedGet();
+        } catch (final TransactionCommitFailedException e) {
+            LOG.warn("Stat DataStoreOperation unexpected State!", e);
+            transactionChain.close();
+            transactionChain = dataBroker.createTransactionChain(this);
+            cleanDataStoreOperQueue();
+        }
+    }
+
     private void cleanDataStoreOperQueue() {
         while (!queue.isEmpty()) {
             queue.poll();
index e380c6af6a279e8154848033cc1166de43c8e812..96dd36e582958688b83e6d2acb4373beb5caab13 100644 (file)
@@ -25,6 +25,8 @@ public class TopologyManagerUtil {
 
     private static final Logger LOG = LoggerFactory.getLogger(TopologyManagerUtil.class);
 
+    private TopologyManagerUtil() {}
+
     static void removeAffectedLinks(final NodeId id, final ReadWriteTransaction transaction, InstanceIdentifier<Topology> topology) {
         Optional<Topology> topologyOptional = Optional.absent();
         try {
index e88e27a7c0f6b656dc415404fa3e6e40df36a9c0..0f8a35e89ffe0032742c9bcd4a46a28efe046f0b 100644 (file)
@@ -9,27 +9,28 @@ package org.opendaylight.openflowplugin.applications.topology.manager;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doReturn;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import org.junit.After;
+import org.junit.Before;
 import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.junit.After;
-import org.junit.Before;
-import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
-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.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.flow.capable.port.StateBuilder;
+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.network.topology.Topology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
index e3e669adc9ed1b8924c9e4c9645732db2c2aa6f1..883d0722f0803bce71b7c06bc8618501a7fb76ba 100644 (file)
@@ -8,11 +8,27 @@
 
 package org.opendaylight.openflowplugin.applications.topology.manager;
 
-import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.*;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.yangtools.yang.binding.DataObject;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newDestTp;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newInvNodeConnKey;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newInvNodeKey;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newLink;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newNodeConnID;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newSourceTp;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setupStubbedSubmit;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.waitForSubmit;
+
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -22,10 +38,9 @@ import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
-import org.opendaylight.openflowplugin.applications.topology.manager.FlowCapableTopologyExporter;
-import org.opendaylight.openflowplugin.applications.topology.manager.OperationProcessor;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkDiscoveredBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.LinkRemovedBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
@@ -36,17 +51,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 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.LinkKey;
+import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
 
 public class FlowCapableTopologyExporterTest {
 
index 2c8a2601300444412870e32b302ef7b1bb8958d6..bb24ce44353f80a5fc1897fad72b22675a3797e0 100644 (file)
@@ -13,11 +13,17 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.*;
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode;
-import org.opendaylight.yangtools.yang.binding.DataObject;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.assertDeletedIDs;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newDestNode;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newInvNodeKey;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newLink;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newSourceNode;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setReadFutureAsync;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setupStubbedDeletes;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setupStubbedSubmit;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.verifyMockTx;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.waitForDeletes;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.waitForSubmit;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
@@ -31,7 +37,9 @@ import org.mockito.ArgumentCaptor;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 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;
@@ -39,6 +47,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 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.NodeKey;
+import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
index 8f46f13128f7b1bcad3176b2935981ecfdb923c9..f495b840dd2606e59f430e4e7f2a6eb120e84034 100644 (file)
@@ -14,11 +14,19 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.*;
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector;
-import org.opendaylight.yangtools.yang.binding.DataObject;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.assertDeletedIDs;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newDestTp;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newInvNodeConnKey;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newInvNodeKey;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newLink;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newNodeConnID;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.newSourceTp;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setReadFutureAsync;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setupStubbedDeletes;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.setupStubbedSubmit;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.verifyMockTx;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.waitForDeletes;
+import static org.opendaylight.openflowplugin.applications.topology.manager.TestUtils.waitForSubmit;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
@@ -32,6 +40,8 @@ import org.mockito.ArgumentCaptor;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.topology.inventory.rev131030.InventoryNodeConnector;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
@@ -42,6 +52,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 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.TerminationPointKey;
+import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**