X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FForwardedBindingDataBroker.java;h=bba1747e7c4b8b1ebda8ce4f64764d796c3f8f3c;hp=6359b60684ef45e18d2185d1231b14b165497724;hb=0dcdc14a4ff38b39fed0d07658941a09a4c043fd;hpb=cbe83ca3074fa0182d4f079f528bb710a997ced7 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java index 6359b60684..bba1747e7c 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBindingDataBroker.java @@ -8,15 +8,19 @@ package org.opendaylight.controller.md.sal.binding.impl; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableSet; +import java.util.Set; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; +import org.opendaylight.controller.md.sal.binding.impl.BindingDOMAdapterBuilder.Factory; 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.DOMService; import org.opendaylight.controller.sal.core.api.model.SchemaService; -import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; /** * The DataBrokerImpl simply defers to the DOMDataBroker for all its operations. @@ -30,8 +34,23 @@ import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMapping */ public class ForwardedBindingDataBroker extends AbstractForwardedDataBroker implements DataBroker { - public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingIndependentMappingService mappingService, final SchemaService schemaService) { - super(domDataBroker, mappingService,schemaService); + + static final Factory BUILDER_FACTORY = new BindingDOMAdapterBuilder.Factory() { + + @Override + public BindingDOMAdapterBuilder newBuilder() { + return new Builder(); + } + + }; + + public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec) { + super(domDataBroker, codec); + } + + @Deprecated + public ForwardedBindingDataBroker(final DOMDataBroker domDataBroker, final BindingToNormalizedNodeCodec codec, final SchemaService schemaService) { + super(domDataBroker, codec,schemaService); } @Override @@ -54,4 +73,22 @@ public class ForwardedBindingDataBroker extends AbstractForwardedDataBroker impl public BindingTransactionChain createTransactionChain(final TransactionChainListener listener) { return new BindingTranslatedTransactionChain(getDelegate(), getCodec(), listener); } + + private static class Builder extends BindingDOMAdapterBuilder { + + @Override + public Set> getRequiredDelegates() { + return ImmutableSet.of(DOMDataBroker.class); + } + + @Override + protected DataBroker createInstance(BindingToNormalizedNodeCodec codec, + ClassToInstanceMap delegates) { + DOMDataBroker domDataBroker = delegates.getInstance(DOMDataBroker.class); + return new ForwardedBindingDataBroker(domDataBroker, codec); + } + + + + } }