@Override
  public Iterable<AnnotationParameter> getUnknownAttributes(Annotation annotation) {
    final Iterable<String> parameterNames =
        Iterables.transform(definedAttributes, new AnnotationDefinitionParameterName());
    return Iterables.filter(
        annotation.getParameters(),
        new Predicate<AnnotationParameter>() {

          @Override
          public boolean apply(AnnotationParameter input) {
            Preconditions.checkNotNull(input, "input");
            return !Iterables.contains(parameterNames, input.getName());
          }
        });
  }
 private Iterable<String> getParameterNames(Annotation annotation) {
   return Iterables.transform(annotation.getParameters(), new AnnotationParameterName());
 }