control lazy loading

This commit is contained in:
Grahame Grieve 2022-09-20 04:49:06 -04:00
parent b5d828b0dc
commit 460d12ee92
1 changed files with 28 additions and 7 deletions

View File

@ -29,8 +29,6 @@ package org.hl7.fhir.r5.context;
*/
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
@ -146,6 +144,8 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
private final List<String> loadedPackages = new ArrayList<>();
private boolean canNoTS;
private XVerExtensionManager xverManager;
private boolean allowLazyLoading = true;
private boolean suppressDebugMessages;
private SimpleWorkerContext() throws IOException, FHIRException {
super();
@ -476,7 +476,7 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
if ((types == null || types.length == 0) && loader != null) {
types = loader.getTypes();
}
if (VersionUtilities.isR2Ver(pi.fhirVersion()) || !pi.canLazyLoad()) {
if (VersionUtilities.isR2Ver(pi.fhirVersion()) || !pi.canLazyLoad() || !allowLazyLoading) {
// can't lazy load R2 because of valueset/codesystem implementation
if (types.length == 0) {
types = new String[] { "StructureDefinition", "ValueSet", "SearchParameter", "OperationDefinition", "Questionnaire", "ConceptMap", "StructureMap", "NamingSystem" };
@ -680,11 +680,13 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
generateSnapshot(sd);
// new XmlParser().setOutputStyle(OutputStyle.PRETTY).compose(new FileOutputStream(Utilities.path("[tmp]", "snapshot", tail(sd.getUrl())+".xml")), sd);
} catch (Exception e) {
if (!suppressDebugMessages) {
System.out.println("Unable to generate snapshot for "+tail(sd.getUrl()) +" from "+tail(sd.getBaseDefinition())+" because "+e.getMessage());
if (true) {
e.printStackTrace();
}
}
}
result.add(sd);
set.add(sd);
}
@ -780,9 +782,11 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
generateSnapshot(p);
} catch (Exception e) {
// not sure what to do in this case?
if (!suppressDebugMessages) {
System.out.println("Unable to generate snapshot for "+uri+": "+e.getMessage());
}
}
}
return r;
}
@ -911,5 +915,22 @@ public class SimpleWorkerContext extends BaseWorkerContext implements IWorkerCon
return null;
}
public boolean isAllowLazyLoading() {
return allowLazyLoading;
}
public void setAllowLazyLoading(boolean allowLazyLoading) {
this.allowLazyLoading = allowLazyLoading;
}
public boolean isSuppressDebugMessages() {
return suppressDebugMessages;
}
public void setSuppressDebugMessages(boolean suppressDebugMessages) {
this.suppressDebugMessages = suppressDebugMessages;
}
}