
001package org.hl7.fhir.r5.tools; 002 003// generated 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, \ 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this \ 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, \ 015 this list of conditions and the following disclaimer in the documentation \ 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \ 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \ 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \ 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \ 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \ 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \ 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \ 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \ 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \ 030 POSSIBILITY OF SUCH DAMAGE. 031 */ 032 033// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0 034 035 036 037import org.hl7.fhir.r5.model.*; 038import org.hl7.fhir.r5.formats.*; 039import org.xmlpull.v1.*; 040import org.hl7.fhir.utilities.xml.IXMLWriter; 041import org.hl7.fhir.utilities.Utilities; 042import org.hl7.fhir.exceptions.FHIRFormatError; 043import org.hl7.fhir.exceptions.FHIRException; 044import java.io.IOException; 045import java.util.Enumeration; 046 047public class ToolsXmlParser extends org.hl7.fhir.r5.formats.XmlParser { 048 049 public ToolsXmlParser(boolean allowUnknownContent) { 050 super(); 051 setAllowUnknownContent(allowUnknownContent); 052 } 053 054 public ToolsXmlParser(IXMLWriter xml) { 055 super(); 056 this.xml = xml; 057 } 058 059 protected boolean parseCDSHookContextContent(int eventType, XmlPullParser xpp, CDSHookContext res) throws XmlPullParserException, IOException, FHIRFormatError { 060 if (!parseBaseContent(eventType, xpp, res)) { //3 061 return false; 062 } 063 return true; 064 } 065 066 protected boolean parseCDSHooksElementContent(int eventType, XmlPullParser xpp, CDSHooksElement res) throws XmlPullParserException, IOException, FHIRFormatError { 067 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("extension")) { 068 res.setExtension(parseCDSHooksExtensions(xpp)); 069 } else if (!parseBaseContent(eventType, xpp, res)) { //3 070 return false; 071 } 072 return true; 073 } 074 075 protected CDSHookOrderSelectContext parseCDSHookOrderSelectContext(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 076 CDSHookOrderSelectContext res = new CDSHookOrderSelectContext(); 077 next(xpp); 078 int eventType = nextNoWhitespace(xpp); 079 while (eventType != XmlPullParser.END_TAG) { 080 if (!parseCDSHookOrderSelectContextContent(eventType, xpp, res)) // 1 081 unknownContent(xpp); 082 eventType = nextNoWhitespace(xpp); 083 } 084 next(xpp); 085 parseElementClose(res); 086 return res; 087 } 088 089 protected boolean parseCDSHookOrderSelectContextContent(int eventType, XmlPullParser xpp, CDSHookOrderSelectContext res) throws XmlPullParserException, IOException, FHIRFormatError { 090 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("userId")) { 091 res.setUserIdElement(parseUrl(xpp)); 092 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("patientId")) { 093 res.setPatientIdElement(parseId(xpp)); 094 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("encounterId")) { 095 res.setEncounterIdElement(parseId(xpp)); 096 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("selections")) { 097 res.getSelectionsList().add(parseUri(xpp)); 098 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("draftOrders")) { 099 res.setDraftOrders(parseBundle(xpp)); 100 } else if (!parseCDSHookContextContent(eventType, xpp, res)){ //2 101 return false; 102 } 103 return true; 104 } 105 106 protected CDSHookOrderSignContext parseCDSHookOrderSignContext(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 107 CDSHookOrderSignContext res = new CDSHookOrderSignContext(); 108 next(xpp); 109 int eventType = nextNoWhitespace(xpp); 110 while (eventType != XmlPullParser.END_TAG) { 111 if (!parseCDSHookOrderSignContextContent(eventType, xpp, res)) // 1 112 unknownContent(xpp); 113 eventType = nextNoWhitespace(xpp); 114 } 115 next(xpp); 116 parseElementClose(res); 117 return res; 118 } 119 120 protected boolean parseCDSHookOrderSignContextContent(int eventType, XmlPullParser xpp, CDSHookOrderSignContext res) throws XmlPullParserException, IOException, FHIRFormatError { 121 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("userId")) { 122 res.setUserIdElement(parseUrl(xpp)); 123 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("patientId")) { 124 res.setPatientIdElement(parseId(xpp)); 125 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("encounterId")) { 126 res.setEncounterIdElement(parseId(xpp)); 127 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("draftOrders")) { 128 res.setDraftOrders(parseBundle(xpp)); 129 } else if (!parseCDSHookContextContent(eventType, xpp, res)){ //2 130 return false; 131 } 132 return true; 133 } 134 135 protected CDSHookPatientViewContext parseCDSHookPatientViewContext(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 136 CDSHookPatientViewContext res = new CDSHookPatientViewContext(); 137 next(xpp); 138 int eventType = nextNoWhitespace(xpp); 139 while (eventType != XmlPullParser.END_TAG) { 140 if (!parseCDSHookPatientViewContextContent(eventType, xpp, res)) // 1 141 unknownContent(xpp); 142 eventType = nextNoWhitespace(xpp); 143 } 144 next(xpp); 145 parseElementClose(res); 146 return res; 147 } 148 149 protected boolean parseCDSHookPatientViewContextContent(int eventType, XmlPullParser xpp, CDSHookPatientViewContext res) throws XmlPullParserException, IOException, FHIRFormatError { 150 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("userId")) { 151 res.setUserIdElement(parseUrl(xpp)); 152 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("patientId")) { 153 res.setPatientIdElement(parseId(xpp)); 154 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("encounterId")) { 155 res.setEncounterIdElement(parseId(xpp)); 156 } else if (!parseCDSHookContextContent(eventType, xpp, res)){ //2 157 return false; 158 } 159 return true; 160 } 161 162 protected CDSHooksExtensions parseCDSHooksExtensions(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 163 CDSHooksExtensions res = new CDSHooksExtensions(); 164 next(xpp); 165 int eventType = nextNoWhitespace(xpp); 166 while (eventType != XmlPullParser.END_TAG) { 167 if (!parseCDSHooksExtensionsContent(eventType, xpp, res)) // 1 168 unknownContent(xpp); 169 eventType = nextNoWhitespace(xpp); 170 } 171 next(xpp); 172 parseElementClose(res); 173 return res; 174 } 175 176 protected boolean parseCDSHooksExtensionsContent(int eventType, XmlPullParser xpp, CDSHooksExtensions res) throws XmlPullParserException, IOException, FHIRFormatError { 177 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("extension")) { 178 // todo: Named Element Extensions 179 } else if (!parseBaseContent(eventType, xpp, res)){ //2 180 return false; 181 } 182 return true; 183 } 184 185 // todo: Named Element Extensions 186 protected CDSHooksRequest parseCDSHooksRequest(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 187 CDSHooksRequest res = new CDSHooksRequest(); 188 next(xpp); 189 int eventType = nextNoWhitespace(xpp); 190 while (eventType != XmlPullParser.END_TAG) { 191 if (!parseCDSHooksRequestContent(eventType, xpp, res)) // 1 192 unknownContent(xpp); 193 eventType = nextNoWhitespace(xpp); 194 } 195 next(xpp); 196 parseElementClose(res); 197 return res; 198 } 199 200 protected boolean parseCDSHooksRequestContent(int eventType, XmlPullParser xpp, CDSHooksRequest res) throws XmlPullParserException, IOException, FHIRFormatError { 201 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("hook")) { 202 res.setHookElement(parseCode(xpp)); 203 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("hookInstance")) { 204 res.setHookInstanceElement(parseUuid(xpp)); 205 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("fhirServer")) { 206 res.setFhirServerElement(parseUrl(xpp)); 207 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("fhirAuthorization")) { 208 res.setFhirAuthorization(parseCDSHooksRequestFhirAuthorizationComponent(xpp)); 209 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("context")) { 210 res.setContext(parseCDSHookContext(xpp)); 211 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("prefetch")) { 212 res.getPrefetchList().add(parseCDSHooksRequestPrefetchComponent(xpp)); 213 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 214 return false; 215 } 216 return true; 217 } 218 219 protected CDSHookContext parseCDSHookContext(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 220 String xsiType = xpp.getAttributeValue("xsi", "type"); 221 if ("CDSHookPatientViewContext".equals(xsiType)) { 222 return parseCDSHookPatientViewContext(xpp); 223 } 224 if ("CDSHookOrderSignContext".equals(xsiType)) { 225 return parseCDSHookOrderSignContext(xpp); 226 } 227 if ("CDSHookOrderSelectContext".equals(xsiType)) { 228 return parseCDSHookOrderSelectContext(xpp); 229 } 230 throw new FHIRFormatError("Unable to parse CDSHookContext: xsi:type '"+xsiType+"' not known"); 231 } 232 233 protected CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent parseCDSHooksRequestFhirAuthorizationComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 234 CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent res = new CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent(); 235 next(xpp); 236 int eventType = nextNoWhitespace(xpp); 237 while (eventType != XmlPullParser.END_TAG) { 238 if (!parseCDSHooksRequestFhirAuthorizationComponentContent(eventType, xpp, res)) // 1 239 unknownContent(xpp); 240 eventType = nextNoWhitespace(xpp); 241 } 242 next(xpp); 243 parseElementClose(res); 244 return res; 245 } 246 247 protected boolean parseCDSHooksRequestFhirAuthorizationComponentContent(int eventType, XmlPullParser xpp, CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 248 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("accessToken")) { 249 res.setAccessTokenElement(parseString(xpp)); 250 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("tokenType")) { 251 res.setTokenTypeElement(parseCode(xpp)); 252 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("expiresIn")) { 253 res.setExpiresInElement(parseInteger(xpp)); 254 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("scope")) { 255 res.setScopeElement(parseString(xpp)); 256 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("subject")) { 257 res.setSubjectElement(parseString(xpp)); 258 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("patient")) { 259 res.setPatientElement(parseId(xpp)); 260 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 261 return false; 262 } 263 return true; 264 } 265 266 protected CDSHooksRequest.CDSHooksRequestPrefetchComponent parseCDSHooksRequestPrefetchComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 267 CDSHooksRequest.CDSHooksRequestPrefetchComponent res = new CDSHooksRequest.CDSHooksRequestPrefetchComponent(); 268 next(xpp); 269 int eventType = nextNoWhitespace(xpp); 270 while (eventType != XmlPullParser.END_TAG) { 271 if (!parseCDSHooksRequestPrefetchComponentContent(eventType, xpp, res)) // 1 272 unknownContent(xpp); 273 eventType = nextNoWhitespace(xpp); 274 } 275 next(xpp); 276 parseElementClose(res); 277 return res; 278 } 279 280 protected boolean parseCDSHooksRequestPrefetchComponentContent(int eventType, XmlPullParser xpp, CDSHooksRequest.CDSHooksRequestPrefetchComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 281 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("key")) { 282 res.setKeyElement(parseCode(xpp)); 283 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("value")) { 284 res.setValue(parseResourceContained(xpp)); 285 } else if (!parseBaseContent(eventType, xpp, res)){ //2 286 return false; 287 } 288 return true; 289 } 290 291 protected CDSHooksResponse parseCDSHooksResponse(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 292 CDSHooksResponse res = new CDSHooksResponse(); 293 next(xpp); 294 int eventType = nextNoWhitespace(xpp); 295 while (eventType != XmlPullParser.END_TAG) { 296 if (!parseCDSHooksResponseContent(eventType, xpp, res)) // 1 297 unknownContent(xpp); 298 eventType = nextNoWhitespace(xpp); 299 } 300 next(xpp); 301 parseElementClose(res); 302 return res; 303 } 304 305 protected boolean parseCDSHooksResponseContent(int eventType, XmlPullParser xpp, CDSHooksResponse res) throws XmlPullParserException, IOException, FHIRFormatError { 306 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("cards")) { 307 res.getCardsList().add(parseCDSHooksResponseCardsComponent(xpp)); 308 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("systemActions")) { 309 res.getSystemActionsList().add(parseCDSHooksResponseCardsSuggestionsActionsComponent(xpp)); 310 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 311 return false; 312 } 313 return true; 314 } 315 316 protected CDSHooksResponse.CDSHooksResponseCardsComponent parseCDSHooksResponseCardsComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 317 CDSHooksResponse.CDSHooksResponseCardsComponent res = new CDSHooksResponse.CDSHooksResponseCardsComponent(); 318 next(xpp); 319 int eventType = nextNoWhitespace(xpp); 320 while (eventType != XmlPullParser.END_TAG) { 321 if (!parseCDSHooksResponseCardsComponentContent(eventType, xpp, res)) // 1 322 unknownContent(xpp); 323 eventType = nextNoWhitespace(xpp); 324 } 325 next(xpp); 326 parseElementClose(res); 327 return res; 328 } 329 330 protected boolean parseCDSHooksResponseCardsComponentContent(int eventType, XmlPullParser xpp, CDSHooksResponse.CDSHooksResponseCardsComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 331 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("uuid")) { 332 res.setUuidElement(parseUuid(xpp)); 333 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("summary")) { 334 res.setSummaryElement(parseString(xpp)); 335 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("detail")) { 336 res.setDetailElement(parseMarkdown(xpp)); 337 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("indicator")) { 338 res.setIndicatorElement(parseEnumeration(xpp, CDSHooksResponse.CDSIndicatorCodesVS.NULL, new CDSHooksResponse.CDSIndicatorCodesVSEnumFactory())); 339 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("source")) { 340 res.setSource(parseCDSHooksResponseCardsSourceComponent(xpp)); 341 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("suggestions")) { 342 res.getSuggestionsList().add(parseCDSHooksResponseCardsSuggestionsComponent(xpp)); 343 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("selectionBehavior")) { 344 res.setSelectionBehaviorElement(parseEnumeration(xpp, CDSHooksResponse.CDSSelectionBehaviorCodesVS.NULL, new CDSHooksResponse.CDSSelectionBehaviorCodesVSEnumFactory())); 345 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("overrideReasons")) { 346 res.getOverrideReasonsList().add(parseCoding(xpp)); 347 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("links")) { 348 res.getLinksList().add(parseCDSHooksResponseCardsLinksComponent(xpp)); 349 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 350 return false; 351 } 352 return true; 353 } 354 355 protected CDSHooksResponse.CDSHooksResponseCardsSourceComponent parseCDSHooksResponseCardsSourceComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 356 CDSHooksResponse.CDSHooksResponseCardsSourceComponent res = new CDSHooksResponse.CDSHooksResponseCardsSourceComponent(); 357 next(xpp); 358 int eventType = nextNoWhitespace(xpp); 359 while (eventType != XmlPullParser.END_TAG) { 360 if (!parseCDSHooksResponseCardsSourceComponentContent(eventType, xpp, res)) // 1 361 unknownContent(xpp); 362 eventType = nextNoWhitespace(xpp); 363 } 364 next(xpp); 365 parseElementClose(res); 366 return res; 367 } 368 369 protected boolean parseCDSHooksResponseCardsSourceComponentContent(int eventType, XmlPullParser xpp, CDSHooksResponse.CDSHooksResponseCardsSourceComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 370 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("label")) { 371 res.setLabelElement(parseString(xpp)); 372 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("url")) { 373 res.setUrlElement(parseUrl(xpp)); 374 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("icon")) { 375 res.setIconElement(parseUrl(xpp)); 376 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("topic")) { 377 res.setTopic(parseCoding(xpp)); 378 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 379 return false; 380 } 381 return true; 382 } 383 384 protected CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent parseCDSHooksResponseCardsSuggestionsComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 385 CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent res = new CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent(); 386 next(xpp); 387 int eventType = nextNoWhitespace(xpp); 388 while (eventType != XmlPullParser.END_TAG) { 389 if (!parseCDSHooksResponseCardsSuggestionsComponentContent(eventType, xpp, res)) // 1 390 unknownContent(xpp); 391 eventType = nextNoWhitespace(xpp); 392 } 393 next(xpp); 394 parseElementClose(res); 395 return res; 396 } 397 398 protected boolean parseCDSHooksResponseCardsSuggestionsComponentContent(int eventType, XmlPullParser xpp, CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 399 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("label")) { 400 res.setLabelElement(parseString(xpp)); 401 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("uuid")) { 402 res.setUuidElement(parseUuid(xpp)); 403 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("isRecommended")) { 404 res.setIsRecommendedElement(parseBoolean(xpp)); 405 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("actions")) { 406 res.getActionsList().add(parseCDSHooksResponseCardsSuggestionsActionsComponent(xpp)); 407 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 408 return false; 409 } 410 return true; 411 } 412 413 protected CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent parseCDSHooksResponseCardsSuggestionsActionsComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 414 CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent res = new CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent(); 415 next(xpp); 416 int eventType = nextNoWhitespace(xpp); 417 while (eventType != XmlPullParser.END_TAG) { 418 if (!parseCDSHooksResponseCardsSuggestionsActionsComponentContent(eventType, xpp, res)) // 1 419 unknownContent(xpp); 420 eventType = nextNoWhitespace(xpp); 421 } 422 next(xpp); 423 parseElementClose(res); 424 return res; 425 } 426 427 protected boolean parseCDSHooksResponseCardsSuggestionsActionsComponentContent(int eventType, XmlPullParser xpp, CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 428 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("type")) { 429 res.setTypeElement(parseEnumeration(xpp, CDSHooksResponse.CDSActionTypeCodesVS.NULL, new CDSHooksResponse.CDSActionTypeCodesVSEnumFactory())); 430 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 431 res.setDescriptionElement(parseString(xpp)); 432 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("resource")) { 433 res.setResource(parseResourceContained(xpp)); 434 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("resourceId")) { 435 res.setResourceIdElement(parseUrl(xpp)); 436 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 437 return false; 438 } 439 return true; 440 } 441 442 protected CDSHooksResponse.CDSHooksResponseCardsLinksComponent parseCDSHooksResponseCardsLinksComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 443 CDSHooksResponse.CDSHooksResponseCardsLinksComponent res = new CDSHooksResponse.CDSHooksResponseCardsLinksComponent(); 444 next(xpp); 445 int eventType = nextNoWhitespace(xpp); 446 while (eventType != XmlPullParser.END_TAG) { 447 if (!parseCDSHooksResponseCardsLinksComponentContent(eventType, xpp, res)) // 1 448 unknownContent(xpp); 449 eventType = nextNoWhitespace(xpp); 450 } 451 next(xpp); 452 parseElementClose(res); 453 return res; 454 } 455 456 protected boolean parseCDSHooksResponseCardsLinksComponentContent(int eventType, XmlPullParser xpp, CDSHooksResponse.CDSHooksResponseCardsLinksComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 457 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("label")) { 458 res.setLabelElement(parseString(xpp)); 459 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("url")) { 460 res.setUrlElement(parseUrl(xpp)); 461 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("type")) { 462 res.setTypeElement(parseEnumeration(xpp, CDSHooksResponse.CDSLinkTypeCodesVS.NULL, new CDSHooksResponse.CDSLinkTypeCodesVSEnumFactory())); 463 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("appContext")) { 464 res.setAppContextElement(parseString(xpp)); 465 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 466 return false; 467 } 468 return true; 469 } 470 471 protected CDSHooksServices parseCDSHooksServices(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 472 CDSHooksServices res = new CDSHooksServices(); 473 next(xpp); 474 int eventType = nextNoWhitespace(xpp); 475 while (eventType != XmlPullParser.END_TAG) { 476 if (!parseCDSHooksServicesContent(eventType, xpp, res)) // 1 477 unknownContent(xpp); 478 eventType = nextNoWhitespace(xpp); 479 } 480 next(xpp); 481 parseElementClose(res); 482 return res; 483 } 484 485 protected boolean parseCDSHooksServicesContent(int eventType, XmlPullParser xpp, CDSHooksServices res) throws XmlPullParserException, IOException, FHIRFormatError { 486 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("services")) { 487 res.getServicesList().add(parseCDSHooksServicesServicesComponent(xpp)); 488 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 489 return false; 490 } 491 return true; 492 } 493 494 protected CDSHooksServices.CDSHooksServicesServicesComponent parseCDSHooksServicesServicesComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 495 CDSHooksServices.CDSHooksServicesServicesComponent res = new CDSHooksServices.CDSHooksServicesServicesComponent(); 496 next(xpp); 497 int eventType = nextNoWhitespace(xpp); 498 while (eventType != XmlPullParser.END_TAG) { 499 if (!parseCDSHooksServicesServicesComponentContent(eventType, xpp, res)) // 1 500 unknownContent(xpp); 501 eventType = nextNoWhitespace(xpp); 502 } 503 next(xpp); 504 parseElementClose(res); 505 return res; 506 } 507 508 protected boolean parseCDSHooksServicesServicesComponentContent(int eventType, XmlPullParser xpp, CDSHooksServices.CDSHooksServicesServicesComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 509 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("hook")) { 510 res.setHookElement(parseString(xpp)); 511 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("title")) { 512 res.setTitleElement(parseString(xpp)); 513 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("id")) { 514 res.setIdElement(parseCode(xpp)); 515 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 516 res.setDescriptionElement(parseString(xpp)); 517 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("usageRequirements")) { 518 res.setUsageRequirementsElement(parseString(xpp)); 519 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("prefetch")) { 520 res.getPrefetchList().add(parseCDSHooksServicesServicesPrefetchComponent(xpp)); 521 } else if (!parseCDSHooksElementContent(eventType, xpp, res)){ //2 522 return false; 523 } 524 return true; 525 } 526 527 protected CDSHooksServices.CDSHooksServicesServicesPrefetchComponent parseCDSHooksServicesServicesPrefetchComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 528 CDSHooksServices.CDSHooksServicesServicesPrefetchComponent res = new CDSHooksServices.CDSHooksServicesServicesPrefetchComponent(); 529 next(xpp); 530 int eventType = nextNoWhitespace(xpp); 531 while (eventType != XmlPullParser.END_TAG) { 532 if (!parseCDSHooksServicesServicesPrefetchComponentContent(eventType, xpp, res)) // 1 533 unknownContent(xpp); 534 eventType = nextNoWhitespace(xpp); 535 } 536 next(xpp); 537 parseElementClose(res); 538 return res; 539 } 540 541 protected boolean parseCDSHooksServicesServicesPrefetchComponentContent(int eventType, XmlPullParser xpp, CDSHooksServices.CDSHooksServicesServicesPrefetchComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 542 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("key")) { 543 res.setKeyElement(parseCode(xpp)); 544 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("value")) { 545 res.setValueElement(parseString(xpp)); 546 } else if (!parseBaseContent(eventType, xpp, res)){ //2 547 return false; 548 } 549 return true; 550 } 551 552 protected TestCases parseTestCases(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 553 TestCases res = new TestCases(); 554 next(xpp); 555 int eventType = nextNoWhitespace(xpp); 556 while (eventType != XmlPullParser.END_TAG) { 557 if (!parseTestCasesContent(eventType, xpp, res)) // 1 558 unknownContent(xpp); 559 eventType = nextNoWhitespace(xpp); 560 } 561 next(xpp); 562 parseElementClose(res); 563 return res; 564 } 565 566 protected boolean parseTestCasesContent(int eventType, XmlPullParser xpp, TestCases res) throws XmlPullParserException, IOException, FHIRFormatError { 567 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("url")) { 568 res.setUrlElement(parseUri(xpp)); 569 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("version")) { 570 res.setVersionElement(parseString(xpp)); 571 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("name")) { 572 res.setNameElement(parseString(xpp)); 573 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 574 res.setDescriptionElement(parseMarkdown(xpp)); 575 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("runner")) { 576 res.setRunnerElement(parseUrl(xpp)); 577 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("mode")) { 578 res.getModeList().add(parseTestCasesModeComponent(xpp)); 579 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("suite")) { 580 res.getSuiteList().add(parseTestCasesSuiteComponent(xpp)); 581 } else if (!parseResourceContent(eventType, xpp, res)){ //2 582 return false; 583 } 584 return true; 585 } 586 587 protected TestCases.TestCasesModeComponent parseTestCasesModeComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 588 TestCases.TestCasesModeComponent res = new TestCases.TestCasesModeComponent(); 589 next(xpp); 590 int eventType = nextNoWhitespace(xpp); 591 while (eventType != XmlPullParser.END_TAG) { 592 if (!parseTestCasesModeComponentContent(eventType, xpp, res)) // 1 593 unknownContent(xpp); 594 eventType = nextNoWhitespace(xpp); 595 } 596 next(xpp); 597 parseElementClose(res); 598 return res; 599 } 600 601 protected boolean parseTestCasesModeComponentContent(int eventType, XmlPullParser xpp, TestCases.TestCasesModeComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 602 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("code")) { 603 res.setCodeElement(parseString(xpp)); 604 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 605 res.setDescriptionElement(parseString(xpp)); 606 } else if (!parseBaseContent(eventType, xpp, res)){ //2 607 return false; 608 } 609 return true; 610 } 611 612 protected TestCases.TestCasesSuiteComponent parseTestCasesSuiteComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 613 TestCases.TestCasesSuiteComponent res = new TestCases.TestCasesSuiteComponent(); 614 next(xpp); 615 int eventType = nextNoWhitespace(xpp); 616 while (eventType != XmlPullParser.END_TAG) { 617 if (!parseTestCasesSuiteComponentContent(eventType, xpp, res)) // 1 618 unknownContent(xpp); 619 eventType = nextNoWhitespace(xpp); 620 } 621 next(xpp); 622 parseElementClose(res); 623 return res; 624 } 625 626 protected boolean parseTestCasesSuiteComponentContent(int eventType, XmlPullParser xpp, TestCases.TestCasesSuiteComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 627 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("name")) { 628 res.setNameElement(parseString(xpp)); 629 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 630 res.setDescriptionElement(parseString(xpp)); 631 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("mode")) { 632 res.setModeElement(parseCode(xpp)); 633 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("resource")) { 634 res.getResourceList().add(parseTestCasesSuiteResourceComponent(xpp)); 635 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("parameter")) { 636 res.getParameterList().add(parseTestCasesSuiteParameterComponent(xpp)); 637 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("test")) { 638 res.getTestList().add(parseTestCasesSuiteTestComponent(xpp)); 639 } else if (!parseBaseContent(eventType, xpp, res)){ //2 640 return false; 641 } 642 return true; 643 } 644 645 protected TestCases.TestCasesSuiteResourceComponent parseTestCasesSuiteResourceComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 646 TestCases.TestCasesSuiteResourceComponent res = new TestCases.TestCasesSuiteResourceComponent(); 647 next(xpp); 648 int eventType = nextNoWhitespace(xpp); 649 while (eventType != XmlPullParser.END_TAG) { 650 if (!parseTestCasesSuiteResourceComponentContent(eventType, xpp, res)) // 1 651 unknownContent(xpp); 652 eventType = nextNoWhitespace(xpp); 653 } 654 next(xpp); 655 parseElementClose(res); 656 return res; 657 } 658 659 protected boolean parseTestCasesSuiteResourceComponentContent(int eventType, XmlPullParser xpp, TestCases.TestCasesSuiteResourceComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 660 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("name")) { 661 res.setNameElement(parseString(xpp)); 662 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("file")) { 663 res.setFileElement(parseString(xpp)); 664 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("resource")) { 665 res.setResource(parseResourceContained(xpp)); 666 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("mode")) { 667 res.setModeElement(parseCode(xpp)); 668 } else if (!parseBaseContent(eventType, xpp, res)){ //2 669 return false; 670 } 671 return true; 672 } 673 674 protected TestCases.TestCasesSuiteParameterComponent parseTestCasesSuiteParameterComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 675 TestCases.TestCasesSuiteParameterComponent res = new TestCases.TestCasesSuiteParameterComponent(); 676 next(xpp); 677 int eventType = nextNoWhitespace(xpp); 678 while (eventType != XmlPullParser.END_TAG) { 679 if (!parseTestCasesSuiteParameterComponentContent(eventType, xpp, res)) // 1 680 unknownContent(xpp); 681 eventType = nextNoWhitespace(xpp); 682 } 683 next(xpp); 684 parseElementClose(res); 685 return res; 686 } 687 688 protected boolean parseTestCasesSuiteParameterComponentContent(int eventType, XmlPullParser xpp, TestCases.TestCasesSuiteParameterComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 689 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("name")) { 690 res.setNameElement(parseString(xpp)); 691 } else if (eventType == XmlPullParser.START_TAG && nameIsTypeName(xpp, "value")) { 692 res.setValue(parseType("value", xpp)); 693 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("mode")) { 694 res.setModeElement(parseCode(xpp)); 695 } else if (!parseBaseContent(eventType, xpp, res)){ //2 696 return false; 697 } 698 return true; 699 } 700 701 protected TestCases.TestCasesSuiteTestComponent parseTestCasesSuiteTestComponent(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 702 TestCases.TestCasesSuiteTestComponent res = new TestCases.TestCasesSuiteTestComponent(); 703 next(xpp); 704 int eventType = nextNoWhitespace(xpp); 705 while (eventType != XmlPullParser.END_TAG) { 706 if (!parseTestCasesSuiteTestComponentContent(eventType, xpp, res)) // 1 707 unknownContent(xpp); 708 eventType = nextNoWhitespace(xpp); 709 } 710 next(xpp); 711 parseElementClose(res); 712 return res; 713 } 714 715 protected boolean parseTestCasesSuiteTestComponentContent(int eventType, XmlPullParser xpp, TestCases.TestCasesSuiteTestComponent res) throws XmlPullParserException, IOException, FHIRFormatError { 716 if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("name")) { 717 res.setNameElement(parseString(xpp)); 718 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("description")) { 719 res.setDescriptionElement(parseString(xpp)); 720 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("operation")) { 721 res.setOperationElement(parseCode(xpp)); 722 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("mode")) { 723 res.setModeElement(parseString(xpp)); 724 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("parameter")) { 725 res.getParameterList().add(parseTestCasesSuiteParameterComponent(xpp)); 726 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("input")) { 727 res.getInputList().add(parseTestCasesSuiteResourceComponent(xpp)); 728 } else if (eventType == XmlPullParser.START_TAG && xpp.getName().equals("output")) { 729 res.getOutputList().add(parseTestCasesSuiteResourceComponent(xpp)); 730 } else if (!parseBaseContent(eventType, xpp, res)){ //2 731 return false; 732 } 733 return true; 734 } 735 736 737 738 @Override 739 protected Resource parseResource(XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 740 if (xpp == null) { 741 throw new IOException("xpp == null!"); 742 } else if (xpp.getName().equals("TestCases")) { 743 return parseTestCases(xpp); 744 745 } else { 746 throw new FHIRFormatError("Unknown resource type "+xpp.getName()+""); 747 } 748 } 749 750 protected DataType parseType(String prefix, XmlPullParser xpp) throws XmlPullParserException, IOException, FHIRFormatError { 751 if (prefix == null) { 752 throw new IOException("prefix == null!"); 753 } else if (xpp == null) { 754 throw new IOException("xpp == null!"); 755 } else if (xpp.getName().equals(prefix+"Date")) { 756 return parseDate(xpp); 757 } else if (xpp.getName().equals(prefix+"DateTime")) { 758 return parseDateTime(xpp); 759 } else if (xpp.getName().equals(prefix+"Code")) { 760 return parseCode(xpp); 761 } else if (xpp.getName().equals(prefix+"String")) { 762 return parseString(xpp); 763 } else if (xpp.getName().equals(prefix+"Integer")) { 764 return parseInteger(xpp); 765 } else if (xpp.getName().equals(prefix+"Integer64")) { 766 return parseInteger64(xpp); 767 } else if (xpp.getName().equals(prefix+"Oid")) { 768 return parseOid(xpp); 769 } else if (xpp.getName().equals(prefix+"Canonical")) { 770 return parseCanonical(xpp); 771 } else if (xpp.getName().equals(prefix+"Uri")) { 772 return parseUri(xpp); 773 } else if (xpp.getName().equals(prefix+"Uuid")) { 774 return parseUuid(xpp); 775 } else if (xpp.getName().equals(prefix+"Url")) { 776 return parseUrl(xpp); 777 } else if (xpp.getName().equals(prefix+"Instant")) { 778 return parseInstant(xpp); 779 } else if (xpp.getName().equals(prefix+"Boolean")) { 780 return parseBoolean(xpp); 781 } else if (xpp.getName().equals(prefix+"Base64Binary")) { 782 return parseBase64Binary(xpp); 783 } else if (xpp.getName().equals(prefix+"UnsignedInt")) { 784 return parseUnsignedInt(xpp); 785 } else if (xpp.getName().equals(prefix+"Markdown")) { 786 return parseMarkdown(xpp); 787 } else if (xpp.getName().equals(prefix+"Time")) { 788 return parseTime(xpp); 789 } else if (xpp.getName().equals(prefix+"Id")) { 790 return parseId(xpp); 791 } else if (xpp.getName().equals(prefix+"PositiveInt")) { 792 return parsePositiveInt(xpp); 793 } else if (xpp.getName().equals(prefix+"Decimal")) { 794 return parseDecimal(xpp); 795 796 } else { 797 throw new FHIRFormatError("Unknown type "+xpp.getName()); 798 } 799 } 800 801 protected DataType parseType(XmlPullParser xpp, String type) throws XmlPullParserException, IOException, FHIRFormatError { 802 if (type == null) { 803 throw new IOException("type == null!"); 804 } else if (xpp == null) { 805 throw new IOException("xpp == null!"); 806 } else if (type.equals("date")) { 807 return parseDate(xpp); 808 } else if (type.equals("dateTime")) { 809 return parseDateTime(xpp); 810 } else if (type.equals("code")) { 811 return parseCode(xpp); 812 } else if (type.equals("string")) { 813 return parseString(xpp); 814 } else if (type.equals("integer")) { 815 return parseInteger(xpp); 816 } else if (type.equals("integer64")) { 817 return parseInteger64(xpp); 818 } else if (type.equals("oid")) { 819 return parseOid(xpp); 820 } else if (type.equals("canonical")) { 821 return parseCanonical(xpp); 822 } else if (type.equals("uri")) { 823 return parseUri(xpp); 824 } else if (type.equals("uuid")) { 825 return parseUuid(xpp); 826 } else if (type.equals("url")) { 827 return parseUrl(xpp); 828 } else if (type.equals("instant")) { 829 return parseInstant(xpp); 830 } else if (type.equals("boolean")) { 831 return parseBoolean(xpp); 832 } else if (type.equals("base64Binary")) { 833 return parseBase64Binary(xpp); 834 } else if (type.equals("unsignedInt")) { 835 return parseUnsignedInt(xpp); 836 } else if (type.equals("markdown")) { 837 return parseMarkdown(xpp); 838 } else if (type.equals("time")) { 839 return parseTime(xpp); 840 } else if (type.equals("id")) { 841 return parseId(xpp); 842 } else if (type.equals("positiveInt")) { 843 return parsePositiveInt(xpp); 844 } else if (type.equals("decimal")) { 845 return parseDecimal(xpp); 846 847 } else { 848 throw new FHIRFormatError("Unknown type "+type); 849 } 850 } 851 852 public Base parseFragment(XmlPullParser xpp, String type) throws XmlPullParserException, IOException, FHIRFormatError { 853 if (type == null) { 854 throw new IOException("type == null!"); 855 } else if (xpp == null) { 856 throw new IOException("xpp == null!"); 857 } else if (type.equals("CDSHookOrderSelectContext")) { 858 return parseCDSHookOrderSelectContext(xpp); 859 } else if (type.equals("CDSHookOrderSignContext")) { 860 return parseCDSHookOrderSignContext(xpp); 861 } else if (type.equals("CDSHookPatientViewContext")) { 862 return parseCDSHookPatientViewContext(xpp); 863 } else if (type.equals("CDSHooksExtensions")) { 864 return parseCDSHooksExtensions(xpp); 865 } else if (type.equals("CDSHooksRequest")) { 866 return parseCDSHooksRequest(xpp); 867 } else if (type.equals("CDSHooksResponse")) { 868 return parseCDSHooksResponse(xpp); 869 } else if (type.equals("CDSHooksServices")) { 870 return parseCDSHooksServices(xpp); 871 } else if (type.equals("TestCases")) { 872 return parseTestCases(xpp); 873 874 } else if (type.equals("date")) { 875 return parseDate(xpp); 876 } else if (type.equals("dateTime")) { 877 return parseDateTime(xpp); 878 } else if (type.equals("code")) { 879 return parseCode(xpp); 880 } else if (type.equals("string")) { 881 return parseString(xpp); 882 } else if (type.equals("integer")) { 883 return parseInteger(xpp); 884 } else if (type.equals("integer64")) { 885 return parseInteger64(xpp); 886 } else if (type.equals("oid")) { 887 return parseOid(xpp); 888 } else if (type.equals("canonical")) { 889 return parseCanonical(xpp); 890 } else if (type.equals("uri")) { 891 return parseUri(xpp); 892 } else if (type.equals("uuid")) { 893 return parseUuid(xpp); 894 } else if (type.equals("url")) { 895 return parseUrl(xpp); 896 } else if (type.equals("instant")) { 897 return parseInstant(xpp); 898 } else if (type.equals("boolean")) { 899 return parseBoolean(xpp); 900 } else if (type.equals("base64Binary")) { 901 return parseBase64Binary(xpp); 902 } else if (type.equals("unsignedInt")) { 903 return parseUnsignedInt(xpp); 904 } else if (type.equals("markdown")) { 905 return parseMarkdown(xpp); 906 } else if (type.equals("time")) { 907 return parseTime(xpp); 908 } else if (type.equals("id")) { 909 return parseId(xpp); 910 } else if (type.equals("positiveInt")) { 911 return parsePositiveInt(xpp); 912 } else if (type.equals("decimal")) { 913 return parseDecimal(xpp); 914 } else { 915 throw new FHIRFormatError("Unknown type "+type); 916 } 917 } 918 919 private boolean nameIsTypeName(XmlPullParser xpp, String prefix) throws IOException { 920 if (prefix == null) { 921 throw new IOException("prefix == null!"); 922 } else if (xpp == null) { 923 throw new IOException("xpp == null!"); 924 } else if (xpp.getName().equals(prefix+"CDSHookOrderSelectContext")) { 925 return true; 926 } else if (xpp.getName().equals(prefix+"CDSHookOrderSignContext")) { 927 return true; 928 } else if (xpp.getName().equals(prefix+"CDSHookPatientViewContext")) { 929 return true; 930 } else if (xpp.getName().equals(prefix+"CDSHooksExtensions")) { 931 return true; 932 } else if (xpp.getName().equals(prefix+"CDSHooksRequest")) { 933 return true; 934 } else if (xpp.getName().equals(prefix+"CDSHooksResponse")) { 935 return true; 936 } else if (xpp.getName().equals(prefix+"CDSHooksServices")) { 937 return true; 938 } else if (xpp.getName().equals(prefix+"TestCases")) { 939 return true; 940 941 } else if (xpp.getName().equals(prefix+"Date")) { 942 return true; 943 } else if (xpp.getName().equals(prefix+"DateTime")) { 944 return true; 945 } else if (xpp.getName().equals(prefix+"Code")) { 946 return true; 947 } else if (xpp.getName().equals(prefix+"String")) { 948 return true; 949 } else if (xpp.getName().equals(prefix+"Integer")) { 950 return true; 951 } else if (xpp.getName().equals(prefix+"Integer64")) { 952 return true; 953 } else if (xpp.getName().equals(prefix+"Oid")) { 954 return true; 955 } else if (xpp.getName().equals(prefix+"Canonical")) { 956 return true; 957 } else if (xpp.getName().equals(prefix+"Uri")) { 958 return true; 959 } else if (xpp.getName().equals(prefix+"Uuid")) { 960 return true; 961 } else if (xpp.getName().equals(prefix+"Url")) { 962 return true; 963 } else if (xpp.getName().equals(prefix+"Instant")) { 964 return true; 965 } else if (xpp.getName().equals(prefix+"Boolean")) { 966 return true; 967 } else if (xpp.getName().equals(prefix+"Base64Binary")) { 968 return true; 969 } else if (xpp.getName().equals(prefix+"UnsignedInt")) { 970 return true; 971 } else if (xpp.getName().equals(prefix+"Markdown")) { 972 return true; 973 } else if (xpp.getName().equals(prefix+"Time")) { 974 return true; 975 } else if (xpp.getName().equals(prefix+"Id")) { 976 return true; 977 } else if (xpp.getName().equals(prefix+"PositiveInt")) { 978 return true; 979 } else if (xpp.getName().equals(prefix+"Decimal")) { 980 return true; 981 } else { 982 return false; 983 } 984 } 985 986 @Override 987 protected DataType parseAnyType(XmlPullParser xpp, String type) throws XmlPullParserException, IOException, FHIRFormatError { 988 return parseType(xpp, type); 989 } 990 991 992//----------------- Composer ------------------------------------------------------------------------------------------- 993 994 protected void composeCDSHookContextElements(CDSHookContext element) throws IOException { 995 composeBaseElements(element); 996 } 997 998 protected void composeCDSHooksElementElements(CDSHooksElement element) throws IOException { 999 composeBaseElements(element); 1000 if (element.hasExtension()) { 1001 composeCDSHooksExtensions("extension", element.getExtension()); 1002 } 1003 } 1004 1005 protected void composeCDSHookOrderSelectContext(String name, CDSHookOrderSelectContext element) throws IOException { 1006 if (element != null) { 1007 xml.enter(FHIR_NS, name); 1008 composeCDSHookOrderSelectContextElements(element); 1009 composeElementClose(element); 1010 xml.exit(FHIR_NS, name); 1011 } 1012 } 1013 1014 protected void composeCDSHookOrderSelectContextElements(CDSHookOrderSelectContext element) throws IOException { 1015 composeCDSHookContextElements(element); 1016 if (element.hasUserIdElement()) { 1017 composeUrl("userId", element.getUserIdElement()); 1018 } 1019 if (element.hasPatientIdElement()) { 1020 composeId("patientId", element.getPatientIdElement()); 1021 } 1022 if (element.hasEncounterIdElement()) { 1023 composeId("encounterId", element.getEncounterIdElement()); 1024 } 1025 if (element.hasSelections()) { 1026 for (UriType e : element.getSelectionsList()) 1027 composeUri("selections", e); // a 1028 } 1029 if (element.hasDraftOrders()) { 1030 composeBundle("draftOrders", element.getDraftOrders()); 1031 } 1032 } 1033 1034 protected void composeCDSHookOrderSignContext(String name, CDSHookOrderSignContext element) throws IOException { 1035 if (element != null) { 1036 xml.enter(FHIR_NS, name); 1037 composeCDSHookOrderSignContextElements(element); 1038 composeElementClose(element); 1039 xml.exit(FHIR_NS, name); 1040 } 1041 } 1042 1043 protected void composeCDSHookOrderSignContextElements(CDSHookOrderSignContext element) throws IOException { 1044 composeCDSHookContextElements(element); 1045 if (element.hasUserIdElement()) { 1046 composeUrl("userId", element.getUserIdElement()); 1047 } 1048 if (element.hasPatientIdElement()) { 1049 composeId("patientId", element.getPatientIdElement()); 1050 } 1051 if (element.hasEncounterIdElement()) { 1052 composeId("encounterId", element.getEncounterIdElement()); 1053 } 1054 if (element.hasDraftOrders()) { 1055 composeBundle("draftOrders", element.getDraftOrders()); 1056 } 1057 } 1058 1059 protected void composeCDSHookPatientViewContext(String name, CDSHookPatientViewContext element) throws IOException { 1060 if (element != null) { 1061 xml.enter(FHIR_NS, name); 1062 composeCDSHookPatientViewContextElements(element); 1063 composeElementClose(element); 1064 xml.exit(FHIR_NS, name); 1065 } 1066 } 1067 1068 protected void composeCDSHookPatientViewContextElements(CDSHookPatientViewContext element) throws IOException { 1069 composeCDSHookContextElements(element); 1070 if (element.hasUserIdElement()) { 1071 composeUrl("userId", element.getUserIdElement()); 1072 } 1073 if (element.hasPatientIdElement()) { 1074 composeId("patientId", element.getPatientIdElement()); 1075 } 1076 if (element.hasEncounterIdElement()) { 1077 composeId("encounterId", element.getEncounterIdElement()); 1078 } 1079 } 1080 1081 protected void composeCDSHooksExtensions(String name, CDSHooksExtensions element) throws IOException { 1082 if (element != null) { 1083 xml.enter(FHIR_NS, name); 1084 composeCDSHooksExtensionsElements(element); 1085 composeElementClose(element); 1086 xml.exit(FHIR_NS, name); 1087 } 1088 } 1089 1090 protected void composeCDSHooksExtensionsElements(CDSHooksExtensions element) throws IOException { 1091 composeBaseElements(element); 1092 } 1093 1094 protected void composeCDSHooksRequest(String name, CDSHooksRequest element) throws IOException { 1095 if (element != null) { 1096 xml.enter(FHIR_NS, name); 1097 composeCDSHooksRequestElements(element); 1098 composeElementClose(element); 1099 xml.exit(FHIR_NS, name); 1100 } 1101 } 1102 1103 protected void composeCDSHooksRequestElements(CDSHooksRequest element) throws IOException { 1104 composeCDSHooksElementElements(element); 1105 if (element.hasHookElement()) { 1106 composeCode("hook", element.getHookElement()); 1107 } 1108 if (element.hasHookInstanceElement()) { 1109 composeUuid("hookInstance", element.getHookInstanceElement()); 1110 } 1111 if (element.hasFhirServerElement()) { 1112 composeUrl("fhirServer", element.getFhirServerElement()); 1113 } 1114 if (element.hasFhirAuthorization()) { 1115 composeCDSHooksRequestFhirAuthorizationComponent("fhirAuthorization", element.getFhirAuthorization()); 1116 } 1117 if (element.hasContext()) { 1118 composeCDSHookContext("context", element.getContext()); 1119 } 1120 if (element.hasPrefetch()) { 1121 for (CDSHooksRequest.CDSHooksRequestPrefetchComponent e : element.getPrefetchList()) 1122 composeCDSHooksRequestPrefetchComponent("prefetch", e); // a 1123 } 1124 } 1125 1126 protected void composeCDSHookContext(String name, CDSHookContext element) throws IOException { 1127 if (element instanceof CDSHookPatientViewContext) { 1128 composeCDSHookPatientViewContext(name, (CDSHookPatientViewContext) element); 1129 } else if (element instanceof CDSHookOrderSignContext) { 1130 composeCDSHookOrderSignContext(name, (CDSHookOrderSignContext) element); 1131 } else if (element instanceof CDSHookOrderSelectContext) { 1132 composeCDSHookOrderSelectContext(name, (CDSHookOrderSelectContext) element); 1133 } else { 1134 throw new FHIRFormatError("Unable to compose CDSHookContext: Unexpected type "+element.getClass().getName()); 1135 } 1136 } 1137 1138 protected void composeCDSHooksRequestFhirAuthorizationComponent(String name, CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent element) throws IOException { 1139 if (element != null) { 1140 xml.enter(FHIR_NS, name); 1141 composeCDSHooksRequestFhirAuthorizationComponentElements(element); 1142 composeElementClose(element); 1143 xml.exit(FHIR_NS, name); 1144 } 1145 } 1146 1147 protected void composeCDSHooksRequestFhirAuthorizationComponentElements(CDSHooksRequest.CDSHooksRequestFhirAuthorizationComponent element) throws IOException { 1148 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1149 if (element.hasAccessTokenElement()) { 1150 composeString("accessToken", element.getAccessTokenElement()); 1151 } 1152 if (element.hasTokenTypeElement()) { 1153 composeCode("tokenType", element.getTokenTypeElement()); 1154 } 1155 if (element.hasExpiresInElement()) { 1156 composeInteger("expiresIn", element.getExpiresInElement()); 1157 } 1158 if (element.hasScopeElement()) { 1159 composeString("scope", element.getScopeElement()); 1160 } 1161 if (element.hasSubjectElement()) { 1162 composeString("subject", element.getSubjectElement()); 1163 } 1164 if (element.hasPatientElement()) { 1165 composeId("patient", element.getPatientElement()); 1166 } 1167 } 1168 1169 protected void composeCDSHooksRequestPrefetchComponent(String name, CDSHooksRequest.CDSHooksRequestPrefetchComponent element) throws IOException { 1170 if (element != null) { 1171 xml.enter(FHIR_NS, name); 1172 composeCDSHooksRequestPrefetchComponentElements(element); 1173 composeElementClose(element); 1174 xml.exit(FHIR_NS, name); 1175 } 1176 } 1177 1178 protected void composeCDSHooksRequestPrefetchComponentElements(CDSHooksRequest.CDSHooksRequestPrefetchComponent element) throws IOException { 1179 composeBaseElements(element); 1180 if (element.hasKeyElement()) { 1181 composeCode("key", element.getKeyElement()); 1182 } 1183 if (element.hasValue()) { 1184 xml.enter(FHIR_NS, "value"); 1185 composeResource(element.getValue()); 1186 xml.exit(FHIR_NS, "value"); 1187 } 1188 } 1189 1190 protected void composeCDSHooksResponse(String name, CDSHooksResponse element) throws IOException { 1191 if (element != null) { 1192 xml.enter(FHIR_NS, name); 1193 composeCDSHooksResponseElements(element); 1194 composeElementClose(element); 1195 xml.exit(FHIR_NS, name); 1196 } 1197 } 1198 1199 protected void composeCDSHooksResponseElements(CDSHooksResponse element) throws IOException { 1200 composeCDSHooksElementElements(element); 1201 if (element.hasCards()) { 1202 for (CDSHooksResponse.CDSHooksResponseCardsComponent e : element.getCardsList()) 1203 composeCDSHooksResponseCardsComponent("cards", e); // a 1204 } 1205 if (element.hasSystemActions()) { 1206 for (CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent e : element.getSystemActionsList()) 1207 composeCDSHooksResponseCardsSuggestionsActionsComponent("systemActions", e); // a 1208 } 1209 } 1210 1211 protected void composeCDSHooksResponseCardsComponent(String name, CDSHooksResponse.CDSHooksResponseCardsComponent element) throws IOException { 1212 if (element != null) { 1213 xml.enter(FHIR_NS, name); 1214 composeCDSHooksResponseCardsComponentElements(element); 1215 composeElementClose(element); 1216 xml.exit(FHIR_NS, name); 1217 } 1218 } 1219 1220 protected void composeCDSHooksResponseCardsComponentElements(CDSHooksResponse.CDSHooksResponseCardsComponent element) throws IOException { 1221 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1222 if (element.hasUuidElement()) { 1223 composeUuid("uuid", element.getUuidElement()); 1224 } 1225 if (element.hasSummaryElement()) { 1226 composeString("summary", element.getSummaryElement()); 1227 } 1228 if (element.hasDetailElement()) { 1229 composeMarkdown("detail", element.getDetailElement()); 1230 } 1231 if (element.hasIndicatorElement()) 1232 composeEnumeration("indicator", element.getIndicatorElement(), new CDSHooksResponse.CDSIndicatorCodesVSEnumFactory()); 1233 if (element.hasSource()) { 1234 composeCDSHooksResponseCardsSourceComponent("source", element.getSource()); 1235 } 1236 if (element.hasSuggestions()) { 1237 for (CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent e : element.getSuggestionsList()) 1238 composeCDSHooksResponseCardsSuggestionsComponent("suggestions", e); // a 1239 } 1240 if (element.hasSelectionBehaviorElement()) 1241 composeEnumeration("selectionBehavior", element.getSelectionBehaviorElement(), new CDSHooksResponse.CDSSelectionBehaviorCodesVSEnumFactory()); 1242 if (element.hasOverrideReasons()) { 1243 for (Coding e : element.getOverrideReasonsList()) 1244 composeCoding("overrideReasons", e); // a 1245 } 1246 if (element.hasLinks()) { 1247 for (CDSHooksResponse.CDSHooksResponseCardsLinksComponent e : element.getLinksList()) 1248 composeCDSHooksResponseCardsLinksComponent("links", e); // a 1249 } 1250 } 1251 1252 protected void composeCDSHooksResponseCardsSourceComponent(String name, CDSHooksResponse.CDSHooksResponseCardsSourceComponent element) throws IOException { 1253 if (element != null) { 1254 xml.enter(FHIR_NS, name); 1255 composeCDSHooksResponseCardsSourceComponentElements(element); 1256 composeElementClose(element); 1257 xml.exit(FHIR_NS, name); 1258 } 1259 } 1260 1261 protected void composeCDSHooksResponseCardsSourceComponentElements(CDSHooksResponse.CDSHooksResponseCardsSourceComponent element) throws IOException { 1262 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1263 if (element.hasLabelElement()) { 1264 composeString("label", element.getLabelElement()); 1265 } 1266 if (element.hasUrlElement()) { 1267 composeUrl("url", element.getUrlElement()); 1268 } 1269 if (element.hasIconElement()) { 1270 composeUrl("icon", element.getIconElement()); 1271 } 1272 if (element.hasTopic()) { 1273 composeCoding("topic", element.getTopic()); 1274 } 1275 } 1276 1277 protected void composeCDSHooksResponseCardsSuggestionsComponent(String name, CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent element) throws IOException { 1278 if (element != null) { 1279 xml.enter(FHIR_NS, name); 1280 composeCDSHooksResponseCardsSuggestionsComponentElements(element); 1281 composeElementClose(element); 1282 xml.exit(FHIR_NS, name); 1283 } 1284 } 1285 1286 protected void composeCDSHooksResponseCardsSuggestionsComponentElements(CDSHooksResponse.CDSHooksResponseCardsSuggestionsComponent element) throws IOException { 1287 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1288 if (element.hasLabelElement()) { 1289 composeString("label", element.getLabelElement()); 1290 } 1291 if (element.hasUuidElement()) { 1292 composeUuid("uuid", element.getUuidElement()); 1293 } 1294 if (element.hasIsRecommendedElement()) { 1295 composeBoolean("isRecommended", element.getIsRecommendedElement()); 1296 } 1297 if (element.hasActions()) { 1298 for (CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent e : element.getActionsList()) 1299 composeCDSHooksResponseCardsSuggestionsActionsComponent("actions", e); // a 1300 } 1301 } 1302 1303 protected void composeCDSHooksResponseCardsSuggestionsActionsComponent(String name, CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent element) throws IOException { 1304 if (element != null) { 1305 xml.enter(FHIR_NS, name); 1306 composeCDSHooksResponseCardsSuggestionsActionsComponentElements(element); 1307 composeElementClose(element); 1308 xml.exit(FHIR_NS, name); 1309 } 1310 } 1311 1312 protected void composeCDSHooksResponseCardsSuggestionsActionsComponentElements(CDSHooksResponse.CDSHooksResponseCardsSuggestionsActionsComponent element) throws IOException { 1313 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1314 if (element.hasTypeElement()) 1315 composeEnumeration("type", element.getTypeElement(), new CDSHooksResponse.CDSActionTypeCodesVSEnumFactory()); 1316 if (element.hasDescriptionElement()) { 1317 composeString("description", element.getDescriptionElement()); 1318 } 1319 if (element.hasResource()) { 1320 xml.enter(FHIR_NS, "resource"); 1321 composeResource(element.getResource()); 1322 xml.exit(FHIR_NS, "resource"); 1323 } 1324 if (element.hasResourceIdElement()) { 1325 composeUrl("resourceId", element.getResourceIdElement()); 1326 } 1327 } 1328 1329 protected void composeCDSHooksResponseCardsLinksComponent(String name, CDSHooksResponse.CDSHooksResponseCardsLinksComponent element) throws IOException { 1330 if (element != null) { 1331 xml.enter(FHIR_NS, name); 1332 composeCDSHooksResponseCardsLinksComponentElements(element); 1333 composeElementClose(element); 1334 xml.exit(FHIR_NS, name); 1335 } 1336 } 1337 1338 protected void composeCDSHooksResponseCardsLinksComponentElements(CDSHooksResponse.CDSHooksResponseCardsLinksComponent element) throws IOException { 1339 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1340 if (element.hasLabelElement()) { 1341 composeString("label", element.getLabelElement()); 1342 } 1343 if (element.hasUrlElement()) { 1344 composeUrl("url", element.getUrlElement()); 1345 } 1346 if (element.hasTypeElement()) 1347 composeEnumeration("type", element.getTypeElement(), new CDSHooksResponse.CDSLinkTypeCodesVSEnumFactory()); 1348 if (element.hasAppContextElement()) { 1349 composeString("appContext", element.getAppContextElement()); 1350 } 1351 } 1352 1353 protected void composeCDSHooksServices(String name, CDSHooksServices element) throws IOException { 1354 if (element != null) { 1355 xml.enter(FHIR_NS, name); 1356 composeCDSHooksServicesElements(element); 1357 composeElementClose(element); 1358 xml.exit(FHIR_NS, name); 1359 } 1360 } 1361 1362 protected void composeCDSHooksServicesElements(CDSHooksServices element) throws IOException { 1363 composeCDSHooksElementElements(element); 1364 if (element.hasServices()) { 1365 for (CDSHooksServices.CDSHooksServicesServicesComponent e : element.getServicesList()) 1366 composeCDSHooksServicesServicesComponent("services", e); // a 1367 } 1368 } 1369 1370 protected void composeCDSHooksServicesServicesComponent(String name, CDSHooksServices.CDSHooksServicesServicesComponent element) throws IOException { 1371 if (element != null) { 1372 xml.enter(FHIR_NS, name); 1373 composeCDSHooksServicesServicesComponentElements(element); 1374 composeElementClose(element); 1375 xml.exit(FHIR_NS, name); 1376 } 1377 } 1378 1379 protected void composeCDSHooksServicesServicesComponentElements(CDSHooksServices.CDSHooksServicesServicesComponent element) throws IOException { 1380 composehttp://hl7.org/fhir/tools/StructureDefinition/CDSHooksElementElements(element); 1381 if (element.hasHookElement()) { 1382 composeString("hook", element.getHookElement()); 1383 } 1384 if (element.hasTitleElement()) { 1385 composeString("title", element.getTitleElement()); 1386 } 1387 if (element.hasIdElement()) { 1388 composeCode("id", element.getIdElement()); 1389 } 1390 if (element.hasDescriptionElement()) { 1391 composeString("description", element.getDescriptionElement()); 1392 } 1393 if (element.hasUsageRequirementsElement()) { 1394 composeString("usageRequirements", element.getUsageRequirementsElement()); 1395 } 1396 if (element.hasPrefetch()) { 1397 for (CDSHooksServices.CDSHooksServicesServicesPrefetchComponent e : element.getPrefetchList()) 1398 composeCDSHooksServicesServicesPrefetchComponent("prefetch", e); // a 1399 } 1400 } 1401 1402 protected void composeCDSHooksServicesServicesPrefetchComponent(String name, CDSHooksServices.CDSHooksServicesServicesPrefetchComponent element) throws IOException { 1403 if (element != null) { 1404 xml.enter(FHIR_NS, name); 1405 composeCDSHooksServicesServicesPrefetchComponentElements(element); 1406 composeElementClose(element); 1407 xml.exit(FHIR_NS, name); 1408 } 1409 } 1410 1411 protected void composeCDSHooksServicesServicesPrefetchComponentElements(CDSHooksServices.CDSHooksServicesServicesPrefetchComponent element) throws IOException { 1412 composeBaseElements(element); 1413 if (element.hasKeyElement()) { 1414 composeCode("key", element.getKeyElement()); 1415 } 1416 if (element.hasValueElement()) { 1417 composeString("value", element.getValueElement()); 1418 } 1419 } 1420 1421 protected void composeTestCases(String name, TestCases element) throws IOException { 1422 if (element != null) { 1423 xml.enter(FHIR_NS, name); 1424 composeTestCasesElements(element); 1425 composeElementClose(element); 1426 xml.exit(FHIR_NS, name); 1427 } 1428 } 1429 1430 protected void composeTestCasesElements(TestCases element) throws IOException { 1431 composeResourceElements(element); 1432 if (element.hasUrlElement()) { 1433 composeUri("url", element.getUrlElement()); 1434 } 1435 if (element.hasVersionElement()) { 1436 composeString("version", element.getVersionElement()); 1437 } 1438 if (element.hasNameElement()) { 1439 composeString("name", element.getNameElement()); 1440 } 1441 if (element.hasDescriptionElement()) { 1442 composeMarkdown("description", element.getDescriptionElement()); 1443 } 1444 if (element.hasRunnerElement()) { 1445 composeUrl("runner", element.getRunnerElement()); 1446 } 1447 if (element.hasMode()) { 1448 for (TestCases.TestCasesModeComponent e : element.getModeList()) 1449 composeTestCasesModeComponent("mode", e); // a 1450 } 1451 if (element.hasSuite()) { 1452 for (TestCases.TestCasesSuiteComponent e : element.getSuiteList()) 1453 composeTestCasesSuiteComponent("suite", e); // a 1454 } 1455 } 1456 1457 protected void composeTestCasesModeComponent(String name, TestCases.TestCasesModeComponent element) throws IOException { 1458 if (element != null) { 1459 xml.enter(FHIR_NS, name); 1460 composeTestCasesModeComponentElements(element); 1461 composeElementClose(element); 1462 xml.exit(FHIR_NS, name); 1463 } 1464 } 1465 1466 protected void composeTestCasesModeComponentElements(TestCases.TestCasesModeComponent element) throws IOException { 1467 composeBaseElements(element); 1468 if (element.hasCodeElement()) { 1469 composeString("code", element.getCodeElement()); 1470 } 1471 if (element.hasDescriptionElement()) { 1472 composeString("description", element.getDescriptionElement()); 1473 } 1474 } 1475 1476 protected void composeTestCasesSuiteComponent(String name, TestCases.TestCasesSuiteComponent element) throws IOException { 1477 if (element != null) { 1478 xml.enter(FHIR_NS, name); 1479 composeTestCasesSuiteComponentElements(element); 1480 composeElementClose(element); 1481 xml.exit(FHIR_NS, name); 1482 } 1483 } 1484 1485 protected void composeTestCasesSuiteComponentElements(TestCases.TestCasesSuiteComponent element) throws IOException { 1486 composeBaseElements(element); 1487 if (element.hasNameElement()) { 1488 composeString("name", element.getNameElement()); 1489 } 1490 if (element.hasDescriptionElement()) { 1491 composeString("description", element.getDescriptionElement()); 1492 } 1493 if (element.hasModeElement()) { 1494 composeCode("mode", element.getModeElement()); 1495 } 1496 if (element.hasResource()) { 1497 for (TestCases.TestCasesSuiteResourceComponent e : element.getResourceList()) 1498 composeTestCasesSuiteResourceComponent("resource", e); // a 1499 } 1500 if (element.hasParameter()) { 1501 for (TestCases.TestCasesSuiteParameterComponent e : element.getParameterList()) 1502 composeTestCasesSuiteParameterComponent("parameter", e); // a 1503 } 1504 if (element.hasTest()) { 1505 for (TestCases.TestCasesSuiteTestComponent e : element.getTestList()) 1506 composeTestCasesSuiteTestComponent("test", e); // a 1507 } 1508 } 1509 1510 protected void composeTestCasesSuiteResourceComponent(String name, TestCases.TestCasesSuiteResourceComponent element) throws IOException { 1511 if (element != null) { 1512 xml.enter(FHIR_NS, name); 1513 composeTestCasesSuiteResourceComponentElements(element); 1514 composeElementClose(element); 1515 xml.exit(FHIR_NS, name); 1516 } 1517 } 1518 1519 protected void composeTestCasesSuiteResourceComponentElements(TestCases.TestCasesSuiteResourceComponent element) throws IOException { 1520 composeBaseElements(element); 1521 if (element.hasNameElement()) { 1522 composeString("name", element.getNameElement()); 1523 } 1524 if (element.hasFileElement()) { 1525 composeString("file", element.getFileElement()); 1526 } 1527 if (element.hasResource()) { 1528 xml.enter(FHIR_NS, "resource"); 1529 composeResource(element.getResource()); 1530 xml.exit(FHIR_NS, "resource"); 1531 } 1532 if (element.hasModeElement()) { 1533 composeCode("mode", element.getModeElement()); 1534 } 1535 } 1536 1537 protected void composeTestCasesSuiteParameterComponent(String name, TestCases.TestCasesSuiteParameterComponent element) throws IOException { 1538 if (element != null) { 1539 xml.enter(FHIR_NS, name); 1540 composeTestCasesSuiteParameterComponentElements(element); 1541 composeElementClose(element); 1542 xml.exit(FHIR_NS, name); 1543 } 1544 } 1545 1546 protected void composeTestCasesSuiteParameterComponentElements(TestCases.TestCasesSuiteParameterComponent element) throws IOException { 1547 composeBaseElements(element); 1548 if (element.hasNameElement()) { 1549 composeString("name", element.getNameElement()); 1550 } 1551 if (element.hasValue()) { 1552 composeType("value", element.getValue()); 1553 } if (element.hasModeElement()) { 1554 composeCode("mode", element.getModeElement()); 1555 } 1556 } 1557 1558 protected void composeTestCasesSuiteTestComponent(String name, TestCases.TestCasesSuiteTestComponent element) throws IOException { 1559 if (element != null) { 1560 xml.enter(FHIR_NS, name); 1561 composeTestCasesSuiteTestComponentElements(element); 1562 composeElementClose(element); 1563 xml.exit(FHIR_NS, name); 1564 } 1565 } 1566 1567 protected void composeTestCasesSuiteTestComponentElements(TestCases.TestCasesSuiteTestComponent element) throws IOException { 1568 composeBaseElements(element); 1569 if (element.hasNameElement()) { 1570 composeString("name", element.getNameElement()); 1571 } 1572 if (element.hasDescriptionElement()) { 1573 composeString("description", element.getDescriptionElement()); 1574 } 1575 if (element.hasOperationElement()) { 1576 composeCode("operation", element.getOperationElement()); 1577 } 1578 if (element.hasModeElement()) { 1579 composeString("mode", element.getModeElement()); 1580 } 1581 if (element.hasParameter()) { 1582 for (TestCases.TestCasesSuiteParameterComponent e : element.getParameterList()) 1583 composeTestCasesSuiteParameterComponent("parameter", e); // a 1584 } 1585 if (element.hasInput()) { 1586 for (TestCases.TestCasesSuiteResourceComponent e : element.getInputList()) 1587 composeTestCasesSuiteResourceComponent("input", e); // a 1588 } 1589 if (element.hasOutput()) { 1590 for (TestCases.TestCasesSuiteResourceComponent e : element.getOutputList()) 1591 composeTestCasesSuiteResourceComponent("output", e); // a 1592 } 1593 } 1594 1595 1596 1597 @Override 1598 protected void composeResource(Resource resource) throws IOException { 1599 if (resource == null) { 1600 throw new IOException("resource == null"); 1601 } else if (resource instanceof TestCases) { 1602 composeTestCases("TestCases", (TestCases)resource); 1603 1604 } else { 1605 throw new Error("Unhandled resource type "+resource.getClass().getName()); 1606 } 1607 } 1608 1609 protected void composeResource(String name, Resource resource) throws IOException { 1610 if (name == null) { 1611 throw new IOException("name == null"); 1612 } else if (resource == null) { 1613 throw new IOException("resource == null"); 1614 } else if (resource instanceof TestCases) { 1615 composeTestCases(name, (TestCases)resource); 1616 1617 } else { 1618 throw new Error("Unhandled resource type "+resource.getClass().getName()); 1619 } 1620 } 1621 1622 protected void composeType(String prefix, DataType type) throws IOException { 1623 if (prefix == null) { 1624 throw new IOException("prefix == null"); 1625 } else if (type == null) { 1626 throw new IOException("type == null"); 1627 1628 } else if (type instanceof CodeType) { 1629 composeCode(prefix+"Code", (CodeType) type); 1630 } else if (type instanceof OidType) { 1631 composeOid(prefix+"Oid", (OidType) type); 1632 } else if (type instanceof CanonicalType) { 1633 composeCanonical(prefix+"Canonical", (CanonicalType) type); 1634 } else if (type instanceof UuidType) { 1635 composeUuid(prefix+"Uuid", (UuidType) type); 1636 } else if (type instanceof UrlType) { 1637 composeUrl(prefix+"Url", (UrlType) type); 1638 } else if (type instanceof UnsignedIntType) { 1639 composeUnsignedInt(prefix+"UnsignedInt", (UnsignedIntType) type); 1640 } else if (type instanceof MarkdownType) { 1641 composeMarkdown(prefix+"Markdown", (MarkdownType) type); 1642 } else if (type instanceof IdType) { 1643 composeId(prefix+"Id", (IdType) type); 1644 } else if (type instanceof PositiveIntType) { 1645 composePositiveInt(prefix+"PositiveInt", (PositiveIntType) type); 1646 } else if (type instanceof DateType) { 1647 composeDate(prefix+"Date", (DateType) type); 1648 } else if (type instanceof DateTimeType) { 1649 composeDateTime(prefix+"DateTime", (DateTimeType) type); 1650 } else if (type instanceof StringType) { 1651 composeString(prefix+"String", (StringType) type); 1652 } else if (type instanceof IntegerType) { 1653 composeInteger(prefix+"Integer", (IntegerType) type); 1654 } else if (type instanceof Integer64Type) { 1655 composeInteger64(prefix+"Integer64", (Integer64Type) type); 1656 } else if (type instanceof UriType) { 1657 composeUri(prefix+"Uri", (UriType) type); 1658 } else if (type instanceof InstantType) { 1659 composeInstant(prefix+"Instant", (InstantType) type); 1660 } else if (type instanceof BooleanType) { 1661 composeBoolean(prefix+"Boolean", (BooleanType) type); 1662 } else if (type instanceof Base64BinaryType) { 1663 composeBase64Binary(prefix+"Base64Binary", (Base64BinaryType) type); 1664 } else if (type instanceof TimeType) { 1665 composeTime(prefix+"Time", (TimeType) type); 1666 } else if (type instanceof DecimalType) { 1667 composeDecimal(prefix+"Decimal", (DecimalType) type); 1668 } else { 1669 throw new Error("Unhandled type "+type.fhirType()); 1670 } 1671 } 1672 1673}