2 * Copyright (c) 2013 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;
10 import java.util.EventListener;
11 import java.util.concurrent.Future;
12 import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
13 import org.opendaylight.controller.md.sal.common.api.data.DataModification;
14 import org.opendaylight.yangtools.concepts.ListenerRegistration;
15 import org.opendaylight.yangtools.yang.binding.DataObject;
16 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
17 import org.opendaylight.yangtools.yang.common.RpcResult;
20 * @deprecated Replaced by more specific transaction types. Please use
21 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newReadOnlyTransaction()},
22 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newReadWriteTransaction()}
24 * {@link org.opendaylight.controller.md.sal.binding.api.DataBroker#newWriteOnlyTransaction()}.
27 public interface DataModificationTransaction extends
28 DataModification<InstanceIdentifier<? extends DataObject>, DataObject> {
30 * Returns an unique identifier for transaction
34 Object getIdentifier();
37 * Initiates a two-phase commit of candidate data.
40 * The Consumer could initiate a commit of candidate data
43 * The successful commit changes the state of the system and may affect
47 * The effects of successful commit of data are described in the
48 * specifications and YANG models describing the Provider components
49 * of controller. It is assumed that the Consumer has an understanding
53 * @return Result of the commit, containing success information or list of
54 * encountered errors, if commit was not successful.
57 Future<RpcResult<TransactionStatus>> commit();
60 * Register a listener for transaction
65 ListenerRegistration<DataTransactionListener> registerListener(DataTransactionListener listener);
68 * Listener for transaction state changes
70 interface DataTransactionListener extends EventListener {
72 * Callback is invoked after each transaction status change.
74 * @param transaction Transaction
75 * @param status New status
77 void onStatusUpdated(DataModificationTransaction transaction,TransactionStatus status);