X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDelayedDataTreeListenerRegistration.java;h=35f73086892fa5d596705e21b7bdf75a8f65c6e3;hp=e8cd31097b872d222d6f886c173b362de26fb804;hb=925cb4a228d0fda99c7bfeb432eb25285a223887;hpb=3d460a8bcbc24eeb969319feb9c7bf16bff496c1 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DelayedDataTreeListenerRegistration.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DelayedDataTreeListenerRegistration.java index e8cd31097b..35f7308689 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DelayedDataTreeListenerRegistration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DelayedDataTreeListenerRegistration.java @@ -7,54 +7,19 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; -import java.util.Collections; -import java.util.Map.Entry; -import javax.annotation.concurrent.GuardedBy; import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; /** * Intermediate proxy registration returned to the user when we cannot * instantiate the registration immediately. It provides a bridge to * a real registration which may materialize at some point in the future. */ -final class DelayedDataTreeListenerRegistration implements ListenerRegistration { - private final RegisterDataTreeChangeListener registerTreeChangeListener; - private volatile ListenerRegistration delegate; - @GuardedBy("this") - private boolean closed; +final class DelayedDataTreeListenerRegistration + extends DelayedListenerRegistration { DelayedDataTreeListenerRegistration(final RegisterDataTreeChangeListener registerTreeChangeListener) { - this.registerTreeChangeListener = Preconditions.checkNotNull(registerTreeChangeListener); - } - - synchronized void createDelegate(final DelegateFactory, DataTreeCandidate> factory) { - if (!closed) { - final Entry, DataTreeCandidate> res = factory.createDelegate(registerTreeChangeListener); - this.delegate = res.getKey(); - if (res.getValue() != null) { - delegate.getInstance().onDataTreeChanged(Collections.singletonList(res.getValue())); - } - } - } - - @Override - public DOMDataTreeChangeListener getInstance() { - final ListenerRegistration d = delegate; - return d == null ? null : d.getInstance(); - } - - @Override - public synchronized void close() { - if (!closed) { - closed = true; - if (delegate != null) { - delegate.close(); - } - } + super(registerTreeChangeListener); } }