2 * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.mdsal.binding.dom.codec.spi;
10 import com.google.common.annotations.Beta;
11 import com.google.common.collect.ForwardingObject;
12 import java.time.Instant;
13 import java.util.Map.Entry;
14 import org.eclipse.jdt.annotation.NonNull;
15 import org.opendaylight.mdsal.binding.dom.codec.api.BindingAugmentationCodecTreeNode;
16 import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeNode;
17 import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataContainerCodecTreeNode;
18 import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode;
19 import org.opendaylight.mdsal.binding.dom.codec.api.BindingIdentityCodec;
20 import org.opendaylight.mdsal.binding.dom.codec.api.BindingInstanceIdentifierCodec;
21 import org.opendaylight.mdsal.binding.dom.codec.api.BindingLazyContainerNode;
22 import org.opendaylight.mdsal.binding.dom.codec.api.BindingStreamEventWriter;
23 import org.opendaylight.mdsal.binding.dom.codec.api.BindingYangDataCodecTreeNode;
24 import org.opendaylight.mdsal.binding.dom.codec.api.CommonDataObjectCodecTreeNode;
25 import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext;
26 import org.opendaylight.yangtools.yang.binding.Action;
27 import org.opendaylight.yangtools.yang.binding.Augmentation;
28 import org.opendaylight.yangtools.yang.binding.BaseNotification;
29 import org.opendaylight.yangtools.yang.binding.DataContainer;
30 import org.opendaylight.yangtools.yang.binding.DataObject;
31 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
32 import org.opendaylight.yangtools.yang.binding.Notification;
33 import org.opendaylight.yangtools.yang.binding.RpcInput;
34 import org.opendaylight.yangtools.yang.binding.RpcOutput;
35 import org.opendaylight.yangtools.yang.binding.YangData;
36 import org.opendaylight.yangtools.yang.common.YangDataName;
37 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
38 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
39 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
40 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
41 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
42 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
45 public abstract class ForwardingBindingDOMCodecServices extends ForwardingObject implements BindingDOMCodecServices {
47 protected abstract @NonNull BindingDOMCodecServices delegate();
50 public BindingLazyContainerNode<RpcInput> toLazyNormalizedNodeActionInput(
51 final Class<? extends Action<?, ?, ?>> action, final NodeIdentifier identifier, final RpcInput input) {
52 return delegate().toLazyNormalizedNodeActionInput(action, identifier, input);
56 public BindingLazyContainerNode<RpcInput> toLazyNormalizedNodeActionInput(
57 final Class<? extends Action<?, ?, ?>> action, final RpcInput input) {
58 return delegate().toLazyNormalizedNodeActionInput(action, input);
62 public BindingLazyContainerNode<RpcOutput> toLazyNormalizedNodeActionOutput(
63 final Class<? extends Action<?, ?, ?>> action, final NodeIdentifier identifier, final RpcOutput output) {
64 return delegate().toLazyNormalizedNodeActionOutput(action, identifier, output);
68 public BindingLazyContainerNode<RpcOutput> toLazyNormalizedNodeActionOutput(
69 final Class<? extends Action<?, ?, ?>> action, final RpcOutput output) {
70 return delegate().toLazyNormalizedNodeActionOutput(action, output);
74 public YangInstanceIdentifier toYangInstanceIdentifier(final InstanceIdentifier<?> binding) {
75 return delegate().toYangInstanceIdentifier(binding);
79 public <T extends DataObject> InstanceIdentifier<T> fromYangInstanceIdentifier(final YangInstanceIdentifier dom) {
80 return delegate().fromYangInstanceIdentifier(dom);
84 public <T extends DataObject> NormalizedResult toNormalizedNode(final InstanceIdentifier<T> path, final T data) {
85 return delegate().toNormalizedNode(path, data);
89 public <A extends Augmentation<?>> @NonNull AugmentationResult toNormalizedAugmentation(
90 final InstanceIdentifier<A> path, final A data) {
91 return delegate().toNormalizedAugmentation(path, data);
95 public <T extends DataObject> @NonNull NodeResult toNormalizedDataObject(final InstanceIdentifier<T> path,
97 return delegate().toNormalizedDataObject(path, data);
101 public ContainerNode toNormalizedNodeNotification(final Notification<?> data) {
102 return delegate().toNormalizedNodeNotification(data);
106 public ContainerNode toNormalizedNodeNotification(final Absolute path, final BaseNotification data) {
107 return delegate().toNormalizedNodeNotification(path, data);
111 public ContainerNode toNormalizedNodeRpcData(final DataContainer data) {
112 return delegate().toNormalizedNodeRpcData(data);
116 public ContainerNode toNormalizedNodeActionInput(final Class<? extends Action<?, ?, ?>> action,
117 final RpcInput input) {
118 return delegate().toNormalizedNodeActionInput(action, input);
122 public ContainerNode toNormalizedNodeActionOutput(final Class<? extends Action<?, ?, ?>> action,
123 final RpcOutput output) {
124 return delegate().toNormalizedNodeActionOutput(action, output);
128 public Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode(final YangInstanceIdentifier path,
129 final NormalizedNode data) {
130 return delegate().fromNormalizedNode(path, data);
134 public BaseNotification fromNormalizedNodeNotification(final Absolute path, final ContainerNode data) {
135 return delegate().fromNormalizedNodeNotification(path, data);
139 public BaseNotification fromNormalizedNodeNotification(final Absolute path, final ContainerNode data,
140 final Instant eventInstant) {
141 return delegate().fromNormalizedNodeNotification(path, data, eventInstant);
145 public DataObject fromNormalizedNodeRpcData(final Absolute containerPath, final ContainerNode data) {
146 return delegate().fromNormalizedNodeRpcData(containerPath, data);
150 public <T extends RpcInput> T fromNormalizedNodeActionInput(final Class<? extends Action<?, ?, ?>> action,
151 final ContainerNode input) {
152 return delegate().fromNormalizedNodeActionInput(action, input);
156 public <T extends RpcOutput> T fromNormalizedNodeActionOutput(final Class<? extends Action<?, ?, ?>> action,
157 final ContainerNode output) {
158 return delegate().fromNormalizedNodeActionOutput(action, output);
162 public Entry<YangInstanceIdentifier, BindingStreamEventWriter> newWriterAndIdentifier(
163 final InstanceIdentifier<?> path, final NormalizedNodeStreamWriter domWriter) {
164 return delegate().newWriterAndIdentifier(path, domWriter);
168 public BindingStreamEventWriter newWriter(final InstanceIdentifier<?> path,
169 final NormalizedNodeStreamWriter domWriter) {
170 return delegate().newWriter(path, domWriter);
174 public BindingStreamEventWriter newNotificationWriter(final Class<? extends Notification<?>> notification,
175 final NormalizedNodeStreamWriter streamWriter) {
176 return delegate().newNotificationWriter(notification, streamWriter);
180 public BindingStreamEventWriter newActionInputWriter(final Class<? extends Action<?, ?, ?>> action,
181 final NormalizedNodeStreamWriter domWriter) {
182 return delegate().newActionInputWriter(action, domWriter);
186 public BindingStreamEventWriter newActionOutputWriter(final Class<? extends Action<?, ?, ?>> action,
187 final NormalizedNodeStreamWriter domWriter) {
188 return delegate().newActionOutputWriter(action, domWriter);
192 public BindingStreamEventWriter newRpcWriter(final Class<? extends DataContainer> rpcInputOrOutput,
193 final NormalizedNodeStreamWriter streamWriter) {
194 return delegate().newRpcWriter(rpcInputOrOutput, streamWriter);
198 public <T extends DataObject> CodecWithPath<T> getSubtreeCodecWithPath(final InstanceIdentifier<T> path) {
199 return delegate().getSubtreeCodecWithPath(path);
203 public <A extends Augmentation<?>> BindingAugmentationCodecTreeNode<A> getAugmentationCodec(
204 final InstanceIdentifier<A> path) {
205 return delegate().getAugmentationCodec(path);
209 public <T extends DataObject> BindingDataObjectCodecTreeNode<T> getDataObjectCodec(
210 final InstanceIdentifier<T> path) {
211 return delegate().getDataObjectCodec(path);
215 public <T extends DataObject> CommonDataObjectCodecTreeNode<T> getSubtreeCodec(final InstanceIdentifier<T> path) {
216 return delegate().getSubtreeCodec(path);
220 public BindingCodecTreeNode getSubtreeCodec(final YangInstanceIdentifier path) {
221 return delegate().getSubtreeCodec(path);
225 public BindingCodecTreeNode getSubtreeCodec(final Absolute path) {
226 return delegate().getSubtreeCodec(path);
230 public BindingIdentityCodec getIdentityCodec() {
231 return delegate().getIdentityCodec();
235 public BindingInstanceIdentifierCodec getInstanceIdentifierCodec() {
236 return delegate().getInstanceIdentifierCodec();
240 public <T extends YangData<T>> BindingYangDataCodecTreeNode<T> getYangDataCodec(final Class<T> yangDataClass) {
241 return delegate().getYangDataCodec(yangDataClass);
245 public BindingYangDataCodecTreeNode<?> getYangDataCodec(final YangDataName yangDataName) {
246 return delegate().getYangDataCodec(yangDataName);
250 public BindingRuntimeContext getRuntimeContext() {
251 return delegate().getRuntimeContext();
255 public <E extends DataObject> BindingDataContainerCodecTreeNode<E> getStreamChild(final Class<E> childClass) {
256 return delegate().getStreamChild(childClass);