private void haveAfterTextChangedMethodParameters( ExecutableElement executableElement, IsValid valid) { List<? extends VariableElement> parameters = executableElement.getParameters(); boolean editableParameterFound = false; boolean textViewParameterFound = false; for (VariableElement parameter : parameters) { String parameterType = parameter.asType().toString(); if (parameterType.equals("android.text.Editable")) { if (editableParameterFound) { annotationHelper.printAnnotationError( executableElement, "Unrecognized parameter declaration. you can declare only one parameter of type android.text.Editable"); valid.invalidate(); } editableParameterFound = true; continue; } if (parameterType.equals("android.widget.TextView")) { if (textViewParameterFound) { annotationHelper.printAnnotationError( executableElement, "Unrecognized parameter declaration. you can declare only one parameter of type android.widget.TextView"); valid.invalidate(); } textViewParameterFound = true; continue; } valid.invalidate(); annotationHelper.printAnnotationError( executableElement, "Unrecognized parameter type. %s can only have a android.widget.TextView parameter and/or an android.text.Editable parameter. See android.text.TextWatcher.afterTextChanged() for more informations."); } }
@Override public boolean validate(Element element, AnnotationElements validatedElements) { IsValid valid = new IsValid(); validatorHelper.extendsProvider((TypeElement) element, valid); validatorHelper.isNotFinal(element, valid); validatorHelper.isNotAbstract(element, valid); validatorHelper.componentRegistered(element, androidManifest, valid); return valid.isValid(); }
@Override public boolean validate(Element element, AnnotationElements validatedElements) { IsValid valid = new IsValid(); validatorHelper.enclosingElementHasEnhancedViewSupportAnnotation( element, validatedElements, valid); validatorHelper.resIdsExist(element, Res.ID, FallbackStrategy.USE_ELEMENT_NAME, valid); validatorHelper.isNotPrivate(element, valid); validatorHelper.doesntThrowException(element, valid); ExecutableElement executableElement = (ExecutableElement) element; validatorHelper.returnTypeIsVoid(executableElement, valid); haveAfterTextChangedMethodParameters(executableElement, valid); return valid.isValid(); }