import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
+import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.util.concurrent.FluentFuture;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.api.ActionProviderService;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMAdapterBuilder.Factory;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMActionImplementation;
import org.opendaylight.mdsal.dom.api.DOMActionProviderService;
import org.opendaylight.mdsal.dom.api.DOMActionResult;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
+import org.opendaylight.mdsal.dom.api.DOMService;
import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.binding.Action;
@NonNullByDefault
final class ActionProviderServiceAdapter extends AbstractBindingAdapter<DOMActionProviderService>
implements ActionProviderService {
+ private static final class Builder extends BindingDOMAdapterBuilder<ActionProviderService> {
+ @Override
+ protected ActionProviderService createInstance(final @Nullable BindingToNormalizedNodeCodec codec,
+ final ClassToInstanceMap<DOMService> delegates) {
+ final DOMActionProviderService domAction = delegates.getInstance(DOMActionProviderService.class);
+ return new ActionProviderServiceAdapter(requireNonNull(codec), domAction);
+ }
+
+ @Override
+ public Set<? extends Class<? extends DOMService>> getRequiredDelegates() {
+ return ImmutableSet.of(DOMActionProviderService.class);
+ }
+ }
+
+ static final Factory<ActionProviderService> BUILDER_FACTORY = Builder::new;
+
ActionProviderServiceAdapter(final BindingToNormalizedNodeCodec codec, final DOMActionProviderService delegate) {
super(codec, delegate);
}
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
+import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.util.concurrent.FluentFuture;
import java.lang.reflect.Proxy;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.api.ActionService;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMAdapterBuilder.Factory;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.mdsal.dom.api.DOMActionService;
+import org.opendaylight.mdsal.dom.api.DOMService;
import org.opendaylight.yangtools.concepts.Delegator;
import org.opendaylight.yangtools.yang.binding.Action;
import org.opendaylight.yangtools.yang.binding.DataObject;
final class ActionServiceAdapter
extends AbstractBindingLoadingAdapter<DOMActionService, Class<? extends Action<?, ?, ?>>, ActionAdapter>
implements ActionService {
+ private static final class Builder extends BindingDOMAdapterBuilder<ActionService> {
+ @Override
+ protected ActionService createInstance(final @Nullable BindingToNormalizedNodeCodec codec,
+ final ClassToInstanceMap<DOMService> delegates) {
+ final DOMActionService domAction = delegates.getInstance(DOMActionService.class);
+ return new ActionServiceAdapter(requireNonNull(codec), domAction);
+ }
+
+ @Override
+ public Set<? extends Class<? extends DOMService>> getRequiredDelegates() {
+ return ImmutableSet.of(DOMActionService.class);
+ }
+ }
+
private static final class ConstrainedAction implements Delegator<Action<?, ?, ?>>,
Action<InstanceIdentifier<?>, RpcInput, RpcOutput> {
private final Action<InstanceIdentifier<?>, RpcInput, RpcOutput> delegate;
}
}
+ static final Factory<ActionService> BUILDER_FACTORY = Builder::new;
+
ActionServiceAdapter(final BindingToNormalizedNodeCodec codec, final DOMActionService delegate) {
super(codec, delegate);
}
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> {
public abstract Set<? extends Class<? extends D>> getRequiredDelegates();
- protected abstract T createInstance(ClassToInstanceMap<D> immutableDelegates);
+ protected abstract @NonNull T createInstance(@NonNull ClassToInstanceMap<D> immutableDelegates);
private void checkAllRequiredServices() {
for (final Class<? extends D> type : getRequiredDelegates()) {
import com.google.common.base.Preconditions;
import com.google.common.collect.ClassToInstanceMap;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.api.BindingService;
import org.opendaylight.mdsal.dom.api.DOMService;
interface Factory<T extends BindingService> {
BindingDOMAdapterBuilder<T> newBuilder();
-
}
private BindingToNormalizedNodeCodec codec;
- public void setCodec(final BindingToNormalizedNodeCodec codec) {
+ void setCodec(final BindingToNormalizedNodeCodec codec) {
this.codec = codec;
}
return createInstance(codec, delegates);
}
- protected abstract T createInstance(BindingToNormalizedNodeCodec myCodec, ClassToInstanceMap<DOMService> delegates);
-
+ abstract T createInstance(BindingToNormalizedNodeCodec myCodec,
+ @NonNull ClassToInstanceMap<@NonNull DOMService> delegates);
}
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.util.Map;
+import org.opendaylight.mdsal.binding.api.ActionProviderService;
+import org.opendaylight.mdsal.binding.api.ActionService;
import org.opendaylight.mdsal.binding.api.BindingService;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
.put(NotificationPublishService.class, BindingDOMNotificationPublishServiceAdapter.BUILDER_FACTORY)
.put(DataBroker.class, BindingDOMDataBrokerAdapter.BUILDER_FACTORY)
.put(RpcConsumerRegistry.class, BindingDOMRpcServiceAdapter.BUILDER_FACTORY)
+ .put(ActionService.class, ActionServiceAdapter.BUILDER_FACTORY)
+ .put(ActionProviderService.class, ActionProviderServiceAdapter.BUILDER_FACTORY)
.build();
private final BindingToNormalizedNodeCodec codec;