From: Martin Vitez Date: Tue, 28 Jan 2014 10:09:41 +0000 (+0100) Subject: Renamed getLength() method to length() in classes generated from typedefs. X-Git-Tag: release/helium~724^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=eae1169f64176515767463254c618f2861ff127c;p=yangtools.git Renamed getLength() method to length() in classes generated from typedefs. Updated tests. Signed-off-by: Martin Vitez --- diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend index 25236bcfd1..2f9ba7f106 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend @@ -125,6 +125,8 @@ class ClassTemplate extends BaseTemplate { «generateGetLength» + «generateGetRange» + } ''' @@ -431,10 +433,11 @@ class ClassTemplate extends BaseTemplate { def private generateGetLength() ''' «IF restrictions != null && !(restrictions.lengthConstraints.empty)» - public static «List.importedName»<«Range.importedName»> getLength() { - final «List.importedName»<«Range.importedName»> result = new «ArrayList.importedName»<>(); + «val clazz = restrictions.lengthConstraints.iterator.next.min.class» + public static «List.importedName»<«Range.importedName»<«clazz.importedName»>> length() { + final «List.importedName»<«Range.importedName»<«clazz.importedName»>> result = new «ArrayList.importedName»<>(); «FOR r : restrictions.lengthConstraints» - result.add(«Range.importedName».closed(«r.min», «r.max»)); + result.add(«Range.importedName».closed(new «clazz.importedName»("«r.min»"), new «clazz.importedName»("«r.max»"))); «ENDFOR» return result; } @@ -442,16 +445,16 @@ class ClassTemplate extends BaseTemplate { ''' def private generateGetRange() ''' - «IF restrictions != null && !(restrictions.lengthConstraints.empty)» - public static «List.importedName»<«Range.importedName»> getLength() { - final «List.importedName»<«Range.importedName»> result = new «ArrayList.importedName»<>(); - «List.importedName»<«Range.importedName»<«Integer.importedName»>> lengthConstraints = new «ArrayList.importedName»<>(); - «FOR r : restrictions.lengthConstraints» - result.add(«Range.importedName».closed(«r.min», «r.max»)); + «IF restrictions != null && !(restrictions.rangeConstraints.empty)» + «val clazz = restrictions.rangeConstraints.iterator.next.min.class» + public static «List.importedName»<«Range.importedName»<«clazz.importedName»>> range() { + final «List.importedName»<«Range.importedName»<«clazz.importedName»>> result = new «ArrayList.importedName»<>(); + «FOR r : restrictions.rangeConstraints» + result.add(«Range.importedName».closed(new «clazz.importedName»("«r.min»"), new «clazz.importedName»("«r.max»"))); «ENDFOR» return result; } «ENDIF» - ''' + ''' } diff --git a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTestUtils.java b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTestUtils.java index f517c0cefe..f0f869f7bb 100644 --- a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTestUtils.java +++ b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTestUtils.java @@ -269,9 +269,9 @@ public class CompilationTestUtils { * @param clazz * class to test */ - static void assertContainsGetLength(Class clazz) { + static void assertContainsGetLengthOrRange(Class clazz, boolean isLength) { try { - Method m = clazz.getDeclaredMethod("getLength"); + Method m = clazz.getDeclaredMethod(isLength ? "length" : "range"); java.lang.reflect.Type returnType = m.getGenericReturnType(); assertTrue("Return type of getLength method must be ParameterizedType", returnType instanceof ParameterizedType); @@ -287,10 +287,8 @@ public class CompilationTestUtils { args = pRange.getActualTypeArguments(); assertEquals(1, args.length); - java.lang.reflect.Type integer = args[0]; - assertEquals("class java.lang.Integer", integer.toString()); } catch (NoSuchMethodException e) { - throw new AssertionError("Method getLength does not exists in class " + clazz.getSimpleName()); + throw new AssertionError("Method length()/range() does not exists in class " + clazz.getSimpleName()); } } diff --git a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java index 41e2eae977..29e00c2725 100644 --- a/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java +++ b/code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java @@ -127,7 +127,8 @@ public class TypedefCompilationTest extends BaseCompilationTest { assertContainsDefaultMethods(int32Ext1Class); assertContainsMethod(int32Ext1Class, Integer.class, GET_VAL); defInst = assertContainsMethod(int32Ext1Class, int32Ext1Class, "getDefaultInstance", String.class); - assertEquals(5, int32Ext1Class.getDeclaredMethods().length); + assertContainsGetLengthOrRange(int32Ext1Class, false); + assertEquals(6, int32Ext1Class.getDeclaredMethods().length); List> rangeConstraints = new ArrayList<>(); rangeConstraints.add(Range.closed(new Integer("2"), new Integer("2147483647"))); @@ -147,7 +148,8 @@ public class TypedefCompilationTest extends BaseCompilationTest { assertEquals(3, int32Ext2Class.getDeclaredConstructors().length); assertContainsMethod(int32Ext2Class, String.class, "toString"); defInst = assertContainsMethod(int32Ext2Class, int32Ext2Class, "getDefaultInstance", String.class); - assertEquals(2, int32Ext2Class.getDeclaredMethods().length); + assertContainsGetLengthOrRange(int32Ext2Class, false); + assertEquals(3, int32Ext2Class.getDeclaredMethods().length); rangeConstraints.clear(); rangeConstraints.add(Range.closed(new Integer("3"), new Integer("9"))); @@ -170,7 +172,7 @@ public class TypedefCompilationTest extends BaseCompilationTest { assertContainsMethod(stringExt1Class, String.class, GET_VAL); defInst = assertContainsMethod(stringExt1Class, stringExt1Class, "getDefaultInstance", String.class); assertContainsDefaultMethods(stringExt1Class); - assertContainsGetLength(stringExt1Class); + assertContainsGetLengthOrRange(stringExt1Class, true); assertEquals(6, stringExt1Class.getDeclaredMethods().length); List> lengthConstraints = new ArrayList<>(); @@ -188,7 +190,7 @@ public class TypedefCompilationTest extends BaseCompilationTest { assertContainsConstructor(stringExt2Class, stringExt2Class); assertContainsConstructor(stringExt2Class, stringExt1Class); assertEquals(3, stringExt2Class.getDeclaredConstructors().length); - assertContainsGetLength(stringExt2Class); + assertContainsGetLengthOrRange(stringExt2Class, true); defInst = assertContainsMethod(stringExt2Class, stringExt2Class, "getDefaultInstance", String.class); assertEquals(2, stringExt2Class.getDeclaredMethods().length); @@ -224,7 +226,8 @@ public class TypedefCompilationTest extends BaseCompilationTest { assertContainsMethod(myDecimalTypeClass, BigDecimal.class, GET_VAL); assertContainsDefaultMethods(myDecimalTypeClass); defInst = assertContainsMethod(myDecimalTypeClass, myDecimalTypeClass, "getDefaultInstance", String.class); - assertEquals(5, myDecimalTypeClass.getDeclaredMethods().length); + assertContainsGetLengthOrRange(myDecimalTypeClass, false); + assertEquals(6, myDecimalTypeClass.getDeclaredMethods().length); List> decimalRangeConstraints = new ArrayList<>(); decimalRangeConstraints.add(Range.closed(new BigDecimal("1.5"), new BigDecimal("5.5")));