BUG-2633 - Netconf northbound mapping.
[controller.git] / opendaylight / netconf / mdsal-netconf-connector / src / main / java / org / opendaylight / controller / netconf / mdsal / connector / OperationProvider.java
diff --git a/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/OperationProvider.java b/opendaylight/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/controller/netconf/mdsal/connector/OperationProvider.java
new file mode 100644 (file)
index 0000000..c881ae2
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.controller.netconf.mdsal.connector;
+
+import com.google.common.collect.Sets;
+import java.util.Set;
+import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
+import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.Commit;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.DiscardChanges;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.EditConfig;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.Lock;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.Unlock;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.get.Get;
+import org.opendaylight.controller.netconf.mdsal.connector.ops.get.GetConfig;
+
+final class OperationProvider {
+
+    private final String netconfSessionIdForReporting;
+    private final CurrentSchemaContext schemaContext;
+    private final DOMDataBroker dataBroker;
+    private final TransactionProvider transactionProvider;
+
+    public OperationProvider(final String netconfSessionIdForReporting, final CurrentSchemaContext schemaContext, final DOMDataBroker dataBroker) {
+        this.netconfSessionIdForReporting = netconfSessionIdForReporting;
+        this.schemaContext = schemaContext;
+        this.dataBroker = dataBroker;
+        this.transactionProvider = new TransactionProvider(dataBroker, netconfSessionIdForReporting);
+
+    }
+
+    Set<NetconfOperation> getOperations() {
+        return Sets.<NetconfOperation>newHashSet(
+                new Commit(netconfSessionIdForReporting, transactionProvider),
+                new DiscardChanges(netconfSessionIdForReporting, transactionProvider),
+                new EditConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
+                new Get(netconfSessionIdForReporting, schemaContext, transactionProvider),
+                new GetConfig(netconfSessionIdForReporting, schemaContext, transactionProvider),
+                new Lock(netconfSessionIdForReporting),
+                new Unlock(netconfSessionIdForReporting)
+        );
+    }
+
+}