Remove ValueTypeCodec
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / impl / CompositeValueCodec.java
index 0007f8158b41bbc9b334c5064660077478715c05..ee780257fb9afe769a6765c6363c6407aa6930d4 100644 (file)
@@ -9,9 +9,10 @@ package org.opendaylight.mdsal.binding.dom.codec.impl;
 
 import static java.util.Objects.requireNonNull;
 
+import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec;
 import org.opendaylight.yangtools.concepts.IllegalArgumentCodec;
 
-final class CompositeValueCodec extends ValueTypeCodec {
+final class CompositeValueCodec extends AbstractIllegalArgumentCodec<Object, Object> {
     private final EncapsulatedValueCodec typeObjectCodec;
     @SuppressWarnings("rawtypes")
     // FIXME: specialize for the two possibilities
@@ -29,13 +30,14 @@ final class CompositeValueCodec extends ValueTypeCodec {
 
     @SuppressWarnings("unchecked")
     @Override
-    public Object deserialize(final Object input) {
+    protected Object deserializeImpl(final Object input) {
+        // FIXME: throws NPE on unrepresentable InstanceIdentifierCodec
         return typeObjectCodec.deserialize(valueCodec.deserialize(input));
     }
 
     @SuppressWarnings("unchecked")
     @Override
-    public Object serialize(final Object input) {
+    protected Object serializeImpl(final Object input) {
         return valueCodec.serialize(typeObjectCodec.serialize(input));
     }
 }