code: @Trivial
      public void log(TraceComponent logger) {
  
          Tr.debug(logger, MessageFormat.format("Annotation [ {0} ]", getAnnotationClassName()));
  
          // Only log the non-defaulted values.
          for (String valueName : this.values.keySet()) {
              AnnotationValueImpl nextValue = getValue(valueName);
  
              String valueEnumClassName = nextValue.getEnumClassName();
              Object valueValue = nextValue.getObjectValue();
              // works for all value types, e.g., Object, Enumerated (as String), Class, Array
  
              if (valueEnumClassName != null) {
                  Tr.debug(logger,
                           MessageFormat.format("  Value: Name [ {0} ] Enum Type [ {1} ] Value [ {2} ]",
                                                new Object[] { valueName, valueEnumClassName, valueValue }));
              } else {
                  Tr.debug(logger, MessageFormat.format("  Value: Name [ {0} ] Value [ {1} ]",
                                                        new Object[] { valueName, valueValue }));
              }
          }
      }
docs: because of the global state access.