
001package org.hl7.fhir.convertors.conv10_30.datatypes10_30; 002 003import java.util.Arrays; 004 005import org.hl7.fhir.convertors.advisors.impl.BaseAdvisor_10_30; 006import org.hl7.fhir.exceptions.FHIRException; 007 008 009public class Element10_30 { 010 011 public final BaseAdvisor_10_30 advisor; 012 013 public Element10_30(BaseAdvisor_10_30 advisor) { 014 this.advisor = advisor; 015 } 016 017 public boolean isExemptExtension(String url, String[] extensionUrlsToIgnore) { 018 return Arrays.asList(extensionUrlsToIgnore).contains(url); 019 } 020 021 public void copyElement(org.hl7.fhir.dstu2.model.Element src, 022 org.hl7.fhir.dstu3.model.Element tgt, 023 String path, 024 String... extensionUrlsToIgnore) throws FHIRException { 025 if (src.hasId()) tgt.setId(src.getId()); 026 src.getExtension().stream() 027 .filter(e -> !isExemptExtension(e.getUrl(), extensionUrlsToIgnore)) 028 .forEach(e -> { 029 if (advisor.useAdvisorForExtension(path, e)) { 030 org.hl7.fhir.dstu3.model.Extension convertedExtension = new org.hl7.fhir.dstu3.model.Extension(); 031 advisor.handleExtension(path, e, convertedExtension); 032 tgt.addExtension(convertedExtension); 033 } else { 034 tgt.addExtension(Extension10_30.convertExtension(e)); 035 } 036 }); 037 } 038 039 public void copyElement(org.hl7.fhir.dstu3.model.Element src, 040 org.hl7.fhir.dstu2.model.Element tgt, 041 String path, 042 String... extensionUrlsToIgnore) throws FHIRException { 043 if (src.hasId()) tgt.setId(src.getId()); 044 src.getExtension().stream() 045 .filter(e -> !isExemptExtension(e.getUrl(), extensionUrlsToIgnore)) 046 .forEach(e -> { 047 if (advisor.useAdvisorForExtension(path, e)) { 048 org.hl7.fhir.dstu2.model.Extension convertedExtension = new org.hl7.fhir.dstu2.model.Extension(); 049 advisor.handleExtension(path, e, convertedExtension); 050 tgt.addExtension(convertedExtension); 051 } else { 052 tgt.addExtension(Extension10_30.convertExtension(e)); 053 } 054 }); 055 } 056 057 public void copyElement(org.hl7.fhir.dstu3.model.DomainResource src, 058 org.hl7.fhir.dstu2.model.Element tgt, 059 String path, 060 String... extensionsToIgnore) throws FHIRException { 061 if (src.hasId()) tgt.setId(src.getId()); 062 src.getExtension().stream() 063 .filter(e -> !isExemptExtension(e.getUrl(), extensionsToIgnore)) 064 .forEach(e -> { 065 if (advisor.useAdvisorForExtension(path, e)) { 066 org.hl7.fhir.dstu2.model.Extension convertedExtension = new org.hl7.fhir.dstu2.model.Extension(); 067 advisor.handleExtension(path, e, convertedExtension); 068 tgt.addExtension(convertedExtension); 069 } else { 070 tgt.addExtension(Extension10_30.convertExtension(e)); 071 } 072 }); 073 } 074}