2  * ============LICENSE_START=======================================================
 
   3  * ONAP : ccsdk feature sdnr wt
 
   4  *  ================================================================================
 
   5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property.
 
   7  * ================================================================================
 
   8  * Licensed under the Apache License, Version 2.0 (the "License");
 
   9  * you may not use this file except in compliance with the License.
 
  10  * You may obtain a copy of the License at
 
  12  *      http://www.apache.org/licenses/LICENSE-2.0
 
  14  * Unless required by applicable law or agreed to in writing, software
 
  15  * distributed under the License is distributed on an "AS IS" BASIS,
 
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  17  * See the License for the specific language governing permissions and
 
  18  * limitations under the License.
 
  19  * ============LICENSE_END=========================================================
 
  21 package org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.test.mock;
 
  23 import java.util.Collection;
 
  24 import org.eclipse.jdt.annotation.NonNull;
 
  25 import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
 
  26 import org.opendaylight.mdsal.binding.api.DataBroker;
 
  27 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 
  28 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 
  29 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 
  30 import org.opendaylight.mdsal.binding.api.ReadTransaction;
 
  31 import org.opendaylight.mdsal.binding.api.TransactionChain;
 
  32 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 
  33 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 
  34 import org.opendaylight.yangtools.yang.binding.DataObject;
 
  36 public class DataBrokerNetconfMock implements DataBroker {
 
  38     private @NonNull DataTreeChangeListener<Node> listener;
 
  39     private @NonNull ClusteredDataTreeChangeListener<Node> listenerClustered;
 
  42     public @NonNull ReadTransaction newReadOnlyTransaction() {
 
  47     public org.opendaylight.mdsal.binding.api.@NonNull ReadWriteTransaction newReadWriteTransaction() {
 
  52     public org.opendaylight.mdsal.binding.api.@NonNull WriteTransaction newWriteOnlyTransaction() {
 
  58     public @NonNull TransactionChain createTransactionChain(
 
  59             org.opendaylight.mdsal.binding.api.@NonNull TransactionChainListener listener) {
 
  63     @SuppressWarnings("unchecked")
 
  65     public <T extends DataObject, L extends DataTreeChangeListener<T>> @NonNull ListenerRegistration<L> registerDataTreeChangeListener(
 
  66             @NonNull DataTreeIdentifier<T> treeId, @NonNull L pListener) {
 
  67         System.out.println("Register " + pListener.getClass().getName());
 
  68         if (pListener instanceof ClusteredDataTreeChangeListener) {
 
  69             System.out.println("Clustered listener");
 
  70             this.listenerClustered = (ClusteredDataTreeChangeListener<Node>) pListener;
 
  71         } else if (pListener instanceof DataTreeChangeListener) {
 
  72             System.out.println("Listener");
 
  73             this.listener = (DataTreeChangeListener<Node>) pListener;
 
  75         return new ListenerRegistration<L>() {
 
  78             public @NonNull L getInstance() {
 
  83             public void close() {}
 
  88     public void sendChanges(Collection<DataTreeModification<Node>> changes) {
 
  89         this.listener.onDataTreeChanged(changes);
 
  92     public void sendClusteredChanges(Collection<DataTreeModification<Node>> changes) {
 
  93         this.listenerClustered.onDataTreeChanged(changes);