package org.opendaylight.mdsal.binding.javav2.dom.codec.impl.serializer;
import com.google.common.annotations.Beta;
+import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
import java.io.IOException;
import org.opendaylight.mdsal.binding.javav2.dom.codec.impl.cache.AbstractBindingNormalizedNodeCacheHolder;
import org.opendaylight.mdsal.binding.javav2.dom.codec.impl.cache.BindingNormalizedNodeCache;
import org.opendaylight.mdsal.binding.javav2.dom.codec.impl.context.base.DataContainerCodecContext;
+import org.opendaylight.mdsal.binding.javav2.spec.base.Instantiable;
import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode;
import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingSerializer;
import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingStreamEventWriter;
*/
@Override
public NormalizedNode<?, ?> serialize(final TreeNode input) {
- final BindingNormalizedNodeCache cachingSerializer = getCacheSerializer(input.getClass());
+ // Binding data input MUST be an instance of Instantiable too.
+ Preconditions.checkArgument(input instanceof Instantiable, "Input %s is not instantiable", input);
+
+ final BindingNormalizedNodeCache cachingSerializer =
+ getCacheSerializer(((Instantiable<?>) input).implementedInterface());
if (cachingSerializer != null) {
final NormalizedNode<?, ?> domData = cachingSerializer.get(input);
domWriter.addChild(domData);