Fix YangModuleInfoTemplate 75/72375/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 28 May 2018 17:29:06 +0000 (19:29 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 28 May 2018 19:20:09 +0000 (21:20 +0200)
Optional is not comparable, hence we need to pass an explicit
Comparator to the TreeMap.

JIRA: MDSAL-344
Change-Id: I79e8000c85ed74d3f14e77da156038f3c781aa59
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/YangModuleInfoTemplate.xtend

index 62e2342d13cc7c3b81d0abbbf7b354e6bd529844..5f6f4e22dddb7886b955666742085152bff67b3a 100644 (file)
@@ -16,6 +16,7 @@ import static extension org.opendaylight.yangtools.yang.binding.BindingMapping.g
 import com.google.common.base.Preconditions
 import com.google.common.collect.ImmutableSet
 import java.util.Collections
+import java.util.Comparator
 import java.util.HashSet
 import java.util.LinkedHashMap
 import java.util.Map
@@ -42,6 +43,8 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext
  * QNAME constants.
  */
 class YangModuleInfoTemplate {
+    static val Comparator<Optional<Revision>> REVISION_COMPARATOR =
+        [ Optional<Revision> first, Optional<Revision> second | Revision.compare(first, second) ]
 
     val Module module
     val SchemaContext ctx
@@ -117,7 +120,7 @@ class YangModuleInfoTemplate {
                     «val rev = imp.revision»
                     «IF !rev.present»
                         «val Set<Module> modules = ctx.modules»
-                        «val TreeMap<Optional<Revision>, Module> sorted = new TreeMap()»
+                        «val TreeMap<Optional<Revision>, Module> sorted = new TreeMap(REVISION_COMPARATOR
                         «FOR module : modules»
                             «IF module.name.equals(name)»
                                 «sorted.put(module.revision, module)»