Merge "BUG-1485: deprecate length/range methods"
[yangtools.git] / code-generator / binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / ClassTemplate.xtend
index 1f9d9d0a4b81a7fe2d497673a08317a26ed9988c..cc3a78809a8215943b3f82a2469f8f54ed705313 100644 (file)
@@ -165,6 +165,10 @@ class ClassTemplate extends BaseTemplate {
     def private generateLengthMethod(String methodName, String varName) '''
         «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»() {
                 return «varName»;
             }
@@ -174,6 +178,10 @@ class ClassTemplate extends BaseTemplate {
     def private generateRangeMethod(String methodName, String varName) '''
         «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»>> «methodName»() {
                 return «varName»;
             }
@@ -189,7 +197,7 @@ class ClassTemplate extends BaseTemplate {
         «IF !enclosedGeneratedTypes.empty»
             «FOR innerClass : enclosedGeneratedTypes SEPARATOR "\n"»
                 «IF (innerClass instanceof GeneratedTransferObject)»
-                    «val classTemplate = new ClassTemplate(innerClass as GeneratedTransferObject
+                    «val classTemplate = new ClassTemplate(innerClass)»
                     «classTemplate.generateAsInnerClass»
 
                 «ENDIF»
@@ -297,7 +305,7 @@ class ClassTemplate extends BaseTemplate {
 
         «FOR p : properties»
             «IF p.returnType.importedName.contains("[]")»
-            this.«p.fieldName» = Arrays.copyOf(«p.fieldName», «p.fieldName».length);
+            this.«p.fieldName» = «p.fieldName» == null ? null : «p.fieldName».clone();
             «ELSE»
             this.«p.fieldName» = «p.fieldName»;
             «ENDIF»
@@ -464,12 +472,11 @@ class ClassTemplate extends BaseTemplate {
                 «IF c.name == TypeConstants.PATTERN_CONSTANT_NAME»
                     «val cValue = c.value»
                     «IF cValue instanceof List<?>»
-                        «val cValues = cValue as List<?>»
                         private static final «List.importedName»<«Pattern.importedName»> «Constants.MEMBER_PATTERN_LIST»;
                         public static final «List.importedName»<String> «TypeConstants.PATTERN_CONSTANT_NAME» = «ImmutableList.importedName».of(«
-                        FOR v : cValues SEPARATOR ", "»«
+                        FOR v : cValue SEPARATOR ", "»«
                             IF v instanceof String»"«
-                                v as String»"«
+                                v»"«
                             ENDIF»«
                         ENDFOR»);