protected List<? extends Element> getSortedElements(TypeElement type) {
if (this.kind.equals(ElementKind.METHOD)) {
List<ExecutableElement> methods = ElementFilter.methodsIn(type.getEnclosedElements());
Collections.sort(methods, new ExecutableComparator());
return methods;
}
if (this.kind.equals(ElementKind.ANNOTATION_TYPE)) {
List<TypeElement> types = ElementFilter.typesIn(type.getEnclosedElements());
List<TypeElement> result = new LinkedList<TypeElement>();
for (TypeElement typeElement: types) {
if (typeElement.getKind().equals(ElementKind.ANNOTATION_TYPE)) {
result.add(typeElement);
}
}
Collections.sort(result, new TypeComparator());
return result;
}
return new ArrayList<Element>();
}