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