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.ExecutableElement;
|
||||||
import javax.lang.model.element.Modifier;
|
import javax.lang.model.element.Modifier;
|
||||||
import javax.lang.model.element.TypeElement;
|
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 javax.lang.model.type.TypeMirror;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -102,22 +104,34 @@ class ActivitiDocFilter {
|
|||||||
Set<String> taskListenerMethodElements = new HashSet<>(5);
|
Set<String> taskListenerMethodElements = new HashSet<>(5);
|
||||||
|
|
||||||
// getAllTypeElements() will get inherited interfaces
|
// getAllTypeElements() will get inherited interfaces
|
||||||
for (TypeMirror interfaceType : classElement.getInterfaces()) {
|
TypeElement superclassElement = classElement;
|
||||||
this.logger.trace("Found interface '{}' on bean '{}'", interfaceType, beanId);
|
while (superclassElement != null) {
|
||||||
|
for (TypeMirror interfaceType : superclassElement.getInterfaces()) {
|
||||||
switch (interfaceType.toString()) {
|
this.logger.trace("Found interface '{}' on bean '{}'", interfaceType, beanId);
|
||||||
case INTERFACE_JAVA_DELEGATE:
|
|
||||||
this.logger.debug("The bean '{}' is a JavaDelegate", beanId);
|
switch (interfaceType.toString()) {
|
||||||
delegateMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
case INTERFACE_JAVA_DELEGATE:
|
||||||
break;
|
this.logger.debug("The bean '{}' is a JavaDelegate", beanId);
|
||||||
case INTERFACE_EXECUTION_LISTENER:
|
delegateMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||||
this.logger.debug("The bean '{}' is a ExecutionListener", beanId);
|
break;
|
||||||
executionListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
case INTERFACE_EXECUTION_LISTENER:
|
||||||
break;
|
this.logger.debug("The bean '{}' is a ExecutionListener", beanId);
|
||||||
case INTERFACE_TASK_LISTENER:
|
executionListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
||||||
this.logger.debug("The bean '{}' is a TaskListener", beanId);
|
break;
|
||||||
taskListenerMethodElements.addAll(this.toStrings(this.docenv.getTypeUtils().asElement(interfaceType).getEnclosedElements()));
|
case INTERFACE_TASK_LISTENER:
|
||||||
break;
|
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