code: private String getText(@NotNull final ResourceBundle bundle, @NotNull final Annotation annotation, @NotNull final String defaultKey) {
  
          Contract.requireArgNotNull("bundle", bundle);
          Contract.requireArgNotNull("annotation", annotation);
          Contract.requireArgNotNull("defaultKey", defaultKey);
  
          final String key;
          if (getKey(annotation).equals("")) {
              key = defaultKey;
          } else {
              key = getKey(annotation);
          }
  
          try {
              return bundle.getString(key);
          } catch (final MissingResourceException ex) {
              return toNullableString(getValue(annotation));
          }
  
      }
docs: Returns the text for the annotation. If no entry is found in the resource bundle for <code>Annotation#key()</code> then
  <code>Annotation#value()</code> will be returned instead. If <code>Annotation#value()</code> is also empty then <code>null</code> is
  returned. If <code>Annotation#key()</code> is empty <code>defaultKey</code> will be used as key in the properties file.
  
  @param bundle
  Resource bundle to use.
  @param annotation
  Annotation wrapper for the field.
  @param defaultKey
  Default key if <code>Annotation#key()</code> is empty.
  
  @return Text or <code>null</code>.