001package org.hl7.fhir.r5.renderers;
002
003import java.io.IOException;
004import java.io.UnsupportedEncodingException;
005
006import org.hl7.fhir.exceptions.DefinitionException;
007import org.hl7.fhir.exceptions.FHIRFormatError;
008import org.hl7.fhir.r5.model.ImplementationGuide;
009import org.hl7.fhir.r5.model.Resource;
010import org.hl7.fhir.r5.renderers.utils.BaseWrappers.ResourceWrapper;
011import org.hl7.fhir.r5.renderers.utils.RenderingContext;
012import org.hl7.fhir.r5.renderers.utils.Resolver.ResourceContext;
013import org.hl7.fhir.utilities.xhtml.XhtmlNode;
014
015public class ImplementationGuideRenderer extends ResourceRenderer {
016
017  public ImplementationGuideRenderer(RenderingContext context) {
018    super(context);
019  }
020
021  public ImplementationGuideRenderer(RenderingContext context, ResourceContext rcontext) {
022    super(context, rcontext);
023  }
024  
025  public boolean render(XhtmlNode x, Resource dr) throws FHIRFormatError, DefinitionException, IOException {
026    return render(x, (ImplementationGuide) dr);
027  }
028
029  public boolean render(XhtmlNode x, ImplementationGuide ig) throws FHIRFormatError, DefinitionException, IOException {
030    x.h2().addText(ig.getName());
031    x.para().tx(context.formatPhrase(RenderingContext.IMP_GUIDE_URL)+" ");
032    x.pre().tx(ig.getUrl());
033    addMarkdown(x, ig.getDescription());
034    return true;
035  }
036
037  public void describe(XhtmlNode x, ImplementationGuide ig) {
038    x.tx(display(ig));
039  }
040
041  public String display(ImplementationGuide ig) {
042    return ig.present();
043  }
044
045  @Override
046  public String display(Resource r) throws UnsupportedEncodingException, IOException {
047    return ((ImplementationGuide) r).present();
048  }
049
050  public String display(ResourceWrapper r) throws UnsupportedEncodingException, IOException {
051    if (r.has("title")) {
052      return r.children("title").get(0).getBase().primitiveValue();
053    }
054    if (r.has("name")) {
055      return r.children("name").get(0).getBase().primitiveValue();
056    }
057    return "??";
058  }
059
060}