X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fcodec%2Fimpl%2FValueNodeCodecContext.java;h=65c2f512ace729d8664f6fd77662c40d35ccbaa0;hb=0032cbc207750ee84b76dfc395c29ade7adc76d4;hp=e51172df43734b5bd6ab4196649008577c4525a6;hpb=ae35f5b8b65cc90f606670ad3ddc26dc7088a2ba;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ValueNodeCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ValueNodeCodecContext.java index e51172df43..65c2f512ac 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ValueNodeCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ValueNodeCodecContext.java @@ -10,7 +10,6 @@ package org.opendaylight.mdsal.binding.dom.codec.impl; import static java.util.Objects.requireNonNull; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.concepts.Codec; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -18,41 +17,43 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; * Abstract base class for atomic nodes. These are nodes which are not decomposed in the Binding Specification, such * as LeafNodes and LeafSetNodes. */ -abstract class ValueNodeCodecContext extends NodeCodecContext implements NodeContextSupplier { - abstract static class WithCodec extends ValueNodeCodecContext { - private final @NonNull Codec valueCodec; +abstract sealed class ValueNodeCodecContext extends CodecContext implements CodecContextSupplier + permits AbstractOpaqueCodecContext, ValueNodeCodecContext.WithCodec { + abstract static sealed class WithCodec extends ValueNodeCodecContext + permits LeafNodeCodecContext, LeafSetNodeCodecContext { + private final @NonNull ValueCodec valueCodec; - WithCodec(final DataSchemaNode schema, final Codec codec, final String getterName, + WithCodec(final DataSchemaNode schema, final ValueCodec codec, final String getterName, final Object defaultObject) { super(schema, getterName, defaultObject); - this.valueCodec = requireNonNull(codec); + valueCodec = requireNonNull(codec); } @Override - final Codec getValueCodec() { + final ValueCodec getValueCodec() { return valueCodec; } } private final @NonNull NodeIdentifier yangIdentifier; + private final @NonNull DataSchemaNode dataSchema; private final @NonNull String getterName; - private final @NonNull DataSchemaNode schema; private final Object defaultObject; - ValueNodeCodecContext(final DataSchemaNode schema, final String getterName, final Object defaultObject) { - this.yangIdentifier = NodeIdentifier.create(schema.getQName()); + ValueNodeCodecContext(final DataSchemaNode dataSchema, final String getterName, final Object defaultObject) { this.getterName = requireNonNull(getterName); - this.schema = requireNonNull(schema); + this.dataSchema = requireNonNull(dataSchema); + yangIdentifier = NodeIdentifier.create(dataSchema.getQName()); this.defaultObject = defaultObject; } @Override - protected final NodeIdentifier getDomPathArgument() { + final NodeIdentifier getDomPathArgument() { return yangIdentifier; } @Override - public final NodeCodecContext get() { + public final CodecContext getCodecContext() { return this; } @@ -60,11 +61,11 @@ abstract class ValueNodeCodecContext extends NodeCodecContext implements NodeCon return getterName; } - abstract Codec getValueCodec(); + abstract ValueCodec getValueCodec(); @Override public final DataSchemaNode getSchema() { - return schema; + return dataSchema; } @Override