code: public final List<FieldTextInfo> createFieldInfos(@NotNull final Class<?> clasz, @NotNull final Locale locale,
              @NotNull final Class<? extends Annotation> annotationClasz) {
  
          Contract.requireArgNotNull("clasz", clasz);
          Contract.requireArgNotNull("locale", locale);
          Contract.requireArgNotNull("annotationClasz", annotationClasz);
  
          final List<FieldTextInfo> infos = new ArrayList<FieldTextInfo>();
  
          final Field[] fields = clasz.getDeclaredFields();
          for (final Field field : fields) {
              final Annotation annotation = field.getAnnotation(annotationClasz);
              if (annotation != null) {
                  try {
                      final ResourceBundle bundle = getResourceBundle(annotation, locale, field.getDeclaringClass());
                      final String text = getText(bundle, annotation, field.getName() + "." + annotationClasz.getSimpleName());
                      infos.add(new FieldTextInfo(field, text));
                  } catch (final MissingResourceException ex) {
                      final String text = toNullableString(getValue(annotation));
                      infos.add(new FieldTextInfo(field, text));
                  }
              }
          }
  
          Class<?> parent = clasz;
          while ((parent = parent.getSuperclass()) != Object.class) {
              infos.addAll(createFieldInfos(parent, locale, annotationClasz));
          }
  
          return infos;
  
      }
docs: Returns text annotation informations for all field of a class that are annotated with <code>annotationClasz</code>. All other fields
  are ignored.
  
  @param clasz
  Class that contains the fields.
  @param locale
  Locale to use.
  @param annotationClasz
  Type of annotation to find.
  
  @return List of informations - Never <code>null</code>, but may be empty.