public String convertResultToString()

in streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java [147:202]


  public String convertResultToString(StreamsDatum entry) {
    String metadataJson = null;
    try {
      metadataJson = MAPPER.writeValueAsString(entry.getMetadata());
    } catch (JsonProcessingException ex) {
      LOGGER.warn("Error converting metadata to a string", ex);
    }

    String documentJson = null;
    try {
      if ( entry.getDocument() instanceof String ) {
        documentJson = (String) entry.getDocument();
      } else {
        documentJson = MAPPER.writeValueAsString(entry.getDocument());
      }
    } catch (JsonProcessingException ex) {
      LOGGER.warn("Error converting document to string", ex);
    }

    if (StringUtils.isBlank(documentJson)) {
      return null;
    } else {
      StringBuilder stringBuilder = new StringBuilder();
      Iterator<String> fields = this.fields.iterator();
      List<String> fielddata = new ArrayList<>();
      Joiner joiner = Joiner.on(fieldDelimiter).useForNull("");
      while( fields.hasNext() ) {
        String field = fields.next();
        if ( field.equals(FieldConstants.DOC) ) {
          fielddata.add(documentJson);
        } else if ( field.equals(FieldConstants.ID) ) {
          fielddata.add(entry.getId());
        } else if ( field.equals(FieldConstants.SEQ) ) {
          if (entry.getSequenceid() != null) {
            fielddata.add(entry.getSequenceid().toString());
          } else {
            fielddata.add("null");
          }
        } else if ( field.equals(FieldConstants.TS) ) {
          if (entry.getTimestamp() != null) {
            fielddata.add(entry.getTimestamp().toString());
          } else {
            fielddata.add(DateTime.now().toString());
          }
        } else if ( field.equals(FieldConstants.META) ) {
          fielddata.add(metadataJson);
        } else if ( entry.getMetadata().containsKey(field)) {
          fielddata.add(entry.getMetadata().get(field).toString());
        } else {
          fielddata.add(null);
        }
      }
      joiner.appendTo(stringBuilder, fielddata);
      return stringBuilder.toString();
    }
  }