55 */
66package io .jooby .apt ;
77
8- import io .jooby .MvcFactory ;
9- import io .jooby .SneakyThrows ;
10- import io .jooby .internal .apt .HandlerCompiler ;
11- import io .jooby .internal .apt .ModuleCompiler ;
12- import io .jooby .internal .apt .Opts ;
8+ import java .io .IOException ;
9+ import java .io .OutputStream ;
10+ import java .io .PrintWriter ;
11+ import java .util .ArrayList ;
12+ import java .util .Collections ;
13+ import java .util .HashSet ;
14+ import java .util .LinkedHashMap ;
15+ import java .util .LinkedHashSet ;
16+ import java .util .List ;
17+ import java .util .Map ;
18+ import java .util .Set ;
19+ import java .util .stream .Collectors ;
20+ import java .util .stream .Stream ;
1321
1422import javax .annotation .processing .AbstractProcessor ;
1523import javax .annotation .processing .Filer ;
2937import javax .tools .FileObject ;
3038import javax .tools .JavaFileObject ;
3139import javax .tools .StandardLocation ;
32- import java .io .IOException ;
33- import java .io .OutputStream ;
34- import java .io .PrintWriter ;
35- import java .util .ArrayList ;
36- import java .util .Collections ;
37- import java .util .HashSet ;
38- import java .util .LinkedHashMap ;
39- import java .util .LinkedHashSet ;
40- import java .util .List ;
41- import java .util .Map ;
42- import java .util .Set ;
43- import java .util .stream .Collectors ;
44- import java .util .stream .Stream ;
40+
41+ import io .jooby .MvcFactory ;
42+ import io .jooby .SneakyThrows ;
43+ import io .jooby .internal .apt .HandlerCompiler ;
44+ import io .jooby .internal .apt .ModuleCompiler ;
45+ import io .jooby .internal .apt .Opts ;
4546
4647/**
4748 * Jooby Annotation Processing Tool. It generates byte code for MVC routes.
5354 Opts .OPT_INCREMENTAL ,
5455 Opts .OPT_SERVICES ,
5556 Opts .OPT_SKIP_ATTRIBUTE_ANNOTATIONS ,
56- Opts .OPT_INSPECT_SUB_CLASSES })
57+ Opts .OPT_EXTENDED_LOOKUP_OF_SUPERTYPES })
5758public class JoobyProcessor extends AbstractProcessor {
5859
5960 private ProcessingEnvironment processingEnv ;
@@ -69,7 +70,7 @@ public class JoobyProcessor extends AbstractProcessor {
6970 private boolean debug ;
7071 private boolean incremental ;
7172 private boolean services ;
72- private boolean inspectSubClasses ;
73+ private boolean extendedLooupOfSuperTypes ;
7374
7475 private int round ;
7576
@@ -109,11 +110,11 @@ public synchronized void init(ProcessingEnvironment processingEnvironment) {
109110 debug = Opts .boolOpt (processingEnv , Opts .OPT_DEBUG , false );
110111 incremental = Opts .boolOpt (processingEnv , Opts .OPT_INCREMENTAL , true );
111112 services = Opts .boolOpt (processingEnv , Opts .OPT_SERVICES , true );
112- inspectSubClasses = Opts .boolOpt (processingEnv , Opts .OPT_INSPECT_SUB_CLASSES , false );
113+ extendedLooupOfSuperTypes = Opts .boolOpt (processingEnv , Opts .OPT_EXTENDED_LOOKUP_OF_SUPERTYPES , false );
113114
114115 debug ("Incremental annotation processing is turned %s." , incremental ? "ON" : "OFF" );
115116 debug ("Generation of service provider configuration is turned %s." , services ? "ON" : "OFF" );
116- debug ("Inspection of superTypes %s." , inspectSubClasses ? "ON" : "OFF" );
117+ debug ("Extended lookup of superTypes %s." , extendedLooupOfSuperTypes ? "ON" : "OFF" );
117118 }
118119
119120 @ Override
@@ -156,11 +157,11 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
156157 mapping .computeIfAbsent (annotation , k -> new ArrayList <>()).add (method );
157158 }
158159 } else {
159- if (inspectSubClasses ) {
160- elements .stream (). filter ( TypeElement . class :: isInstance ). map ( TypeElement . class :: cast ). forEach ( parentTypeElement -> {
161- inspectSubClasses ( parentTypeElement );
162- });
163-
160+ if (extendedLooupOfSuperTypes ) {
161+ elements .stream ()
162+ . filter ( TypeElement . class :: isInstance )
163+ . map ( TypeElement . class :: cast )
164+ . forEach ( parentTypeElement -> extendedLookupOfSuperTypes ( parentTypeElement ));
164165 }
165166 }
166167 }
@@ -175,7 +176,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
175176 *
176177 * @param parentTypeElement
177178 */
178- private void inspectSubClasses (TypeElement parentTypeElement ) {
179+ private void extendedLookupOfSuperTypes (TypeElement parentTypeElement ) {
179180 for (TypeElement superType : superTypes (parentTypeElement )) {
180181 //collect all declared methods
181182 Set <ExecutableElement > methods = superType .getEnclosedElements ().stream ()
0 commit comments