Speed up AbstractBuilderTemplate.removeProperty() 07/86607/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 19 Dec 2019 14:51:20 +0000 (15:51 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 28 Dec 2019 19:48:20 +0000 (20:48 +0100)
Rather than performing a linear unbounded search followed by a
conditional remove, use an interator and remove the first matching
property, bailing out.

Change-Id: Ia5de2175628c9730d7c76df58e15540f3cbb4fa3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit a5f323b5a0eeb5d4a0cb82b37f751ae780ba1f91)

binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AbstractBuilderTemplate.xtend

index 0fa83fee998fa6aa602c35302dd3728a61cd0756..da98b8c7bf829ab7aaec277b7249545e34912044 100644 (file)
@@ -173,15 +173,13 @@ abstract class AbstractBuilderTemplate extends BaseTemplate {
     }
 
     private def void removeProperty(Collection<GeneratedProperty> props, String name) {
-        var GeneratedProperty toRemove = null
-        for (p : props) {
-            if (p.name.equals(name)) {
-                toRemove = p;
+        val iter = props.iterator
+        while (iter.hasNext) {
+            if (name.equals(iter.next.name)) {
+                iter.remove
+                return
             }
         }
-        if (toRemove !== null) {
-            props.remove(toRemove);
-        }
     }
 
     private static def findDeprecatedAnnotation(List<AnnotationType> annotations) {