code: @Override
      public List<KeyedMessageWithType> invokeOutput(final T instance) throws DempsyException {
          if (outputMethods == null)
              return emptyKeyedMessageList;
  
          final List<KeyedMessageWithType> ret = new ArrayList<>();
          for (final Method om : outputMethods) {
              final Object or = wrap(() -> om.invoke(instance));
              if (or != null) {
                  ret.addAll(convertToKeyedMessage(or));
              }
          }
  
          return ret.size() == 0 ? null : ret;
      }
docs: Invokes the output method, if it exists. If the instance does not have an annotated output method, this is a no-op (this is simpler than requiring the caller to check every instance).