Remove yang-test
[controller.git] / opendaylight / config / config-manager / src / main / java / org / opendaylight / controller / config / manager / impl / dependencyresolver / ModulesHolder.java
index 81cc34ac970f8540943b12cf1d45549329b95e46..1132f991d171def6652f42c490b0956d4ea634a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ * Copyright (c) 2013, 2017 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,
@@ -7,16 +7,6 @@
  */
 package org.opendaylight.controller.config.manager.impl.dependencyresolver;
 
-import org.opendaylight.controller.config.api.JmxAttribute;
-import org.opendaylight.controller.config.api.JmxAttributeValidationException;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.config.manager.impl.CommitInfo;
-import org.opendaylight.controller.config.manager.impl.TransactionIdentifier;
-import org.opendaylight.controller.config.spi.Module;
-import org.opendaylight.controller.config.spi.ModuleFactory;
-
-import javax.annotation.concurrent.GuardedBy;
-import javax.management.InstanceAlreadyExistsException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -25,11 +15,20 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import javax.annotation.concurrent.GuardedBy;
+import javax.management.InstanceAlreadyExistsException;
+import org.opendaylight.controller.config.api.JmxAttribute;
+import org.opendaylight.controller.config.api.JmxAttributeValidationException;
+import org.opendaylight.controller.config.api.ModuleIdentifier;
+import org.opendaylight.controller.config.manager.impl.CommitInfo;
+import org.opendaylight.controller.config.manager.impl.TransactionIdentifier;
+import org.opendaylight.controller.config.spi.Module;
+import org.opendaylight.controller.config.spi.ModuleFactory;
 
 /**
  * Represents modules to be committed.
  */
