code: @Override
      public String getFormattedMessage(final String[] formats) {
          if (formats != null && formats.length > 0) {
              for (int i = 0; i < formats.length; i++) {
                  final String format = formats[i];
                  if (Format.XML.name().equalsIgnoreCase(format)) {
                      return asXml();
                  } else if (Format.FULL.name().equalsIgnoreCase(format)) {
                      return asString(Format.FULL, null);
                  }
              }
              return asString(null, null);
          }
          return asString(Format.FULL, null);
      }
docs: Formats the message according the the specified format.
  @param formats An array of Strings that provide extra information about how to format the message.
  StructuredDataMessage accepts only a format of "FULL" which will cause the event type to be
  prepended and the event message to be appended. Specifying any other value will cause only the
  StructuredData to be included. The default is "FULL".
  
  @return the formatted message.