Refactor binding-dom-adapter
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / BindingDOMAdapterBuilder.java
index 94758151e71be19d4e593869ec776186fb965ddc..be5503b8af876760d664135762d0eefe3a791a5c 100644 (file)
@@ -7,31 +7,27 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ClassToInstanceMap;
+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);
-
 }