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}