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%2FBitsCodec.java;h=ea16c388ab1f05d234b9e6549962b5cb56552979;hb=c225c8c12a35e89168c18d99e48226c141cb8cbc;hp=f5b0908961deabb7e0a6d253e47ad8043053e928;hpb=1a2d7e719b78cd564fe37578cab270372628d096;p=mdsal.git diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java index f5b0908961..ea16c388ab 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java @@ -29,12 +29,14 @@ import java.util.Set; import java.util.TreeSet; import java.util.concurrent.ExecutionException; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.mdsal.binding.dom.codec.impl.ValueTypeCodec.SchemaUnawareCodec; import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit; -final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec { +// FIXME: 'SchemaUnawareCodec' is not correct: we use BitsTypeDefinition in construction +// FIXME: require the base class to be a TypeObject +// FIXME: MDSAL-743: require BitsTypeObject base class +final class BitsCodec extends SchemaUnawareCodec { /* * Use identity comparison for keys and allow classes to be GCd themselves. * @@ -55,9 +57,7 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec private final ImmutableSet ctorArgs; private final MethodHandle ctor; - private BitsCodec(final Class typeClass, final MethodHandle ctor, final Set ctorArgs, - final Map getters) { - super(typeClass); + private BitsCodec(final MethodHandle ctor, final Set ctorArgs, final Map getters) { this.ctor = requireNonNull(ctor); this.ctorArgs = ImmutableSet.copyOf(ctorArgs); this.getters = ImmutableMap.copyOf(getters); @@ -84,13 +84,13 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec final MethodHandle ctor = MethodHandles.publicLookup().unreflectConstructor(constructor) .asSpreader(Boolean[].class, ctorArgs.size()).asType(CONSTRUCTOR_INVOKE_TYPE); - return new BitsCodec(returnType, ctor, ctorArgs, getters); + return new BitsCodec(ctor, ctorArgs, getters); }); } @Override @SuppressWarnings("checkstyle:illegalCatch") - public Object deserialize(final Object input) { + protected Object deserializeImpl(final Object input) { checkArgument(input instanceof Set); @SuppressWarnings("unchecked") final Set casted = (Set) input; @@ -115,7 +115,7 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec } @Override - public Set serialize(final Object input) { + protected Set serializeImpl(final Object input) { final Collection result = new ArrayList<>(getters.size()); for (Entry valueGet : getters.entrySet()) { final Boolean value;