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.complextypes10_30.Coding10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.ContactPoint10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Instant10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.Uri10_30;
009import org.hl7.fhir.exceptions.FHIRException;
010
011public class Subscription10_30 {
012
013  public static org.hl7.fhir.dstu3.model.Subscription convertSubscription(org.hl7.fhir.dstu2.model.Subscription src) throws FHIRException {
014    if (src == null || src.isEmpty())
015      return null;
016    org.hl7.fhir.dstu3.model.Subscription tgt = new org.hl7.fhir.dstu3.model.Subscription();
017    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
018    if (src.hasCriteriaElement())
019      tgt.setCriteriaElement(String10_30.convertString(src.getCriteriaElement()));
020    for (org.hl7.fhir.dstu2.model.ContactPoint t : src.getContact())
021      tgt.addContact(ContactPoint10_30.convertContactPoint(t));
022    if (src.hasReasonElement())
023      tgt.setReasonElement(String10_30.convertString(src.getReasonElement()));
024    if (src.hasStatus())
025      tgt.setStatusElement(convertSubscriptionStatus(src.getStatusElement()));
026    if (src.hasErrorElement())
027      tgt.setErrorElement(String10_30.convertString(src.getErrorElement()));
028    if (src.hasChannel())
029      tgt.setChannel(convertSubscriptionChannelComponent(src.getChannel()));
030    if (src.hasEndElement())
031      tgt.setEndElement(Instant10_30.convertInstant(src.getEndElement()));
032    for (org.hl7.fhir.dstu2.model.Coding t : src.getTag()) tgt.addTag(Coding10_30.convertCoding(t));
033    return tgt;
034  }
035
036  public static org.hl7.fhir.dstu2.model.Subscription convertSubscription(org.hl7.fhir.dstu3.model.Subscription src) throws FHIRException {
037    if (src == null || src.isEmpty())
038      return null;
039    org.hl7.fhir.dstu2.model.Subscription tgt = new org.hl7.fhir.dstu2.model.Subscription();
040    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
041    if (src.hasCriteriaElement())
042      tgt.setCriteriaElement(String10_30.convertString(src.getCriteriaElement()));
043    for (org.hl7.fhir.dstu3.model.ContactPoint t : src.getContact())
044      tgt.addContact(ContactPoint10_30.convertContactPoint(t));
045    if (src.hasReasonElement())
046      tgt.setReasonElement(String10_30.convertString(src.getReasonElement()));
047    if (src.hasStatus())
048      tgt.setStatusElement(convertSubscriptionStatus(src.getStatusElement()));
049    if (src.hasErrorElement())
050      tgt.setErrorElement(String10_30.convertString(src.getErrorElement()));
051    if (src.hasChannel())
052      tgt.setChannel(convertSubscriptionChannelComponent(src.getChannel()));
053    if (src.hasEndElement())
054      tgt.setEndElement(Instant10_30.convertInstant(src.getEndElement()));
055    for (org.hl7.fhir.dstu3.model.Coding t : src.getTag()) tgt.addTag(Coding10_30.convertCoding(t));
056    return tgt;
057  }
058
059  public static org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelComponent convertSubscriptionChannelComponent(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelComponent src) throws FHIRException {
060    if (src == null || src.isEmpty())
061      return null;
062    org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelComponent tgt = new org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelComponent();
063    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
064    if (src.hasType())
065      tgt.setTypeElement(convertSubscriptionChannelType(src.getTypeElement()));
066    if (src.hasEndpointElement())
067      tgt.setEndpointElement(Uri10_30.convertUri(src.getEndpointElement()));
068    if (src.hasPayloadElement())
069      tgt.setPayloadElement(String10_30.convertString(src.getPayloadElement()));
070    if (src.hasHeader())
071      tgt.setHeaderElement(String10_30.convertString(src.getHeader().get(0)));
072    return tgt;
073  }
074
075  public static org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelComponent convertSubscriptionChannelComponent(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelComponent src) throws FHIRException {
076    if (src == null || src.isEmpty())
077      return null;
078    org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelComponent tgt = new org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelComponent();
079    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
080    if (src.hasType())
081      tgt.setTypeElement(convertSubscriptionChannelType(src.getTypeElement()));
082    if (src.hasEndpointElement())
083      tgt.setEndpointElement(Uri10_30.convertUri(src.getEndpointElement()));
084    if (src.hasPayloadElement())
085      tgt.setPayloadElement(String10_30.convertString(src.getPayloadElement()));
086    tgt.addHeader(src.getHeader());
087    return tgt;
088  }
089
090  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType> convertSubscriptionChannelType(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType> src) throws FHIRException {
091    if (src == null || src.isEmpty())
092      return null;
093    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelTypeEnumFactory());
094    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
095    switch (src.getValue()) {
096      case RESTHOOK:
097        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.RESTHOOK);
098        break;
099      case WEBSOCKET:
100        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.WEBSOCKET);
101        break;
102      case EMAIL:
103        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.EMAIL);
104        break;
105      case SMS:
106        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.SMS);
107        break;
108      case MESSAGE:
109        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.MESSAGE);
110        break;
111      default:
112        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType.NULL);
113        break;
114    }
115    return tgt;
116  }
117
118  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType> convertSubscriptionChannelType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionChannelType> src) throws FHIRException {
119    if (src == null || src.isEmpty())
120      return null;
121    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelTypeEnumFactory());
122    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
123    switch (src.getValue()) {
124      case RESTHOOK:
125        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.RESTHOOK);
126        break;
127      case WEBSOCKET:
128        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.WEBSOCKET);
129        break;
130      case EMAIL:
131        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.EMAIL);
132        break;
133      case SMS:
134        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.SMS);
135        break;
136      case MESSAGE:
137        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.MESSAGE);
138        break;
139      default:
140        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.NULL);
141        break;
142    }
143    return tgt;
144  }
145
146  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus> convertSubscriptionStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus> src) throws FHIRException {
147    if (src == null || src.isEmpty())
148      return null;
149    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatusEnumFactory());
150    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
151    switch (src.getValue()) {
152      case REQUESTED:
153        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus.REQUESTED);
154        break;
155      case ACTIVE:
156        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus.ACTIVE);
157        break;
158      case ERROR:
159        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus.ERROR);
160        break;
161      case OFF:
162        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus.OFF);
163        break;
164      default:
165        tgt.setValue(org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus.NULL);
166        break;
167    }
168    return tgt;
169  }
170
171  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus> convertSubscriptionStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Subscription.SubscriptionStatus> src) throws FHIRException {
172    if (src == null || src.isEmpty())
173      return null;
174    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatusEnumFactory());
175    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
176    switch (src.getValue()) {
177      case REQUESTED:
178        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus.REQUESTED);
179        break;
180      case ACTIVE:
181        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus.ACTIVE);
182        break;
183      case ERROR:
184        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus.ERROR);
185        break;
186      case OFF:
187        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus.OFF);
188        break;
189      default:
190        tgt.setValue(org.hl7.fhir.dstu2.model.Subscription.SubscriptionStatus.NULL);
191        break;
192    }
193    return tgt;
194  }
195}