001package org.hl7.fhir.common.hapi.validation.validator; 002 003import org.hl7.fhir.r5.elementmodel.Element; 004import org.hl7.fhir.r5.model.ElementDefinition; 005import org.hl7.fhir.r5.model.StructureDefinition; 006import org.hl7.fhir.r5.model.ValueSet; 007import org.hl7.fhir.r5.utils.validation.IResourceValidator; 008import org.hl7.fhir.r5.utils.validation.IValidationPolicyAdvisor; 009import org.hl7.fhir.r5.utils.validation.constants.BindingKind; 010import org.hl7.fhir.r5.utils.validation.constants.CodedContentValidationPolicy; 011import org.hl7.fhir.r5.utils.validation.constants.ContainedReferenceValidationPolicy; 012import org.hl7.fhir.r5.utils.validation.constants.ReferenceValidationPolicy; 013 014import java.util.List; 015 016/** 017 * Implementation of the base {@link IValidationPolicyAdvisor}. This is used as the default for all validation operations 018 * done within the core libraries, as without a default, it will ignore some validation operations. 019 */ 020public class FhirDefaultPolicyAdvisor implements IValidationPolicyAdvisor { 021 022 @Override 023 public ReferenceValidationPolicy policyForReference(IResourceValidator validator, Object appContext, String path, 024 String url) { 025 return ReferenceValidationPolicy.IGNORE; 026 } 027 028 @Override 029 public ContainedReferenceValidationPolicy policyForContained(IResourceValidator validator, Object appContext, String containerType, String containerId, 030 Element.SpecialElement containingResourceType, String path, String url) { 031 return ContainedReferenceValidationPolicy.CHECK_VALID; 032 } 033 034 @Override 035 public CodedContentValidationPolicy policyForCodedContent(IResourceValidator validator, Object appContext, String stackPath, 036 ElementDefinition definition, StructureDefinition structure, BindingKind kind, 037 ValueSet valueSet, List<String> systems) { 038 return CodedContentValidationPolicy.CODE; 039 } 040}