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}