Tracing Transaction wrappers delegate equals/hashCode/equals
[mdsal.git] / dom-impl / src / main / java / org / opendaylight / controller / md / sal / trace / dom / impl / TracingTransactionChain.java
index c8f4539cc7ba65353946a993f585a276bf53086b..b6f2fe0f9b6add0fea5e78f7f0bbec692d6a3916 100644 (file)
@@ -29,10 +29,11 @@ class TracingTransactionChain extends AbstractCloseTracked<TracingTransactionCha
         this.delegate = Objects.requireNonNull(delegate);
         this.tracingBroker = Objects.requireNonNull(tracingBroker);
 
-        final boolean isDebugging = transactionChainsRegistry.isDebugContextEnabled();
-        this.readOnlyTransactionsRegistry  = new CloseTrackedRegistry<>(this, "newReadOnlyTransaction", isDebugging);
-        this.writeTransactionsRegistry     = new CloseTrackedRegistry<>(this, "newWriteOnlyTransaction", isDebugging);
-        this.readWriteTransactionsRegistry = new CloseTrackedRegistry<>(this, "newReadWriteTransaction", isDebugging);
+        final boolean isDebug = transactionChainsRegistry.isDebugContextEnabled();
+        String anchor = "TransactionChain@" + Integer.toHexString(hashCode());
+        this.readOnlyTransactionsRegistry  = new CloseTrackedRegistry<>(anchor, "newReadOnlyTransaction()", isDebug);
+        this.writeTransactionsRegistry     = new CloseTrackedRegistry<>(anchor, "newWriteOnlyTransaction()", isDebug);
+        this.readWriteTransactionsRegistry = new CloseTrackedRegistry<>(anchor, "newReadWriteTransaction()", isDebug);
     }
 
     @Override
@@ -60,4 +61,34 @@ class TracingTransactionChain extends AbstractCloseTracked<TracingTransactionCha
         super.removeFromTrackedRegistry();
     }
 
+    public CloseTrackedRegistry<TracingReadOnlyTransaction> getReadOnlyTransactionsRegistry() {
+        return readOnlyTransactionsRegistry;
+    }
+
+    public CloseTrackedRegistry<TracingReadWriteTransaction> getReadWriteTransactionsRegistry() {
+        return readWriteTransactionsRegistry;
+    }
+
+    public CloseTrackedRegistry<TracingWriteTransaction> getWriteTransactionsRegistry() {
+        return writeTransactionsRegistry;
+    }
+
+
+    // https://jira.opendaylight.org/browse/CONTROLLER-1792
+
+    @Override
+    public final boolean equals(Object object) {
+        return object == this || delegate.equals(object);
+    }
+
+    @Override
+    public final int hashCode() {
+        return delegate.hashCode();
+    }
+
+    @Override
+    public final String toString() {
+        return getClass().getName() + "; delegate=" + delegate;
+    }
+
 }