/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
- */package org.opendaylight.yangtools.binding.data.codec.gen.impl;
+ */
+
+package org.opendaylight.yangtools.binding.data.codec.gen.impl;
import com.google.common.base.Preconditions;
import java.util.HashMap;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
abstract class DataNodeContainerSerializerSource extends DataObjectSerializerSource {
+ private static final Logger LOG = LoggerFactory.getLogger(DataNodeContainerSerializerSource.class);
+
protected static final String INPUT = "_input";
private static final String CHOICE_PREFIX = "CHOICE_";
return hashMap;
}
- private static final String getGetterName(final DataSchemaNode node) {
+ private static String getGetterName(final DataSchemaNode node) {
final TypeDefinition<?> type ;
if (node instanceof LeafSchemaNode) {
type = ((LeafSchemaNode) node).getType();
if (!schemaChild.isAugmenting()) {
final String getter = getGetterName(schemaChild);
final Type childType = getterToType.get(getter);
+ if (childType == null) {
+ // FIXME AnyXml nodes are ignored, since their type cannot be found in generated bindnig
+ // Bug-706 https://bugs.opendaylight.org/show_bug.cgi?id=706
+ if (schemaChild instanceof AnyXmlSchemaNode) {
+ LOG.warn("Node {} will be ignored. AnyXml is not yet supported from binding aware code." +
+ "Binding Independent code can be used to serialize anyXml nodes.", schemaChild.getPath());
+ continue;
+ } else {
+ throw new IllegalStateException(
+ String.format("Unable to find type for child node %s. Expected child nodes: %s",
+ schemaChild.getPath(), getterToType));
+ }
+ }
emitChild(b, getter, childType, schemaChild);
}
}