001package org.hl7.fhir.validation.cli.renderers;
002
003import java.io.IOException;
004import java.io.PrintStream;
005
006import org.hl7.fhir.r5.model.Bundle;
007import org.hl7.fhir.r5.model.OperationOutcome;
008
009public abstract class ValidationOutputRenderer {
010
011  protected boolean crumbTrails;
012  protected boolean moreThanOne;
013  protected PrintStream dst;
014
015  public boolean isCrumbTrails() {
016    return crumbTrails;
017  }
018
019  public void setCrumbTrails(boolean crumbTrails) {
020    this.crumbTrails = crumbTrails;
021  }
022
023  public void start(boolean moreThanOne) {
024    this.moreThanOne = moreThanOne;
025  }
026  
027  public abstract void render(OperationOutcome op) throws IOException;
028  
029  public void render(Bundle bundle) throws IOException {
030    throw new Error("Should not call render*Bundle) when handlesBundleDirectly() == false");
031  }
032  
033  public void finish() {  
034  }
035
036  public void setOutput(PrintStream dst) {
037    this.dst = dst;    
038  }
039  
040  public boolean handlesBundleDirectly() {
041    return false;
042  }
043}