
001package org.hl7.fhir.r5.test.utils; 002 003 import java.io.IOException; 004import java.io.InputStream; 005import java.util.ArrayList; 006import java.util.List; 007import java.util.Set; 008 009import org.hl7.fhir.exceptions.FHIRException; 010import org.hl7.fhir.r5.context.IContextResourceLoader; 011import org.hl7.fhir.r5.context.SimpleWorkerContext.PackageResourceLoader; 012import org.hl7.fhir.r5.formats.JsonParser; 013import org.hl7.fhir.r5.formats.XmlParser; 014import org.hl7.fhir.r5.model.Bundle; 015import org.hl7.fhir.r5.model.CodeSystem; 016import org.hl7.fhir.r5.model.Resource; 017import org.hl7.fhir.r5.terminologies.client.TerminologyClientManager.ITerminologyClientFactory; 018import org.hl7.fhir.r5.terminologies.client.TerminologyClientR5.TerminologyClientR5Factory; 019import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage; 020import org.hl7.fhir.utilities.npm.NpmPackage; 021import org.hl7.fhir.utilities.npm.NpmPackage.PackageResourceInformation; 022 023@MarkedToMoveToAdjunctPackage 024public class TestPackageLoader implements IContextResourceLoader { 025 026 private Set<String> types; 027 028 public TestPackageLoader(Set<String> types) { 029 this.types = types; 030 } 031 032 @Override 033 public Bundle loadBundle(InputStream stream, boolean isJson) throws FHIRException, IOException { 034 return null; 035 } 036 037 @Override 038 public Resource loadResource(InputStream stream, boolean isJson) throws FHIRException, IOException { 039 return isJson ? new JsonParser().parse(stream) : new XmlParser().parse(stream); 040 } 041 042 @Override 043 public Set<String> getTypes() { 044 return types; 045 } 046 047 @Override 048 public String getResourcePath(Resource resource) { 049 return resource.fhirType().toLowerCase()+"-"+resource.getId()+".html"; 050 } 051 052 @Override 053 public IContextResourceLoader getNewLoader(NpmPackage npm) { 054 return this; 055 } 056 057 @Override 058 public List<CodeSystem> getCodeSystems() { 059 return new ArrayList<>(); 060 } 061 062 @Override 063 public void setPatchUrls(boolean value) { 064 065 } 066 067 @Override 068 public String patchUrl(String url, String resourceType) { 069 return url; 070 } 071 072 @Override 073 public IContextResourceLoader setLoadProfiles(boolean value) { 074 return this; 075 } 076 077 @Override 078 public boolean wantLoad(NpmPackage pi, PackageResourceInformation pri) { 079 return true; 080 } 081 082 @Override 083 public ITerminologyClientFactory txFactory() { 084 return new TerminologyClientR5Factory(); 085 } 086 087 @Override 088 public Set<String> reviewActualTypes(Set<String> types) { 089 return types; 090 } 091 092 @Override 093 public PackageResourceLoader editInfo(PackageResourceLoader pri) { 094 return pri; 095 } 096}