*/
package org.opendaylight.controller.md.sal.common.impl.service;
-import java.util.concurrent.Future;
-
+import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
-import org.opendaylight.controller.md.sal.common.impl.AbstractDataModification;
-import org.opendaylight.yangtools.concepts.Path;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@SuppressWarnings("all")
-public abstract class AbstractDataTransaction<P extends Path<P>, D extends Object> extends
- AbstractDataModification<P, D> {
- private final static Logger LOG = LoggerFactory.getLogger(AbstractDataTransaction.class);
-
- private final Object identifier;
-
- @Override
- public Object getIdentifier() {
- return this.identifier;
- }
-
- private TransactionStatus status;
-
- private final AbstractDataBroker<P, D, ? extends Object> broker;
-
- protected AbstractDataTransaction(final Object identifier,
- final AbstractDataBroker<P, D, ? extends Object> dataBroker) {
- super(dataBroker);
- this.identifier = identifier;
- this.broker = dataBroker;
- this.status = TransactionStatus.NEW;
- AbstractDataTransaction.LOG.debug("Transaction {} Allocated.", identifier);
- }
-
- @Override
- public Future<RpcResult<TransactionStatus>> commit() {
- return this.broker.commit(this);
- }
-
- @Override
- public D readConfigurationData(final P path) {
- final D local = getUpdatedConfigurationData().get(path);
- if (local != null) {
- return local;
- }
- return this.broker.readConfigurationData(path);
- }
-
- @Override
- public D readOperationalData(final P path) {
- final D local = this.getUpdatedOperationalData().get(path);
- if (local != null) {
- return local;
- }
- return this.broker.readOperationalData(path);
- }
-
-
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((identifier == null) ? 0 : identifier.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- AbstractDataTransaction other = (AbstractDataTransaction) obj;
- if (identifier == null) {
- if (other.identifier != null)
- return false;
- } else if (!identifier.equals(other.identifier))
- return false;
- return true;
- }
-
- @Override
- public TransactionStatus getStatus() {
- return this.status;
- }
-
- protected abstract void onStatusChange(final TransactionStatus status);
+@Deprecated
+public abstract class AbstractDataTransaction {
+ private static final Logger LOG = LoggerFactory.getLogger(AbstractDataTransaction.class);
+ private static final ListenableFuture<RpcResult<TransactionStatus>> SUCCESS_FUTURE =
+ Futures.immediateFuture(RpcResultBuilder.success(TransactionStatus.COMMITED).build());
- public void changeStatus(final TransactionStatus status) {
- Object _identifier = this.getIdentifier();
- AbstractDataTransaction.LOG
- .debug("Transaction {} transitioned from {} to {}", _identifier, this.status, status);
- this.status = status;
- this.onStatusChange(status);
+ public static ListenableFuture<RpcResult<TransactionStatus>> convertToLegacyCommitFuture(final CheckedFuture<Void,TransactionCommitFailedException> from) {
+ return Futures.transformAsync(from, input -> SUCCESS_FUTURE);
}
}