BUG-1485: remove deprecated range methods 08/22008/12
authorRobert Varga <rovarga@cisco.com>
Fri, 5 Jun 2015 21:20:55 +0000 (23:20 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 22 Jul 2015 07:41:25 +0000 (07:41 +0000)
This Be-cycle patch removes the methods which have been removed in
Lithium, improving class size and not leaking the enforcement details.

Change-Id: I629df675eecac10c0aad1ed212123dca0f6d81d8
Signed-off-by: Robert Varga <rovarga@cisco.com>
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend
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/GeneratorJavaFileTest.java
code-generator/binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/TypedefCompilationTest.java

index 790acce3ee892748565a93639d8f9041bd8899d6..161857f7dfb55b4b3c598ddea62802de8c57d5cf 100644 (file)
@@ -9,8 +9,6 @@ package org.opendaylight.yangtools.sal.java.api.generator
 
 import com.google.common.base.CharMatcher
 import com.google.common.base.Splitter
-import java.math.BigDecimal
-import java.math.BigInteger
 import java.util.Arrays
 import java.util.Collection
 import java.util.HashMap
@@ -374,51 +372,6 @@ abstract class BaseTemplate {
         ENDIF
     »'''
 
-    @Deprecated
-    def protected String importedNumber(Class<? extends Number> clazz) {
-        if (clazz.equals(typeof(BigDecimal))) {
-            return BigDecimal.importedName
-        }
-        return BigInteger.importedName
-    }
-
-    @Deprecated
-    def protected String importedNumber(Type clazz) {
-        if (clazz.fullyQualifiedName.equals(BigDecimal.canonicalName)) {
-            return BigDecimal.importedName
-        }
-        return BigInteger.importedName
-    }
-
-    @Deprecated
-    def protected String numericValue(Class<? extends Number> clazz, Object numberValue) {
-        val number = clazz.importedName;
-        val value = numberValue.toString
-        if (clazz.equals(typeof(BigInteger)) || clazz.equals(typeof(BigDecimal))) {
-            if (value.equals("0")) {
-                return number + ".ZERO"
-            } else if (value.equals("1")) {
-                return number + ".ONE"
-            } else if (value.equals("10")) {
-                return number + ".TEN"
-            } else {
-                try {
-                    val Long longVal = Long.valueOf(value)
-                    return number + ".valueOf(" + longVal + "L)"
-                } catch (NumberFormatException e) {
-                    if (clazz.equals(typeof(BigDecimal))) {
-                        try {
-                            val Double doubleVal = Double.valueOf(value);
-                            return number + ".valueOf(" + doubleVal + ")"
-                        } catch (NumberFormatException e2) {
-                        }
-                    }
-                }
-            }
-        }
-        return "new " + number + "(\"" + value + "\")"
-    }
-
     def protected GeneratedProperty findProperty(GeneratedTransferObject gto, String name) {
         val props = gto.properties
         for (prop : props) {
index 2585526e0c7e6d40144a84cbcdde33f775ea1887..7a8b72aef526885602a7ccea8e725f42f8ac99b2 100644 (file)
@@ -8,9 +8,6 @@
 package org.opendaylight.yangtools.sal.java.api.generator
 
 import com.google.common.collect.ImmutableSortedSet
-import com.google.common.collect.Range
-import java.math.BigDecimal
-import java.math.BigInteger
 import java.util.ArrayList
 import java.util.Arrays
 import java.util.Collection
@@ -30,13 +27,11 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject
 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType
 import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature
-import org.opendaylight.yangtools.sal.binding.model.api.Restrictions
 import org.opendaylight.yangtools.sal.binding.model.api.Type
 import org.opendaylight.yangtools.yang.binding.Augmentable
 import org.opendaylight.yangtools.yang.binding.AugmentationHolder
 import org.opendaylight.yangtools.yang.binding.DataObject
 import org.opendaylight.yangtools.yang.binding.Identifiable
-import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint
 
 /**
  * Template for generating JAVA builder classes.
@@ -464,9 +459,6 @@ class BuilderTemplate extends BaseTemplate {
                 this.«field.fieldName» = value;
                 return this;
             }
-            «generateLengthMethod(field.fieldName + "_length", field.returnType)»
-            «val range = field.fieldName + "_range"»
-            «generateRangeMethod(range, restrictions, field.returnType)»
         «ENDFOR»
         «IF augmentField != null»
 
@@ -504,61 +496,6 @@ class BuilderTemplate extends BaseTemplate {
         «ENDIF»
     '''
 
-    @Deprecated
-    def private generateLengthMethod(String methodName, Type type) '''
-        «val Restrictions restrictions = type.restrictions»
-        «IF restrictions != null && !(restrictions.lengthConstraints.empty)»
-            «val numberClass = restrictions.lengthConstraints.iterator.next.min.class»
-            /**
-             * @deprecated This method is slated for removal in a future release. See BUG-1485 for details.
-             */
-            @Deprecated
-            public static «List.importedName»<«Range.importedName»<«numberClass.importedNumber»>> «methodName»() {
-                «IF numberClass.equals(typeof(BigDecimal))»
-                    «lengthBody(restrictions, numberClass)»
-                «ELSE»
-                    «lengthBody(restrictions, typeof(BigInteger))»
-                «ENDIF»
-            }
-        «ENDIF»
-    '''
-
-    @Deprecated
-    def private lengthBody(Restrictions restrictions, Class<? extends Number> numberClass) '''
-        «List.importedName»<«Range.importedName»<«numberClass.importedName»>> ret = new «ArrayList.importedName»<>(«restrictions.lengthConstraints.size»);
-        «FOR r : restrictions.lengthConstraints»
-            ret.add(«Range.importedName».closed(«numericValue(numberClass, r.min)», «numericValue(numberClass, r.max)»));
-        «ENDFOR»
-        return ret;
-    '''
-
-    @Deprecated
-    def private generateRangeMethod(String methodName, Restrictions restrictions, Type returnType) '''
-        «IF restrictions != null && !(restrictions.rangeConstraints.empty)»
-            «val number = returnType.importedNumber»
-            /**
-             * @deprecated This method is slated for removal in a future release. See BUG-1485 for details.
-             */
-            @Deprecated
-            public static «List.importedName»<«Range.importedName»<«number»>> «methodName»() {
-                «IF returnType.fullyQualifiedName.equals(BigDecimal.canonicalName)»
-                    «rangeBody(restrictions.rangeConstraints, BigDecimal)»
-                «ELSE»
-                    «rangeBody(restrictions.rangeConstraints, BigInteger)»
-                «ENDIF»
-            }
-        «ENDIF»
-    '''
-
-    @Deprecated
-    def private rangeBody(List<RangeConstraint> restrictions, Class<? extends Number> numberClass) '''
-         final «List.importedName»<«Range.importedName»<«numberClass.importedName»>> ret = new java.util.ArrayList<>(«restrictions.size»);
-         «FOR r : restrictions»
-             ret.add(«Range.importedName».closed(«numericValue(numberClass, r.min)», «numericValue(numberClass, r.max)»));
-         «ENDFOR»
-         return ret;
-    '''
-
     def private CharSequence generateCopyConstructor(boolean impl) '''
         «IF impl»private«ELSE»public«ENDIF» «type.name»«IF impl»«IMPL»«ELSE»«BUILDER»«ENDIF»(«type.name»«IF impl»«BUILDER»«ENDIF» base) {
             «val allProps = new ArrayList(properties)»
index 7c5f78d48dee4db76b5f80b4ff8e52ed7541b058..8107e464b3c4c34734f35a40eb0b6532b14ac20d 100644 (file)
@@ -10,11 +10,8 @@ package org.opendaylight.yangtools.sal.java.api.generator
 import com.google.common.base.Preconditions
 import com.google.common.collect.ImmutableList
 import com.google.common.collect.Lists
-import com.google.common.collect.Range
 import com.google.common.io.BaseEncoding
 import java.beans.ConstructorProperties
-import java.math.BigDecimal
-import java.math.BigInteger
 import java.util.ArrayList
 import java.util.Arrays
 import java.util.Collections
@@ -30,7 +27,6 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType
 import org.opendaylight.yangtools.sal.binding.model.api.Restrictions
 import org.opendaylight.yangtools.sal.binding.model.api.Type
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition
-import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint
 
 /**
  * Template for generating JAVA class.
@@ -152,11 +148,6 @@ class ClassTemplate extends BaseTemplate {
             «generateEquals»
 
             «generateToString(genTO.toStringIdentifiers)»
-
-            «generateLengthMethod()»
-
-            «generateRangeMethod()»
-
         }
 
     '''
@@ -178,51 +169,6 @@ class ClassTemplate extends BaseTemplate {
         }
     '''
 
-    @Deprecated
-    def private generateLengthMethod() '''
-        «IF restrictions != null && !(restrictions.lengthConstraints.empty)»
-            «val numberClass = restrictions.lengthConstraints.iterator.next.min.class»
-            /**
-             * @deprecated This method is slated for removal in a future release. See BUG-1485 for details.
-             */
-            @Deprecated
-            public static «List.importedName»<«Range.importedName»<«numberClass.importedNumber»>> length() {
-                «List.importedName»<«Range.importedName»<«numberClass.importedName»>> ret = new java.util.ArrayList<>(«restrictions.lengthConstraints.size»);
-                «FOR r : restrictions.lengthConstraints»
-                    ret.add(«Range.importedName».closed(«numericValue(numberClass, r.min)», «numericValue(numberClass, r.max)»));
-                «ENDFOR»
-                return ret;
-            }
-        «ENDIF»
-    '''
-
-    @Deprecated
-    private def rangeBody(List<RangeConstraint> restrictions, Class<? extends Number> numberClass) '''
-        «List.importedName»<«Range.importedName»<«numberClass.importedName»>> ret = new java.util.ArrayList<>(«restrictions.size»);
-        «FOR r : restrictions»
-            ret.add(«Range.importedName».closed(«numericValue(numberClass, r.min)», «numericValue(numberClass, r.max)»));
-        «ENDFOR»
-    '''
-
-    @Deprecated
-    def private generateRangeMethod() '''
-        «IF restrictions != null && !(restrictions.rangeConstraints.empty)»
-            «val returnType = allProperties.iterator.next.returnType»
-            /**
-             * @deprecated This method is slated for removal in a future release. See BUG-1485 for details.
-             */
-            @Deprecated
-            public static «List.importedName»<«Range.importedName»<«returnType.importedNumber»>> range() {
-            «IF returnType.fullyQualifiedName.equals(BigDecimal.canonicalName)»
-                «rangeBody(restrictions.rangeConstraints, BigDecimal)»
-            «ELSE»
-                «rangeBody(restrictions.rangeConstraints, BigInteger)»
-            «ENDIF»
-                return ret;
-            }
-        «ENDIF»
-    '''
-
     /**
      * Template method which generates inner classes inside this interface.
      *
index 0657835e1f3091c8aa84da4dd8ec096e4a92628e..118fa94b1ef0cd420287b7781677d30f9c8a4052 100644 (file)
@@ -278,37 +278,6 @@ public class CompilationTestUtils {
         }
     }
 
-    /**
-     * Asserts that class contains 'public static
-     * java.util.List<com.google.common.collect.Range<java.lang.Integer>>
-     * getLength()' method.
-     *
-     * @param clazz
-     *            class to test
-     */
-    static void assertContainsGetLengthOrRange(final Class<?> clazz, final boolean isLength) {
-        try {
-            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);
-            ParameterizedType listType = (ParameterizedType) returnType;
-            assertEquals("interface java.util.List", listType.getRawType().toString());
-
-            java.lang.reflect.Type[] args = listType.getActualTypeArguments();
-            assertEquals(1, args.length);
-            java.lang.reflect.Type range = args[0];
-            assertTrue(range instanceof ParameterizedType);
-            ParameterizedType pRange = (ParameterizedType) range;
-            assertEquals("class com.google.common.collect.Range", pRange.getRawType().toString());
-
-            args = pRange.getActualTypeArguments();
-            assertEquals(1, args.length);
-        } catch (NoSuchMethodException e) {
-            throw new AssertionError("Method length()/range() does not exists in class " + clazz.getSimpleName());
-        }
-    }
-
     /**
      * Asserts that class implements given interface.
      *
index 06054e2a3b805e43fe22378850d8e0166c959966..8105ea110fe3c71f34e3ed633e9ca41b94345cca 100644 (file)
@@ -8,14 +8,12 @@
 package org.opendaylight.yangtools.sal.java.api.generator.test;
 
 import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import org.junit.Test;
 import org.opendaylight.yangtools.binding.generator.util.BindingTypes;
 import org.opendaylight.yangtools.binding.generator.util.Types;
@@ -54,7 +52,7 @@ public class GeneratorJavaFileTest {
         assertTrue(filesList.contains("Type4Builder.java"));
     }
 
-    private static GeneratedType createGeneratedType(String pkgName, String name) {
+    private static GeneratedType createGeneratedType(final String pkgName, final String name) {
         GeneratedTypeBuilder builder = new GeneratedTypeBuilderImpl(pkgName, name);
         builder.addImplementsType(BindingTypes.DATA_OBJECT);
         return builder.toInstance();
index 91c0282ff0d1eb303d66c7df8f613c9debdda9fb..57e94f4fbad1bc473e27151bfc74e32009291283 100644 (file)
@@ -19,7 +19,6 @@ import static org.opendaylight.yangtools.sal.java.api.generator.test.Compilation
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsDefaultMethods;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsField;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsFieldWithValue;
-import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsGetLengthOrRange;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsMethod;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertContainsRestrictionCheck;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.assertFilesCount;
@@ -145,7 +144,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertContainsDefaultMethods(int32Ext1Class);
         assertContainsMethod(int32Ext1Class, Integer.class, GET_VAL);
         defInst = assertContainsMethod(int32Ext1Class, int32Ext1Class, "getDefaultInstance", String.class);
-        assertContainsGetLengthOrRange(int32Ext1Class, false);
         // assertEquals(6, int32Ext1Class.getDeclaredMethods().length);
 
         List<Range<Integer>> rangeConstraints = new ArrayList<>();
@@ -167,7 +165,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertEquals(3, int32Ext2Class.getDeclaredConstructors().length);
         assertContainsMethod(int32Ext2Class, String.class, "toString");
         defInst = assertContainsMethod(int32Ext2Class, int32Ext2Class, "getDefaultInstance", String.class);
-        assertContainsGetLengthOrRange(int32Ext2Class, false);
         // assertEquals(3, int32Ext2Class.getDeclaredMethods().length);
 
         rangeConstraints.clear();
@@ -192,7 +189,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertContainsMethod(stringExt1Class, String.class, GET_VAL);
         defInst = assertContainsMethod(stringExt1Class, stringExt1Class, "getDefaultInstance", String.class);
         assertContainsDefaultMethods(stringExt1Class);
-        assertContainsGetLengthOrRange(stringExt1Class, true);
         // assertEquals(6, stringExt1Class.getDeclaredMethods().length);
 
         List<Range<Integer>> lengthConstraints = new ArrayList<>();
@@ -212,7 +208,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertContainsConstructor(stringExt2Class, stringExt2Class);
         assertContainsConstructor(stringExt2Class, stringExt1Class);
         assertEquals(3, stringExt2Class.getDeclaredConstructors().length);
-        assertContainsGetLengthOrRange(stringExt2Class, true);
         defInst = assertContainsMethod(stringExt2Class, stringExt2Class, "getDefaultInstance", String.class);
         // assertEquals(2, stringExt2Class.getDeclaredMethods().length);
 
@@ -252,7 +247,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertContainsMethod(myDecimalTypeClass, BigDecimal.class, GET_VAL);
         assertContainsDefaultMethods(myDecimalTypeClass);
         defInst = assertContainsMethod(myDecimalTypeClass, myDecimalTypeClass, "getDefaultInstance", String.class);
-        assertContainsGetLengthOrRange(myDecimalTypeClass, false);
         // assertEquals(6, myDecimalTypeClass.getDeclaredMethods().length);
 
         List<Range<BigDecimal>> decimalRangeConstraints = new ArrayList<>();
@@ -275,7 +269,6 @@ public class TypedefCompilationTest extends BaseCompilationTest {
         assertContainsMethod(myDecimalType2Class, BigDecimal.class, GET_VAL);
         assertContainsDefaultMethods(myDecimalType2Class);
         defInst = assertContainsMethod(myDecimalType2Class, myDecimalType2Class, "getDefaultInstance", String.class);
-        assertContainsGetLengthOrRange(myDecimalType2Class, false);
         // assertEquals(6, myDecimalType2Class.getDeclaredMethods().length);
 
         List<Range<BigDecimal>> decimal2RangeConstraints = new ArrayList<>();