@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.notAlreadyValidated(element, validatedElements, valid);

    validatorHelper.enclosingElementHasRestAnnotation(element, validatedElements, valid);

    ExecutableElement executableElement = (ExecutableElement) element;

    validatorHelper.throwsOnlyRestClientException(executableElement, valid);

    validatorHelper.returnTypeNotGenericUnlessResponseEntity(executableElement, valid);

    validatorHelper.doesNotReturnPrimitive(executableElement, valid);

    validatorHelper.doesNotReturnArray(executableElement, valid);

    restAnnotationHelper.urlVariableNamesExistInParameters(executableElement, valid);

    return valid.isValid();
  }