import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
}
@Override
- public final CodecContext yangPathArgumentChild(final PathArgument arg) {
- CodecContextSupplier supplier;
- if (arg instanceof NodeIdentifier nodeId) {
- supplier = yangChildSupplier(nodeId);
- } else if (arg instanceof NodeIdentifierWithPredicates nip) {
- supplier = yangChildSupplier(new NodeIdentifier(nip.getNodeType()));
- } else {
- supplier = null;
- }
- return childNonNull(supplier, arg, "Argument %s is not valid child of %s", arg, getSchema()).get();
- }
-
- @Nullable CodecContextSupplier yangChildSupplier(final @NonNull NodeIdentifier arg) {
+ CodecContextSupplier yangChildSupplier(final NodeIdentifier arg) {
return byYang.get(arg);
}
import org.opendaylight.yangtools.yang.binding.contract.Naming;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@Override
public CodecContext yangPathArgumentChild(final YangInstanceIdentifier.PathArgument arg) {
- final CommonDataObjectCodecPrototype<?> cazeProto;
- if (arg instanceof NodeIdentifierWithPredicates) {
- cazeProto = byYangCaseChild.get(new NodeIdentifier(arg.getNodeType()));
- } else {
- cazeProto = byYangCaseChild.get(arg);
- }
+ return ((CaseCodecContext<?>) super.yangPathArgumentChild(arg)).yangPathArgumentChild(arg);
+ }
- return childNonNull(cazeProto, arg, "Argument %s is not valid child of %s", arg, getSchema()).get()
- .yangPathArgumentChild(arg);
+ @Override
+ CaseCodecPrototype yangChildSupplier(final NodeIdentifier arg) {
+ return byYangCaseChild.get(arg);
}
@Override
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder;
protected abstract @NonNull T type();
+ // Non-final for ChoiceCodecContext
@Override
- public abstract CodecContext yangPathArgumentChild(YangInstanceIdentifier.PathArgument arg);
+ public CodecContext yangPathArgumentChild(final YangInstanceIdentifier.PathArgument arg) {
+ CodecContextSupplier supplier;
+ if (arg instanceof NodeIdentifier nodeId) {
+ supplier = yangChildSupplier(nodeId);
+ } else if (arg instanceof NodeIdentifierWithPredicates nip) {
+ supplier = yangChildSupplier(new NodeIdentifier(nip.getNodeType()));
+ } else {
+ supplier = null;
+ }
+ return childNonNull(supplier, arg, "Argument %s is not valid child of %s", arg, getSchema()).get();
+ }
+
+ abstract @Nullable CodecContextSupplier yangChildSupplier(@NonNull NodeIdentifier arg);
@Override
public CommonDataObjectCodecContext<?, ?> bindingPathArgumentChild(final PathArgument arg,