@@ -34,7 +34,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
3434 .map (e -> (TypeElement ) e )
3535 .forEach (this ::generateDoneableClass );
3636 }
37- return false ;
37+ return true ;
3838 }
3939
4040 private void generateDoneableClass (TypeElement controllerClassSymbol ) {
@@ -44,8 +44,9 @@ private void generateDoneableClass(TypeElement controllerClassSymbol) {
4444 .getElementUtils ()
4545 .getTypeElement (resourceType .toString ());
4646
47+ final String destinationClassFileName = customerResourceTypeElement .getQualifiedName () + "Doneable" ;
4748 JavaFileObject builderFile = processingEnv .getFiler ()
48- .createSourceFile (customerResourceTypeElement . getSimpleName () + "Doneable" );
49+ .createSourceFile (destinationClassFileName );
4950
5051 try (PrintWriter out = new PrintWriter (builderFile .openWriter ())) {
5152 final MethodSpec constructor = MethodSpec .constructorBuilder ()
@@ -73,24 +74,34 @@ private void generateDoneableClass(TypeElement controllerClassSymbol) {
7374 }
7475
7576 private TypeMirror findResourceType (TypeElement controllerClassSymbol ) throws Exception {
76- final DeclaredType controllerType = collectAllInterfaces (controllerClassSymbol )
77- .stream ()
78- .filter (i -> i .toString ()
79- .startsWith (ResourceController .class .getCanonicalName ())
80- )
81- .findFirst ()
82- .orElseThrow (() -> new Exception ("ResourceController is not implemented by " + controllerClassSymbol .toString ()));
77+ try {
78+ final DeclaredType controllerType = collectAllInterfaces (controllerClassSymbol )
79+ .stream ()
80+ .filter (i -> i .toString ()
81+ .startsWith (ResourceController .class .getCanonicalName ())
82+ )
83+ .findFirst ()
84+ .orElseThrow (() -> new Exception ("ResourceController is not implemented by " + controllerClassSymbol .toString ()));
8385
84- return controllerType .getTypeArguments ().get (0 );
86+ return controllerType .getTypeArguments ().get (0 );
87+ } catch (Exception e ) {
88+ e .printStackTrace ();
89+ return null ;
90+ }
8591 }
8692
8793 private List <DeclaredType > collectAllInterfaces (TypeElement element ) {
88- List <DeclaredType > interfaces = new ArrayList <>(element .getInterfaces ()).stream ().map (t -> (DeclaredType ) t ).collect (Collectors .toList ());
89- TypeElement superclass = ((TypeElement ) ((DeclaredType ) element .getSuperclass ()).asElement ());
90- while (superclass .getSuperclass ().getKind () != TypeKind .NONE ) {
91- interfaces .addAll (superclass .getInterfaces ().stream ().map (t -> (DeclaredType ) t ).collect (Collectors .toList ()));
92- superclass = ((TypeElement ) ((DeclaredType ) superclass .getSuperclass ()).asElement ());
94+ try {
95+ List <DeclaredType > interfaces = new ArrayList <>(element .getInterfaces ()).stream ().map (t -> (DeclaredType ) t ).collect (Collectors .toList ());
96+ TypeElement superclass = ((TypeElement ) ((DeclaredType ) element .getSuperclass ()).asElement ());
97+ while (superclass .getSuperclass ().getKind () != TypeKind .NONE ) {
98+ interfaces .addAll (superclass .getInterfaces ().stream ().map (t -> (DeclaredType ) t ).collect (Collectors .toList ()));
99+ superclass = ((TypeElement ) ((DeclaredType ) superclass .getSuperclass ()).asElement ());
100+ }
101+ return interfaces ;
102+ } catch (Exception e ) {
103+ e .printStackTrace ();
104+ return null ;
93105 }
94- return interfaces ;
95106 }
96107}
0 commit comments