Renamed getLength() method to length() in classes generated from typedefs. 77/4977/2
authorMartin Vitez <mvitez@cisco.com>
Tue, 28 Jan 2014 10:09:41 +0000 (11:09 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 4 Feb 2014 18:03:22 +0000 (18:03 +0000)
Updated tests.

Signed-off-by: Martin Vitez <mvitez@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend
code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/CompilationTestUtils.java
code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java

index 25236bcfd1ebcba5b8b7ea8d92f6f5f3ad0172db..2f9ba7f1068d48683705facc87f433f3490f3978 100644 (file)
@@ -125,6 +125,8 @@ class ClassTemplate extends BaseTemplate {
 \r
             «generateGetLength»\r
 \r
+            «generateGetRange»\r
+\r
         }\r
     '''\r
 \r
@@ -431,10 +433,11 @@ class ClassTemplate extends BaseTemplate {
 \r
     def private generateGetLength() '''\r
         «IF restrictions != null && !(restrictions.lengthConstraints.empty)»\r
-            public static «List.importedName»<«Range.importedName»<Integer>> getLength() {\r
-                final «List.importedName»<«Range.importedName»<Integer>> result = new «ArrayList.importedName»<>();\r
+            «val clazz = restrictions.lengthConstraints.iterator.next.min.class»\r
+            public static «List.importedName»<«Range.importedName»<«clazz.importedName»>> length() {\r
+                final «List.importedName»<«Range.importedName»<«clazz.importedName»>> result = new «ArrayList.importedName»<>();\r
                 «FOR r : restrictions.lengthConstraints»\r
-                    result.add(«Range.importedName».closed(«r.min», «r.max»));\r
+                    result.add(«Range.importedName».closed(new «clazz.importedName»("«r.min»"), new «clazz.importedName»("«r.max»")));\r
                 «ENDFOR»\r
                 return result;\r
             }\r
@@ -442,16 +445,16 @@ class ClassTemplate extends BaseTemplate {
     '''\r
 \r
     def private generateGetRange() '''\r
-        «IF restrictions != null && !(restrictions.lengthConstraints.empty)»\r
-            public static «List.importedName»<«Range.importedName»<Integer>> getLength() {\r
-                final «List.importedName»<«Range.importedName»<Integer>> result = new «ArrayList.importedName»<>();\r
-                «List.importedName»<«Range.importedName»<«Integer.importedName»>> lengthConstraints = new «ArrayList.importedName»<>(); \r
-                «FOR r : restrictions.lengthConstraints»\r
-                    result.add(«Range.importedName».closed(«r.min», «r.max»));\r
+        «IF restrictions != null && !(restrictions.rangeConstraints.empty)»\r
+            «val clazz = restrictions.rangeConstraints.iterator.next.min.class»\r
+            public static «List.importedName»<«Range.importedName»<«clazz.importedName»>> range() {\r
+                final «List.importedName»<«Range.importedName»<«clazz.importedName»>> result = new «ArrayList.importedName»<>();\r
+                «FOR r : restrictions.rangeConstraints»\r
+                    result.add(«Range.importedName».closed(new «clazz.importedName»("«r.min»"), new «clazz.importedName»("«r.max»")));\r
                 «ENDFOR»\r
                 return result;\r
             }\r
         «ENDIF»\r
-    '''\r
+    '''
 \r
 }\r
index f517c0cefeb8d9810f871905a7fb32a433323127..f0f869f7bb81ff8a7717efc114e53e4922cfcd28 100644 (file)
@@ -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());
         }
     }
 
index 41e2eae9777c5ac3974f7533592c9841961eaddb..29e00c2725e3503bed7c1138935a3010fcb39617 100644 (file)
@@ -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<Range<Integer>> 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<Range<Integer>> 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<Range<BigDecimal>> decimalRangeConstraints = new ArrayList<>();
         decimalRangeConstraints.add(Range.closed(new BigDecimal("1.5"), new BigDecimal("5.5")));