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();
  }