inherited interface recognition
This commit is contained in:
parent
0886a273e4
commit
ed4326589b
@ -28,6 +28,8 @@ import javax.lang.model.element.ElementKind;
|
||||
import javax.lang.model.element.ExecutableElement;
|
||||
import javax.lang.model.element.Modifier;
|
||||
import javax.lang.model.element.TypeElement;
|
||||
import javax.lang.model.type.DeclaredType;
|
||||
import javax.lang.model.type.TypeKind;
|
||||
import javax.lang.model.type.TypeMirror;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
@ -102,22 +104,34 @@ class ActivitiDocFilter {
|
||||
Set<String> taskListenerMethodElements = new HashSet<>(5);
|
||||
|
||||
// getAllTypeElements() will get inherited interfaces
|
||||
for (TypeMirror interfaceType : classElement.getInterfaces()) {
|
||||
this.logger.trace("Found interface '{}' on bean '{}'", interfaceType, beanId);
|
||||
|
||||
switch (interfaceType.toString()) {
|
||||
case INTERFACE_JAVA_DELEGATE:
|
||||
this.logger.debug("The bean '{}' is a JavaDelegate", beanId);
|
||||
delegateMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
case INTERFACE_EXECUTION_LISTENER:
|
||||
this.logger.debug("The bean '{}' is a ExecutionListener", beanId);
|
||||
executionListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
case INTERFACE_TASK_LISTENER:
|
||||
this.logger.debug("The bean '{}' is a TaskListener", beanId);
|
||||
taskListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
TypeElement superclassElement = classElement;
|
||||
while (superclassElement != null) {
|
||||
for (TypeMirror interfaceType : superclassElement.getInterfaces()) {
|
||||
this.logger.trace("Found interface '{}' on bean '{}'", interfaceType, beanId);
|
||||
|
||||
switch (interfaceType.toString()) {
|
||||
case INTERFACE_JAVA_DELEGATE:
|
||||
this.logger.debug("The bean '{}' is a JavaDelegate", beanId);
|
||||
delegateMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
case INTERFACE_EXECUTION_LISTENER:
|
||||
this.logger.debug("The bean '{}' is a ExecutionListener", beanId);
|
||||
executionListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
case INTERFACE_TASK_LISTENER:
|
||||
this.logger.debug("The bean '{}' is a TaskListener", beanId);
|
||||
taskListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TypeMirror superclassMirror = superclassElement.getSuperclass();
|
||||
if (superclassMirror == null) {
|
||||
superclassElement = null;
|
||||
} else if (superclassMirror.getKind() != TypeKind.DECLARED) {
|
||||
superclassElement = null;
|
||||
} else {
|
||||
superclassElement = (TypeElement) ((DeclaredType) superclassMirror).asElement();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user