001package org.hl7.fhir.convertors.loaders.loaderR4;
002
003import lombok.Getter;
004import lombok.Setter;
005import lombok.experimental.Accessors;
006import org.hl7.fhir.r4.context.SimpleWorkerContext.IContextResourceLoader;
007import org.hl7.fhir.r4.model.Resource;
008
009import javax.annotation.Nonnull;
010
011@Accessors(chain = true)
012public abstract class BaseLoaderR4 implements IContextResourceLoader {
013
014  protected final String URL_BASE = "http://hl7.org/fhir/";
015  protected final String URL_DSTU2 = "http://hl7.org/fhir/1.0/";
016  protected final String URL_DSTU2016MAY = "http://hl7.org/fhir/1.4/";
017  protected final String URL_DSTU3 = "http://hl7.org/fhir/3.0/";
018  protected final String URL_R4 = "http://hl7.org/fhir/4.0/";
019  protected final String URL_ELEMENT_DEF_NAMESPACE = "http://hl7.org/fhir/StructureDefinition/elementdefinition-namespace";
020  @Getter private final String[] types;
021  private final ILoaderKnowledgeProviderR4 lkp;
022  @Getter @Setter protected boolean patchUrls;
023  @Getter @Setter protected boolean killPrimitives;
024
025  public BaseLoaderR4(@Nonnull String[] types, @Nonnull ILoaderKnowledgeProviderR4 lkp) {
026    super();
027    this.types = types;
028    this.lkp = lkp;
029  }
030
031  public String getResourcePath(Resource resource) {
032    return lkp.getResourcePath(resource);
033  }
034
035  public void setPath(Resource r) {
036    String path = lkp.getResourcePath(r);
037    if (path != null) {
038      r.setUserData("path", path);
039    }
040  }
041
042}