ElementSorter.sort(methods);
@Override protected List<MutableDeclaredType> getTypeInterfaces() { MutableTypeVariable[] typeVariable = new MutableTypeVariable[] { processingEnv.getTypeUtils().getTypeVariable("T") }; List<MutableDeclaredType> interfaces = new ArrayList<MutableDeclaredType>(); interfaces.add(processingEnv.getTypeUtils().getDeclaredType((MutableDeclaredType)processingEnv.getTypeUtils().toMutableType(ICrudDAO.class), typeVariable)); interfaces.add(processingEnv.getTypeUtils().getDeclaredType((MutableDeclaredType)processingEnv.getTypeUtils().toMutableType(IEntityInstancer.class), typeVariable)); ElementSorter.sortMutableTypes(interfaces); return interfaces; } }
private boolean hasAbstractMethod(TypeElement processingElement) { List<ExecutableElement> methods = ElementFilter.methodsIn(processingElement.getEnclosedElements()); ElementSorter.sort(methods); for (ExecutableElement method: methods) { if (!MethodHelper.isGetterMethod(method) && !MethodHelper.isSetterMethod(method) && !isObjectMethod(method)) { return true; } if (MethodHelper.isGetterMethod(method) && !ProcessorUtils.hasMethod(MethodHelper.toSetter(method), domainDataType.asElement(), true)) { return true; } } for (TypeMirror interfaceType: processingElement.getInterfaces()) { TypeElement interfaceTypeElement = (TypeElement)((DeclaredType)interfaceType).asElement(); if (hasAbstractMethod(interfaceTypeElement)) { return true; } } return false; } }
ElementSorter.sort(methods);