code: @Override
      public void declareOutputFields(OutputFieldsDeclarer ofd) {
          if (this.outputTypes == null) {
              throw new FailedException("outputTypes cannot be null");
          }
          for (Map.Entry<String, List<String>> outputEventType : this.outputTypes.entrySet()) {
              List<String> fields = new ArrayList<>();
              if (outputEventType.getValue() != null) {
                  for (String f : outputEventType.getValue()) {
                      fields.add(f);
                  }
              } else {
                  throw new FailedException();
              }
              ofd.declareStream(outputEventType.getKey(), new Fields(fields));
          }
      }
docs: {@inheritDoc}
  
  @param ofd