-class ModulesHolder {
+class ModulesHolder implements AutoCloseable {
     private final TransactionIdentifier transactionIdentifier;
     @GuardedBy("this")
     private final Map<ModuleIdentifier, ModuleInternalTransactionalInfo> commitMap = new HashMap<>();
@@ -37,45 +36,45 @@ class ModulesHolder {
     @GuardedBy("this")
     private final Set<ModuleInternalTransactionalInfo> unorderedDestroyedFromPreviousTransactions = new HashSet<>();
 
-    ModulesHolder(TransactionIdentifier transactionIdentifier) {
+    ModulesHolder(final TransactionIdentifier transactionIdentifier) {
         this.transactionIdentifier = transactionIdentifier;
     }
 
-
     public CommitInfo toCommitInfo() {
         List<DestroyedModule> orderedDestroyedFromPreviousTransactions = new ArrayList<>(
                 unorderedDestroyedFromPreviousTransactions.size());
         for (ModuleInternalTransactionalInfo toBeDestroyed : unorderedDestroyedFromPreviousTransactions) {
-            orderedDestroyedFromPreviousTransactions.add(toBeDestroyed
-                    .toDestroyedModule());
+            orderedDestroyedFromPreviousTransactions.add(toBeDestroyed.toDestroyedModule());
         }
         Collections.sort(orderedDestroyedFromPreviousTransactions);
-        return new CommitInfo(orderedDestroyedFromPreviousTransactions,
-                commitMap);
+        return new CommitInfo(orderedDestroyedFromPreviousTransactions, commitMap);
     }
 
-    private ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(
-            ModuleIdentifier moduleIdentifier,
-            JmxAttribute jmxAttributeForReporting) {
-        ModuleInternalTransactionalInfo moduleInternalTransactionalInfo = commitMap
-                .get(moduleIdentifier);
-        JmxAttributeValidationException.checkNotNull(
-                moduleInternalTransactionalInfo, "Module " + moduleIdentifier
-                        + "" + " not found in transaction " + transactionIdentifier,
+    private ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(final ModuleIdentifier moduleIdentifier,
+            final JmxAttribute jmxAttributeForReporting) {
+        ModuleInternalTransactionalInfo moduleInternalTransactionalInfo = commitMap.get(moduleIdentifier);
+        JmxAttributeValidationException.checkNotNull(moduleInternalTransactionalInfo,
+                "Module " + moduleIdentifier + "" + " not found in transaction " + transactionIdentifier,
                 jmxAttributeForReporting);
         return moduleInternalTransactionalInfo;
     }
 
-    public Module findModule(ModuleIdentifier moduleIdentifier,
-            JmxAttribute jmxAttributeForReporting) {
-        return findModuleInternalTransactionalInfo(moduleIdentifier,
-                jmxAttributeForReporting).getProxiedModule();
+    public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(
+            final ModuleIdentifier moduleIdentifier) {
+        ModuleInternalTransactionalInfo found = commitMap.get(moduleIdentifier);
+        if (found == null) {
+            throw new IllegalStateException("Not found:" + moduleIdentifier);
+        }
+        return found;
+    }
+
+    public Module findModule(final ModuleIdentifier moduleIdentifier, final JmxAttribute jmxAttributeForReporting) {
+        return findModuleInternalTransactionalInfo(moduleIdentifier, jmxAttributeForReporting).getProxiedModule();
     }
 
-    public ModuleFactory findModuleFactory(ModuleIdentifier moduleIdentifier,
-            JmxAttribute jmxAttributeForReporting) {
-        return findModuleInternalTransactionalInfo(moduleIdentifier,
-                jmxAttributeForReporting).getModuleFactory();
+    public ModuleFactory findModuleFactory(final ModuleIdentifier moduleIdentifier,
+            final JmxAttribute jmxAttributeForReporting) {
+        return findModuleInternalTransactionalInfo(moduleIdentifier, jmxAttributeForReporting).getModuleFactory();
     }
 
     public Map<ModuleIdentifier, Module> getAllModules() {
@@ -87,14 +86,11 @@ class ModulesHolder {
         return result;
     }
 
-    public void put(
-            ModuleInternalTransactionalInfo moduleInternalTransactionalInfo) {
-        commitMap.put(moduleInternalTransactionalInfo.getIdentifier(),
-                moduleInternalTransactionalInfo);
+    public void put(final ModuleInternalTransactionalInfo moduleInternalTransactionalInfo) {
+        commitMap.put(moduleInternalTransactionalInfo.getIdentifier(), moduleInternalTransactionalInfo);
     }
 
-    public ModuleInternalTransactionalInfo destroyModule(
-            ModuleIdentifier moduleIdentifier) {
+    public ModuleInternalTransactionalInfo destroyModule(final ModuleIdentifier moduleIdentifier) {
         ModuleInternalTransactionalInfo found = commitMap.remove(moduleIdentifier);
         if (found == null) {
             throw new IllegalStateException("Not found:" + moduleIdentifier);
@@ -105,23 +101,18 @@ class ModulesHolder {
         return found;
     }
 
-    public void assertNotExists(ModuleIdentifier moduleIdentifier)
-            throws InstanceAlreadyExistsException {
+    public void assertNotExists(final ModuleIdentifier moduleIdentifier) throws InstanceAlreadyExistsException {
         if (commitMap.containsKey(moduleIdentifier)) {
-            throw new InstanceAlreadyExistsException(
-                    "There is an instance registered with name " + moduleIdentifier);
+            throw new InstanceAlreadyExistsException("There is an instance registered with name " + moduleIdentifier);
         }
     }
 
-    public Collection<ModuleInternalTransactionalInfo> getAllInfos(){
+    public Collection<ModuleInternalTransactionalInfo> getAllInfos() {
         return commitMap.values();
     }
 
-    public ModuleInternalTransactionalInfo findModuleInternalTransactionalInfo(ModuleIdentifier moduleIdentifier) {
-        ModuleInternalTransactionalInfo found = commitMap.get(moduleIdentifier);
-        if (found == null) {
-            throw new IllegalStateException("Not found:" + moduleIdentifier);
-        }
-        return found;
+    @Override
+    public void close() {
+        unorderedDestroyedFromPreviousTransactions.clear();
     }
 }