X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FNetconfDeviceDataBroker.java;h=fabc428331b00778778f35e73a4a82cb4952e885;hb=a0833fb27c69d919a4420c6ecbd11a3b2a1119cb;hp=803b8ca524722019415ef5bb4d1f33c0d3b8cea6;hpb=476cc2164a06b77e7dd38859e0124d82cd2c8847;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceDataBroker.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceDataBroker.java index 803b8ca524..fabc428331 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceDataBroker.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceDataBroker.java @@ -5,22 +5,19 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.netconf.sal.connect.netconf.sal; import com.google.common.base.Preconditions; -import java.util.Collections; -import java.util.Map; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBrokerExtension; -import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMDataBrokerExtension; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.mdsal.dom.api.DOMTransactionChain; +import org.opendaylight.mdsal.dom.api.DOMTransactionChainListener; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; import org.opendaylight.netconf.sal.connect.netconf.sal.tx.ReadOnlyTx; import org.opendaylight.netconf.sal.connect.netconf.sal.tx.ReadWriteTx; @@ -30,18 +27,17 @@ import org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteCandidateTx; import org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteRunningTx; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; public final class NetconfDeviceDataBroker implements DOMDataBroker { private final RemoteDeviceId id; private final NetconfBaseOps netconfOps; - private final boolean rollbackSupport; private final boolean candidateSupported; private final boolean runningWritable; + private boolean isLockAllowed = true; + public NetconfDeviceDataBroker(final RemoteDeviceId id, final SchemaContext schemaContext, final DOMRpcService rpc, final NetconfSessionPreferences netconfSessionPreferences) { this.id = id; @@ -57,43 +53,40 @@ public final class NetconfDeviceDataBroker implements DOMDataBroker { } @Override - public DOMDataReadOnlyTransaction newReadOnlyTransaction() { + public DOMDataTreeReadTransaction newReadOnlyTransaction() { return new ReadOnlyTx(netconfOps, id); } @Override - public DOMDataReadWriteTransaction newReadWriteTransaction() { + public DOMDataTreeReadWriteTransaction newReadWriteTransaction() { return new ReadWriteTx(newReadOnlyTransaction(), newWriteOnlyTransaction()); } @Override - public DOMDataWriteTransaction newWriteOnlyTransaction() { + public DOMDataTreeWriteTransaction newWriteOnlyTransaction() { if (candidateSupported) { if (runningWritable) { - return new WriteCandidateRunningTx(id, netconfOps, rollbackSupport); + return new WriteCandidateRunningTx(id, netconfOps, rollbackSupport, isLockAllowed); } else { - return new WriteCandidateTx(id, netconfOps, rollbackSupport); + return new WriteCandidateTx(id, netconfOps, rollbackSupport, isLockAllowed); } } else { - return new WriteRunningTx(id, netconfOps, rollbackSupport); + return new WriteRunningTx(id, netconfOps, rollbackSupport, isLockAllowed); } } @Override - public ListenerRegistration registerDataChangeListener( - final LogicalDatastoreType store, final YangInstanceIdentifier path, final DOMDataChangeListener listener, - final DataChangeScope triggeringScope) { - throw new UnsupportedOperationException(id + ": Data change listeners not supported for netconf mount point"); + public DOMTransactionChain createTransactionChain(final DOMTransactionChainListener listener) { + return new TxChain(this, listener); } @Override - public DOMTransactionChain createTransactionChain(final TransactionChainListener listener) { - return new TxChain(this, listener); + public ClassToInstanceMap getExtensions() { + return ImmutableClassToInstanceMap.of(); } - @Override - public Map, DOMDataBrokerExtension> getSupportedExtensions() { - return Collections.emptyMap(); + void setLockAllowed(boolean isLockAllowedOrig) { + this.isLockAllowed = isLockAllowedOrig; } }