Unified Two Phase Commit implementation, fixed BA to BI connection
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / impl / HashMapDataStore.xtend
@@ -1,10 +1,7 @@
-package org.opendaylight.controller.sal.binding.impl
+package org.opendaylight.controller.sal.dom.broker.impl
 
 import org.opendaylight.controller.md.sal.common.api.data.DataReader
-import org.opendaylight.controller.sal.binding.api.data.RuntimeDataProvider
 import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
-import org.opendaylight.yangtools.yang.binding.DataObject
 import org.opendaylight.controller.md.sal.common.api.data.DataModification
 import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction
 import org.opendaylight.yangtools.yang.common.RpcResult
@@ -12,58 +9,58 @@ import java.util.Map
 import java.util.concurrent.ConcurrentHashMap
 import org.opendaylight.controller.sal.common.util.Rpcs
 import java.util.Collections
+import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier
+import org.opendaylight.yangtools.yang.data.api.CompositeNode
 
 class HashMapDataStore //
 implements //
-RuntimeDataProvider, DataCommitHandler<InstanceIdentifier<? extends DataObject>, DataObject> {
+DataReader<InstanceIdentifier, CompositeNode>, DataCommitHandler<InstanceIdentifier, CompositeNode> {
 
-    val Map<InstanceIdentifier<? extends DataObject>,DataObject> configuration = new ConcurrentHashMap();
-    val Map<InstanceIdentifier<? extends DataObject>,DataObject> operational = new ConcurrentHashMap();
+    val Map<InstanceIdentifier, CompositeNode> configuration = new ConcurrentHashMap();
+    val Map<InstanceIdentifier, CompositeNode> operational = new ConcurrentHashMap();
 
-
-    override readConfigurationData(InstanceIdentifier<? extends DataObject> path) {
+    override readConfigurationData(InstanceIdentifier path) {
         configuration.get(path);
     }
 
-    override readOperationalData(InstanceIdentifier<? extends DataObject> path) {
+    override readOperationalData(InstanceIdentifier path) {
         operational.get(path);
     }
 
-    override requestCommit(DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification) {
-        return new HashMapDataStoreTransaction(modification,this);
+    override requestCommit(DataModification<InstanceIdentifier, CompositeNode> modification) {
+        return new HashMapDataStoreTransaction(modification, this);
     }
-    
+
     def RpcResult<Void> rollback(HashMapDataStoreTransaction transaction) {
-        return Rpcs.getRpcResult(true,null,Collections.emptySet);
+        return Rpcs.getRpcResult(true, null, Collections.emptySet);
     }
-    
+
     def RpcResult<Void> finish(HashMapDataStoreTransaction transaction) {
         val modification = transaction.modification;
         configuration.putAll(modification.updatedConfigurationData);
         operational.putAll(modification.updatedOperationalData);
-        
-        for(removal : modification.removedConfigurationData) {
+
+        for (removal : modification.removedConfigurationData) {
             configuration.remove(removal);
         }
-        for(removal : modification.removedOperationalData) {
+        for (removal : modification.removedOperationalData) {
             operational.remove(removal);
         }
-        return Rpcs.getRpcResult(true,null,Collections.emptySet);
+        return Rpcs.getRpcResult(true, null, Collections.emptySet);
     }
 
 }
 
 class HashMapDataStoreTransaction implements // 
-DataCommitTransaction<InstanceIdentifier<? extends DataObject>, DataObject> {
+DataCommitTransaction<InstanceIdentifier, CompositeNode> {
     @Property
-    val DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modification
+    val DataModification<InstanceIdentifier, CompositeNode> modification
 
     @Property
     val HashMapDataStore datastore;
-    
-    
+
     new(
-        DataModification<InstanceIdentifier<? extends DataObject>, DataObject> modify,
+        DataModification<InstanceIdentifier, CompositeNode> modify,
         HashMapDataStore store
     ) {
         _modification = modify;