001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_30;
004import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Coding10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Signature10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Instant10_30;
009import org.hl7.fhir.dstu3.model.Enumeration;
010import org.hl7.fhir.dstu3.model.Provenance;
011import org.hl7.fhir.exceptions.FHIRException;
012
013public class Provenance10_30 {
014
015  public static org.hl7.fhir.dstu2.model.Provenance convertProvenance(org.hl7.fhir.dstu3.model.Provenance src) throws FHIRException {
016    if (src == null || src.isEmpty())
017      return null;
018    org.hl7.fhir.dstu2.model.Provenance tgt = new org.hl7.fhir.dstu2.model.Provenance();
019    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.dstu3.model.Reference t : src.getTarget()) tgt.addTarget(Reference10_30.convertReference(t));
021    if (src.hasPeriod())
022      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
023    if (src.hasRecordedElement())
024      tgt.setRecordedElement(Instant10_30.convertInstant(src.getRecordedElement()));
025    for (org.hl7.fhir.dstu3.model.Coding t : src.getReason()) tgt.addReason().addCoding(Coding10_30.convertCoding(t));
026    tgt.setActivity(new org.hl7.fhir.dstu2.model.CodeableConcept().addCoding(Coding10_30.convertCoding(src.getActivity())));
027    if (src.hasLocation())
028      tgt.setLocation(Reference10_30.convertReference(src.getLocation()));
029    for (org.hl7.fhir.dstu3.model.UriType t : src.getPolicy()) tgt.addPolicy(t.getValue());
030    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
031      tgt.addAgent(convertProvenanceAgentComponent(t));
032    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent t : src.getEntity())
033      tgt.addEntity(convertProvenanceEntityComponent(t));
034    for (org.hl7.fhir.dstu3.model.Signature t : src.getSignature())
035      tgt.addSignature(Signature10_30.convertSignature(t));
036    return tgt;
037  }
038
039  public static org.hl7.fhir.dstu3.model.Provenance convertProvenance(org.hl7.fhir.dstu2.model.Provenance src) throws FHIRException {
040    if (src == null || src.isEmpty())
041      return null;
042    org.hl7.fhir.dstu3.model.Provenance tgt = new org.hl7.fhir.dstu3.model.Provenance();
043    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
044    for (org.hl7.fhir.dstu2.model.Reference t : src.getTarget()) tgt.addTarget(Reference10_30.convertReference(t));
045    if (src.hasPeriod())
046      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
047    if (src.hasRecordedElement())
048      tgt.setRecordedElement(Instant10_30.convertInstant(src.getRecordedElement()));
049    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason())
050      for (org.hl7.fhir.dstu2.model.Coding tc : t.getCoding()) tgt.addReason(Coding10_30.convertCoding(tc));
051    for (org.hl7.fhir.dstu2.model.Coding t : src.getActivity().getCoding())
052      tgt.setActivity(Coding10_30.convertCoding(t));
053    if (src.hasLocation())
054      tgt.setLocation(Reference10_30.convertReference(src.getLocation()));
055    for (org.hl7.fhir.dstu2.model.UriType t : src.getPolicy()) tgt.addPolicy(t.getValue());
056    for (org.hl7.fhir.dstu2.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
057      tgt.addAgent(convertProvenanceAgentComponent(t));
058    for (org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityComponent t : src.getEntity())
059      tgt.addEntity(convertProvenanceEntityComponent(t));
060    for (org.hl7.fhir.dstu2.model.Signature t : src.getSignature())
061      tgt.addSignature(Signature10_30.convertSignature(t));
062    return tgt;
063  }
064
065  public static org.hl7.fhir.dstu2.model.Provenance.ProvenanceAgentComponent convertProvenanceAgentComponent(org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent src) throws FHIRException {
066    if (src == null || src.isEmpty())
067      return null;
068    org.hl7.fhir.dstu2.model.Provenance.ProvenanceAgentComponent tgt = new org.hl7.fhir.dstu2.model.Provenance.ProvenanceAgentComponent();
069    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
070    if (src.hasWhoReference())
071      tgt.setActor(Reference10_30.convertReference(src.getWhoReference()));
072    return tgt;
073  }
074
075  public static org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent convertProvenanceAgentComponent(org.hl7.fhir.dstu2.model.Provenance.ProvenanceAgentComponent src) throws FHIRException {
076    if (src == null || src.isEmpty())
077      return null;
078    org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent tgt = new org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent();
079    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
080    if (src.hasActor())
081      tgt.setWho(Reference10_30.convertReference(src.getActor()));
082    return tgt;
083  }
084
085  public static org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityComponent convertProvenanceEntityComponent(org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent src) throws FHIRException {
086    if (src == null || src.isEmpty())
087      return null;
088    org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityComponent tgt = new org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityComponent();
089    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
090    if (src.hasRole())
091      tgt.setRoleElement(convertProvenanceEntityRole(src.getRoleElement()));
092    if (src.hasWhatReference() && src.getWhatReference().hasReference())
093      tgt.setReference(src.getWhatReference().getReference());
094    for (org.hl7.fhir.dstu3.model.Provenance.ProvenanceAgentComponent t : src.getAgent())
095      tgt.setAgent(convertProvenanceAgentComponent(t));
096    return tgt;
097  }
098
099  public static org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent convertProvenanceEntityComponent(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityComponent src) throws FHIRException {
100    if (src == null || src.isEmpty())
101      return null;
102    org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent tgt = new org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityComponent();
103    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
104    if (src.hasRole())
105      tgt.setRoleElement(convertProvenanceEntityRole(src.getRoleElement()));
106    if (src.hasReference())
107      tgt.setWhat(new org.hl7.fhir.dstu3.model.Reference().setReference(src.getReference()));
108    if (src.hasAgent())
109      tgt.addAgent(convertProvenanceAgentComponent(src.getAgent()));
110    return tgt;
111  }
112
113  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole> convertProvenanceEntityRole(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole> src) throws FHIRException {
114      if (src == null || src.isEmpty())
115          return null;
116      Enumeration<Provenance.ProvenanceEntityRole> tgt = new Enumeration<>(new Provenance.ProvenanceEntityRoleEnumFactory());
117      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
118      if (src.getValue() == null) {
119          tgt.setValue(null);
120      } else {
121          switch (src.getValue()) {
122              case DERIVATION:
123                  tgt.setValue(Provenance.ProvenanceEntityRole.DERIVATION);
124                  break;
125              case REVISION:
126                  tgt.setValue(Provenance.ProvenanceEntityRole.REVISION);
127                  break;
128              case QUOTATION:
129                  tgt.setValue(Provenance.ProvenanceEntityRole.QUOTATION);
130                  break;
131              case SOURCE:
132                  tgt.setValue(Provenance.ProvenanceEntityRole.SOURCE);
133                  break;
134              default:
135                  tgt.setValue(Provenance.ProvenanceEntityRole.NULL);
136                  break;
137          }
138      }
139      return tgt;
140  }
141
142  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole> convertProvenanceEntityRole(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Provenance.ProvenanceEntityRole> src) throws FHIRException {
143      if (src == null || src.isEmpty())
144          return null;
145      org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRoleEnumFactory());
146      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
147      if (src.getValue() == null) {
148          tgt.setValue(null);
149      } else {
150          switch (src.getValue()) {
151              case DERIVATION:
152                  tgt.setValue(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole.DERIVATION);
153                  break;
154              case REVISION:
155                  tgt.setValue(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole.REVISION);
156                  break;
157              case QUOTATION:
158                  tgt.setValue(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole.QUOTATION);
159                  break;
160              case SOURCE:
161                  tgt.setValue(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole.SOURCE);
162                  break;
163              default:
164                  tgt.setValue(org.hl7.fhir.dstu2.model.Provenance.ProvenanceEntityRole.NULL);
165                  break;
166          }
167      }
168      return tgt;
169  }
170}