001package org.hl7.fhir.r5.utils.xver;
002
003import org.hl7.fhir.exceptions.FHIRException;
004import org.hl7.fhir.r5.context.IWorkerContext;
005
006public class XVerExtensionManagerFactory {
007
008  // this arrangement is temporary while working up the new cross-version package
009  // system. We need to figure out a better way to inject the loader logic.
010  //
011  // On the context?
012  private static XVerExtensionManagerNew.IXverManagerPackageLoader loader;
013
014  public static XVerExtensionManagerNew.IXverManagerPackageLoader getLoader() {
015    return loader;
016  }
017
018  public static void setLoader(XVerExtensionManagerNew.IXverManagerPackageLoader loader) {
019    XVerExtensionManagerFactory.loader = loader;
020  }
021
022  public static XVerExtensionManager createExtensionManager(IWorkerContext context) throws FHIRException {
023    if (loader != null) {
024      return new XVerExtensionManagerNew(context, loader);
025    } else {
026      return new XVerExtensionManagerOld(context);
027    }
028  }
029}