We have four implementations here, three of which are indirected via
ValueTypeCodec. Switch the type hierarchy a bit, which leaves only
two codecs still using ValueTypeCodec.
JIRA: MDSAL-704
Change-Id: I4c92f15f7de2678a51792e60431947e4c6acbd6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
// FIXME: 'SchemaUnawareCodec' is not correct: we use BitsTypeDefinition in construction
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
// FIXME: 'SchemaUnawareCodec' is not correct: we use BitsTypeDefinition in construction
-final class BitsCodec extends ValueTypeCodec implements SchemaUnawareCodec {
+final class BitsCodec extends SchemaUnawareCodec {
/*
* Use identity comparison for keys and allow classes to be GCd themselves.
*
/*
* Use identity comparison for keys and allow classes to be GCd themselves.
*
* Derived YANG types are just immutable value holders for simple value
* types, which are same as in NormalizedNode model.
*/
* Derived YANG types are just immutable value holders for simple value
* types, which are same as in NormalizedNode model.
*/
-final class EncapsulatedValueCodec extends ValueTypeCodec implements SchemaUnawareCodec {
+final class EncapsulatedValueCodec extends SchemaUnawareCodec {
private static final MethodType OBJ_METHOD = MethodType.methodType(Object.class, Object.class);
/*
private static final MethodType OBJ_METHOD = MethodType.methodType(Object.class, Object.class);
/*
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-final class EnumerationCodec extends ValueTypeCodec implements SchemaUnawareCodec {
+final class EnumerationCodec extends SchemaUnawareCodec {
private static final Logger LOG = LoggerFactory.getLogger(EnumerationCodec.class);
/*
* Use identity comparison for keys and allow classes to be GCd themselves.
private static final Logger LOG = LoggerFactory.getLogger(EnumerationCodec.class);
/*
* Use identity comparison for keys and allow classes to be GCd themselves.
* modules) they may have one static instance generated when first time needed.
*/
// FIXME: IllegalArgumentCodec is perhaps not appropriate here due to null behavior
* modules) they may have one static instance generated when first time needed.
*/
// FIXME: IllegalArgumentCodec is perhaps not appropriate here due to null behavior
-interface SchemaUnawareCodec extends IllegalArgumentCodec<Object, Object> {
+abstract class SchemaUnawareCodec implements IllegalArgumentCodec<Object, Object> {
/**
* No-op Codec, Java YANG Binding uses same types as NormalizedNode model for base YANG types, representing numbers,
* binary, strings and empty.
*/
/**
* No-op Codec, Java YANG Binding uses same types as NormalizedNode model for base YANG types, representing numbers,
* binary, strings and empty.
*/
- @NonNull SchemaUnawareCodec NOOP_CODEC = new SchemaUnawareCodec() {
+ static final @NonNull SchemaUnawareCodec NOOP_CODEC = new SchemaUnawareCodec() {
@Override
public Object serialize(final Object input) {
return input;
@Override
public Object serialize(final Object input) {
return input;