Split off DefaultBindingCodecTreeFactory
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / AdapterBuilder.java
index 40271264f9c6f329f169e7a0db445375f5288f39..ef6f035994d8a2042ecb98e3d1ebc94653652b61 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableClassToInstanceMap;
 import com.google.common.collect.MutableClassToInstanceMap;
 import java.util.Set;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Builder;
 
 public abstract class AdapterBuilder<T,D> implements Builder<T> {
@@ -21,22 +21,22 @@ public abstract class AdapterBuilder<T,D> implements Builder<T> {
 
     public abstract Set<? extends Class<? extends D>> getRequiredDelegates();
 
-    protected abstract T createInstance(ClassToInstanceMap<D> delegates);
+    protected abstract @NonNull T createInstance(@NonNull ClassToInstanceMap<D> immutableDelegates);
 
     private void checkAllRequiredServices() {
-        for(final Class<? extends D> type : getRequiredDelegates()) {
+        for (final Class<? extends D> type : getRequiredDelegates()) {
             Preconditions.checkState(delegates.get(type) != null, "Requires service %s is not defined.",type);
         }
     }
 
-    public final <V extends D>void addDelegate(final Class<V> type,final D impl) {
+    public final <V extends D> void addDelegate(final Class<V> type,final D impl) {
         delegates.put(type,impl);
     }
 
     @Override
     public final  T build() {
         checkAllRequiredServices();
-        return createInstance(ImmutableClassToInstanceMap.<D,D>copyOf(delegates));
+        return createInstance(ImmutableClassToInstanceMap.copyOf(delegates));
     }
 
 }