import org.opendaylight.mdsal.binding.model.api.Restrictions;
import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
final Restrictions restrictions) {
return javaTypeForSchemaDefinitionType(type, parentNode, restrictions, false);
}
-
- /**
- * Returns string containing code for creation of new type instance.
- */
- String getTypeDefaultConstruction(LeafSchemaNode node);
-
- String getConstructorPropertyName(SchemaNode node);
-
- String getParamNameFromType(TypeDefinition<?> type);
}
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap;
-import java.math.BigDecimal;
import java.util.ArrayList;
-import java.util.Base64;
import java.util.Collection;
import java.util.Collections;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.common.Uint16;
-import org.opendaylight.yangtools.yang.common.Uint32;
-import org.opendaylight.yangtools.yang.common.Uint64;
-import org.opendaylight.yangtools.yang.common.Uint8;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
-import org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
import org.opendaylight.yangtools.yang.model.util.ModuleDependencySort;
import org.opendaylight.yangtools.yang.model.util.PathExpressionImpl;
import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
-import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
}
- @Override
- public String getTypeDefaultConstruction(final LeafSchemaNode node) {
- return getTypeDefaultConstruction(node, (String) node.getType().getDefaultValue().orElse(null));
- }
-
- public String getTypeDefaultConstruction(final LeafSchemaNode node, final String defaultValue) {
- final TypeDefinition<?> type = CompatUtils.compatType(node);
- final QName typeQName = type.getQName();
- final TypeDefinition<?> base = baseTypeDefForExtendedType(type);
- requireNonNull(type, () -> "Cannot provide default construction for null type of " + node);
- requireNonNull(defaultValue, () -> "Cannot provide default construction for null default statement of "
- + node);
-
- final StringBuilder sb = new StringBuilder();
- String result = null;
- if (base instanceof BinaryTypeDefinition) {
- result = binaryToDef(defaultValue);
- } else if (base instanceof BitsTypeDefinition) {
- String parentName;
- String className;
- final Module parent = getParentModule(node);
- final Iterator<QName> path = node.getPath().getPathFromRoot().iterator();
- path.next();
- if (!path.hasNext()) {
- parentName = BindingMapping.getClassName(parent.getName()) + BindingMapping.DATA_ROOT_SUFFIX;
- final String basePackageName = BindingMapping.getRootPackageName(parent.getQNameModule());
- className = basePackageName + "." + parentName + "." + BindingMapping.getClassName(node.getQName());
- } else {
- final String basePackageName = BindingMapping.getRootPackageName(parent.getQNameModule());
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName,
- type.getPath());
- parentName = BindingMapping.getClassName(parent.getName());
- className = packageName + "." + parentName + "." + BindingMapping.getClassName(node.getQName());
- }
- result = bitsToDef((BitsTypeDefinition) base, className, defaultValue, type.getBaseType() != null);
- } else if (base instanceof BooleanTypeDefinition) {
- result = typeToBooleanDef(defaultValue);
- } else if (base instanceof DecimalTypeDefinition) {
- result = typeToDef(BigDecimal.class, defaultValue);
- } else if (base instanceof EmptyTypeDefinition) {
- result = typeToBooleanDef(defaultValue);
- } else if (base instanceof EnumTypeDefinition) {
- final char[] defValArray = defaultValue.toCharArray();
- final char first = Character.toUpperCase(defaultValue.charAt(0));
- defValArray[0] = first;
- final String newDefVal = new String(defValArray);
- String className;
- if (type.getBaseType() != null) {
- final Module m = getParentModule(type);
- final String basePackageName = BindingMapping.getRootPackageName(m.getQNameModule());
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName,
- type.getPath());
- className = packageName + "." + BindingMapping.getClassName(typeQName);
- } else {
- final Module parentModule = getParentModule(node);
- final String basePackageName = BindingMapping.getRootPackageName(parentModule.getQNameModule());
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName,
- node.getPath());
- className = packageName + "." + BindingMapping.getClassName(node.getQName());
- }
- result = className + "." + newDefVal;
- } else if (base instanceof IdentityrefTypeDefinition) {
- throw new UnsupportedOperationException("Cannot get default construction for identityref type");
- } else if (base instanceof InstanceIdentifierTypeDefinition) {
- throw new UnsupportedOperationException("Cannot get default construction for instance-identifier type");
- } else if (isInt8(base)) {
- result = typeToValueOfDef(Byte.class, defaultValue);
- } else if (isInt16(base)) {
- result = typeToValueOfDef(Short.class, defaultValue);
- } else if (isInt32(base)) {
- result = typeToValueOfDef(Integer.class, defaultValue);
- } else if (isInt64(base)) {
- result = typeToValueOfDef(Long.class, defaultValue);
- } else if (base instanceof LeafrefTypeDefinition) {
- result = leafrefToDef(node, (LeafrefTypeDefinition) base, defaultValue);
- } else if (base instanceof StringTypeDefinition) {
- result = "\"" + defaultValue + "\"";
- } else if (isUint8(base)) {
- result = typeToValueOfDef(Uint8.class, defaultValue);
- } else if (isUint16(base)) {
- result = typeToValueOfDef(Uint16.class, defaultValue);
- } else if (isUint32(base)) {
- result = typeToValueOfDef(Uint32.class, defaultValue);
- } else if (isUint64(base)) {
- result = typeToValueOfDef(Uint64.class, defaultValue);
- } else if (base instanceof UnionTypeDefinition) {
- result = unionToDef(node);
- } else {
- result = "";
- }
- sb.append(result);
-
- if (type.getBaseType() != null && !(base instanceof LeafrefTypeDefinition)
- && !(base instanceof EnumTypeDefinition) && !(base instanceof UnionTypeDefinition)) {
- final Module m = getParentModule(type);
- final String basePackageName = BindingMapping.getRootPackageName(m.getQNameModule());
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName,
- type.getPath());
- final String className = packageName + "." + BindingMapping.getClassName(typeQName);
- sb.insert(0, "new " + className + "(");
- sb.insert(sb.length(), ')');
- }
-
- return sb.toString();
- }
-
-
- /**
- * Check if a particular type definition represents the built-in int8 type.
- *
- * @param type Type definition
- * @return True if the definition is the built-in int8 type.
- */
- private static boolean isInt8(final TypeDefinition<?> type) {
- return BaseTypes.int8Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type definition represents the built-in int16 type.
- *
- * @param type Type definition
- * @return True if the definition is the built-in int16 type.
- */
- private static boolean isInt16(final TypeDefinition<?> type) {
- return BaseTypes.int16Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type definition represents the built-in int32 type.
- *
- * @param type Type definition
- * @return True if the definition is the built-in int32 type.
- */
- private static boolean isInt32(final TypeDefinition<?> type) {
- return BaseTypes.int32Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type definition represents the built-in int64 type.
- *
- * @param type Type definition
- * @return True if the definition is the built-in int64 type.
- */
- private static boolean isInt64(final TypeDefinition<?> type) {
- return BaseTypes.int64Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type is the base type for uint8.
- *
- * @param type The type to check
- * @return If the type corresponds to the base uint8 type.
- * @throws NullPointerException if type is null
- */
- private static boolean isUint8(final TypeDefinition<?> type) {
- return BaseTypes.uint8Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type is the base type for uint16.
- *
- * @param type The type to check
- * @return If the type corresponds to the base uint16 type.
- * @throws NullPointerException if type is null
- */
- private static boolean isUint16(final TypeDefinition<?> type) {
- return BaseTypes.uint16Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type is the base type for uint32.
- *
- * @param type The type to check
- * @return If the type corresponds to the base uint32 type.
- * @throws NullPointerException if type is null
- */
- private static boolean isUint32(final TypeDefinition<?> type) {
- return BaseTypes.uint32Type().getPath().equals(type.getPath());
- }
-
- /**
- * Check if a particular type is the base type for uint64.
- *
- * @param type The type to check
- * @return If the type corresponds to the base uint64 type.
- * @throws NullPointerException if type is null
- */
- private static boolean isUint64(final TypeDefinition<?> type) {
- return BaseTypes.uint64Type().getPath().equals(type.getPath());
- }
-
- private static String typeToDef(final Class<?> clazz, final String defaultValue) {
- return "new " + clazz.getName() + "(\"" + defaultValue + "\")";
- }
-
- private static String typeToValueOfDef(final Class<?> clazz, final String defaultValue) {
- return clazz.getName() + ".valueOf(\"" + defaultValue + "\")";
- }
-
- private static String typeToBooleanDef(final String defaultValue) {
- switch (defaultValue) {
- case "false":
- return "java.lang.Boolean.FALSE";
- case "true":
- return "java.lang.Boolean.TRUE";
- default:
- return typeToValueOfDef(Boolean.class, defaultValue);
- }
- }
-
- private static String binaryToDef(final String defaultValue) {
- final StringBuilder sb = new StringBuilder();
- final byte[] encoded = Base64.getDecoder().decode(defaultValue);
- sb.append("new byte[] {");
- for (int i = 0; i < encoded.length; i++) {
- sb.append(encoded[i]);
- if (i != encoded.length - 1) {
- sb.append(", ");
- }
- }
- sb.append('}');
- return sb.toString();
- }
-
- private static final Comparator<Bit> BIT_NAME_COMPARATOR = Comparator.comparing(Bit::getName);
-
- private static String bitsToDef(final BitsTypeDefinition type, final String className, final String defaultValue,
- final boolean isExt) {
- final List<Bit> bits = new ArrayList<>(type.getBits());
- bits.sort(BIT_NAME_COMPARATOR);
- final StringBuilder sb = new StringBuilder();
- if (!isExt) {
- sb.append("new ").append(className).append('(');
- }
- for (int i = 0; i < bits.size(); i++) {
- sb.append(bits.get(i).getName().equals(defaultValue));
- if (i != bits.size() - 1) {
- sb.append(", ");
- }
- }
- if (!isExt) {
- sb.append(')');
- }
- return sb.toString();
- }
-
private Module getParentModule(final SchemaNode node) {
final QName qname = node.getPath().getPathFromRoot().iterator().next();
return schemaContext.findModule(qname.getModule()).orElse(null);
}
-
- private String leafrefToDef(final LeafSchemaNode parentNode, final LeafrefTypeDefinition leafrefType,
- final String defaultValue) {
- Preconditions.checkArgument(leafrefType != null, "Leafref Type Definition reference cannot be NULL!");
- Preconditions.checkArgument(leafrefType.getPathStatement() != null,
- "The Path Statement for Leafref Type Definition cannot be NULL!");
-
- final PathExpression xpath = leafrefType.getPathStatement();
- final String strXPath = xpath.getOriginalString();
-
- if (strXPath != null) {
- if (strXPath.indexOf('[') == -1) {
- final Module module = findParentModule(schemaContext, parentNode);
- if (module != null) {
- final SchemaNode dataNode;
- if (xpath.isAbsolute()) {
- dataNode = findDataTreeSchemaNode(schemaContext, module.getQNameModule(), xpath);
- } else {
- dataNode = findDataSchemaNodeForRelativeXPath(schemaContext, module, parentNode, xpath);
- }
- final String result = getTypeDefaultConstruction((LeafSchemaNode) dataNode, defaultValue);
- return result;
- }
- } else {
- return "new java.lang.Object()";
- }
- }
-
- return null;
- }
-
- private String unionToDef(final LeafSchemaNode node) {
- final TypeDefinition<?> type = CompatUtils.compatType(node);
- String parentName;
- String className;
-
- if (type.getBaseType() != null) {
- final QName typeQName = type.getQName();
- Module module = null;
- final Collection<? extends Module> modules = schemaContext.findModules(typeQName.getNamespace());
- if (modules.size() > 1) {
- for (Module m : modules) {
- if (m.getRevision().equals(typeQName.getRevision())) {
- module = m;
- break;
- }
- }
- if (module == null) {
- final List<Module> modulesList = new ArrayList<>(modules);
- modulesList.sort((o1, o2) -> Revision.compare(o1.getRevision(), o2.getRevision()));
- module = modulesList.get(0);
- }
- } else {
- module = modules.iterator().next();
- }
-
- final String basePackageName = BindingMapping.getRootPackageName(module.getQNameModule());
- className = basePackageName + "." + BindingMapping.getClassName(typeQName);
- } else {
- final Iterator<QName> path = node.getPath().getPathFromRoot().iterator();
- final QName first = path.next();
- final Module parent = schemaContext.findModule(first.getModule()).orElse(null);
- final String basePackageName = BindingMapping.getRootPackageName(parent.getQNameModule());
- if (!path.hasNext()) {
- parentName = BindingMapping.getClassName(parent.getName()) + BindingMapping.DATA_ROOT_SUFFIX;
- className = basePackageName + "." + parentName + "." + BindingMapping.getClassName(node.getQName());
- } else {
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName,
- UNION_PATH);
- className = packageName + "." + BindingMapping.getClassName(node.getQName());
- }
- }
- return union(className, (String) node.getType().getDefaultValue().orElse(null), node);
- }
-
- private static String union(final String className, final String defaultValue, final LeafSchemaNode node) {
- return new StringBuilder()
- .append("new ").append(className).append("(\"").append(defaultValue).append("\".toCharArray())")
- .toString();
- }
-
- @Override
- public String getConstructorPropertyName(final SchemaNode node) {
- return node instanceof TypeDefinition<?> ? TypeConstants.VALUE_PROP : "";
- }
-
- @Override
- public String getParamNameFromType(final TypeDefinition<?> type) {
- return BindingMapping.getPropertyName(type.getQName().getLocalName());
- }
}
+++ /dev/null
-/*
- * Copyright (c) 2016 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.mdsal.binding.generator.impl;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import com.google.common.collect.ImmutableMap;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider;
-import org.opendaylight.mdsal.binding.yang.types.CodegenTypeProvider;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
-
-public class TypeProviderIntegrationTest {
- private static final String PKG = "org.opendaylight.yang.gen.v1.urn.opendaylight.test.rev131008.";
- private static SchemaContext CONTEXT;
- private AbstractTypeProvider provider;
- private Module module;
-
- @BeforeClass
- public static void setup() {
- CONTEXT = YangParserTestUtils.parseYangResources(TypeProviderIntegrationTest.class, "/type-provider/test.yang",
- "/ietf-models/ietf-inet-types.yang");
- assertNotNull(CONTEXT);
- }
-
- @AfterClass
- public static void teardown() {
- CONTEXT = null;
- }
-
- @Before
- public void init() {
- provider = new CodegenTypeProvider(CONTEXT, ImmutableMap.of());
- module = CONTEXT.findModule("test", Revision.of("2013-10-08")).get();
- }
-
- @Test
- public void testGetTypeDefaultConstructionBinary() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-binary");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new byte[] {77, 97, 110}", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-binary");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyBinary(new byte[] {77, 97, 110})", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionBits() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-bits");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "TestData.LeafBits(false, false, true)", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-bits");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyBits(false, false, true)", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionBoolean() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-boolean");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Boolean.TRUE", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-boolean");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyBoolean(java.lang.Boolean.TRUE)", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionDecimal() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-decimal64");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new java.math.BigDecimal(\"3.14\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-decimal64");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyDecimal64(new java.math.BigDecimal(\"3.14\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionEmpty() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-empty");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Boolean.FALSE", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-empty");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyEmpty(java.lang.Boolean.FALSE)", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionEnumeration() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-enumeration");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.test.rev131008.LeafEnumeration.Seven", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-enumeration");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals(PKG + "MyEnumeration.Seven", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionInt8() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-int8");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Byte.valueOf(\"11\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-int8");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyInt8(java.lang.Byte.valueOf(\"11\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionInt16() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-int16");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Short.valueOf(\"111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-int16");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyInt16(java.lang.Short.valueOf(\"111\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionInt32() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-int32");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Integer.valueOf(\"1111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-int32");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyInt32(java.lang.Integer.valueOf(\"1111\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionInt64() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-int64");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("java.lang.Long.valueOf(\"11111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-int64");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyInt64(java.lang.Long.valueOf(\"11111\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionLeafref1() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-leafref");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new java.math.BigDecimal(\"1.234\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-leafref");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new java.math.BigDecimal(\"1.234\")", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionLeafref2() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-leafref1");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyBinary(new byte[] {77, 97, 110})", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-leafref1");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyBinary(new byte[] {77, 97, 110})", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionString() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-string");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("\"name\"", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-string");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyString(\"name\")", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUint8() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-uint8");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("org.opendaylight.yangtools.yang.common.Uint8.valueOf(\"11\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-uint8");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyUint8(org.opendaylight.yangtools.yang.common.Uint8.valueOf(\"11\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUint16() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-uint16");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("org.opendaylight.yangtools.yang.common.Uint16.valueOf(\"111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-uint16");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyUint16(org.opendaylight.yangtools.yang.common.Uint16.valueOf(\"111\"))", actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUint32() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-uint32");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("org.opendaylight.yangtools.yang.common.Uint32.valueOf(\"1111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-uint32");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyUint32(org.opendaylight.yangtools.yang.common.Uint32.valueOf(\"1111\"))",
- actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUint64() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-uint64");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("org.opendaylight.yangtools.yang.common.Uint64.valueOf(\"11111\")", actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-uint64");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- assertEquals("new " + PKG + "MyUint64(org.opendaylight.yangtools.yang.common.Uint64.valueOf(\"11111\"))",
- actual);
- }
-
- @Test
- public void testGetTypeDefaultConstruction() {
- final QName leafNode = QName.create(module.getQNameModule(), "ip-leaf");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- String exp = "new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924."
- + "Ipv4Address(\"0.0.0.1\")";
- assertEquals(exp, actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUnion() {
- final QName leafNode1 = QName.create(module.getQNameModule(), "leaf-union");
- LeafSchemaNode leaf = (LeafSchemaNode) module.findDataChildByName(leafNode1).get();
- String actual = provider.getTypeDefaultConstruction(leaf);
- String expected = "new " + PKG + "TestData.LeafUnion(\"111\".toCharArray())";
- assertEquals(expected, actual);
-
- final QName leafNode2 = QName.create(module.getQNameModule(), "ext-union");
- leaf = (LeafSchemaNode) module.findDataChildByName(leafNode2).get();
- actual = provider.getTypeDefaultConstruction(leaf);
- expected = "new " + PKG + "MyUnion(\"111\".toCharArray())";
- assertEquals(expected, actual);
- }
-
- @Test
- public void testGetTypeDefaultConstructionUnionNested() {
- final QName containerNode1 = QName.create(module.getQNameModule(), "c1");
- ContainerSchemaNode c1 = (ContainerSchemaNode) module.findDataChildByName(containerNode1).get();
- final QName containerNode2 = QName.create(module.getQNameModule(), "c2");
- ContainerSchemaNode c2 = (ContainerSchemaNode) c1.findDataChildByName(containerNode2).get();
- final QName containerNode3 = QName.create(module.getQNameModule(), "c3");
- ContainerSchemaNode c3 = (ContainerSchemaNode) c2.findDataChildByName(containerNode3).get();
- final QName leafNode = QName.create(module.getQNameModule(), "id");
- LeafSchemaNode leaf = (LeafSchemaNode) c3.findDataChildByName(leafNode).get();
-
- String actual = provider.getTypeDefaultConstruction(leaf);
- String expected = "new " + PKG + "NestedUnion(\"111\".toCharArray())";
- assertEquals(expected, actual);
- }
-
- @Test
- public void testGetParamNameFromType() {
- module = CONTEXT.findModule("ietf-inet-types", Revision.of("2010-09-24")).get();
- TypeDefinition<?> ipv4 = null;
- TypeDefinition<?> ipv6 = null;
- TypeDefinition<?> ipv4Pref = null;
- TypeDefinition<?> ipv6Pref = null;
- for (TypeDefinition<?> type : module.getTypeDefinitions()) {
- if ("ipv4-address".equals(type.getQName().getLocalName())) {
- ipv4 = type;
- } else if ("ipv6-address".equals(type.getQName().getLocalName())) {
- ipv6 = type;
- } else if ("ipv4-prefix".equals(type.getQName().getLocalName())) {
- ipv4Pref = type;
- } else if ("ipv6-prefix".equals(type.getQName().getLocalName())) {
- ipv6Pref = type;
- }
- }
-
- assertNotNull(ipv4);
- assertNotNull(ipv6);
- assertNotNull(ipv4Pref);
- assertNotNull(ipv6Pref);
- assertEquals("ipv4Address", provider.getParamNameFromType(ipv4));
- assertEquals("ipv6Address", provider.getParamNameFromType(ipv6));
- assertEquals("ipv4Prefix", provider.getParamNameFromType(ipv4Pref));
- assertEquals("ipv6Prefix", provider.getParamNameFromType(ipv6Pref));
- }
-}
package org.opendaylight.mdsal.binding.yang.types;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.reset;
import java.net.URI;
-import java.util.NoSuchElementException;
import org.junit.Test;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTypeBuilder;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
-import org.opendaylight.yangtools.yang.model.util.type.IdentityrefTypeBuilder;
import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
public class TypeProviderImplTest {
typeProvider.putReferencedType(refTypePath, refType);
final StringTypeDefinition stringType = BaseTypes.stringType();
- final LeafSchemaNode leafSchemaNode = mock(LeafSchemaNode.class);
- doReturn(stringType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- // test constructor
- assertNotNull(typeProvider);
-
// test getAdditionalTypes() method
- assertFalse(typeProvider.getAdditionalTypes().isEmpty());
-
- // test getConstructorPropertyName() method
- assertTrue(typeProvider.getConstructorPropertyName(null).isEmpty());
- assertEquals("value", typeProvider.getConstructorPropertyName(stringType));
-
- // test getParamNameFromType() method
- assertEquals("string", typeProvider.getParamNameFromType(stringType));
-
- // test getTypeDefaultConstruction() method for string type
- assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
-
- // binary type
- final BinaryTypeDefinition binaryType = BaseTypes.binaryType();
-
- reset(leafSchemaNode);
- doReturn(binaryType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- assertEquals("new byte[] {-45}", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "01"));
-
- // boolean type
- final BooleanTypeDefinition booleanType = BaseTypes.booleanType();
-
- reset(leafSchemaNode);
- doReturn(booleanType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- assertEquals("java.lang.Boolean.FALSE", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "false"));
-
- // decimal type
- final DecimalTypeDefinition decimalType = BaseTypes.decimalTypeBuilder(refTypePath).setFractionDigits(4)
- .build();
-
- reset(leafSchemaNode);
- doReturn(decimalType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- assertEquals("new java.math.BigDecimal(\"111\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode,
- "111"));
-
- // empty type
- final EmptyTypeDefinition emptyType = BaseTypes.emptyType();
-
- reset(leafSchemaNode);
- doReturn(emptyType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- assertEquals("java.lang.Boolean.valueOf(\"default value\")", typeProvider.getTypeDefaultConstruction(
- leafSchemaNode, "default value"));
-
- // enum type
- final EnumTypeDefinition enumType = BaseTypes.enumerationTypeBuilder(refTypePath).build();
-
- reset(leafSchemaNode);
- doReturn(enumType).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- try {
- assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
- fail("Expected NoSuchElementException");
- } catch (NoSuchElementException e) {
- // Okay
- }
-
- // identityref type
- final IdentitySchemaNode identitySchemaNode = mock(IdentitySchemaNode.class);
- final IdentityrefTypeBuilder identityRefBuilder = BaseTypes.identityrefTypeBuilder(refTypePath);
- identityRefBuilder.addIdentity(identitySchemaNode);
- final IdentityrefTypeDefinition identityRef = identityRefBuilder.build();
-
- reset(leafSchemaNode);
- doReturn(identityRef).when(leafSchemaNode).getType();
- doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
- doReturn(QName.create("", "Cont1")).when(leafSchemaNode).getQName();
-
- try {
- assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
- fail("Expected UnsupportedOperationException");
- } catch (UnsupportedOperationException e) {
- assertEquals("Cannot get default construction for identityref type", e.getMessage());
- }
+ assertEquals(1, typeProvider.getAdditionalTypes().size());
}
}
provider.provideGeneratedTOBuilderForBitsTypeDefinition(JavaTypeName.create("foo", "foo"), null, "foo");
}
- @Test
- public void getConstructorPropertyNameTest() {
- final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
-
- final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
- "yang-int8-type");
- final TypeDefinition<?> leafType = leaf.getType();
-
- final String ctorPropertyName = provider.getConstructorPropertyName(leafType);
- assertEquals("value", ctorPropertyName);
-
- final String emptyStringName = provider.getConstructorPropertyName(leaf);
- assertTrue(emptyStringName.isEmpty());
- }
-
- @Test
- public void getParamNameFromTypeTest() {
- final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
-
- final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
- "yang-int8-type");
- final TypeDefinition<?> leafType = leaf.getType();
-
- final String paramName = provider.getParamNameFromType(leafType);
- assertEquals("yangInt8", paramName);
- }
-
@Test
public void addUnitsToGenTOTest() {
final GeneratedTOBuilder builder = new CodegenGeneratedTOBuilder(
assertEquals("_UNITS", genTO.getConstantDefinitions().get(0).getName());
assertEquals(genTO.getConstantDefinitions().get(0).getValue(), "\"125\"");
}
-
- @Test(expected = NullPointerException.class)
- public void getTypeDefaultConstructionLeafTypeNullTest() {
- final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
- final TestLeafSchemaNode leafSchemaNode = new TestLeafSchemaNode();
- provider.getTypeDefaultConstruction(leafSchemaNode, null);
- }
-
- @Test(expected = NullPointerException.class)
- public void getTypeDefaultConstructionDefaultValueNullTest() {
- final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
- final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("yang-boolean");
- provider.getTypeDefaultConstruction(leaf, null);
- }
-
- private static LeafSchemaNode provideLeafForGetDefaultConstructionTestCase(final String leafName) {
- return provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "construction-type-test", leafName);
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public void getTypeDefaultConstructionDefaultValueForInstanceIdentifierTest() {
- final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
- final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("foo-container-id");
- provider.getTypeDefaultConstruction(leaf, "NAN");
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public void getTypeDefaultConstructionDefaultValueForIdentityrefTest() {
- final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
- final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("aes-identityref-type");
- provider.getTypeDefaultConstruction(leaf, "NAN");
- }
-
- @Test
- public void getTypeDefaultConstructionDefaultValueTest() {
- final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
-
- LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("yang-boolean");
- String result = provider.getTypeDefaultConstruction(leaf, "true");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangBoolean(java.lang.Boolean.TRUE)", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-empty");
- result = provider.getTypeDefaultConstruction(leaf, "true");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangEmpty(java.lang.Boolean.TRUE)", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-enumeration");
- result = provider.getTypeDefaultConstruction(leaf, "a");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangEnumeration.A", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("direct-use-of-enum");
- result = provider.getTypeDefaultConstruction(leaf, "y");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "construction.type.test.DirectUseOfEnum.Y", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-int8");
- result = provider.getTypeDefaultConstruction(leaf, "17");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt8(java.lang.Byte.valueOf(\"17\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-int8-restricted");
- result = provider.getTypeDefaultConstruction(leaf, "99");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt8Restricted(java.lang.Byte.valueOf(\"99\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-int16");
- result = provider.getTypeDefaultConstruction(leaf, "1024");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt16(java.lang.Short.valueOf(\"1024\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-int32");
- result = provider.getTypeDefaultConstruction(leaf, "1048576");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt32(java.lang.Integer.valueOf(\"1048576\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-int64");
- result = provider.getTypeDefaultConstruction(leaf, "1099511627776");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt64(java.lang.Long.valueOf(\"1099511627776\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-string");
- result = provider.getTypeDefaultConstruction(leaf, "TEST");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangString(\"TEST\")", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-decimal64");
- result = provider.getTypeDefaultConstruction(leaf, "1274.25");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangDecimal64(new java.math.BigDecimal(\"1274.25\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint8");
- result = provider.getTypeDefaultConstruction(leaf, "128");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangUint8(org.opendaylight.yangtools.yang.common.Uint8.valueOf(\"128\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint16");
- result = provider.getTypeDefaultConstruction(leaf, "1048576");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangUint16(org.opendaylight.yangtools.yang.common.Uint16.valueOf(\"1048576\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint32");
- result = provider.getTypeDefaultConstruction(leaf, "1099511627776");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangUint32(org.opendaylight.yangtools.yang.common.Uint32.valueOf(\"1099511627776\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint64");
- result = provider.getTypeDefaultConstruction(leaf, "1208925819614629174706176");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangUint64(org.opendaylight.yangtools.yang.common.Uint64.valueOf(\"1208925819614629174706176\"))",
- result);
-
- //FIXME: Is this correct scenario and correct result?
- leaf = provideLeafForGetDefaultConstructionTestCase("complex-union");
- result = provider.getTypeDefaultConstruction(leaf, "75");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "ComplexUnion(\"null\".toCharArray())", result);
-
- //FIXME: Is this correct scenario and correct result?
- leaf = provideLeafForGetDefaultConstructionTestCase("complex-string-int-union");
- result = provider.getTypeDefaultConstruction(leaf, "TEST_UNION_STRING_DEFAULT");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "ComplexStringIntUnion(\"null\".toCharArray())", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("simple-int-types-union");
- result = provider.getTypeDefaultConstruction(leaf, "2048");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangUnion(\"null\".toCharArray())", result);
-
-
- leaf = provideLeafForGetDefaultConstructionTestCase("direct-union-leaf");
- result = provider.getTypeDefaultConstruction(leaf);
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "DirectUnionLeaf(\"128\".toCharArray())", result);
-
- final Module module = resolveModule("test-type-provider");
- final QName leafUnionNode = QName.create(module.getQNameModule(), "root-union-leaf");
- DataSchemaNode rootNode = module.findDataChildByName(leafUnionNode).get();
- assertTrue(rootNode instanceof LeafSchemaNode);
- leaf = (LeafSchemaNode) rootNode;
- result = provider.getTypeDefaultConstruction(leaf);
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "TestTypeProviderData.RootUnionLeaf(\"256\".toCharArray())", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-binary");
- result = provider.getTypeDefaultConstruction(leaf, "0xffffff");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangBinary(new byte[] {-45, 23, -33, 125, -9, -33})", result);
-
- final QName leafBitsNode = QName.create(module.getQNameModule(), "root-bits-leaf");
- rootNode = module.findDataChildByName(leafBitsNode).get();
- assertTrue(rootNode instanceof LeafSchemaNode);
- leaf = (LeafSchemaNode) rootNode;
- result = provider.getTypeDefaultConstruction(leaf);
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
- + "TestTypeProviderData.RootBitsLeaf(true, false, false)", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("yang-bits");
- result = provider.getTypeDefaultConstruction(leaf, "only-10-Mb");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangBits(false, false, true)", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("bar-id");
- result = provider.getTypeDefaultConstruction(leaf, "128");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt16(java.lang.Short.valueOf(\"128\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("foo-leafref-value");
- result = provider.getTypeDefaultConstruction(leaf, "32");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
- + "YangInt8(java.lang.Byte.valueOf(\"32\"))", result);
-
- leaf = provideLeafForGetDefaultConstructionTestCase("foo-cond-bar-item");
- result = provider.getTypeDefaultConstruction(leaf, "10");
- assertNotNull(result);
- assertTrue(!result.isEmpty());
- assertEquals("new java.lang.Object()", result);
- }
}
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.util.BaseYangTypes;
import org.opendaylight.mdsal.binding.model.util.Types;
-import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
final Type mapped = BaseYangTypes.javaTypeForYangType(typeName);
return mapped == null || restrictions == null ? mapped : Types.restrictedType(mapped, restrictions);
}
-
- @Override
- public String getTypeDefaultConstruction(final LeafSchemaNode node) {
- return null;
- }
-
- @Override
- public String getConstructorPropertyName(final SchemaNode node) {
- return null;
- }
-
- @Override
- public String getParamNameFromType(final TypeDefinition<?> type) {
- return "_" + BindingMapping.getPropertyName(type.getQName().getLocalName());
- }
}
\ No newline at end of file