Reference java.lang.Override through importedName 70/72770/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 7 Jun 2018 16:29:30 +0000 (18:29 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Jun 2018 09:54:16 +0000 (11:54 +0200)
This looks a bit weird, but we must not assume Override is not
shadowed in our class or really in package, otherwise we could
end up with code which does not compile.

JIRA: MDSAL-349
Change-Id: I701daea54fa7a234d75a8fa694a5bd46360b827e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BaseTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ClassTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/YangModuleInfoTemplate.xtend
binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal327/test-imports.yang

index 0b9d7fb5638fe119d64666721d7b6de7fa3a9640..27292a96a23d6468b4e13a6b774e8ac8959afad4 100644 (file)
@@ -409,7 +409,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
 
     def protected generateToString(Collection<GeneratedProperty> properties) '''
         «IF !properties.empty»
-            @Override
+            @«Override.importedName»
             public «String.importedName» toString() {
                 final «MoreObjects.importedName».ToStringHelper helper = «MoreObjects.importedName».toStringHelper(«type.importedName».class);
                 «FOR property : properties»
index 7bcb7e97c667f05bd2716a79dc83c4951bb592d7..110765c8f2ea65f9773d9c8b98da2e30d6a2f31c 100644 (file)
@@ -223,7 +223,7 @@ class BuilderTemplate extends BaseTemplate {
 
             «generateSetters»
 
-            @Override
+            @«Override.importedName»
             public «type.name» build() {
                 return new «type.name»«IMPL»(this);
             }
@@ -645,7 +645,7 @@ class BuilderTemplate extends BaseTemplate {
      */
     def private generateGetters(boolean addOverride) '''
         «IF keyType !== null»
-            «IF addOverride»@Override«ENDIF»
+            «IF addOverride»@«Override.importedName»«ENDIF»
             public «keyType.importedName» «BindingMapping.IDENTIFIABLE_KEY_NAME»() {
                 return key;
             }
@@ -653,14 +653,14 @@ class BuilderTemplate extends BaseTemplate {
         «ENDIF»
         «IF !properties.empty»
             «FOR field : properties SEPARATOR '\n'»
-                «IF addOverride»@Override«ENDIF»
+                «IF addOverride»@«Override.importedName»«ENDIF»
                 «field.getterMethod»
             «ENDFOR»
         «ENDIF»
         «IF augmentType !== null»
 
             @SuppressWarnings("unchecked")
-            «IF addOverride»@Override«ENDIF»
+            «IF addOverride»@«Override.importedName»«ENDIF»
             public <E extends «augmentType.importedName»> E «AUGMENTABLE_AUGMENTATION_NAME»(«Class.importedName»<E> augmentationType) {
                 return (E) «AUGMENTATION_FIELD».get(«CodeHelpers.importedName».nonNullValue(augmentationType, "augmentationType"));
             }
@@ -677,7 +677,7 @@ class BuilderTemplate extends BaseTemplate {
             private int hash = 0;
             private volatile boolean hashValid = false;
 
-            @Override
+            @«Override.importedName»
             public int hashCode() {
                 if (hashValid) {
                     return hash;
@@ -710,7 +710,7 @@ class BuilderTemplate extends BaseTemplate {
      */
     def protected generateEquals() '''
         «IF !properties.empty || augmentType !== null»
-            @Override
+            @«Override.importedName»
             public boolean equals(«Object.importedName» obj) {
                 if (this == obj) {
                     return true;
@@ -759,7 +759,7 @@ class BuilderTemplate extends BaseTemplate {
 
     def override generateToString(Collection<GeneratedProperty> properties) '''
         «IF properties !== null»
-            @Override
+            @«Override.importedName»
             public «String.importedName» toString() {
                 final «MoreObjects.importedName».ToStringHelper helper = «MoreObjects.importedName».toStringHelper("«type.name»");
                 «FOR property : properties»
@@ -774,7 +774,7 @@ class BuilderTemplate extends BaseTemplate {
     '''
 
     def implementedInterfaceGetter() '''
-    @Override
+    @«Override.importedName»
     public «Class.importedName»<«type.importedName»> getImplementedInterface() {
         return «type.importedName».class;
     }
index 3e23a387a4fb198a194f2b81a37944b1bccff3f8..90b2ac3701e65ca4756f9673fda620c2a117f240 100644 (file)
@@ -475,7 +475,7 @@ class ClassTemplate extends BaseTemplate {
      */
     def protected generateHashCode() '''
         «IF !genTO.hashCodeIdentifiers.empty»
-            @Override
+            @«Override.importedName»
             public int hashCode() {
                 final int prime = 31;
                 int result = 1;
@@ -498,7 +498,7 @@ class ClassTemplate extends BaseTemplate {
      */
     def protected generateEquals() '''
         «IF !genTO.equalsIdentifiers.empty»
-            @Override
+            @«Override.importedName»
             public boolean equals(java.lang.Object obj) {
                 if (this == obj) {
                     return true;
index 0bca47918eebcc8cbe5c04cbaa64a0fa08ad5938..c5e1cf9607de6a5499855fdb9c427e7091e10ff8 100644 (file)
@@ -93,12 +93,12 @@ class EnumTemplate extends BaseTemplate {
                 this.name = name;
             }
 
-            @Override
+            @«Override.importedName»
             public «String.importedName» getName() {
                 return name;
             }
 
-            @Override
+            @«Override.importedName»
             public int getIntValue() {
                 return value;
             }
index 5f6f4e22dddb7886b955666742085152bff67b3a..b23f9a5e4ff018676b9b73db705164dc71387645 100644 (file)
@@ -100,7 +100,7 @@ class YangModuleInfoTemplate {
             package «packageName»;
 
             public final class «MODEL_BINDING_PROVIDER_CLASS_NAME» implements «YangModelBindingProvider.name» {
-                @Override
+                @«Override.importedName»
                 public «YangModuleInfo.name» getModuleInfo() {
                     return «MODULE_INFO_CLASS_NAME».getInstance();
                 }
@@ -144,17 +144,17 @@ class YangModuleInfoTemplate {
             «ENDIF»
         }
 
-        @Override
+        @«Override.importedName»
         public «QName.importedName» getName() {
             return NAME;
         }
 
-        @Override
+        @«Override.importedName»
         protected «String.importedName» resourceName() {
             return "«sourcePath(m)»";
         }
 
-        @Override
+        @«Override.importedName»
         public «Set.importedName»<«YangModuleInfo.importedName»> getImportedModules() {
             return importedModules;
         }
index 372f98537212b8cfebf7406d4b0f014ffa8a2d4b..980b1d3c558d8afad3a61dcf69b7f0d0636c0b92 100644 (file)
@@ -20,9 +20,14 @@ module test-imports {
                     enum string;
                     enum int8;
                     enum optional;
+                    enum override;
                   }
                 }
             }
-       }
+        }
+
+        container override {
+
+        }
     }
 }