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