import org.opendaylight.mdsal.binding.dom.codec.impl.ValueTypeCodec.SchemaUnawareCodec;
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;
/**
* Derived YANG types are just immutable value holders for simple value
static Callable<EncapsulatedValueCodec> loader(final Class<?> typeClz, TypeDefinition<?> typeDef) {
return () -> {
final Method m;
- if (typeDef instanceof BooleanTypeDefinition) {
+ if (typeDef instanceof BooleanTypeDefinition || typeDef instanceof EmptyTypeDefinition) {
m = typeClz.getMethod("isValue");
} else {
m = typeClz.getMethod("getValue");
import org.opendaylight.yang.gen.v1.bug8903.rev170829.DefaultPolicy;
import org.opendaylight.yang.gen.v1.bug8903.rev170829.DefaultPolicyBuilder;
import org.opendaylight.yang.gen.v1.bug8903.rev170829.PolicyLoggingFlag;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.typedef.empty.rev170829.TestCont;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.typedef.empty.rev170829.TestContBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.typedef.empty.rev170829.TypedefEmpty;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private static final InstanceIdentifier<DefaultPolicy> BA_DEFAULT_POLICY =
InstanceIdentifier.builder(DefaultPolicy.class).build();
+ private static final InstanceIdentifier<TestCont> BA_TEST_CONT =
+ InstanceIdentifier.builder(TestCont.class).build();
private BindingNormalizedNodeCodecRegistry registry;
@Override
assertEquals(binding,readed.getValue());
}
+
+ @Test
+ public void testTypedefEmptyType() {
+ TestCont binding = new TestContBuilder()
+ .setEmptyLeaf(true)
+ .setEmptyLeaf2(new TypedefEmpty(true))
+ .setEmptyLeaf3(true)
+ .build();
+ final Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> dom =
+ registry.toNormalizedNode(BA_TEST_CONT, binding);
+ final Entry<InstanceIdentifier<?>, DataObject> readed =
+ registry.fromNormalizedNode(dom.getKey(),dom.getValue());
+
+ assertEquals(binding,readed.getValue());
+
+ }
}
--- /dev/null
+module opendaylight-test-typedef-empty {
+ yang-version 1;
+ namespace "urn:opendaylight:params:xml:ns:yang:mdsal:test:typedef:empty";
+ prefix "typedef-empty";
+
+ revision "2017-08-29" {
+ }
+
+ typedef typedef-empty {
+ type empty;
+ }
+
+ container test-cont{
+ leaf empty-leaf {
+ type empty;
+ }
+
+ leaf empty-leaf2 {
+ type typedef-empty;
+ }
+
+ leaf empty-leaf3{
+ type empty;
+ default "";
+ }
+ }
+}