X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fadapter%2FBindingDOMDataTreeCommitCohortRegistryAdapter.java;h=c31e30463fadee3ec271da875593afeb4ff505c7;hb=5f8a373c07549a901b70595067dd11c161d0c4e4;hp=6ebc7c654a7b639a6405fd2b547cb5fa24e7996f;hpb=5f0d949e98b09557790f567b9e7d2470a560dde8;p=mdsal.git diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapter.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapter.java index 6ebc7c654a..c31e30463f 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapter.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapter.java @@ -5,52 +5,30 @@ * 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.mdsal.binding.dom.adapter; -import com.google.common.base.Preconditions; import org.opendaylight.mdsal.binding.api.DataTreeCommitCohort; import org.opendaylight.mdsal.binding.api.DataTreeCommitCohortRegistry; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistration; import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistry; -import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.DataObject; -public class BindingDOMDataTreeCommitCohortRegistryAdapter implements DataTreeCommitCohortRegistry { - - private final BindingToNormalizedNodeCodec codec; - private final DOMDataTreeCommitCohortRegistry registry; - - BindingDOMDataTreeCommitCohortRegistryAdapter(BindingToNormalizedNodeCodec codec, - DOMDataTreeCommitCohortRegistry registry) { - this.codec = Preconditions.checkNotNull(codec); - this.registry = Preconditions.checkNotNull(registry); - } - - DataTreeCommitCohortRegistry from(BindingToNormalizedNodeCodec codec, DOMDataTreeCommitCohortRegistry registry) { - return new BindingDOMDataTreeCommitCohortRegistryAdapter(codec, registry); +final class BindingDOMDataTreeCommitCohortRegistryAdapter + extends AbstractBindingAdapter implements DataTreeCommitCohortRegistry { + BindingDOMDataTreeCommitCohortRegistryAdapter(final AdapterContext codec, + final DOMDataTreeCommitCohortRegistry registry) { + super(codec, registry); } @Override - public > ObjectRegistration registerCommitCohort( - DataTreeIdentifier subtree, final T cohort) { - final BindingDOMDataTreeCommitCohortAdapter adapter = - new BindingDOMDataTreeCommitCohortAdapter<>(codec, cohort); - final DOMDataTreeIdentifier domPath = codec.toDOMDataTreeIdentifier(subtree); - final DOMDataTreeCommitCohortRegistration domReg = registry.registerCommitCohort(domPath, adapter); - return new ObjectRegistration() { - - @Override - public T getInstance() { - return cohort; - } - - @Override - public void close() throws Exception { - domReg.close(); - } - }; + public Registration registerCommitCohort(final DataTreeIdentifier subtree, + final DataTreeCommitCohort cohort) { + final var target = subtree.path().getTargetType(); + final var adapter = new BindingDOMDataTreeCommitCohortAdapter<>(adapterContext(), cohort, + Augmentation.class.isAssignableFrom(target) ? target : null); + final var domPath = currentSerializer().toDOMDataTreeIdentifier(subtree); + return getDelegate().registerCommitCohort(domPath, adapter); } }