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_10_40 extends BaseAdvisor40<org.hl7.fhir.dstu2.model.Extension> {
014
015  final List<String> conformanceIgnoredUrls = Collections.singletonList("http://hl7.org/fhir/3.0/StructureDefinition/extension-CapabilityStatement.acceptUnknown");
016  private final List<Class<?>> ignoredExtensionTypes = new ArrayList<>(Collections.singletonList(Expression.class));
017
018  public BaseAdvisor_10_40() {
019  }
020
021  public BaseAdvisor_10_40(Boolean failFast) {
022    this.failFast = failFast;
023  }
024
025  @Override
026  public boolean ignoreExtension(@Nonnull String path,
027                                 @Nonnull String url) {
028    List<String> paths = Arrays.asList(path.split(","));
029    return (paths.get(paths.size() - 1).equals("Conformance")) && (conformanceIgnoredUrls.contains(url));
030  }
031
032  @Override
033  public boolean ignoreType(@Nonnull String path,
034                            @Nonnull Type type) {
035    return ignoredExtensionTypes.contains(type.getClass());
036  }
037}