2 * Copyright (c) 2015 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
9 package org.opendaylight.openflowplugin.api.openflow.device;
11 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
12 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
13 import org.opendaylight.yangtools.yang.binding.DataObject;
14 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
17 * Handles operations with transactions
19 public interface TxFacade {
22 * Method creates put operation using provided data in underlying transaction chain.
24 <T extends DataObject> void writeToTransaction(final LogicalDatastoreType store, final InstanceIdentifier<T> path,
25 final T data) throws Exception;
28 * Method creates put operation using provided data in underlying transaction chain and flag to create missing parents
29 * WARNING: This method is slow because of additional reading cost. Use it only if you really need to create parents.
31 <T extends DataObject> void writeToTransactionWithParentsSlow(final LogicalDatastoreType store, final InstanceIdentifier<T> path,
32 final T data) throws Exception;
35 * Method creates delete operation for provided path in underlying transaction chain.
37 <T extends DataObject> void addDeleteToTxChain(final LogicalDatastoreType store, final InstanceIdentifier<T> path) throws Exception;
40 * Method submits Transaction to DataStore.
41 * @return transaction is submitted successfully
43 boolean submitTransaction();
46 * Method exposes transaction created for device
47 * represented by this context. This read only transaction has a fresh dataStore snapshot.
48 * There is a possibility to get different data set from DataStore
49 * as write transaction in this context.
50 * @return readOnlyTransaction - Don't forget to close it after finish reading
52 ReadOnlyTransaction getReadTransaction();