Skip to content

Commit 49d5a36

Browse files
authored
Merge pull request #43 from SentryMan/java-lang-imports
Fix Java Lang Sub-Package Imports
2 parents 81f1fd5 + a8212f0 commit 49d5a36

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

prism-core/src/main/java/io/avaje/prism/internal/UTypeWriter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ public static void write(PrintWriter out, String packageName) {
1515
+ "import java.util.List;\n"
1616
+ "import java.util.Set;\n"
1717
+ "\n"
18+
+ "import javax.annotation.processing.Generated;\n"
1819
+ "import javax.lang.model.element.AnnotationMirror;\n"
1920
+ "import javax.lang.model.type.TypeKind;\n"
2021
+ "import javax.lang.model.type.TypeMirror;\n"
2122
+ "\n"
2223
+ "/** Utility type to help process {@link TypeMirror}s */\n"
24+
+ "@Generated(\"avaje-prism-generator\")\n"
2325
+ "public interface UType {\n"
2426
+ "\n"
2527
+ " /**\n"

prism-core/src/main/java/io/avaje/prism/internal/VisitorWriter.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ public static void write(PrintWriter out, String packageName) {
1212
+ packageName
1313
+ ";\n"
1414
+ "\n"
15-
+ "\n"
16-
+ "import static java.util.function.Predicate.not;\n"
1715
+ "import static java.util.stream.Collectors.toSet;\n"
1816
+ "\n"
1917
+ "import java.util.ArrayList;\n"
@@ -25,6 +23,7 @@ public static void write(PrintWriter out, String packageName) {
2523
+ "import java.util.Map;\n"
2624
+ "import java.util.Set;\n"
2725
+ "\n"
26+
+ "import javax.annotation.processing.Generated;\n"
2827
+ "import javax.lang.model.element.AnnotationMirror;\n"
2928
+ "import javax.lang.model.element.Element;\n"
3029
+ "import javax.lang.model.element.QualifiedNameable;\n"
@@ -44,6 +43,7 @@ public static void write(PrintWriter out, String packageName) {
4443
+ "import javax.lang.model.type.WildcardType;\n"
4544
+ "import javax.lang.model.util.AbstractTypeVisitor9;\n"
4645
+ "\n"
46+
+ "@Generated(\"avaje-prism-generator\")\n"
4747
+ "class TypeMirrorVisitor extends AbstractTypeVisitor9<StringBuilder, StringBuilder>\n"
4848
+ " implements UType {\n"
4949
+ "\n"
@@ -62,26 +62,35 @@ public static void write(PrintWriter out, String packageName) {
6262
+ " private TypeKind kind;\n"
6363
+ "\n"
6464
+ " public static TypeMirrorVisitor create(TypeMirror typeMirror) {\n"
65-
+ " final var v = new TypeMirrorVisitor(1, Map.of());\n"
65+
+ " return create(typeMirror, true);\n"
66+
+ " }\n"
67+
+ "\n"
68+
+ " public static TypeMirrorVisitor create(TypeMirror typeMirror, boolean includedAnnotations) {\n"
69+
+ " final var v = new TypeMirrorVisitor(1, Map.of(), includedAnnotations);\n"
6670
+ " final StringBuilder b = new StringBuilder();\n"
6771
+ " v.fullType = typeMirror.accept(v, b).toString();\n"
6872
+ " return v;\n"
6973
+ " }\n"
7074
+ "\n"
7175
+ " private TypeMirrorVisitor() {\n"
72-
+ " this(1, new HashMap<>());\n"
76+
+ " this(1, new HashMap<>(), true);\n"
7377
+ " }\n"
7478
+ "\n"
75-
+ " private TypeMirrorVisitor(int depth, Map<TypeVariable, String> typeVariables) {\n"
76-
+ " this.includeAnnotations = true;\n"
79+
+ " private TypeMirrorVisitor(\n"
80+
+ " int depth, Map<TypeVariable, String> typeVariables, boolean includeAnnotations) {\n"
81+
+ " this.includeAnnotations = includeAnnotations;\n"
7782
+ " this.depth = depth;\n"
7883
+ " this.typeVariables = new HashMap<>();\n"
7984
+ " this.typeVariables.putAll(typeVariables);\n"
8085
+ " }\n"
8186
+ "\n"
8287
+ " @Override\n"
8388
+ " public Set<String> importTypes() {\n"
84-
+ " return allTypes.stream().filter(s -> !s.startsWith(\"java.lang.\")).collect(toSet());\n"
89+
+ " return allTypes.stream().filter(this::notJavaLang).collect(toSet());\n"
90+
+ " }\n"
91+
+ "\n"
92+
+ " private boolean notJavaLang(String type) {\n"
93+
+ " return !type.startsWith(\"java.lang.\") || Character.isLowerCase(type.charAt(10));\n"
8594
+ " }\n"
8695
+ "\n"
8796
+ " @Override\n"
@@ -151,7 +160,7 @@ public static void write(PrintWriter out, String packageName) {
151160
+ "\n"
152161
+ " private void child(TypeMirror ct, StringBuilder p, boolean setMain) {\n"
153162
+ "\n"
154-
+ " var child = new TypeMirrorVisitor(depth + 1, typeVariables);\n"
163+
+ " var child = new TypeMirrorVisitor(depth + 1, typeVariables, includeAnnotations);\n"
155164
+ " child.allTypes = allTypes;\n"
156165
+ " child.everyAnnotation = everyAnnotation;\n"
157166
+ " var full = ct.accept(child, new StringBuilder()).toString();\n"

0 commit comments

Comments
 (0)