001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
006import org.hl7.fhir.exceptions.FHIRException;
007import org.hl7.fhir.r5.model.Enumeration;
008import org.hl7.fhir.r5.model.OperationOutcome;
009
010/*
011  Copyright (c) 2011+, HL7, Inc.
012  All rights reserved.
013  
014  Redistribution and use in source and binary forms, with or without modification, 
015  are permitted provided that the following conditions are met:
016  
017   * Redistributions of source code must retain the above copyright notice, this 
018     list of conditions and the following disclaimer.
019   * Redistributions in binary form must reproduce the above copyright notice, 
020     this list of conditions and the following disclaimer in the documentation 
021     and/or other materials provided with the distribution.
022   * Neither the name of HL7 nor the names of its contributors may be used to 
023     endorse or promote products derived from this software without specific 
024     prior written permission.
025  
026  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
027  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
028  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
029  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
030  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
031  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
032  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
033  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
034  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
035  POSSIBILITY OF SUCH DAMAGE.
036  
037*/
038// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
039public class OperationOutcome40_50 {
040
041  public static org.hl7.fhir.r5.model.OperationOutcome convertOperationOutcome(org.hl7.fhir.r4.model.OperationOutcome src) throws FHIRException {
042    if (src == null)
043      return null;
044    org.hl7.fhir.r5.model.OperationOutcome tgt = new org.hl7.fhir.r5.model.OperationOutcome();
045    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
046    for (org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent t : src.getIssue())
047      tgt.addIssue(convertOperationOutcomeIssueComponent(t));
048    return tgt;
049  }
050
051  public static org.hl7.fhir.r4.model.OperationOutcome convertOperationOutcome(org.hl7.fhir.r5.model.OperationOutcome src) throws FHIRException {
052    if (src == null)
053      return null;
054    org.hl7.fhir.r4.model.OperationOutcome tgt = new org.hl7.fhir.r4.model.OperationOutcome();
055    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
056    for (org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent t : src.getIssue())
057      tgt.addIssue(convertOperationOutcomeIssueComponent(t));
058    return tgt;
059  }
060
061  public static org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent convertOperationOutcomeIssueComponent(org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent src) throws FHIRException {
062    if (src == null)
063      return null;
064    org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent tgt = new org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent();
065    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
066    if (src.hasSeverity())
067      tgt.setSeverityElement(convertIssueSeverity(src.getSeverityElement()));
068    if (src.hasCode())
069      tgt.setCodeElement(convertIssueType(src.getCodeElement()));
070    if (src.hasDetails())
071      tgt.setDetails(CodeableConcept40_50.convertCodeableConcept(src.getDetails()));
072    if (src.hasDiagnostics())
073      tgt.setDiagnosticsElement(String40_50.convertString(src.getDiagnosticsElement()));
074    for (org.hl7.fhir.r4.model.StringType t : src.getLocation()) tgt.getLocation().add(String40_50.convertString(t));
075    for (org.hl7.fhir.r4.model.StringType t : src.getExpression())
076      tgt.getExpression().add(String40_50.convertString(t));
077    return tgt;
078  }
079
080  public static org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent convertOperationOutcomeIssueComponent(org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent src) throws FHIRException {
081    if (src == null)
082      return null;
083    org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent tgt = new org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent();
084    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
085    if (src.hasSeverity())
086      tgt.setSeverityElement(convertIssueSeverity(src.getSeverityElement()));
087    if (src.hasCode())
088      tgt.setCodeElement(convertIssueType(src.getCodeElement()));
089    if (src.hasDetails())
090      tgt.setDetails(CodeableConcept40_50.convertCodeableConcept(src.getDetails()));
091    if (src.hasDiagnostics())
092      tgt.setDiagnosticsElement(String40_50.convertString(src.getDiagnosticsElement()));
093    for (org.hl7.fhir.r5.model.StringType t : src.getLocation()) tgt.getLocation().add(String40_50.convertString(t));
094    for (org.hl7.fhir.r5.model.StringType t : src.getExpression())
095      tgt.getExpression().add(String40_50.convertString(t));
096    return tgt;
097  }
098
099  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationOutcome.IssueSeverity> convertIssueSeverity(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity> src) throws FHIRException {
100      if (src == null || src.isEmpty())
101          return null;
102      Enumeration<OperationOutcome.IssueSeverity> tgt = new Enumeration<>(new OperationOutcome.IssueSeverityEnumFactory());
103      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
104      if (src.getValue() == null) {
105          tgt.setValue(null);
106      } else {
107          switch (src.getValue()) {
108              case FATAL:
109                  tgt.setValue(OperationOutcome.IssueSeverity.FATAL);
110                  break;
111              case ERROR:
112                  tgt.setValue(OperationOutcome.IssueSeverity.ERROR);
113                  break;
114              case WARNING:
115                  tgt.setValue(OperationOutcome.IssueSeverity.WARNING);
116                  break;
117              case INFORMATION:
118                  tgt.setValue(OperationOutcome.IssueSeverity.INFORMATION);
119                  break;
120              default:
121                  tgt.setValue(OperationOutcome.IssueSeverity.NULL);
122                  break;
123          }
124      }
125      return tgt;
126  }
127
128  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity> convertIssueSeverity(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationOutcome.IssueSeverity> src) throws FHIRException {
129      if (src == null || src.isEmpty())
130          return null;
131      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.OperationOutcome.IssueSeverityEnumFactory());
132      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
133      if (src.getValue() == null) {
134          tgt.setValue(null);
135      } else {
136          switch (src.getValue()) {
137              case FATAL:
138                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity.FATAL);
139                  break;
140              case ERROR:
141                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity.ERROR);
142                  break;
143              case WARNING:
144                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity.WARNING);
145                  break;
146              case INFORMATION:
147                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity.INFORMATION);
148                  break;
149              default:
150                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity.NULL);
151                  break;
152          }
153      }
154      return tgt;
155  }
156
157  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationOutcome.IssueType> convertIssueType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueType> src) throws FHIRException {
158      if (src == null || src.isEmpty())
159          return null;
160      Enumeration<OperationOutcome.IssueType> tgt = new Enumeration<>(new OperationOutcome.IssueTypeEnumFactory());
161      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
162      if (src.getValue() == null) {
163          tgt.setValue(null);
164      } else {
165          switch (src.getValue()) {
166              case INVALID:
167                  tgt.setValue(OperationOutcome.IssueType.INVALID);
168                  break;
169              case STRUCTURE:
170                  tgt.setValue(OperationOutcome.IssueType.STRUCTURE);
171                  break;
172              case REQUIRED:
173                  tgt.setValue(OperationOutcome.IssueType.REQUIRED);
174                  break;
175              case VALUE:
176                  tgt.setValue(OperationOutcome.IssueType.VALUE);
177                  break;
178              case INVARIANT:
179                  tgt.setValue(OperationOutcome.IssueType.INVARIANT);
180                  break;
181              case SECURITY:
182                  tgt.setValue(OperationOutcome.IssueType.SECURITY);
183                  break;
184              case LOGIN:
185                  tgt.setValue(OperationOutcome.IssueType.LOGIN);
186                  break;
187              case UNKNOWN:
188                  tgt.setValue(OperationOutcome.IssueType.UNKNOWN);
189                  break;
190              case EXPIRED:
191                  tgt.setValue(OperationOutcome.IssueType.EXPIRED);
192                  break;
193              case FORBIDDEN:
194                  tgt.setValue(OperationOutcome.IssueType.FORBIDDEN);
195                  break;
196              case SUPPRESSED:
197                  tgt.setValue(OperationOutcome.IssueType.SUPPRESSED);
198                  break;
199              case PROCESSING:
200                  tgt.setValue(OperationOutcome.IssueType.PROCESSING);
201                  break;
202              case NOTSUPPORTED:
203                  tgt.setValue(OperationOutcome.IssueType.NOTSUPPORTED);
204                  break;
205              case DUPLICATE:
206                  tgt.setValue(OperationOutcome.IssueType.DUPLICATE);
207                  break;
208              case MULTIPLEMATCHES:
209                  tgt.setValue(OperationOutcome.IssueType.MULTIPLEMATCHES);
210                  break;
211              case NOTFOUND:
212                  tgt.setValue(OperationOutcome.IssueType.NOTFOUND);
213                  break;
214              case DELETED:
215                  tgt.setValue(OperationOutcome.IssueType.DELETED);
216                  break;
217              case TOOLONG:
218                  tgt.setValue(OperationOutcome.IssueType.TOOLONG);
219                  break;
220              case CODEINVALID:
221                  tgt.setValue(OperationOutcome.IssueType.CODEINVALID);
222                  break;
223              case EXTENSION:
224                  tgt.setValue(OperationOutcome.IssueType.EXTENSION);
225                  break;
226              case TOOCOSTLY:
227                  tgt.setValue(OperationOutcome.IssueType.TOOCOSTLY);
228                  break;
229              case BUSINESSRULE:
230                  tgt.setValue(OperationOutcome.IssueType.BUSINESSRULE);
231                  break;
232              case CONFLICT:
233                  tgt.setValue(OperationOutcome.IssueType.CONFLICT);
234                  break;
235              case TRANSIENT:
236                  tgt.setValue(OperationOutcome.IssueType.TRANSIENT);
237                  break;
238              case LOCKERROR:
239                  tgt.setValue(OperationOutcome.IssueType.LOCKERROR);
240                  break;
241              case NOSTORE:
242                  tgt.setValue(OperationOutcome.IssueType.NOSTORE);
243                  break;
244              case EXCEPTION:
245                  tgt.setValue(OperationOutcome.IssueType.EXCEPTION);
246                  break;
247              case TIMEOUT:
248                  tgt.setValue(OperationOutcome.IssueType.TIMEOUT);
249                  break;
250              case INCOMPLETE:
251                  tgt.setValue(OperationOutcome.IssueType.INCOMPLETE);
252                  break;
253              case THROTTLED:
254                  tgt.setValue(OperationOutcome.IssueType.THROTTLED);
255                  break;
256              case INFORMATIONAL:
257                  tgt.setValue(OperationOutcome.IssueType.INFORMATIONAL);
258                  break;
259              default:
260                  tgt.setValue(OperationOutcome.IssueType.NULL);
261                  break;
262          }
263      }
264      return tgt;
265  }
266
267  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueType> convertIssueType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.OperationOutcome.IssueType> src) throws FHIRException {
268      if (src == null || src.isEmpty())
269          return null;
270      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.OperationOutcome.IssueType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.OperationOutcome.IssueTypeEnumFactory());
271      ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
272      if (src.getValue() == null) {
273          tgt.setValue(null);
274      } else {
275          switch (src.getValue()) {
276              case INVALID:
277                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.INVALID);
278                  break;
279              case STRUCTURE:
280                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.STRUCTURE);
281                  break;
282              case REQUIRED:
283                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.REQUIRED);
284                  break;
285              case VALUE:
286                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.VALUE);
287                  break;
288              case INVARIANT:
289                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.INVARIANT);
290                  break;
291              case SECURITY:
292                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.SECURITY);
293                  break;
294              case LOGIN:
295                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.LOGIN);
296                  break;
297              case UNKNOWN:
298                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.UNKNOWN);
299                  break;
300              case EXPIRED:
301                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.EXPIRED);
302                  break;
303              case FORBIDDEN:
304                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.FORBIDDEN);
305                  break;
306              case SUPPRESSED:
307                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.SUPPRESSED);
308                  break;
309              case PROCESSING:
310                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.PROCESSING);
311                  break;
312              case NOTSUPPORTED:
313                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.NOTSUPPORTED);
314                  break;
315              case DUPLICATE:
316                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.DUPLICATE);
317                  break;
318              case MULTIPLEMATCHES:
319                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.MULTIPLEMATCHES);
320                  break;
321              case NOTFOUND:
322                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.NOTFOUND);
323                  break;
324              case DELETED:
325                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.DELETED);
326                  break;
327              case TOOLONG:
328                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.TOOLONG);
329                  break;
330              case CODEINVALID:
331                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.CODEINVALID);
332                  break;
333              case EXTENSION:
334                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.EXTENSION);
335                  break;
336              case TOOCOSTLY:
337                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.TOOCOSTLY);
338                  break;
339              case BUSINESSRULE:
340                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.BUSINESSRULE);
341                  break;
342              case CONFLICT:
343                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.CONFLICT);
344                  break;
345              case TRANSIENT:
346                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.TRANSIENT);
347                  break;
348              case LOCKERROR:
349                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.LOCKERROR);
350                  break;
351              case NOSTORE:
352                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.NOSTORE);
353                  break;
354              case EXCEPTION:
355                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.EXCEPTION);
356                  break;
357              case TIMEOUT:
358                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.TIMEOUT);
359                  break;
360              case INCOMPLETE:
361                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.INCOMPLETE);
362                  break;
363              case THROTTLED:
364                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.THROTTLED);
365                  break;
366              case INFORMATIONAL:
367                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.INFORMATIONAL);
368                  break;
369              default:
370                  tgt.setValue(org.hl7.fhir.r4.model.OperationOutcome.IssueType.NULL);
371                  break;
372          }
373      }
374      return tgt;
375  }
376}