001package org.hl7.fhir.convertors.conv30_50.datatypes30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
005import org.hl7.fhir.exceptions.FHIRException;
006import org.hl7.fhir.r5.model.TriggerDefinition;
007
008public class TriggerDefinition30_50 {
009  public static org.hl7.fhir.r5.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.dstu3.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    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
013    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
014    if (src.hasEventName()) tgt.setNameElement(String30_50.convertString(src.getEventNameElement()));
015    if (src.hasEventTiming())
016      tgt.setTiming(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getEventTiming()));
017    if (src.hasEventData()) tgt.addData(DataRequirement30_50.convertDataRequirement(src.getEventData()));
018    return tgt;
019  }
020
021  public static org.hl7.fhir.dstu3.model.TriggerDefinition convertTriggerDefinition(org.hl7.fhir.r5.model.TriggerDefinition src) throws FHIRException {
022    if (src == null) return null;
023    org.hl7.fhir.dstu3.model.TriggerDefinition tgt = new org.hl7.fhir.dstu3.model.TriggerDefinition();
024    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
025    if (src.hasType()) tgt.setTypeElement(convertTriggerType(src.getTypeElement()));
026    if (src.hasName()) tgt.setEventNameElement(String30_50.convertString(src.getNameElement()));
027    if (src.hasTiming())
028      tgt.setEventTiming(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getTiming()));
029    if (src.hasData()) tgt.setEventData(DataRequirement30_50.convertDataRequirement(src.getDataFirstRep()));
030    return tgt;
031  }
032
033  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> src) throws FHIRException {
034    if (src == null || src.isEmpty()) return null;
035    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());
036    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
037    if (src.getValue() == null) {
038    tgt.setValue(null);
039} else {
040      switch(src.getValue()) {
041        case NAMEDEVENT:
042                    tgt.setValue(TriggerDefinition.TriggerType.NAMEDEVENT);
043                    break;
044                case PERIODIC:
045                    tgt.setValue(TriggerDefinition.TriggerType.PERIODIC);
046                    break;
047                case DATAADDED:
048                    tgt.setValue(TriggerDefinition.TriggerType.DATAADDED);
049                    break;
050                case DATAMODIFIED:
051                    tgt.setValue(TriggerDefinition.TriggerType.DATAMODIFIED);
052                    break;
053                case DATAREMOVED:
054                    tgt.setValue(TriggerDefinition.TriggerType.DATAREMOVED);
055                    break;
056                case DATAACCESSED:
057                    tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSED);
058                    break;
059                case DATAACCESSENDED:
060                    tgt.setValue(TriggerDefinition.TriggerType.DATAACCESSENDED);
061                    break;
062                default:
063                    tgt.setValue(TriggerDefinition.TriggerType.NULL);
064                    break;
065       }
066}
067    return tgt;
068  }
069
070  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> convertTriggerType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TriggerDefinition.TriggerType> src) throws FHIRException {
071    if (src == null || src.isEmpty()) return null;
072    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerTypeEnumFactory());
073    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
074    if (src.getValue() == null) {
075    tgt.setValue(null);
076} else {
077      switch(src.getValue()) {
078        case NAMEDEVENT:
079                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.NAMEDEVENT);
080                    break;
081                case PERIODIC:
082                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.PERIODIC);
083                    break;
084                case DATAADDED:
085                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAADDED);
086                    break;
087                case DATAMODIFIED:
088                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAMODIFIED);
089                    break;
090                case DATAREMOVED:
091                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAREMOVED);
092                    break;
093                case DATAACCESSED:
094                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAACCESSED);
095                    break;
096                case DATAACCESSENDED:
097                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.DATAACCESSENDED);
098                    break;
099                default:
100                    tgt.setValue(org.hl7.fhir.dstu3.model.TriggerDefinition.TriggerType.NULL);
101                    break;
102       }
103}
104    return tgt;
105  }
106}