001package org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext43_50;
004import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
005import org.hl7.fhir.exceptions.FHIRException;
006import org.hl7.fhir.r5.model.TriggerDefinition;
007
008public class TriggerDefinition43_50 {
009  public static org.hl7.fhir.r5.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.r4b.model.TriggerDefinition src) throws FHIRException {
010    if (src == null) return null;
011    org.hl7.fhir.r5.model.TriggerDefinition tgt = new org.hl7.fhir.r5.model.TriggerDefinition();
012    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
013    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
014    if (src.hasName()) tgt.setNameElement(String43_50.convertString(src.getNameElement()));
015    if (src.hasTiming())
016      tgt.setTiming(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getTiming()));
017    for (org.hl7.fhir.r4b.model.DataRequirement t : src.getData())
018      tgt.addData(DataRequirement43_50.convertDataRequirement(t));
019    if (src.hasCondition()) tgt.setCondition(Expression43_50.convertExpression(src.getCondition()));
020    return tgt;
021  }
022
023  public static org.hl7.fhir.r4b.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.r5.model.TriggerDefinition src) throws FHIRException {
024    if (src == null) return null;
025    org.hl7.fhir.r4b.model.TriggerDefinition tgt = new org.hl7.fhir.r4b.model.TriggerDefinition();
026    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
027    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
028    if (src.hasName()) tgt.setNameElement(String43_50.convertString(src.getNameElement()));
029    if (src.hasTiming())
030      tgt.setTiming(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getTiming()));
031    for (org.hl7.fhir.r5.model.DataRequirement t : src.getData())
032      tgt.addData(DataRequirement43_50.convertDataRequirement(t));
033    if (src.hasCondition()) tgt.setCondition(Expression43_50.convertExpression(src.getCondition()));
034    return tgt;
035  }
036
037  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType> src) throws FHIRException {
038    if (src == null || src.isEmpty()) return null;
039    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TriggerDefinition.TriggerType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.TriggerDefinition.TriggerTypeEnumFactory());
040    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
041    if (src.getValue() == null) {
042    tgt.setValue(null);
043} else {
044      switch(src.getValue()) {
045        case NAMEDEVENT:
046                    tgt.setValue(TriggerDefinition.TriggerType.NAMEDEVENT);
047                    break;
048                case PERIODIC:
049                    tgt.setValue(TriggerDefinition.TriggerType.PERIODIC);
050                    break;
051                case DATACHANGED:
052                    tgt.setValue(TriggerDefinition.TriggerType.DATACHANGED);
053                    break;
054                case DATAADDED:
055                    tgt.setValue(TriggerDefinition.TriggerType.DATAADDED);
056                    break;
057                case DATAMODIFIED:
058                    tgt.setValue(TriggerDefinition.TriggerType.DATAMODIFIED);
059                    break;
060                case DATAREMOVED:
061                    tgt.setValue(TriggerDefinition.TriggerType.DATAREMOVED);
062                    break;
063                case DATAACCESSED:
064                    tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSED);
065                    break;
066                case DATAACCESSENDED:
067                    tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSENDED);
068                    break;
069                default:
070                    tgt.setValue(TriggerDefinition.TriggerType.NULL);
071                    break;
072       }
073}
074    return tgt;
075  }
076
077  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TriggerDefinition.TriggerType> src) throws FHIRException {
078    if (src == null || src.isEmpty()) return null;
079    org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.TriggerDefinition.TriggerTypeEnumFactory());
080    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
081    if (src.getValue() == null) {
082    tgt.setValue(null);
083} else {
084      switch(src.getValue()) {
085        case NAMEDEVENT:
086                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.NAMEDEVENT);
087                    break;
088                case PERIODIC:
089                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.PERIODIC);
090                    break;
091                case DATACHANGED:
092                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATACHANGED);
093                    break;
094                case DATAADDED:
095                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATAADDED);
096                    break;
097                case DATAMODIFIED:
098                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATAMODIFIED);
099                    break;
100                case DATAREMOVED:
101                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATAREMOVED);
102                    break;
103                case DATAACCESSED:
104                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATAACCESSED);
105                    break;
106                case DATAACCESSENDED:
107                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.DATAACCESSENDED);
108                    break;
109                default:
110                    tgt.setValue(org.hl7.fhir.r4b.model.TriggerDefinition.TriggerType.NULL);
111                    break;
112       }
113}
114    return tgt;
115  }
116}