Optimize AbstractBuilderTemplate key property sort
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / AbstractBuilderTemplate.xtend
index 0663588b788347333119c7425a904e3fac3043ca..198f02cf8ad2b8381a6bde11075ec30df6c12634 100644 (file)
@@ -14,6 +14,7 @@ import com.google.common.base.MoreObjects
 import java.util.ArrayList
 import java.util.Collection
 import java.util.Collections
+import java.util.Comparator
 import java.util.List
 import java.util.Map
 import java.util.Set
@@ -27,6 +28,8 @@ import org.opendaylight.yangtools.yang.binding.CodeHelpers
 import org.opendaylight.yangtools.yang.binding.Identifiable
 
 abstract class AbstractBuilderTemplate extends BaseTemplate {
+    static val Comparator<GeneratedProperty> KEY_PROPS_COMPARATOR = [ p1, p2 | return p1.name.compareTo(p2.name) ]
+
     /**
      * Generated property is set if among methods is found one with the name GET_AUGMENTATION_METHOD_NAME.
      */
@@ -137,7 +140,7 @@ abstract class AbstractBuilderTemplate extends BaseTemplate {
             «val isList = implementsIfc(targetType, Types.parameterizedTypeFor(Types.typeForClass(Identifiable), targetType))»
             «IF isList && keyType !== null»
                 «val keyProps = new ArrayList((keyType as GeneratedTransferObject).properties)»
-                «keyProps.sort([ p1, p2 | return p1.name.compareTo(p2.name) ]
+                «keyProps.sort(KEY_PROPS_COMPARATOR
                 «FOR field : keyProps»
                     «removeProperty(allProps, field.name)»
                 «ENDFOR»