*/
package org.opendaylight.mdsal.binding.dom.adapter;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ClassToInstanceMap;
-import org.opendaylight.controller.md.sal.binding.api.BindingService;
-import org.opendaylight.controller.md.sal.dom.api.DOMService;
+import static java.util.Objects.requireNonNull;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.binding.api.BindingService;
+import org.opendaylight.mdsal.dom.api.DOMService;
abstract class BindingDOMAdapterBuilder<T extends BindingService> extends AdapterBuilder<T, DOMService> {
+ @FunctionalInterface
interface Factory<T extends BindingService> {
- BindingDOMAdapterBuilder<T> newBuilder();
-
+ @NonNull BindingDOMAdapterBuilder<T> newBuilder(@NonNull AdapterContext adapterContext);
}
- private BindingToNormalizedNodeCodec codec;
+ private final @NonNull AdapterContext adapterContext;
- public void setCodec(final BindingToNormalizedNodeCodec codec) {
- this.codec = codec;
+ BindingDOMAdapterBuilder(final AdapterContext adapterContext) {
+ this.adapterContext = requireNonNull(adapterContext);
}
- @Override
- protected final T createInstance(final ClassToInstanceMap<DOMService> delegates) {
- Preconditions.checkState(codec != null);
- return createInstance(codec,delegates);
+ protected final @NonNull AdapterContext adapterContext() {
+ return adapterContext;
}
-
- protected abstract T createInstance(BindingToNormalizedNodeCodec codec2, ClassToInstanceMap<DOMService> delegates);
-
}