001package org.hl7.fhir.validation.cli.renderers; 002 003import org.hl7.fhir.r5.model.OperationOutcome; 004import org.hl7.fhir.r5.utils.ToolingExtensions; 005 006public class CSVRenderer extends ValidationOutputRenderer { 007 008 @Override 009 public void start(boolean moreThanOne) { 010 super.start(moreThanOne); 011 dst.println("file, line, col, level, message"); 012 } 013 014 @Override 015 public void render(OperationOutcome oo) { 016 String file = ToolingExtensions.readStringExtension(oo, ToolingExtensions.EXT_OO_FILE); 017 for (OperationOutcome.OperationOutcomeIssueComponent issue : oo.getIssue()) { 018 int line = ToolingExtensions.readIntegerExtension(issue, ToolingExtensions.EXT_ISSUE_LINE, -1); 019 int col = ToolingExtensions.readIntegerExtension(issue, ToolingExtensions.EXT_ISSUE_COL, -1); 020 dst.println(file+", " + (line == -1 ? "" : Integer.toString(line)) + ", " + (col == -1 ? "" : Integer.toString(col))+", "+issue.getSeverity().getDisplay()+", \""+issue.getDetails().getText()+"\""); 021 } 022 } 023 024}