code: public <E extends Enum<?>> String getMessage(E key, Object... args)
            throws MessageConveyorException {
  
      Class<? extends Enum<?>> declaringClass = key.getDeclaringClass();
  
      String declaringClassName = declaringClass.getName();
      CAL10NBundle rb = cache.get(declaringClassName);
      if (rb == null || rb.hasChanged()) {
        rb = lookupResourceBundleByEnumClassAndLocale(declaringClass);
        cache.put(declaringClassName, rb);
      }
  
      String keyAsStr = key.toString();
      String value = rb.getString(keyAsStr);
      if (value == null) {
        return "No key found for " + keyAsStr;
      } else {
        if (args == null || args.length == 0) {
          return value;
        } else {
          return MessageFormat.format(value, args);
        }
      }
    }
docs: Given an enum as key, find the resource bundle corresponding to this locale and return
  the message corresponding to the key passed as parameter (internationalized per this locale).
  <p/>
  <p/>
  The name of the resource bundle is defined via the {@link BaseName}
  annotation whereas the locale is specified in this MessageConveyor
  instance's constructor.
  
  @param key an enum instance used as message key