2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.sal.binding.api.data;
12 import java.util.concurrent.Future;
14 import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
15 import org.opendaylight.yangtools.concepts.Delegator;
16 import org.opendaylight.yangtools.concepts.ListenerRegistration;
17 import org.opendaylight.yangtools.yang.binding.DataObject;
18 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
19 import org.opendaylight.yangtools.yang.common.RpcResult;
21 import com.google.common.base.Preconditions;
24 * Synchronized wrapper for DataModificationTransaction.
26 * To get instance of synchronized wrapper use {@link #from(DataModificationTransaction)}
28 * @deprecated Replaced by more specific transaction types. Please use
29 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newReadOnlyTransaction(),
30 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newReadWriteTransaction()
32 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newWriteOnlyTransaction().
36 public final class SynchronizedTransaction implements DataModificationTransaction,Delegator<DataModificationTransaction> {
38 private final DataModificationTransaction delegate;
40 private SynchronizedTransaction(final DataModificationTransaction delegate) {
41 this.delegate = delegate;
45 * Returns synchronized wrapper on supplied transaction.
47 * @param transaction Transaction for which synchronized wrapper should be created.
48 * @return Synchronized wrapper over transaction.
50 public static final SynchronizedTransaction from(final DataModificationTransaction transaction) {
51 Preconditions.checkArgument(transaction != null, "Transaction must not be null.");
52 if (transaction instanceof SynchronizedTransaction) {
53 return (SynchronizedTransaction) transaction;
55 return new SynchronizedTransaction(transaction);
59 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getCreatedOperationalData() {
60 return delegate.getCreatedOperationalData();
64 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getCreatedConfigurationData() {
65 return delegate.getCreatedConfigurationData();
69 public synchronized DataObject readOperationalData(final InstanceIdentifier<? extends DataObject> path) {
70 return delegate.readOperationalData(path);
74 public synchronized TransactionStatus getStatus() {
75 return delegate.getStatus();
79 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getUpdatedOperationalData() {
80 return delegate.getUpdatedOperationalData();
84 public synchronized Object getIdentifier() {
85 return delegate.getIdentifier();
89 public synchronized DataObject readConfigurationData(final InstanceIdentifier<? extends DataObject> path) {
90 return delegate.readConfigurationData(path);
94 public synchronized Future<RpcResult<TransactionStatus>> commit() {
95 return delegate.commit();
99 public synchronized void putOperationalData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
100 delegate.putOperationalData(path, data);
104 public synchronized void putConfigurationData(final InstanceIdentifier<? extends DataObject> path, final DataObject data) {
105 delegate.putConfigurationData(path, data);
109 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getUpdatedConfigurationData() {
110 return delegate.getUpdatedConfigurationData();
114 public synchronized void removeOperationalData(final InstanceIdentifier<? extends DataObject> path) {
115 delegate.removeOperationalData(path);
119 public synchronized void removeConfigurationData(final InstanceIdentifier<? extends DataObject> path) {
120 delegate.removeConfigurationData(path);
124 public synchronized Set<InstanceIdentifier<? extends DataObject>> getRemovedConfigurationData() {
125 return delegate.getRemovedConfigurationData();
129 public synchronized Set<InstanceIdentifier<? extends DataObject>> getRemovedOperationalData() {
130 return delegate.getRemovedOperationalData();
134 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getOriginalConfigurationData() {
135 return delegate.getOriginalConfigurationData();
139 public synchronized ListenerRegistration<DataTransactionListener> registerListener(final DataTransactionListener listener) {
140 return delegate.registerListener(listener);
144 public synchronized Map<InstanceIdentifier<? extends DataObject>, DataObject> getOriginalOperationalData() {
145 return delegate.getOriginalOperationalData();
149 public synchronized DataModificationTransaction getDelegate() {
154 public int hashCode() {
155 final int prime = 31;
157 result = prime * result + ((delegate == null) ? 0 : delegate.hashCode());
162 public boolean equals(final Object obj) {
169 if (getClass() != obj.getClass()){
172 SynchronizedTransaction other = (SynchronizedTransaction) obj;
173 if (delegate == null) {
174 if (other.delegate != null) {
177 } else if (!delegate.equals(other.delegate)) {