From 758f84f573e4d00e2d5ecf2aecfe482c12cd471b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sn=C5=8Dwball?= Date: Fri, 12 Feb 2021 23:56:04 +0100 Subject: [PATCH] Ignore special kotlin collection types (#2130) Kotlin prefers(emits compiler warnings if not) the built-in types e.g. Set and MutableSet instead of the java.util.* variety. This patch removes the imports for those, so the built-in varieties are used. --- .../generator/SimpleQueryBeanWriter.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator/SimpleQueryBeanWriter.java b/kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator/SimpleQueryBeanWriter.java index 8524a59f9..ee21711d2 100644 --- a/kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator/SimpleQueryBeanWriter.java +++ b/kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator/SimpleQueryBeanWriter.java @@ -8,6 +8,9 @@ import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -42,6 +45,23 @@ class SimpleQueryBeanWriter { "kotlin.Char" }; + // These are special classes under Kotlin, and are auto-imported, same as + // java.lang under Java + private static final Set kotlinBlackListedImports = Collections.unmodifiableSet( + new HashSet<>( + Arrays.asList( + "java.util.ArrayList", + "java.util.HashMap", + "java.util.HashSet", + "java.util.LinkedHashMap", + "java.util.LinkedHashSet", + "java.util.List", + "java.util.Map", + "java.util.Set" + ) + ) + ); + private final Set importTypes = new TreeSet<>(); private final List properties = new ArrayList<>(); @@ -158,6 +178,7 @@ class SimpleQueryBeanWriter { importTypes.add(kotlinTypes[i]); } } + importTypes.removeAll(kotlinBlackListedImports); } private boolean isEntity() {