001package org.hl7.fhir.convertors.factory;
002
003import org.hl7.fhir.convertors.advisors.interfaces.BaseAdvisor;
004import org.hl7.fhir.exceptions.FHIRException;
005import org.hl7.fhir.instance.model.api.IBaseDatatype;
006import org.hl7.fhir.instance.model.api.IBaseResource;
007
008public abstract class VersionConvertorFactory {
009  public static void cleanInputs(IBaseResource res, BaseAdvisor advisor) {
010    checkDataAndAdvisor(res, advisor);
011  }
012
013  public static void cleanInputs(IBaseDatatype res, BaseAdvisor advisor) {
014    checkDataAndAdvisor(res, advisor);
015  }
016
017  private static void checkDataAndAdvisor(Object o, BaseAdvisor advisor) {
018    if (advisor == null) {
019      throw new FHIRException("Null conversion advisor passed to factory method.");
020    }
021    if (advisor.failFastOnNullOrUnknownEntry() && o == null) {
022      throw new FHIRException("ConversionFactory received null input. Conversion advisor set to failFastOnNullInput.");
023    }
024  }
025}