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}