Commit ed432658 authored by Brian Long's avatar Brian Long
Browse files

inherited interface recognition

parent 0886a273
Loading
Loading
Loading
Loading
+30 −16
Original line number Diff line number Diff line
@@ -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,7 +104,9 @@ class ActivitiDocFilter {
		Set<String> taskListenerMethodElements = new HashSet<>(5);

		// getAllTypeElements() will get inherited interfaces
		for (TypeMirror interfaceType : classElement.getInterfaces()) {
		TypeElement superclassElement = classElement;
		while (superclassElement != null) {
			for (TypeMirror interfaceType : superclassElement.getInterfaces()) {
				this.logger.trace("Found interface '{}' on bean '{}'", interfaceType, beanId);
				
				switch (interfaceType.toString()) {
@@ -121,6 +125,16 @@ class ActivitiDocFilter {
				}
			}

			TypeMirror superclassMirror = superclassElement.getSuperclass();
			if (superclassMirror == null) {
				superclassElement = null;
			} else if (superclassMirror.getKind() != TypeKind.DECLARED) {
				superclassElement = null;
			} else {
				superclassElement = (TypeElement) ((DeclaredType) superclassMirror).asElement();
			}
		}
		
		this.logger.info("delegates: {}", delegateMethodElements);
		
		// getAllMembers() will get inherited methods