@SuppressWarnings("unchecked")
@Override
public void validate(ProcessingEnvironment procEnv,
RoundEnvironment roundEnv, TypeElement annotationType,
AnnotationMirror annotation, ExecutableElement e) {
AnnotationValue expectedReturnType = AnnotationProcessingUtils
.getAnnotationElementValue(procEnv, annotation,
"expectedParameterTypes");
AnnotationValue strictValue = AnnotationProcessingUtils
.getAnnotationElementValue(procEnv, annotation, "strict");
Boolean strict = (Boolean) strictValue.getValue();
if (!matches(procEnv, strict, getElementTypeMirrors(e.getParameters()),
getTypeMirrors((List<AnnotationValue>) expectedReturnType
.getValue()))) {
procEnv.getMessager().printMessage(