1 package org.opendaylight.controller.sal.binding.api.data;
5 import java.util.concurrent.Future;
7 import org.opendaylight.yangtools.yang.binding.DataObject;
8 import org.opendaylight.yangtools.yang.binding.Identifiable;
9 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
10 import org.opendaylight.yangtools.yang.common.RpcResult;
12 public interface DataModification {
15 * Returns transaction identifier
17 * @return Transaction identifier
19 Object getIdentifier();
21 TransactionStatus getStatus();
24 * Reads data from overal data storage which includes
25 * runtime and configuration data.
30 DataObject read(InstanceIdentifier path);
33 * Reads data from configuration data storage.
35 * @param path Instance identifier which
38 DataObject readConfiguration(InstanceIdentifier path);
40 void putRuntimeData(InstanceIdentifier path,DataObject data);
41 void putConfigurationData(InstanceIdentifier path,DataObject data);
42 void removeRuntimeData(InstanceIdentifier path);
43 void removeConfigurationData(InstanceIdentifier path);
46 Map<InstanceIdentifier,DataObject> getRuntimeDataUpdates();
47 Map<InstanceIdentifier,DataObject> getConfigurationDataUpdates();
48 Set<InstanceIdentifier> getRemovals();
49 Set<InstanceIdentifier> getConfigurationRemovals();
52 * Commits transaction to be stored in global data repository.
55 * @return Future object which returns RpcResult with TransactionStatus
56 * when transaction is processed by store.
58 Future<RpcResult<TransactionStatus>> commit();
60 void registerListener(DataTransactionListener listener);
61 void unregisterListener(DataTransactionListener listener);
63 public enum TransactionStatus {
72 public interface DataTransactionListener {
74 void onStatusUpdated(DataModification transaction,TransactionStatus status);