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( 024 IResourceValidator validator, Object appContext, String path, String url) { 025 return ReferenceValidationPolicy.IGNORE; 026 } 027 028 @Override 029 public ContainedReferenceValidationPolicy policyForContained( 030 IResourceValidator validator, 031 Object appContext, 032 String containerType, 033 String containerId, 034 Element.SpecialElement containingResourceType, 035 String path, 036 String url) { 037 return ContainedReferenceValidationPolicy.CHECK_VALID; 038 } 039 040 @Override 041 public CodedContentValidationPolicy policyForCodedContent( 042 IResourceValidator validator, 043 Object appContext, 044 String stackPath, 045 ElementDefinition definition, 046 StructureDefinition structure, 047 BindingKind kind, 048 ValueSet valueSet, 049 List<String> systems) { 050 return CodedContentValidationPolicy.CODE; 051 } 052}