001package org.hl7.fhir.convertors.advisors.impl; 002 003import org.hl7.fhir.convertors.advisors.interfaces.BaseAdvisor40; 004import org.hl7.fhir.r4.model.Expression; 005import org.hl7.fhir.r4.model.Type; 006 007import javax.annotation.Nonnull; 008import java.util.ArrayList; 009import java.util.Arrays; 010import java.util.Collections; 011import java.util.List; 012 013public class BaseAdvisor_14_40 extends BaseAdvisor40<org.hl7.fhir.dstu2016may.model.Extension> { 014 015 final List<String> conformanceIgnoredUrls = Collections.singletonList("http://hl7.org/fhir/3.0/StructureDefinition/extension-CapabilityStatement.acceptUnknown"); 016 private final List<String> ignoredUrls = new ArrayList<>(Collections.singletonList("http://hl7.org/fhir/3.0/StructureDefinition/extension-CapabilityStatement.acceptUnknown")); 017 private final List<Class<?>> ignoredExtensionTypes = new ArrayList<>(Collections.singletonList(Expression.class)); 018 019 public BaseAdvisor_14_40() { 020 } 021 022 public BaseAdvisor_14_40(Boolean failFast) { 023 this.failFast = failFast; 024 } 025 026 027 public boolean ignoreExtension(@Nonnull String path, 028 @Nonnull String url) { 029 List<String> paths = Arrays.asList(path.split(",")); 030 if ((paths.get(paths.size() - 1).equals("Conformance")) && (conformanceIgnoredUrls.contains(url))) { 031 return true; 032 } else { 033 return this.ignoredUrls.contains(url); 034 } 035 } 036 037 public boolean ignoreType(@Nonnull String path, @Nonnull Type type) { 038 return ignoredExtensionTypes.contains(type.getClass()); 039 } 040}