Additional Warnings in Event Bus Proc #8
@ -80,14 +80,20 @@ public class EventProcessor extends AbstractProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
// Check for handlers for abstract types that aren't polymorphic
|
||||
// Detect missing or useless @Polymorphic
|
||||
boolean polymorphic = eventHandler.getAnnotation(Polymorphic.class) != null;
|
||||
Element eventElement = ((DeclaredType) eventType).asElement();
|
||||
if (eventHandler.getAnnotation(Polymorphic.class) == null
|
||||
&& (eventElement.getKind() == ElementKind.INTERFACE
|
||||
|| eventElement.getModifiers().contains(Modifier.ABSTRACT))) {
|
||||
|
||||
// Check for handlers for abstract types that aren't polymorphic
|
||||
if (!polymorphic && (eventElement.getKind() == ElementKind.INTERFACE
|
||||
|| eventElement.getModifiers().contains(Modifier.ABSTRACT)))
|
||||
warning(eventHandler,
|
||||
"Parameter should be instantiable or handler should use @Polymorphic");
|
||||
}
|
||||
|
||||
// Check for handlers for final types that are polymorphic
|
||||
else if (polymorphic && eventElement.getModifiers().contains(Modifier.FINAL))
|
||||
warning(eventHandler,
|
||||
"@Polymorphic should be removed as parameter cannot be subclassed");
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user