code: FieldConstraints extractValidationRules() {
      Annotation[] annotations = field.getAnnotations();
      FieldConstraints fieldConstraints = new FieldConstraints();
  
      for (Annotation annotation : annotations) {
        if (Iterables.contains(relevantAnnotationClasses, annotation.annotationType())) {
          ConstraintAttributes constraintAttributes = new ConstraintAttributes(annotation);
          BuiltInConstraint supportedValidator = BuiltInConstraint.valueOfAnnotationClassOrNull(annotation
            .annotationType());
          if (supportedValidator == null) {
            fieldConstraints.put(annotation.annotationType().getName(), constraintAttributes);
          } else {
            fieldConstraints.put(supportedValidator.toString(),
              supportedValidator.createDecoratorFor(constraintAttributes));
          }
        }
      }
  
      return fieldConstraints;
    }
docs: Parses all annotations and builds validation rules for the relevant ones.
  
  @return validation rules (one per annotation)
  @see AnnotatedField(Class, Iterable)