001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050import org.hl7.fhir.r5.utils.structuremap.StructureMapUtilities;
051/**
052 * A Map of relationships between 2 structures that can be used to transform data.
053 */
054@ResourceDef(name="StructureMap", profile="http://hl7.org/fhir/StructureDefinition/StructureMap")
055public class StructureMap extends CanonicalResource {
056
057    public enum StructureMapGroupTypeMode {
058        /**
059         * This group is a default mapping group for the specified types and for the primary source type.
060         */
061        TYPES, 
062        /**
063         * This group is a default mapping group for the specified types.
064         */
065        TYPEANDTYPES, 
066        /**
067         * added to help the parsers with the generic types
068         */
069        NULL;
070        public static StructureMapGroupTypeMode fromCode(String codeString) throws FHIRException {
071            if (codeString == null || "".equals(codeString))
072                return null;
073        if ("types".equals(codeString))
074          return TYPES;
075        if ("type-and-types".equals(codeString))
076          return TYPEANDTYPES;
077        if (Configuration.isAcceptInvalidEnums())
078          return null;
079        else
080          throw new FHIRException("Unknown StructureMapGroupTypeMode code '"+codeString+"'");
081        }
082        public String toCode() {
083          switch (this) {
084            case TYPES: return "types";
085            case TYPEANDTYPES: return "type-and-types";
086            case NULL: return null;
087            default: return "?";
088          }
089        }
090        public String getSystem() {
091          switch (this) {
092            case TYPES: return "http://hl7.org/fhir/map-group-type-mode";
093            case TYPEANDTYPES: return "http://hl7.org/fhir/map-group-type-mode";
094            case NULL: return null;
095            default: return "?";
096          }
097        }
098        public String getDefinition() {
099          switch (this) {
100            case TYPES: return "This group is a default mapping group for the specified types and for the primary source type.";
101            case TYPEANDTYPES: return "This group is a default mapping group for the specified types.";
102            case NULL: return null;
103            default: return "?";
104          }
105        }
106        public String getDisplay() {
107          switch (this) {
108            case TYPES: return "Default for Type Combination";
109            case TYPEANDTYPES: return "Default for type + combination";
110            case NULL: return null;
111            default: return "?";
112          }
113        }
114    }
115
116  public static class StructureMapGroupTypeModeEnumFactory implements EnumFactory<StructureMapGroupTypeMode> {
117    public StructureMapGroupTypeMode fromCode(String codeString) throws IllegalArgumentException {
118      if (codeString == null || "".equals(codeString))
119            if (codeString == null || "".equals(codeString))
120                return null;
121        if ("types".equals(codeString))
122          return StructureMapGroupTypeMode.TYPES;
123        if ("type-and-types".equals(codeString))
124          return StructureMapGroupTypeMode.TYPEANDTYPES;
125        throw new IllegalArgumentException("Unknown StructureMapGroupTypeMode code '"+codeString+"'");
126        }
127        public Enumeration<StructureMapGroupTypeMode> fromType(PrimitiveType<?> code) throws FHIRException {
128          if (code == null)
129            return null;
130          if (code.isEmpty())
131            return new Enumeration<StructureMapGroupTypeMode>(this, StructureMapGroupTypeMode.NULL, code);
132          String codeString = ((PrimitiveType) code).asStringValue();
133          if (codeString == null || "".equals(codeString))
134            return new Enumeration<StructureMapGroupTypeMode>(this, StructureMapGroupTypeMode.NULL, code);
135        if ("types".equals(codeString))
136          return new Enumeration<StructureMapGroupTypeMode>(this, StructureMapGroupTypeMode.TYPES, code);
137        if ("type-and-types".equals(codeString))
138          return new Enumeration<StructureMapGroupTypeMode>(this, StructureMapGroupTypeMode.TYPEANDTYPES, code);
139        throw new FHIRException("Unknown StructureMapGroupTypeMode code '"+codeString+"'");
140        }
141    public String toCode(StructureMapGroupTypeMode code) {
142      if (code == StructureMapGroupTypeMode.TYPES)
143        return "types";
144      if (code == StructureMapGroupTypeMode.TYPEANDTYPES)
145        return "type-and-types";
146      return "?";
147      }
148    public String toSystem(StructureMapGroupTypeMode code) {
149      return code.getSystem();
150      }
151    }
152
153    public enum StructureMapInputMode {
154        /**
155         * Names an input instance used a source for mapping.
156         */
157        SOURCE, 
158        /**
159         * Names an instance that is being populated.
160         */
161        TARGET, 
162        /**
163         * added to help the parsers with the generic types
164         */
165        NULL;
166        public static StructureMapInputMode fromCode(String codeString) throws FHIRException {
167            if (codeString == null || "".equals(codeString))
168                return null;
169        if ("source".equals(codeString))
170          return SOURCE;
171        if ("target".equals(codeString))
172          return TARGET;
173        if (Configuration.isAcceptInvalidEnums())
174          return null;
175        else
176          throw new FHIRException("Unknown StructureMapInputMode code '"+codeString+"'");
177        }
178        public String toCode() {
179          switch (this) {
180            case SOURCE: return "source";
181            case TARGET: return "target";
182            case NULL: return null;
183            default: return "?";
184          }
185        }
186        public String getSystem() {
187          switch (this) {
188            case SOURCE: return "http://hl7.org/fhir/map-input-mode";
189            case TARGET: return "http://hl7.org/fhir/map-input-mode";
190            case NULL: return null;
191            default: return "?";
192          }
193        }
194        public String getDefinition() {
195          switch (this) {
196            case SOURCE: return "Names an input instance used a source for mapping.";
197            case TARGET: return "Names an instance that is being populated.";
198            case NULL: return null;
199            default: return "?";
200          }
201        }
202        public String getDisplay() {
203          switch (this) {
204            case SOURCE: return "Source Instance";
205            case TARGET: return "Target Instance";
206            case NULL: return null;
207            default: return "?";
208          }
209        }
210    }
211
212  public static class StructureMapInputModeEnumFactory implements EnumFactory<StructureMapInputMode> {
213    public StructureMapInputMode fromCode(String codeString) throws IllegalArgumentException {
214      if (codeString == null || "".equals(codeString))
215            if (codeString == null || "".equals(codeString))
216                return null;
217        if ("source".equals(codeString))
218          return StructureMapInputMode.SOURCE;
219        if ("target".equals(codeString))
220          return StructureMapInputMode.TARGET;
221        throw new IllegalArgumentException("Unknown StructureMapInputMode code '"+codeString+"'");
222        }
223        public Enumeration<StructureMapInputMode> fromType(PrimitiveType<?> code) throws FHIRException {
224          if (code == null)
225            return null;
226          if (code.isEmpty())
227            return new Enumeration<StructureMapInputMode>(this, StructureMapInputMode.NULL, code);
228          String codeString = ((PrimitiveType) code).asStringValue();
229          if (codeString == null || "".equals(codeString))
230            return new Enumeration<StructureMapInputMode>(this, StructureMapInputMode.NULL, code);
231        if ("source".equals(codeString))
232          return new Enumeration<StructureMapInputMode>(this, StructureMapInputMode.SOURCE, code);
233        if ("target".equals(codeString))
234          return new Enumeration<StructureMapInputMode>(this, StructureMapInputMode.TARGET, code);
235        throw new FHIRException("Unknown StructureMapInputMode code '"+codeString+"'");
236        }
237    public String toCode(StructureMapInputMode code) {
238      if (code == StructureMapInputMode.SOURCE)
239        return "source";
240      if (code == StructureMapInputMode.TARGET)
241        return "target";
242      return "?";
243      }
244    public String toSystem(StructureMapInputMode code) {
245      return code.getSystem();
246      }
247    }
248
249    public enum StructureMapModelMode {
250        /**
251         * This structure describes an instance passed to the mapping engine that is used a source of data.
252         */
253        SOURCE, 
254        /**
255         * This structure describes an instance that the mapping engine may ask for that is used a source of data.
256         */
257        QUERIED, 
258        /**
259         * This structure describes an instance passed to the mapping engine that is used a target of data.
260         */
261        TARGET, 
262        /**
263         * This structure describes an instance that the mapping engine may ask to create that is used a target of data.
264         */
265        PRODUCED, 
266        /**
267         * added to help the parsers with the generic types
268         */
269        NULL;
270        public static StructureMapModelMode fromCode(String codeString) throws FHIRException {
271            if (codeString == null || "".equals(codeString))
272                return null;
273        if ("source".equals(codeString))
274          return SOURCE;
275        if ("queried".equals(codeString))
276          return QUERIED;
277        if ("target".equals(codeString))
278          return TARGET;
279        if ("produced".equals(codeString))
280          return PRODUCED;
281        if (Configuration.isAcceptInvalidEnums())
282          return null;
283        else
284          throw new FHIRException("Unknown StructureMapModelMode code '"+codeString+"'");
285        }
286        public String toCode() {
287          switch (this) {
288            case SOURCE: return "source";
289            case QUERIED: return "queried";
290            case TARGET: return "target";
291            case PRODUCED: return "produced";
292            case NULL: return null;
293            default: return "?";
294          }
295        }
296        public String getSystem() {
297          switch (this) {
298            case SOURCE: return "http://hl7.org/fhir/map-model-mode";
299            case QUERIED: return "http://hl7.org/fhir/map-model-mode";
300            case TARGET: return "http://hl7.org/fhir/map-model-mode";
301            case PRODUCED: return "http://hl7.org/fhir/map-model-mode";
302            case NULL: return null;
303            default: return "?";
304          }
305        }
306        public String getDefinition() {
307          switch (this) {
308            case SOURCE: return "This structure describes an instance passed to the mapping engine that is used a source of data.";
309            case QUERIED: return "This structure describes an instance that the mapping engine may ask for that is used a source of data.";
310            case TARGET: return "This structure describes an instance passed to the mapping engine that is used a target of data.";
311            case PRODUCED: return "This structure describes an instance that the mapping engine may ask to create that is used a target of data.";
312            case NULL: return null;
313            default: return "?";
314          }
315        }
316        public String getDisplay() {
317          switch (this) {
318            case SOURCE: return "Source Structure Definition";
319            case QUERIED: return "Queried Structure Definition";
320            case TARGET: return "Target Structure Definition";
321            case PRODUCED: return "Produced Structure Definition";
322            case NULL: return null;
323            default: return "?";
324          }
325        }
326    }
327
328  public static class StructureMapModelModeEnumFactory implements EnumFactory<StructureMapModelMode> {
329    public StructureMapModelMode fromCode(String codeString) throws IllegalArgumentException {
330      if (codeString == null || "".equals(codeString))
331            if (codeString == null || "".equals(codeString))
332                return null;
333        if ("source".equals(codeString))
334          return StructureMapModelMode.SOURCE;
335        if ("queried".equals(codeString))
336          return StructureMapModelMode.QUERIED;
337        if ("target".equals(codeString))
338          return StructureMapModelMode.TARGET;
339        if ("produced".equals(codeString))
340          return StructureMapModelMode.PRODUCED;
341        throw new IllegalArgumentException("Unknown StructureMapModelMode code '"+codeString+"'");
342        }
343        public Enumeration<StructureMapModelMode> fromType(PrimitiveType<?> code) throws FHIRException {
344          if (code == null)
345            return null;
346          if (code.isEmpty())
347            return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.NULL, code);
348          String codeString = ((PrimitiveType) code).asStringValue();
349          if (codeString == null || "".equals(codeString))
350            return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.NULL, code);
351        if ("source".equals(codeString))
352          return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.SOURCE, code);
353        if ("queried".equals(codeString))
354          return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.QUERIED, code);
355        if ("target".equals(codeString))
356          return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.TARGET, code);
357        if ("produced".equals(codeString))
358          return new Enumeration<StructureMapModelMode>(this, StructureMapModelMode.PRODUCED, code);
359        throw new FHIRException("Unknown StructureMapModelMode code '"+codeString+"'");
360        }
361    public String toCode(StructureMapModelMode code) {
362      if (code == StructureMapModelMode.SOURCE)
363        return "source";
364      if (code == StructureMapModelMode.QUERIED)
365        return "queried";
366      if (code == StructureMapModelMode.TARGET)
367        return "target";
368      if (code == StructureMapModelMode.PRODUCED)
369        return "produced";
370      return "?";
371      }
372    public String toSystem(StructureMapModelMode code) {
373      return code.getSystem();
374      }
375    }
376
377    public enum StructureMapSourceListMode {
378        /**
379         * Only process this rule for the first in the list.
380         */
381        FIRST, 
382        /**
383         * Process this rule for all but the first.
384         */
385        NOTFIRST, 
386        /**
387         * Only process this rule for the last in the list.
388         */
389        LAST, 
390        /**
391         * Process this rule for all but the last.
392         */
393        NOTLAST, 
394        /**
395         * Only process this rule is there is only item.
396         */
397        ONLYONE, 
398        /**
399         * added to help the parsers with the generic types
400         */
401        NULL;
402        public static StructureMapSourceListMode fromCode(String codeString) throws FHIRException {
403            if (codeString == null || "".equals(codeString))
404                return null;
405        if ("first".equals(codeString))
406          return FIRST;
407        if ("not_first".equals(codeString))
408          return NOTFIRST;
409        if ("last".equals(codeString))
410          return LAST;
411        if ("not_last".equals(codeString))
412          return NOTLAST;
413        if ("only_one".equals(codeString))
414          return ONLYONE;
415        if (Configuration.isAcceptInvalidEnums())
416          return null;
417        else
418          throw new FHIRException("Unknown StructureMapSourceListMode code '"+codeString+"'");
419        }
420        public String toCode() {
421          switch (this) {
422            case FIRST: return "first";
423            case NOTFIRST: return "not_first";
424            case LAST: return "last";
425            case NOTLAST: return "not_last";
426            case ONLYONE: return "only_one";
427            case NULL: return null;
428            default: return "?";
429          }
430        }
431        public String getSystem() {
432          switch (this) {
433            case FIRST: return "http://hl7.org/fhir/map-source-list-mode";
434            case NOTFIRST: return "http://hl7.org/fhir/map-source-list-mode";
435            case LAST: return "http://hl7.org/fhir/map-source-list-mode";
436            case NOTLAST: return "http://hl7.org/fhir/map-source-list-mode";
437            case ONLYONE: return "http://hl7.org/fhir/map-source-list-mode";
438            case NULL: return null;
439            default: return "?";
440          }
441        }
442        public String getDefinition() {
443          switch (this) {
444            case FIRST: return "Only process this rule for the first in the list.";
445            case NOTFIRST: return "Process this rule for all but the first.";
446            case LAST: return "Only process this rule for the last in the list.";
447            case NOTLAST: return "Process this rule for all but the last.";
448            case ONLYONE: return "Only process this rule is there is only item.";
449            case NULL: return null;
450            default: return "?";
451          }
452        }
453        public String getDisplay() {
454          switch (this) {
455            case FIRST: return "First";
456            case NOTFIRST: return "All but the first";
457            case LAST: return "Last";
458            case NOTLAST: return "All but the last";
459            case ONLYONE: return "Enforce only one";
460            case NULL: return null;
461            default: return "?";
462          }
463        }
464    }
465
466  public static class StructureMapSourceListModeEnumFactory implements EnumFactory<StructureMapSourceListMode> {
467    public StructureMapSourceListMode fromCode(String codeString) throws IllegalArgumentException {
468      if (codeString == null || "".equals(codeString))
469            if (codeString == null || "".equals(codeString))
470                return null;
471        if ("first".equals(codeString))
472          return StructureMapSourceListMode.FIRST;
473        if ("not_first".equals(codeString))
474          return StructureMapSourceListMode.NOTFIRST;
475        if ("last".equals(codeString))
476          return StructureMapSourceListMode.LAST;
477        if ("not_last".equals(codeString))
478          return StructureMapSourceListMode.NOTLAST;
479        if ("only_one".equals(codeString))
480          return StructureMapSourceListMode.ONLYONE;
481        throw new IllegalArgumentException("Unknown StructureMapSourceListMode code '"+codeString+"'");
482        }
483        public Enumeration<StructureMapSourceListMode> fromType(PrimitiveType<?> code) throws FHIRException {
484          if (code == null)
485            return null;
486          if (code.isEmpty())
487            return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.NULL, code);
488          String codeString = ((PrimitiveType) code).asStringValue();
489          if (codeString == null || "".equals(codeString))
490            return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.NULL, code);
491        if ("first".equals(codeString))
492          return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.FIRST, code);
493        if ("not_first".equals(codeString))
494          return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.NOTFIRST, code);
495        if ("last".equals(codeString))
496          return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.LAST, code);
497        if ("not_last".equals(codeString))
498          return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.NOTLAST, code);
499        if ("only_one".equals(codeString))
500          return new Enumeration<StructureMapSourceListMode>(this, StructureMapSourceListMode.ONLYONE, code);
501        throw new FHIRException("Unknown StructureMapSourceListMode code '"+codeString+"'");
502        }
503    public String toCode(StructureMapSourceListMode code) {
504      if (code == StructureMapSourceListMode.FIRST)
505        return "first";
506      if (code == StructureMapSourceListMode.NOTFIRST)
507        return "not_first";
508      if (code == StructureMapSourceListMode.LAST)
509        return "last";
510      if (code == StructureMapSourceListMode.NOTLAST)
511        return "not_last";
512      if (code == StructureMapSourceListMode.ONLYONE)
513        return "only_one";
514      return "?";
515      }
516    public String toSystem(StructureMapSourceListMode code) {
517      return code.getSystem();
518      }
519    }
520
521    public enum StructureMapTargetListMode {
522        /**
523         * when the target list is being assembled, the items for this rule go first. If more than one rule defines a first item (for a given instance of mapping) then this is an error.
524         */
525        FIRST, 
526        /**
527         * the target instance is shared with the target instances generated by another rule (up to the first common n items, then create new ones).
528         */
529        SHARE, 
530        /**
531         * when the target list is being assembled, the items for this rule go last. If more than one rule defines a last item (for a given instance of mapping) then this is an error.
532         */
533        LAST, 
534        /**
535         * the target instance is shared with a number of target instances generated by another rule (up to the first common n items, then create new ones).
536         */
537        SINGLE, 
538        /**
539         * added to help the parsers with the generic types
540         */
541        NULL;
542        public static StructureMapTargetListMode fromCode(String codeString) throws FHIRException {
543            if (codeString == null || "".equals(codeString))
544                return null;
545        if ("first".equals(codeString))
546          return FIRST;
547        if ("share".equals(codeString))
548          return SHARE;
549        if ("last".equals(codeString))
550          return LAST;
551        if ("single".equals(codeString))
552          return SINGLE;
553        if (Configuration.isAcceptInvalidEnums())
554          return null;
555        else
556          throw new FHIRException("Unknown StructureMapTargetListMode code '"+codeString+"'");
557        }
558        public String toCode() {
559          switch (this) {
560            case FIRST: return "first";
561            case SHARE: return "share";
562            case LAST: return "last";
563            case SINGLE: return "single";
564            case NULL: return null;
565            default: return "?";
566          }
567        }
568        public String getSystem() {
569          switch (this) {
570            case FIRST: return "http://hl7.org/fhir/map-target-list-mode";
571            case SHARE: return "http://hl7.org/fhir/map-target-list-mode";
572            case LAST: return "http://hl7.org/fhir/map-target-list-mode";
573            case SINGLE: return "http://hl7.org/fhir/map-target-list-mode";
574            case NULL: return null;
575            default: return "?";
576          }
577        }
578        public String getDefinition() {
579          switch (this) {
580            case FIRST: return "when the target list is being assembled, the items for this rule go first. If more than one rule defines a first item (for a given instance of mapping) then this is an error.";
581            case SHARE: return "the target instance is shared with the target instances generated by another rule (up to the first common n items, then create new ones).";
582            case LAST: return "when the target list is being assembled, the items for this rule go last. If more than one rule defines a last item (for a given instance of mapping) then this is an error.";
583            case SINGLE: return "the target instance is shared with a number of target instances generated by another rule (up to the first common n items, then create new ones).";
584            case NULL: return null;
585            default: return "?";
586          }
587        }
588        public String getDisplay() {
589          switch (this) {
590            case FIRST: return "First";
591            case SHARE: return "Share";
592            case LAST: return "Last";
593            case SINGLE: return "single";
594            case NULL: return null;
595            default: return "?";
596          }
597        }
598    }
599
600  public static class StructureMapTargetListModeEnumFactory implements EnumFactory<StructureMapTargetListMode> {
601    public StructureMapTargetListMode fromCode(String codeString) throws IllegalArgumentException {
602      if (codeString == null || "".equals(codeString))
603            if (codeString == null || "".equals(codeString))
604                return null;
605        if ("first".equals(codeString))
606          return StructureMapTargetListMode.FIRST;
607        if ("share".equals(codeString))
608          return StructureMapTargetListMode.SHARE;
609        if ("last".equals(codeString))
610          return StructureMapTargetListMode.LAST;
611        if ("single".equals(codeString))
612          return StructureMapTargetListMode.SINGLE;
613        throw new IllegalArgumentException("Unknown StructureMapTargetListMode code '"+codeString+"'");
614        }
615        public Enumeration<StructureMapTargetListMode> fromType(PrimitiveType<?> code) throws FHIRException {
616          if (code == null)
617            return null;
618          if (code.isEmpty())
619            return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.NULL, code);
620          String codeString = ((PrimitiveType) code).asStringValue();
621          if (codeString == null || "".equals(codeString))
622            return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.NULL, code);
623        if ("first".equals(codeString))
624          return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.FIRST, code);
625        if ("share".equals(codeString))
626          return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.SHARE, code);
627        if ("last".equals(codeString))
628          return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.LAST, code);
629        if ("single".equals(codeString))
630          return new Enumeration<StructureMapTargetListMode>(this, StructureMapTargetListMode.SINGLE, code);
631        throw new FHIRException("Unknown StructureMapTargetListMode code '"+codeString+"'");
632        }
633    public String toCode(StructureMapTargetListMode code) {
634      if (code == StructureMapTargetListMode.FIRST)
635        return "first";
636      if (code == StructureMapTargetListMode.SHARE)
637        return "share";
638      if (code == StructureMapTargetListMode.LAST)
639        return "last";
640      if (code == StructureMapTargetListMode.SINGLE)
641        return "single";
642      return "?";
643      }
644    public String toSystem(StructureMapTargetListMode code) {
645      return code.getSystem();
646      }
647    }
648
649    public enum StructureMapTransform {
650        /**
651         * create(type : string) - type is passed through to the application on the standard API, and must be known by it.
652         */
653        CREATE, 
654        /**
655         * copy(source).
656         */
657        COPY, 
658        /**
659         * truncate(source, length) - source must be stringy type.
660         */
661        TRUNCATE, 
662        /**
663         * escape(source, fmt1, fmt2) - change source from one kind of escaping to another (plain, java, xml, json). note that this is for when the string itself is escaped.
664         */
665        ESCAPE, 
666        /**
667         * cast(source, type?) - cast (convert) source from one type to another. Target type can be left as implicit if there is one and only one target type known. The default namespace for the type is 'FHIR' (see [FHIRPath type specifiers](http://hl7.org/fhirpath/N1/#is-type-specifier))
668         */
669        CAST, 
670        /**
671         * append(source...) - source is element or string.
672         */
673        APPEND, 
674        /**
675         * translate(source, uri_of_map) - use the translate operation.
676         */
677        TRANSLATE, 
678        /**
679         * reference(source : object) - return a string that references the provided tree properly.
680         */
681        REFERENCE, 
682        /**
683         * Perform a date operation. *Parameters to be documented*.
684         */
685        DATEOP, 
686        /**
687         * Generate a random UUID (in lowercase). No Parameters.
688         */
689        UUID, 
690        /**
691         * Return the appropriate string to put in a reference that refers to the resource provided as a parameter.
692         */
693        POINTER, 
694        /**
695         * Execute the supplied FHIRPath expression and use the value returned by that.
696         */
697        EVALUATE, 
698        /**
699         * Create a CodeableConcept. Parameters = (text) or (system. Code[, display]).
700         */
701        CC, 
702        /**
703         * Create a Coding. Parameters = (system. Code[, display]).
704         */
705        C, 
706        /**
707         * Create a quantity. Parameters = (text) or (value, unit, [system, code]) where text is the natural representation e.g. [comparator]value[space]unit.
708         */
709        QTY, 
710        /**
711         * Create an identifier. Parameters = (system, value[, type]) where type is a code from the identifier type value set.
712         */
713        ID, 
714        /**
715         * Create a contact details. Parameters = (value) or (system, value). If no system is provided, the system should be inferred from the content of the value.
716         */
717        CP, 
718        /**
719         * added to help the parsers with the generic types
720         */
721        NULL;
722        public static StructureMapTransform fromCode(String codeString) throws FHIRException {
723            if (codeString == null || "".equals(codeString))
724                return null;
725        if ("create".equals(codeString))
726          return CREATE;
727        if ("copy".equals(codeString))
728          return COPY;
729        if ("truncate".equals(codeString))
730          return TRUNCATE;
731        if ("escape".equals(codeString))
732          return ESCAPE;
733        if ("cast".equals(codeString))
734          return CAST;
735        if ("append".equals(codeString))
736          return APPEND;
737        if ("translate".equals(codeString))
738          return TRANSLATE;
739        if ("reference".equals(codeString))
740          return REFERENCE;
741        if ("dateOp".equals(codeString))
742          return DATEOP;
743        if ("uuid".equals(codeString))
744          return UUID;
745        if ("pointer".equals(codeString))
746          return POINTER;
747        if ("evaluate".equals(codeString))
748          return EVALUATE;
749        if ("cc".equals(codeString))
750          return CC;
751        if ("c".equals(codeString))
752          return C;
753        if ("qty".equals(codeString))
754          return QTY;
755        if ("id".equals(codeString))
756          return ID;
757        if ("cp".equals(codeString))
758          return CP;
759        if (Configuration.isAcceptInvalidEnums())
760          return null;
761        else
762          throw new FHIRException("Unknown StructureMapTransform code '"+codeString+"'");
763        }
764        public String toCode() {
765          switch (this) {
766            case CREATE: return "create";
767            case COPY: return "copy";
768            case TRUNCATE: return "truncate";
769            case ESCAPE: return "escape";
770            case CAST: return "cast";
771            case APPEND: return "append";
772            case TRANSLATE: return "translate";
773            case REFERENCE: return "reference";
774            case DATEOP: return "dateOp";
775            case UUID: return "uuid";
776            case POINTER: return "pointer";
777            case EVALUATE: return "evaluate";
778            case CC: return "cc";
779            case C: return "c";
780            case QTY: return "qty";
781            case ID: return "id";
782            case CP: return "cp";
783            case NULL: return null;
784            default: return "?";
785          }
786        }
787        public String getSystem() {
788          switch (this) {
789            case CREATE: return "http://hl7.org/fhir/map-transform";
790            case COPY: return "http://hl7.org/fhir/map-transform";
791            case TRUNCATE: return "http://hl7.org/fhir/map-transform";
792            case ESCAPE: return "http://hl7.org/fhir/map-transform";
793            case CAST: return "http://hl7.org/fhir/map-transform";
794            case APPEND: return "http://hl7.org/fhir/map-transform";
795            case TRANSLATE: return "http://hl7.org/fhir/map-transform";
796            case REFERENCE: return "http://hl7.org/fhir/map-transform";
797            case DATEOP: return "http://hl7.org/fhir/map-transform";
798            case UUID: return "http://hl7.org/fhir/map-transform";
799            case POINTER: return "http://hl7.org/fhir/map-transform";
800            case EVALUATE: return "http://hl7.org/fhir/map-transform";
801            case CC: return "http://hl7.org/fhir/map-transform";
802            case C: return "http://hl7.org/fhir/map-transform";
803            case QTY: return "http://hl7.org/fhir/map-transform";
804            case ID: return "http://hl7.org/fhir/map-transform";
805            case CP: return "http://hl7.org/fhir/map-transform";
806            case NULL: return null;
807            default: return "?";
808          }
809        }
810        public String getDefinition() {
811          switch (this) {
812            case CREATE: return "create(type : string) - type is passed through to the application on the standard API, and must be known by it.";
813            case COPY: return "copy(source).";
814            case TRUNCATE: return "truncate(source, length) - source must be stringy type.";
815            case ESCAPE: return "escape(source, fmt1, fmt2) - change source from one kind of escaping to another (plain, java, xml, json). note that this is for when the string itself is escaped.";
816            case CAST: return "cast(source, type?) - cast (convert) source from one type to another. Target type can be left as implicit if there is one and only one target type known. The default namespace for the type is 'FHIR' (see [FHIRPath type specifiers](http://hl7.org/fhirpath/N1/#is-type-specifier))";
817            case APPEND: return "append(source...) - source is element or string.";
818            case TRANSLATE: return "translate(source, uri_of_map) - use the translate operation.";
819            case REFERENCE: return "reference(source : object) - return a string that references the provided tree properly.";
820            case DATEOP: return "Perform a date operation. *Parameters to be documented*.";
821            case UUID: return "Generate a random UUID (in lowercase). No Parameters.";
822            case POINTER: return "Return the appropriate string to put in a reference that refers to the resource provided as a parameter.";
823            case EVALUATE: return "Execute the supplied FHIRPath expression and use the value returned by that.";
824            case CC: return "Create a CodeableConcept. Parameters = (text) or (system. Code[, display]).";
825            case C: return "Create a Coding. Parameters = (system. Code[, display]).";
826            case QTY: return "Create a quantity. Parameters = (text) or (value, unit, [system, code]) where text is the natural representation e.g. [comparator]value[space]unit.";
827            case ID: return "Create an identifier. Parameters = (system, value[, type]) where type is a code from the identifier type value set.";
828            case CP: return "Create a contact details. Parameters = (value) or (system, value). If no system is provided, the system should be inferred from the content of the value.";
829            case NULL: return null;
830            default: return "?";
831          }
832        }
833        public String getDisplay() {
834          switch (this) {
835            case CREATE: return "create";
836            case COPY: return "copy";
837            case TRUNCATE: return "truncate";
838            case ESCAPE: return "escape";
839            case CAST: return "cast";
840            case APPEND: return "append";
841            case TRANSLATE: return "translate";
842            case REFERENCE: return "reference";
843            case DATEOP: return "dateOp";
844            case UUID: return "uuid";
845            case POINTER: return "pointer";
846            case EVALUATE: return "evaluate";
847            case CC: return "cc";
848            case C: return "c";
849            case QTY: return "qty";
850            case ID: return "id";
851            case CP: return "cp";
852            case NULL: return null;
853            default: return "?";
854          }
855        }
856    }
857
858  public static class StructureMapTransformEnumFactory implements EnumFactory<StructureMapTransform> {
859    public StructureMapTransform fromCode(String codeString) throws IllegalArgumentException {
860      if (codeString == null || "".equals(codeString))
861            if (codeString == null || "".equals(codeString))
862                return null;
863        if ("create".equals(codeString))
864          return StructureMapTransform.CREATE;
865        if ("copy".equals(codeString))
866          return StructureMapTransform.COPY;
867        if ("truncate".equals(codeString))
868          return StructureMapTransform.TRUNCATE;
869        if ("escape".equals(codeString))
870          return StructureMapTransform.ESCAPE;
871        if ("cast".equals(codeString))
872          return StructureMapTransform.CAST;
873        if ("append".equals(codeString))
874          return StructureMapTransform.APPEND;
875        if ("translate".equals(codeString))
876          return StructureMapTransform.TRANSLATE;
877        if ("reference".equals(codeString))
878          return StructureMapTransform.REFERENCE;
879        if ("dateOp".equals(codeString))
880          return StructureMapTransform.DATEOP;
881        if ("uuid".equals(codeString))
882          return StructureMapTransform.UUID;
883        if ("pointer".equals(codeString))
884          return StructureMapTransform.POINTER;
885        if ("evaluate".equals(codeString))
886          return StructureMapTransform.EVALUATE;
887        if ("cc".equals(codeString))
888          return StructureMapTransform.CC;
889        if ("c".equals(codeString))
890          return StructureMapTransform.C;
891        if ("qty".equals(codeString))
892          return StructureMapTransform.QTY;
893        if ("id".equals(codeString))
894          return StructureMapTransform.ID;
895        if ("cp".equals(codeString))
896          return StructureMapTransform.CP;
897        throw new IllegalArgumentException("Unknown StructureMapTransform code '"+codeString+"'");
898        }
899        public Enumeration<StructureMapTransform> fromType(PrimitiveType<?> code) throws FHIRException {
900          if (code == null)
901            return null;
902          if (code.isEmpty())
903            return new Enumeration<StructureMapTransform>(this, StructureMapTransform.NULL, code);
904          String codeString = ((PrimitiveType) code).asStringValue();
905          if (codeString == null || "".equals(codeString))
906            return new Enumeration<StructureMapTransform>(this, StructureMapTransform.NULL, code);
907        if ("create".equals(codeString))
908          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.CREATE, code);
909        if ("copy".equals(codeString))
910          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.COPY, code);
911        if ("truncate".equals(codeString))
912          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.TRUNCATE, code);
913        if ("escape".equals(codeString))
914          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.ESCAPE, code);
915        if ("cast".equals(codeString))
916          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.CAST, code);
917        if ("append".equals(codeString))
918          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.APPEND, code);
919        if ("translate".equals(codeString))
920          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.TRANSLATE, code);
921        if ("reference".equals(codeString))
922          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.REFERENCE, code);
923        if ("dateOp".equals(codeString))
924          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.DATEOP, code);
925        if ("uuid".equals(codeString))
926          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.UUID, code);
927        if ("pointer".equals(codeString))
928          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.POINTER, code);
929        if ("evaluate".equals(codeString))
930          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.EVALUATE, code);
931        if ("cc".equals(codeString))
932          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.CC, code);
933        if ("c".equals(codeString))
934          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.C, code);
935        if ("qty".equals(codeString))
936          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.QTY, code);
937        if ("id".equals(codeString))
938          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.ID, code);
939        if ("cp".equals(codeString))
940          return new Enumeration<StructureMapTransform>(this, StructureMapTransform.CP, code);
941        throw new FHIRException("Unknown StructureMapTransform code '"+codeString+"'");
942        }
943    public String toCode(StructureMapTransform code) {
944      if (code == StructureMapTransform.CREATE)
945        return "create";
946      if (code == StructureMapTransform.COPY)
947        return "copy";
948      if (code == StructureMapTransform.TRUNCATE)
949        return "truncate";
950      if (code == StructureMapTransform.ESCAPE)
951        return "escape";
952      if (code == StructureMapTransform.CAST)
953        return "cast";
954      if (code == StructureMapTransform.APPEND)
955        return "append";
956      if (code == StructureMapTransform.TRANSLATE)
957        return "translate";
958      if (code == StructureMapTransform.REFERENCE)
959        return "reference";
960      if (code == StructureMapTransform.DATEOP)
961        return "dateOp";
962      if (code == StructureMapTransform.UUID)
963        return "uuid";
964      if (code == StructureMapTransform.POINTER)
965        return "pointer";
966      if (code == StructureMapTransform.EVALUATE)
967        return "evaluate";
968      if (code == StructureMapTransform.CC)
969        return "cc";
970      if (code == StructureMapTransform.C)
971        return "c";
972      if (code == StructureMapTransform.QTY)
973        return "qty";
974      if (code == StructureMapTransform.ID)
975        return "id";
976      if (code == StructureMapTransform.CP)
977        return "cp";
978      return "?";
979      }
980    public String toSystem(StructureMapTransform code) {
981      return code.getSystem();
982      }
983    }
984
985    @Block()
986    public static class StructureMapStructureComponent extends BackboneElement implements IBaseBackboneElement {
987        /**
988         * The canonical reference to the structure.
989         */
990        @Child(name = "url", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=true)
991        @Description(shortDefinition="Canonical reference to structure definition", formalDefinition="The canonical reference to the structure." )
992        protected CanonicalType url;
993
994        /**
995         * How the referenced structure is used in this mapping.
996         */
997        @Child(name = "mode", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true)
998        @Description(shortDefinition="source | queried | target | produced", formalDefinition="How the referenced structure is used in this mapping." )
999        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-model-mode")
1000        protected Enumeration<StructureMapModelMode> mode;
1001
1002        /**
1003         * The name used for this type in the map.
1004         */
1005        @Child(name = "alias", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
1006        @Description(shortDefinition="Name for type in this map", formalDefinition="The name used for this type in the map." )
1007        protected StringType alias;
1008
1009        /**
1010         * Documentation that describes how the structure is used in the mapping.
1011         */
1012        @Child(name = "documentation", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
1013        @Description(shortDefinition="Documentation on use of structure", formalDefinition="Documentation that describes how the structure is used in the mapping." )
1014        protected StringType documentation;
1015
1016        private static final long serialVersionUID = 364750586L;
1017
1018    /**
1019     * Constructor
1020     */
1021      public StructureMapStructureComponent() {
1022        super();
1023      }
1024
1025    /**
1026     * Constructor
1027     */
1028      public StructureMapStructureComponent(String url, StructureMapModelMode mode) {
1029        super();
1030        this.setUrl(url);
1031        this.setMode(mode);
1032      }
1033
1034        /**
1035         * @return {@link #url} (The canonical reference to the structure.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1036         */
1037        public CanonicalType getUrlElement() { 
1038          if (this.url == null)
1039            if (Configuration.errorOnAutoCreate())
1040              throw new Error("Attempt to auto-create StructureMapStructureComponent.url");
1041            else if (Configuration.doAutoCreate())
1042              this.url = new CanonicalType(); // bb
1043          return this.url;
1044        }
1045
1046        public boolean hasUrlElement() { 
1047          return this.url != null && !this.url.isEmpty();
1048        }
1049
1050        public boolean hasUrl() { 
1051          return this.url != null && !this.url.isEmpty();
1052        }
1053
1054        /**
1055         * @param value {@link #url} (The canonical reference to the structure.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1056         */
1057        public StructureMapStructureComponent setUrlElement(CanonicalType value) { 
1058          this.url = value;
1059          return this;
1060        }
1061
1062        /**
1063         * @return The canonical reference to the structure.
1064         */
1065        public String getUrl() { 
1066          return this.url == null ? null : this.url.getValue();
1067        }
1068
1069        /**
1070         * @param value The canonical reference to the structure.
1071         */
1072        public StructureMapStructureComponent setUrl(String value) { 
1073            if (this.url == null)
1074              this.url = new CanonicalType();
1075            this.url.setValue(value);
1076          return this;
1077        }
1078
1079        /**
1080         * @return {@link #mode} (How the referenced structure is used in this mapping.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
1081         */
1082        public Enumeration<StructureMapModelMode> getModeElement() { 
1083          if (this.mode == null)
1084            if (Configuration.errorOnAutoCreate())
1085              throw new Error("Attempt to auto-create StructureMapStructureComponent.mode");
1086            else if (Configuration.doAutoCreate())
1087              this.mode = new Enumeration<StructureMapModelMode>(new StructureMapModelModeEnumFactory()); // bb
1088          return this.mode;
1089        }
1090
1091        public boolean hasModeElement() { 
1092          return this.mode != null && !this.mode.isEmpty();
1093        }
1094
1095        public boolean hasMode() { 
1096          return this.mode != null && !this.mode.isEmpty();
1097        }
1098
1099        /**
1100         * @param value {@link #mode} (How the referenced structure is used in this mapping.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
1101         */
1102        public StructureMapStructureComponent setModeElement(Enumeration<StructureMapModelMode> value) { 
1103          this.mode = value;
1104          return this;
1105        }
1106
1107        /**
1108         * @return How the referenced structure is used in this mapping.
1109         */
1110        public StructureMapModelMode getMode() { 
1111          return this.mode == null ? null : this.mode.getValue();
1112        }
1113
1114        /**
1115         * @param value How the referenced structure is used in this mapping.
1116         */
1117        public StructureMapStructureComponent setMode(StructureMapModelMode value) { 
1118            if (this.mode == null)
1119              this.mode = new Enumeration<StructureMapModelMode>(new StructureMapModelModeEnumFactory());
1120            this.mode.setValue(value);
1121          return this;
1122        }
1123
1124        /**
1125         * @return {@link #alias} (The name used for this type in the map.). This is the underlying object with id, value and extensions. The accessor "getAlias" gives direct access to the value
1126         */
1127        public StringType getAliasElement() { 
1128          if (this.alias == null)
1129            if (Configuration.errorOnAutoCreate())
1130              throw new Error("Attempt to auto-create StructureMapStructureComponent.alias");
1131            else if (Configuration.doAutoCreate())
1132              this.alias = new StringType(); // bb
1133          return this.alias;
1134        }
1135
1136        public boolean hasAliasElement() { 
1137          return this.alias != null && !this.alias.isEmpty();
1138        }
1139
1140        public boolean hasAlias() { 
1141          return this.alias != null && !this.alias.isEmpty();
1142        }
1143
1144        /**
1145         * @param value {@link #alias} (The name used for this type in the map.). This is the underlying object with id, value and extensions. The accessor "getAlias" gives direct access to the value
1146         */
1147        public StructureMapStructureComponent setAliasElement(StringType value) { 
1148          this.alias = value;
1149          return this;
1150        }
1151
1152        /**
1153         * @return The name used for this type in the map.
1154         */
1155        public String getAlias() { 
1156          return this.alias == null ? null : this.alias.getValue();
1157        }
1158
1159        /**
1160         * @param value The name used for this type in the map.
1161         */
1162        public StructureMapStructureComponent setAlias(String value) { 
1163          if (Utilities.noString(value))
1164            this.alias = null;
1165          else {
1166            if (this.alias == null)
1167              this.alias = new StringType();
1168            this.alias.setValue(value);
1169          }
1170          return this;
1171        }
1172
1173        /**
1174         * @return {@link #documentation} (Documentation that describes how the structure is used in the mapping.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
1175         */
1176        public StringType getDocumentationElement() { 
1177          if (this.documentation == null)
1178            if (Configuration.errorOnAutoCreate())
1179              throw new Error("Attempt to auto-create StructureMapStructureComponent.documentation");
1180            else if (Configuration.doAutoCreate())
1181              this.documentation = new StringType(); // bb
1182          return this.documentation;
1183        }
1184
1185        public boolean hasDocumentationElement() { 
1186          return this.documentation != null && !this.documentation.isEmpty();
1187        }
1188
1189        public boolean hasDocumentation() { 
1190          return this.documentation != null && !this.documentation.isEmpty();
1191        }
1192
1193        /**
1194         * @param value {@link #documentation} (Documentation that describes how the structure is used in the mapping.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
1195         */
1196        public StructureMapStructureComponent setDocumentationElement(StringType value) { 
1197          this.documentation = value;
1198          return this;
1199        }
1200
1201        /**
1202         * @return Documentation that describes how the structure is used in the mapping.
1203         */
1204        public String getDocumentation() { 
1205          return this.documentation == null ? null : this.documentation.getValue();
1206        }
1207
1208        /**
1209         * @param value Documentation that describes how the structure is used in the mapping.
1210         */
1211        public StructureMapStructureComponent setDocumentation(String value) { 
1212          if (Utilities.noString(value))
1213            this.documentation = null;
1214          else {
1215            if (this.documentation == null)
1216              this.documentation = new StringType();
1217            this.documentation.setValue(value);
1218          }
1219          return this;
1220        }
1221
1222        protected void listChildren(List<Property> children) {
1223          super.listChildren(children);
1224          children.add(new Property("url", "canonical(StructureDefinition)", "The canonical reference to the structure.", 0, 1, url));
1225          children.add(new Property("mode", "code", "How the referenced structure is used in this mapping.", 0, 1, mode));
1226          children.add(new Property("alias", "string", "The name used for this type in the map.", 0, 1, alias));
1227          children.add(new Property("documentation", "string", "Documentation that describes how the structure is used in the mapping.", 0, 1, documentation));
1228        }
1229
1230        @Override
1231        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1232          switch (_hash) {
1233          case 116079: /*url*/  return new Property("url", "canonical(StructureDefinition)", "The canonical reference to the structure.", 0, 1, url);
1234          case 3357091: /*mode*/  return new Property("mode", "code", "How the referenced structure is used in this mapping.", 0, 1, mode);
1235          case 92902992: /*alias*/  return new Property("alias", "string", "The name used for this type in the map.", 0, 1, alias);
1236          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Documentation that describes how the structure is used in the mapping.", 0, 1, documentation);
1237          default: return super.getNamedProperty(_hash, _name, _checkValid);
1238          }
1239
1240        }
1241
1242      @Override
1243      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1244        switch (hash) {
1245        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // CanonicalType
1246        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<StructureMapModelMode>
1247        case 92902992: /*alias*/ return this.alias == null ? new Base[0] : new Base[] {this.alias}; // StringType
1248        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
1249        default: return super.getProperty(hash, name, checkValid);
1250        }
1251
1252      }
1253
1254      @Override
1255      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1256        switch (hash) {
1257        case 116079: // url
1258          this.url = TypeConvertor.castToCanonical(value); // CanonicalType
1259          return value;
1260        case 3357091: // mode
1261          value = new StructureMapModelModeEnumFactory().fromType(TypeConvertor.castToCode(value));
1262          this.mode = (Enumeration) value; // Enumeration<StructureMapModelMode>
1263          return value;
1264        case 92902992: // alias
1265          this.alias = TypeConvertor.castToString(value); // StringType
1266          return value;
1267        case 1587405498: // documentation
1268          this.documentation = TypeConvertor.castToString(value); // StringType
1269          return value;
1270        default: return super.setProperty(hash, name, value);
1271        }
1272
1273      }
1274
1275      @Override
1276      public Base setProperty(String name, Base value) throws FHIRException {
1277        if (name.equals("url")) {
1278          this.url = TypeConvertor.castToCanonical(value); // CanonicalType
1279        } else if (name.equals("mode")) {
1280          value = new StructureMapModelModeEnumFactory().fromType(TypeConvertor.castToCode(value));
1281          this.mode = (Enumeration) value; // Enumeration<StructureMapModelMode>
1282        } else if (name.equals("alias")) {
1283          this.alias = TypeConvertor.castToString(value); // StringType
1284        } else if (name.equals("documentation")) {
1285          this.documentation = TypeConvertor.castToString(value); // StringType
1286        } else
1287          return super.setProperty(name, value);
1288        return value;
1289      }
1290
1291      @Override
1292      public Base makeProperty(int hash, String name) throws FHIRException {
1293        switch (hash) {
1294        case 116079:  return getUrlElement();
1295        case 3357091:  return getModeElement();
1296        case 92902992:  return getAliasElement();
1297        case 1587405498:  return getDocumentationElement();
1298        default: return super.makeProperty(hash, name);
1299        }
1300
1301      }
1302
1303      @Override
1304      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1305        switch (hash) {
1306        case 116079: /*url*/ return new String[] {"canonical"};
1307        case 3357091: /*mode*/ return new String[] {"code"};
1308        case 92902992: /*alias*/ return new String[] {"string"};
1309        case 1587405498: /*documentation*/ return new String[] {"string"};
1310        default: return super.getTypesForProperty(hash, name);
1311        }
1312
1313      }
1314
1315      @Override
1316      public Base addChild(String name) throws FHIRException {
1317        if (name.equals("url")) {
1318          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.structure.url");
1319        }
1320        else if (name.equals("mode")) {
1321          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.structure.mode");
1322        }
1323        else if (name.equals("alias")) {
1324          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.structure.alias");
1325        }
1326        else if (name.equals("documentation")) {
1327          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.structure.documentation");
1328        }
1329        else
1330          return super.addChild(name);
1331      }
1332
1333      public StructureMapStructureComponent copy() {
1334        StructureMapStructureComponent dst = new StructureMapStructureComponent();
1335        copyValues(dst);
1336        return dst;
1337      }
1338
1339      public void copyValues(StructureMapStructureComponent dst) {
1340        super.copyValues(dst);
1341        dst.url = url == null ? null : url.copy();
1342        dst.mode = mode == null ? null : mode.copy();
1343        dst.alias = alias == null ? null : alias.copy();
1344        dst.documentation = documentation == null ? null : documentation.copy();
1345      }
1346
1347      @Override
1348      public boolean equalsDeep(Base other_) {
1349        if (!super.equalsDeep(other_))
1350          return false;
1351        if (!(other_ instanceof StructureMapStructureComponent))
1352          return false;
1353        StructureMapStructureComponent o = (StructureMapStructureComponent) other_;
1354        return compareDeep(url, o.url, true) && compareDeep(mode, o.mode, true) && compareDeep(alias, o.alias, true)
1355           && compareDeep(documentation, o.documentation, true);
1356      }
1357
1358      @Override
1359      public boolean equalsShallow(Base other_) {
1360        if (!super.equalsShallow(other_))
1361          return false;
1362        if (!(other_ instanceof StructureMapStructureComponent))
1363          return false;
1364        StructureMapStructureComponent o = (StructureMapStructureComponent) other_;
1365        return compareValues(url, o.url, true) && compareValues(mode, o.mode, true) && compareValues(alias, o.alias, true)
1366           && compareValues(documentation, o.documentation, true);
1367      }
1368
1369      public boolean isEmpty() {
1370        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, mode, alias, documentation
1371          );
1372      }
1373
1374  public String fhirType() {
1375    return "StructureMap.structure";
1376
1377  }
1378
1379  }
1380
1381    @Block()
1382    public static class StructureMapConstComponent extends BackboneElement implements IBaseBackboneElement {
1383        /**
1384         * Other maps used by this map (canonical URLs).
1385         */
1386        @Child(name = "name", type = {IdType.class}, order=1, min=0, max=1, modifier=false, summary=true)
1387        @Description(shortDefinition="Constant name", formalDefinition="Other maps used by this map (canonical URLs)." )
1388        protected IdType name;
1389
1390        /**
1391         * A FHIRPath expression that is the value of this variable.
1392         */
1393        @Child(name = "value", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
1394        @Description(shortDefinition="FHIRPath exression - value of the constant", formalDefinition="A FHIRPath expression that is the value of this variable." )
1395        protected StringType value;
1396
1397        private static final long serialVersionUID = 19170614L;
1398
1399    /**
1400     * Constructor
1401     */
1402      public StructureMapConstComponent() {
1403        super();
1404      }
1405
1406        /**
1407         * @return {@link #name} (Other maps used by this map (canonical URLs).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1408         */
1409        public IdType getNameElement() { 
1410          if (this.name == null)
1411            if (Configuration.errorOnAutoCreate())
1412              throw new Error("Attempt to auto-create StructureMapConstComponent.name");
1413            else if (Configuration.doAutoCreate())
1414              this.name = new IdType(); // bb
1415          return this.name;
1416        }
1417
1418        public boolean hasNameElement() { 
1419          return this.name != null && !this.name.isEmpty();
1420        }
1421
1422        public boolean hasName() { 
1423          return this.name != null && !this.name.isEmpty();
1424        }
1425
1426        /**
1427         * @param value {@link #name} (Other maps used by this map (canonical URLs).). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1428         */
1429        public StructureMapConstComponent setNameElement(IdType value) { 
1430          this.name = value;
1431          return this;
1432        }
1433
1434        /**
1435         * @return Other maps used by this map (canonical URLs).
1436         */
1437        public String getName() { 
1438          return this.name == null ? null : this.name.getValue();
1439        }
1440
1441        /**
1442         * @param value Other maps used by this map (canonical URLs).
1443         */
1444        public StructureMapConstComponent setName(String value) { 
1445          if (Utilities.noString(value))
1446            this.name = null;
1447          else {
1448            if (this.name == null)
1449              this.name = new IdType();
1450            this.name.setValue(value);
1451          }
1452          return this;
1453        }
1454
1455        /**
1456         * @return {@link #value} (A FHIRPath expression that is the value of this variable.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
1457         */
1458        public StringType getValueElement() { 
1459          if (this.value == null)
1460            if (Configuration.errorOnAutoCreate())
1461              throw new Error("Attempt to auto-create StructureMapConstComponent.value");
1462            else if (Configuration.doAutoCreate())
1463              this.value = new StringType(); // bb
1464          return this.value;
1465        }
1466
1467        public boolean hasValueElement() { 
1468          return this.value != null && !this.value.isEmpty();
1469        }
1470
1471        public boolean hasValue() { 
1472          return this.value != null && !this.value.isEmpty();
1473        }
1474
1475        /**
1476         * @param value {@link #value} (A FHIRPath expression that is the value of this variable.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value
1477         */
1478        public StructureMapConstComponent setValueElement(StringType value) { 
1479          this.value = value;
1480          return this;
1481        }
1482
1483        /**
1484         * @return A FHIRPath expression that is the value of this variable.
1485         */
1486        public String getValue() { 
1487          return this.value == null ? null : this.value.getValue();
1488        }
1489
1490        /**
1491         * @param value A FHIRPath expression that is the value of this variable.
1492         */
1493        public StructureMapConstComponent setValue(String value) { 
1494          if (Utilities.noString(value))
1495            this.value = null;
1496          else {
1497            if (this.value == null)
1498              this.value = new StringType();
1499            this.value.setValue(value);
1500          }
1501          return this;
1502        }
1503
1504        protected void listChildren(List<Property> children) {
1505          super.listChildren(children);
1506          children.add(new Property("name", "id", "Other maps used by this map (canonical URLs).", 0, 1, name));
1507          children.add(new Property("value", "string", "A FHIRPath expression that is the value of this variable.", 0, 1, value));
1508        }
1509
1510        @Override
1511        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1512          switch (_hash) {
1513          case 3373707: /*name*/  return new Property("name", "id", "Other maps used by this map (canonical URLs).", 0, 1, name);
1514          case 111972721: /*value*/  return new Property("value", "string", "A FHIRPath expression that is the value of this variable.", 0, 1, value);
1515          default: return super.getNamedProperty(_hash, _name, _checkValid);
1516          }
1517
1518        }
1519
1520      @Override
1521      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1522        switch (hash) {
1523        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // IdType
1524        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType
1525        default: return super.getProperty(hash, name, checkValid);
1526        }
1527
1528      }
1529
1530      @Override
1531      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1532        switch (hash) {
1533        case 3373707: // name
1534          this.name = TypeConvertor.castToId(value); // IdType
1535          return value;
1536        case 111972721: // value
1537          this.value = TypeConvertor.castToString(value); // StringType
1538          return value;
1539        default: return super.setProperty(hash, name, value);
1540        }
1541
1542      }
1543
1544      @Override
1545      public Base setProperty(String name, Base value) throws FHIRException {
1546        if (name.equals("name")) {
1547          this.name = TypeConvertor.castToId(value); // IdType
1548        } else if (name.equals("value")) {
1549          this.value = TypeConvertor.castToString(value); // StringType
1550        } else
1551          return super.setProperty(name, value);
1552        return value;
1553      }
1554
1555      @Override
1556      public Base makeProperty(int hash, String name) throws FHIRException {
1557        switch (hash) {
1558        case 3373707:  return getNameElement();
1559        case 111972721:  return getValueElement();
1560        default: return super.makeProperty(hash, name);
1561        }
1562
1563      }
1564
1565      @Override
1566      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1567        switch (hash) {
1568        case 3373707: /*name*/ return new String[] {"id"};
1569        case 111972721: /*value*/ return new String[] {"string"};
1570        default: return super.getTypesForProperty(hash, name);
1571        }
1572
1573      }
1574
1575      @Override
1576      public Base addChild(String name) throws FHIRException {
1577        if (name.equals("name")) {
1578          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.const.name");
1579        }
1580        else if (name.equals("value")) {
1581          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.const.value");
1582        }
1583        else
1584          return super.addChild(name);
1585      }
1586
1587      public StructureMapConstComponent copy() {
1588        StructureMapConstComponent dst = new StructureMapConstComponent();
1589        copyValues(dst);
1590        return dst;
1591      }
1592
1593      public void copyValues(StructureMapConstComponent dst) {
1594        super.copyValues(dst);
1595        dst.name = name == null ? null : name.copy();
1596        dst.value = value == null ? null : value.copy();
1597      }
1598
1599      @Override
1600      public boolean equalsDeep(Base other_) {
1601        if (!super.equalsDeep(other_))
1602          return false;
1603        if (!(other_ instanceof StructureMapConstComponent))
1604          return false;
1605        StructureMapConstComponent o = (StructureMapConstComponent) other_;
1606        return compareDeep(name, o.name, true) && compareDeep(value, o.value, true);
1607      }
1608
1609      @Override
1610      public boolean equalsShallow(Base other_) {
1611        if (!super.equalsShallow(other_))
1612          return false;
1613        if (!(other_ instanceof StructureMapConstComponent))
1614          return false;
1615        StructureMapConstComponent o = (StructureMapConstComponent) other_;
1616        return compareValues(name, o.name, true) && compareValues(value, o.value, true);
1617      }
1618
1619      public boolean isEmpty() {
1620        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, value);
1621      }
1622
1623  public String fhirType() {
1624    return "StructureMap.const";
1625
1626  }
1627
1628  }
1629
1630    @Block()
1631    public static class StructureMapGroupComponent extends BackboneElement implements IBaseBackboneElement {
1632        /**
1633         * A unique name for the group for the convenience of human readers.
1634         */
1635        @Child(name = "name", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=true)
1636        @Description(shortDefinition="Human-readable label", formalDefinition="A unique name for the group for the convenience of human readers." )
1637        protected IdType name;
1638
1639        /**
1640         * Another group that this group adds rules to.
1641         */
1642        @Child(name = "extends", type = {IdType.class}, order=2, min=0, max=1, modifier=false, summary=true)
1643        @Description(shortDefinition="Another group that this group adds rules to", formalDefinition="Another group that this group adds rules to." )
1644        protected IdType extends_;
1645
1646        /**
1647         * If this is the default rule set to apply for the source type or this combination of types.
1648         */
1649        @Child(name = "typeMode", type = {CodeType.class}, order=3, min=0, max=1, modifier=false, summary=true)
1650        @Description(shortDefinition="types | type-and-types", formalDefinition="If this is the default rule set to apply for the source type or this combination of types." )
1651        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-group-type-mode")
1652        protected Enumeration<StructureMapGroupTypeMode> typeMode;
1653
1654        /**
1655         * Additional supporting documentation that explains the purpose of the group and the types of mappings within it.
1656         */
1657        @Child(name = "documentation", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
1658        @Description(shortDefinition="Additional description/explanation for group", formalDefinition="Additional supporting documentation that explains the purpose of the group and the types of mappings within it." )
1659        protected StringType documentation;
1660
1661        /**
1662         * A name assigned to an instance of data. The instance must be provided when the mapping is invoked.
1663         */
1664        @Child(name = "input", type = {}, order=5, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1665        @Description(shortDefinition="Named instance provided when invoking the map", formalDefinition="A name assigned to an instance of data. The instance must be provided when the mapping is invoked." )
1666        protected List<StructureMapGroupInputComponent> input;
1667
1668        /**
1669         * Transform Rule from source to target.
1670         */
1671        @Child(name = "rule", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1672        @Description(shortDefinition="Transform Rule from source to target", formalDefinition="Transform Rule from source to target." )
1673        protected List<StructureMapGroupRuleComponent> rule;
1674
1675        private static final long serialVersionUID = -1474595081L;
1676
1677    /**
1678     * Constructor
1679     */
1680      public StructureMapGroupComponent() {
1681        super();
1682      }
1683
1684    /**
1685     * Constructor
1686     */
1687      public StructureMapGroupComponent(String name, StructureMapGroupInputComponent input) {
1688        super();
1689        this.setName(name);
1690        this.addInput(input);
1691      }
1692
1693        /**
1694         * @return {@link #name} (A unique name for the group for the convenience of human readers.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1695         */
1696        public IdType getNameElement() { 
1697          if (this.name == null)
1698            if (Configuration.errorOnAutoCreate())
1699              throw new Error("Attempt to auto-create StructureMapGroupComponent.name");
1700            else if (Configuration.doAutoCreate())
1701              this.name = new IdType(); // bb
1702          return this.name;
1703        }
1704
1705        public boolean hasNameElement() { 
1706          return this.name != null && !this.name.isEmpty();
1707        }
1708
1709        public boolean hasName() { 
1710          return this.name != null && !this.name.isEmpty();
1711        }
1712
1713        /**
1714         * @param value {@link #name} (A unique name for the group for the convenience of human readers.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1715         */
1716        public StructureMapGroupComponent setNameElement(IdType value) { 
1717          this.name = value;
1718          return this;
1719        }
1720
1721        /**
1722         * @return A unique name for the group for the convenience of human readers.
1723         */
1724        public String getName() { 
1725          return this.name == null ? null : this.name.getValue();
1726        }
1727
1728        /**
1729         * @param value A unique name for the group for the convenience of human readers.
1730         */
1731        public StructureMapGroupComponent setName(String value) { 
1732            if (this.name == null)
1733              this.name = new IdType();
1734            this.name.setValue(value);
1735          return this;
1736        }
1737
1738        /**
1739         * @return {@link #extends_} (Another group that this group adds rules to.). This is the underlying object with id, value and extensions. The accessor "getExtends" gives direct access to the value
1740         */
1741        public IdType getExtendsElement() { 
1742          if (this.extends_ == null)
1743            if (Configuration.errorOnAutoCreate())
1744              throw new Error("Attempt to auto-create StructureMapGroupComponent.extends_");
1745            else if (Configuration.doAutoCreate())
1746              this.extends_ = new IdType(); // bb
1747          return this.extends_;
1748        }
1749
1750        public boolean hasExtendsElement() { 
1751          return this.extends_ != null && !this.extends_.isEmpty();
1752        }
1753
1754        public boolean hasExtends() { 
1755          return this.extends_ != null && !this.extends_.isEmpty();
1756        }
1757
1758        /**
1759         * @param value {@link #extends_} (Another group that this group adds rules to.). This is the underlying object with id, value and extensions. The accessor "getExtends" gives direct access to the value
1760         */
1761        public StructureMapGroupComponent setExtendsElement(IdType value) { 
1762          this.extends_ = value;
1763          return this;
1764        }
1765
1766        /**
1767         * @return Another group that this group adds rules to.
1768         */
1769        public String getExtends() { 
1770          return this.extends_ == null ? null : this.extends_.getValue();
1771        }
1772
1773        /**
1774         * @param value Another group that this group adds rules to.
1775         */
1776        public StructureMapGroupComponent setExtends(String value) { 
1777          if (Utilities.noString(value))
1778            this.extends_ = null;
1779          else {
1780            if (this.extends_ == null)
1781              this.extends_ = new IdType();
1782            this.extends_.setValue(value);
1783          }
1784          return this;
1785        }
1786
1787        /**
1788         * @return {@link #typeMode} (If this is the default rule set to apply for the source type or this combination of types.). This is the underlying object with id, value and extensions. The accessor "getTypeMode" gives direct access to the value
1789         */
1790        public Enumeration<StructureMapGroupTypeMode> getTypeModeElement() { 
1791          if (this.typeMode == null)
1792            if (Configuration.errorOnAutoCreate())
1793              throw new Error("Attempt to auto-create StructureMapGroupComponent.typeMode");
1794            else if (Configuration.doAutoCreate())
1795              this.typeMode = new Enumeration<StructureMapGroupTypeMode>(new StructureMapGroupTypeModeEnumFactory()); // bb
1796          return this.typeMode;
1797        }
1798
1799        public boolean hasTypeModeElement() { 
1800          return this.typeMode != null && !this.typeMode.isEmpty();
1801        }
1802
1803        public boolean hasTypeMode() { 
1804          return this.typeMode != null && !this.typeMode.isEmpty();
1805        }
1806
1807        /**
1808         * @param value {@link #typeMode} (If this is the default rule set to apply for the source type or this combination of types.). This is the underlying object with id, value and extensions. The accessor "getTypeMode" gives direct access to the value
1809         */
1810        public StructureMapGroupComponent setTypeModeElement(Enumeration<StructureMapGroupTypeMode> value) { 
1811          this.typeMode = value;
1812          return this;
1813        }
1814
1815        /**
1816         * @return If this is the default rule set to apply for the source type or this combination of types.
1817         */
1818        public StructureMapGroupTypeMode getTypeMode() { 
1819          return this.typeMode == null ? null : this.typeMode.getValue();
1820        }
1821
1822        /**
1823         * @param value If this is the default rule set to apply for the source type or this combination of types.
1824         */
1825        public StructureMapGroupComponent setTypeMode(StructureMapGroupTypeMode value) { 
1826          if (value == null)
1827            this.typeMode = null;
1828          else {
1829            if (this.typeMode == null)
1830              this.typeMode = new Enumeration<StructureMapGroupTypeMode>(new StructureMapGroupTypeModeEnumFactory());
1831            this.typeMode.setValue(value);
1832          }
1833          return this;
1834        }
1835
1836        /**
1837         * @return {@link #documentation} (Additional supporting documentation that explains the purpose of the group and the types of mappings within it.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
1838         */
1839        public StringType getDocumentationElement() { 
1840          if (this.documentation == null)
1841            if (Configuration.errorOnAutoCreate())
1842              throw new Error("Attempt to auto-create StructureMapGroupComponent.documentation");
1843            else if (Configuration.doAutoCreate())
1844              this.documentation = new StringType(); // bb
1845          return this.documentation;
1846        }
1847
1848        public boolean hasDocumentationElement() { 
1849          return this.documentation != null && !this.documentation.isEmpty();
1850        }
1851
1852        public boolean hasDocumentation() { 
1853          return this.documentation != null && !this.documentation.isEmpty();
1854        }
1855
1856        /**
1857         * @param value {@link #documentation} (Additional supporting documentation that explains the purpose of the group and the types of mappings within it.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
1858         */
1859        public StructureMapGroupComponent setDocumentationElement(StringType value) { 
1860          this.documentation = value;
1861          return this;
1862        }
1863
1864        /**
1865         * @return Additional supporting documentation that explains the purpose of the group and the types of mappings within it.
1866         */
1867        public String getDocumentation() { 
1868          return this.documentation == null ? null : this.documentation.getValue();
1869        }
1870
1871        /**
1872         * @param value Additional supporting documentation that explains the purpose of the group and the types of mappings within it.
1873         */
1874        public StructureMapGroupComponent setDocumentation(String value) { 
1875          if (Utilities.noString(value))
1876            this.documentation = null;
1877          else {
1878            if (this.documentation == null)
1879              this.documentation = new StringType();
1880            this.documentation.setValue(value);
1881          }
1882          return this;
1883        }
1884
1885        /**
1886         * @return {@link #input} (A name assigned to an instance of data. The instance must be provided when the mapping is invoked.)
1887         */
1888        public List<StructureMapGroupInputComponent> getInput() { 
1889          if (this.input == null)
1890            this.input = new ArrayList<StructureMapGroupInputComponent>();
1891          return this.input;
1892        }
1893
1894        /**
1895         * @return Returns a reference to <code>this</code> for easy method chaining
1896         */
1897        public StructureMapGroupComponent setInput(List<StructureMapGroupInputComponent> theInput) { 
1898          this.input = theInput;
1899          return this;
1900        }
1901
1902        public boolean hasInput() { 
1903          if (this.input == null)
1904            return false;
1905          for (StructureMapGroupInputComponent item : this.input)
1906            if (!item.isEmpty())
1907              return true;
1908          return false;
1909        }
1910
1911        public StructureMapGroupInputComponent addInput() { //3
1912          StructureMapGroupInputComponent t = new StructureMapGroupInputComponent();
1913          if (this.input == null)
1914            this.input = new ArrayList<StructureMapGroupInputComponent>();
1915          this.input.add(t);
1916          return t;
1917        }
1918
1919        public StructureMapGroupComponent addInput(StructureMapGroupInputComponent t) { //3
1920          if (t == null)
1921            return this;
1922          if (this.input == null)
1923            this.input = new ArrayList<StructureMapGroupInputComponent>();
1924          this.input.add(t);
1925          return this;
1926        }
1927
1928        /**
1929         * @return The first repetition of repeating field {@link #input}, creating it if it does not already exist {3}
1930         */
1931        public StructureMapGroupInputComponent getInputFirstRep() { 
1932          if (getInput().isEmpty()) {
1933            addInput();
1934          }
1935          return getInput().get(0);
1936        }
1937
1938        /**
1939         * @return {@link #rule} (Transform Rule from source to target.)
1940         */
1941        public List<StructureMapGroupRuleComponent> getRule() { 
1942          if (this.rule == null)
1943            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
1944          return this.rule;
1945        }
1946
1947        /**
1948         * @return Returns a reference to <code>this</code> for easy method chaining
1949         */
1950        public StructureMapGroupComponent setRule(List<StructureMapGroupRuleComponent> theRule) { 
1951          this.rule = theRule;
1952          return this;
1953        }
1954
1955        public boolean hasRule() { 
1956          if (this.rule == null)
1957            return false;
1958          for (StructureMapGroupRuleComponent item : this.rule)
1959            if (!item.isEmpty())
1960              return true;
1961          return false;
1962        }
1963
1964        public StructureMapGroupRuleComponent addRule() { //3
1965          StructureMapGroupRuleComponent t = new StructureMapGroupRuleComponent();
1966          if (this.rule == null)
1967            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
1968          this.rule.add(t);
1969          return t;
1970        }
1971
1972        public StructureMapGroupComponent addRule(StructureMapGroupRuleComponent t) { //3
1973          if (t == null)
1974            return this;
1975          if (this.rule == null)
1976            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
1977          this.rule.add(t);
1978          return this;
1979        }
1980
1981        /**
1982         * @return The first repetition of repeating field {@link #rule}, creating it if it does not already exist {3}
1983         */
1984        public StructureMapGroupRuleComponent getRuleFirstRep() { 
1985          if (getRule().isEmpty()) {
1986            addRule();
1987          }
1988          return getRule().get(0);
1989        }
1990
1991        protected void listChildren(List<Property> children) {
1992          super.listChildren(children);
1993          children.add(new Property("name", "id", "A unique name for the group for the convenience of human readers.", 0, 1, name));
1994          children.add(new Property("extends", "id", "Another group that this group adds rules to.", 0, 1, extends_));
1995          children.add(new Property("typeMode", "code", "If this is the default rule set to apply for the source type or this combination of types.", 0, 1, typeMode));
1996          children.add(new Property("documentation", "string", "Additional supporting documentation that explains the purpose of the group and the types of mappings within it.", 0, 1, documentation));
1997          children.add(new Property("input", "", "A name assigned to an instance of data. The instance must be provided when the mapping is invoked.", 0, java.lang.Integer.MAX_VALUE, input));
1998          children.add(new Property("rule", "", "Transform Rule from source to target.", 0, java.lang.Integer.MAX_VALUE, rule));
1999        }
2000
2001        @Override
2002        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2003          switch (_hash) {
2004          case 3373707: /*name*/  return new Property("name", "id", "A unique name for the group for the convenience of human readers.", 0, 1, name);
2005          case -1305664359: /*extends*/  return new Property("extends", "id", "Another group that this group adds rules to.", 0, 1, extends_);
2006          case -676524035: /*typeMode*/  return new Property("typeMode", "code", "If this is the default rule set to apply for the source type or this combination of types.", 0, 1, typeMode);
2007          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Additional supporting documentation that explains the purpose of the group and the types of mappings within it.", 0, 1, documentation);
2008          case 100358090: /*input*/  return new Property("input", "", "A name assigned to an instance of data. The instance must be provided when the mapping is invoked.", 0, java.lang.Integer.MAX_VALUE, input);
2009          case 3512060: /*rule*/  return new Property("rule", "", "Transform Rule from source to target.", 0, java.lang.Integer.MAX_VALUE, rule);
2010          default: return super.getNamedProperty(_hash, _name, _checkValid);
2011          }
2012
2013        }
2014
2015      @Override
2016      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2017        switch (hash) {
2018        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // IdType
2019        case -1305664359: /*extends*/ return this.extends_ == null ? new Base[0] : new Base[] {this.extends_}; // IdType
2020        case -676524035: /*typeMode*/ return this.typeMode == null ? new Base[0] : new Base[] {this.typeMode}; // Enumeration<StructureMapGroupTypeMode>
2021        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
2022        case 100358090: /*input*/ return this.input == null ? new Base[0] : this.input.toArray(new Base[this.input.size()]); // StructureMapGroupInputComponent
2023        case 3512060: /*rule*/ return this.rule == null ? new Base[0] : this.rule.toArray(new Base[this.rule.size()]); // StructureMapGroupRuleComponent
2024        default: return super.getProperty(hash, name, checkValid);
2025        }
2026
2027      }
2028
2029      @Override
2030      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2031        switch (hash) {
2032        case 3373707: // name
2033          this.name = TypeConvertor.castToId(value); // IdType
2034          return value;
2035        case -1305664359: // extends
2036          this.extends_ = TypeConvertor.castToId(value); // IdType
2037          return value;
2038        case -676524035: // typeMode
2039          value = new StructureMapGroupTypeModeEnumFactory().fromType(TypeConvertor.castToCode(value));
2040          this.typeMode = (Enumeration) value; // Enumeration<StructureMapGroupTypeMode>
2041          return value;
2042        case 1587405498: // documentation
2043          this.documentation = TypeConvertor.castToString(value); // StringType
2044          return value;
2045        case 100358090: // input
2046          this.getInput().add((StructureMapGroupInputComponent) value); // StructureMapGroupInputComponent
2047          return value;
2048        case 3512060: // rule
2049          this.getRule().add((StructureMapGroupRuleComponent) value); // StructureMapGroupRuleComponent
2050          return value;
2051        default: return super.setProperty(hash, name, value);
2052        }
2053
2054      }
2055
2056      @Override
2057      public Base setProperty(String name, Base value) throws FHIRException {
2058        if (name.equals("name")) {
2059          this.name = TypeConvertor.castToId(value); // IdType
2060        } else if (name.equals("extends")) {
2061          this.extends_ = TypeConvertor.castToId(value); // IdType
2062        } else if (name.equals("typeMode")) {
2063          value = new StructureMapGroupTypeModeEnumFactory().fromType(TypeConvertor.castToCode(value));
2064          this.typeMode = (Enumeration) value; // Enumeration<StructureMapGroupTypeMode>
2065        } else if (name.equals("documentation")) {
2066          this.documentation = TypeConvertor.castToString(value); // StringType
2067        } else if (name.equals("input")) {
2068          this.getInput().add((StructureMapGroupInputComponent) value);
2069        } else if (name.equals("rule")) {
2070          this.getRule().add((StructureMapGroupRuleComponent) value);
2071        } else
2072          return super.setProperty(name, value);
2073        return value;
2074      }
2075
2076      @Override
2077      public Base makeProperty(int hash, String name) throws FHIRException {
2078        switch (hash) {
2079        case 3373707:  return getNameElement();
2080        case -1305664359:  return getExtendsElement();
2081        case -676524035:  return getTypeModeElement();
2082        case 1587405498:  return getDocumentationElement();
2083        case 100358090:  return addInput(); 
2084        case 3512060:  return addRule(); 
2085        default: return super.makeProperty(hash, name);
2086        }
2087
2088      }
2089
2090      @Override
2091      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2092        switch (hash) {
2093        case 3373707: /*name*/ return new String[] {"id"};
2094        case -1305664359: /*extends*/ return new String[] {"id"};
2095        case -676524035: /*typeMode*/ return new String[] {"code"};
2096        case 1587405498: /*documentation*/ return new String[] {"string"};
2097        case 100358090: /*input*/ return new String[] {};
2098        case 3512060: /*rule*/ return new String[] {};
2099        default: return super.getTypesForProperty(hash, name);
2100        }
2101
2102      }
2103
2104      @Override
2105      public Base addChild(String name) throws FHIRException {
2106        if (name.equals("name")) {
2107          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.name");
2108        }
2109        else if (name.equals("extends")) {
2110          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.extends");
2111        }
2112        else if (name.equals("typeMode")) {
2113          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.typeMode");
2114        }
2115        else if (name.equals("documentation")) {
2116          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.documentation");
2117        }
2118        else if (name.equals("input")) {
2119          return addInput();
2120        }
2121        else if (name.equals("rule")) {
2122          return addRule();
2123        }
2124        else
2125          return super.addChild(name);
2126      }
2127
2128      public StructureMapGroupComponent copy() {
2129        StructureMapGroupComponent dst = new StructureMapGroupComponent();
2130        copyValues(dst);
2131        return dst;
2132      }
2133
2134      public void copyValues(StructureMapGroupComponent dst) {
2135        super.copyValues(dst);
2136        dst.name = name == null ? null : name.copy();
2137        dst.extends_ = extends_ == null ? null : extends_.copy();
2138        dst.typeMode = typeMode == null ? null : typeMode.copy();
2139        dst.documentation = documentation == null ? null : documentation.copy();
2140        if (input != null) {
2141          dst.input = new ArrayList<StructureMapGroupInputComponent>();
2142          for (StructureMapGroupInputComponent i : input)
2143            dst.input.add(i.copy());
2144        };
2145        if (rule != null) {
2146          dst.rule = new ArrayList<StructureMapGroupRuleComponent>();
2147          for (StructureMapGroupRuleComponent i : rule)
2148            dst.rule.add(i.copy());
2149        };
2150      }
2151
2152      @Override
2153      public boolean equalsDeep(Base other_) {
2154        if (!super.equalsDeep(other_))
2155          return false;
2156        if (!(other_ instanceof StructureMapGroupComponent))
2157          return false;
2158        StructureMapGroupComponent o = (StructureMapGroupComponent) other_;
2159        return compareDeep(name, o.name, true) && compareDeep(extends_, o.extends_, true) && compareDeep(typeMode, o.typeMode, true)
2160           && compareDeep(documentation, o.documentation, true) && compareDeep(input, o.input, true) && compareDeep(rule, o.rule, true)
2161          ;
2162      }
2163
2164      @Override
2165      public boolean equalsShallow(Base other_) {
2166        if (!super.equalsShallow(other_))
2167          return false;
2168        if (!(other_ instanceof StructureMapGroupComponent))
2169          return false;
2170        StructureMapGroupComponent o = (StructureMapGroupComponent) other_;
2171        return compareValues(name, o.name, true) && compareValues(extends_, o.extends_, true) && compareValues(typeMode, o.typeMode, true)
2172           && compareValues(documentation, o.documentation, true);
2173      }
2174
2175      public boolean isEmpty() {
2176        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, extends_, typeMode
2177          , documentation, input, rule);
2178      }
2179
2180  public String fhirType() {
2181    return "StructureMap.group";
2182
2183  }
2184
2185// added from java-adornments.txt:
2186public String toString() {
2187    return StructureMapUtilities.groupToString(this);
2188  }
2189// end addition
2190  }
2191
2192    @Block()
2193    public static class StructureMapGroupInputComponent extends BackboneElement implements IBaseBackboneElement {
2194        /**
2195         * Name for this instance of data.
2196         */
2197        @Child(name = "name", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=true)
2198        @Description(shortDefinition="Name for this instance of data", formalDefinition="Name for this instance of data." )
2199        protected IdType name;
2200
2201        /**
2202         * Type for this instance of data.
2203         */
2204        @Child(name = "type", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
2205        @Description(shortDefinition="Type for this instance of data", formalDefinition="Type for this instance of data." )
2206        protected StringType type;
2207
2208        /**
2209         * Mode for this instance of data.
2210         */
2211        @Child(name = "mode", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=true)
2212        @Description(shortDefinition="source | target", formalDefinition="Mode for this instance of data." )
2213        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-input-mode")
2214        protected Enumeration<StructureMapInputMode> mode;
2215
2216        /**
2217         * Documentation for this instance of data.
2218         */
2219        @Child(name = "documentation", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false)
2220        @Description(shortDefinition="Documentation for this instance of data", formalDefinition="Documentation for this instance of data." )
2221        protected StringType documentation;
2222
2223        private static final long serialVersionUID = -25050724L;
2224
2225    /**
2226     * Constructor
2227     */
2228      public StructureMapGroupInputComponent() {
2229        super();
2230      }
2231
2232    /**
2233     * Constructor
2234     */
2235      public StructureMapGroupInputComponent(String name, StructureMapInputMode mode) {
2236        super();
2237        this.setName(name);
2238        this.setMode(mode);
2239      }
2240
2241        /**
2242         * @return {@link #name} (Name for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2243         */
2244        public IdType getNameElement() { 
2245          if (this.name == null)
2246            if (Configuration.errorOnAutoCreate())
2247              throw new Error("Attempt to auto-create StructureMapGroupInputComponent.name");
2248            else if (Configuration.doAutoCreate())
2249              this.name = new IdType(); // bb
2250          return this.name;
2251        }
2252
2253        public boolean hasNameElement() { 
2254          return this.name != null && !this.name.isEmpty();
2255        }
2256
2257        public boolean hasName() { 
2258          return this.name != null && !this.name.isEmpty();
2259        }
2260
2261        /**
2262         * @param value {@link #name} (Name for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2263         */
2264        public StructureMapGroupInputComponent setNameElement(IdType value) { 
2265          this.name = value;
2266          return this;
2267        }
2268
2269        /**
2270         * @return Name for this instance of data.
2271         */
2272        public String getName() { 
2273          return this.name == null ? null : this.name.getValue();
2274        }
2275
2276        /**
2277         * @param value Name for this instance of data.
2278         */
2279        public StructureMapGroupInputComponent setName(String value) { 
2280            if (this.name == null)
2281              this.name = new IdType();
2282            this.name.setValue(value);
2283          return this;
2284        }
2285
2286        /**
2287         * @return {@link #type} (Type for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
2288         */
2289        public StringType getTypeElement() { 
2290          if (this.type == null)
2291            if (Configuration.errorOnAutoCreate())
2292              throw new Error("Attempt to auto-create StructureMapGroupInputComponent.type");
2293            else if (Configuration.doAutoCreate())
2294              this.type = new StringType(); // bb
2295          return this.type;
2296        }
2297
2298        public boolean hasTypeElement() { 
2299          return this.type != null && !this.type.isEmpty();
2300        }
2301
2302        public boolean hasType() { 
2303          return this.type != null && !this.type.isEmpty();
2304        }
2305
2306        /**
2307         * @param value {@link #type} (Type for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
2308         */
2309        public StructureMapGroupInputComponent setTypeElement(StringType value) { 
2310          this.type = value;
2311          return this;
2312        }
2313
2314        /**
2315         * @return Type for this instance of data.
2316         */
2317        public String getType() { 
2318          return this.type == null ? null : this.type.getValue();
2319        }
2320
2321        /**
2322         * @param value Type for this instance of data.
2323         */
2324        public StructureMapGroupInputComponent setType(String value) { 
2325          if (Utilities.noString(value))
2326            this.type = null;
2327          else {
2328            if (this.type == null)
2329              this.type = new StringType();
2330            this.type.setValue(value);
2331          }
2332          return this;
2333        }
2334
2335        /**
2336         * @return {@link #mode} (Mode for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
2337         */
2338        public Enumeration<StructureMapInputMode> getModeElement() { 
2339          if (this.mode == null)
2340            if (Configuration.errorOnAutoCreate())
2341              throw new Error("Attempt to auto-create StructureMapGroupInputComponent.mode");
2342            else if (Configuration.doAutoCreate())
2343              this.mode = new Enumeration<StructureMapInputMode>(new StructureMapInputModeEnumFactory()); // bb
2344          return this.mode;
2345        }
2346
2347        public boolean hasModeElement() { 
2348          return this.mode != null && !this.mode.isEmpty();
2349        }
2350
2351        public boolean hasMode() { 
2352          return this.mode != null && !this.mode.isEmpty();
2353        }
2354
2355        /**
2356         * @param value {@link #mode} (Mode for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value
2357         */
2358        public StructureMapGroupInputComponent setModeElement(Enumeration<StructureMapInputMode> value) { 
2359          this.mode = value;
2360          return this;
2361        }
2362
2363        /**
2364         * @return Mode for this instance of data.
2365         */
2366        public StructureMapInputMode getMode() { 
2367          return this.mode == null ? null : this.mode.getValue();
2368        }
2369
2370        /**
2371         * @param value Mode for this instance of data.
2372         */
2373        public StructureMapGroupInputComponent setMode(StructureMapInputMode value) { 
2374            if (this.mode == null)
2375              this.mode = new Enumeration<StructureMapInputMode>(new StructureMapInputModeEnumFactory());
2376            this.mode.setValue(value);
2377          return this;
2378        }
2379
2380        /**
2381         * @return {@link #documentation} (Documentation for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
2382         */
2383        public StringType getDocumentationElement() { 
2384          if (this.documentation == null)
2385            if (Configuration.errorOnAutoCreate())
2386              throw new Error("Attempt to auto-create StructureMapGroupInputComponent.documentation");
2387            else if (Configuration.doAutoCreate())
2388              this.documentation = new StringType(); // bb
2389          return this.documentation;
2390        }
2391
2392        public boolean hasDocumentationElement() { 
2393          return this.documentation != null && !this.documentation.isEmpty();
2394        }
2395
2396        public boolean hasDocumentation() { 
2397          return this.documentation != null && !this.documentation.isEmpty();
2398        }
2399
2400        /**
2401         * @param value {@link #documentation} (Documentation for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
2402         */
2403        public StructureMapGroupInputComponent setDocumentationElement(StringType value) { 
2404          this.documentation = value;
2405          return this;
2406        }
2407
2408        /**
2409         * @return Documentation for this instance of data.
2410         */
2411        public String getDocumentation() { 
2412          return this.documentation == null ? null : this.documentation.getValue();
2413        }
2414
2415        /**
2416         * @param value Documentation for this instance of data.
2417         */
2418        public StructureMapGroupInputComponent setDocumentation(String value) { 
2419          if (Utilities.noString(value))
2420            this.documentation = null;
2421          else {
2422            if (this.documentation == null)
2423              this.documentation = new StringType();
2424            this.documentation.setValue(value);
2425          }
2426          return this;
2427        }
2428
2429        protected void listChildren(List<Property> children) {
2430          super.listChildren(children);
2431          children.add(new Property("name", "id", "Name for this instance of data.", 0, 1, name));
2432          children.add(new Property("type", "string", "Type for this instance of data.", 0, 1, type));
2433          children.add(new Property("mode", "code", "Mode for this instance of data.", 0, 1, mode));
2434          children.add(new Property("documentation", "string", "Documentation for this instance of data.", 0, 1, documentation));
2435        }
2436
2437        @Override
2438        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2439          switch (_hash) {
2440          case 3373707: /*name*/  return new Property("name", "id", "Name for this instance of data.", 0, 1, name);
2441          case 3575610: /*type*/  return new Property("type", "string", "Type for this instance of data.", 0, 1, type);
2442          case 3357091: /*mode*/  return new Property("mode", "code", "Mode for this instance of data.", 0, 1, mode);
2443          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Documentation for this instance of data.", 0, 1, documentation);
2444          default: return super.getNamedProperty(_hash, _name, _checkValid);
2445          }
2446
2447        }
2448
2449      @Override
2450      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2451        switch (hash) {
2452        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // IdType
2453        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // StringType
2454        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // Enumeration<StructureMapInputMode>
2455        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
2456        default: return super.getProperty(hash, name, checkValid);
2457        }
2458
2459      }
2460
2461      @Override
2462      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2463        switch (hash) {
2464        case 3373707: // name
2465          this.name = TypeConvertor.castToId(value); // IdType
2466          return value;
2467        case 3575610: // type
2468          this.type = TypeConvertor.castToString(value); // StringType
2469          return value;
2470        case 3357091: // mode
2471          value = new StructureMapInputModeEnumFactory().fromType(TypeConvertor.castToCode(value));
2472          this.mode = (Enumeration) value; // Enumeration<StructureMapInputMode>
2473          return value;
2474        case 1587405498: // documentation
2475          this.documentation = TypeConvertor.castToString(value); // StringType
2476          return value;
2477        default: return super.setProperty(hash, name, value);
2478        }
2479
2480      }
2481
2482      @Override
2483      public Base setProperty(String name, Base value) throws FHIRException {
2484        if (name.equals("name")) {
2485          this.name = TypeConvertor.castToId(value); // IdType
2486        } else if (name.equals("type")) {
2487          this.type = TypeConvertor.castToString(value); // StringType
2488        } else if (name.equals("mode")) {
2489          value = new StructureMapInputModeEnumFactory().fromType(TypeConvertor.castToCode(value));
2490          this.mode = (Enumeration) value; // Enumeration<StructureMapInputMode>
2491        } else if (name.equals("documentation")) {
2492          this.documentation = TypeConvertor.castToString(value); // StringType
2493        } else
2494          return super.setProperty(name, value);
2495        return value;
2496      }
2497
2498      @Override
2499      public Base makeProperty(int hash, String name) throws FHIRException {
2500        switch (hash) {
2501        case 3373707:  return getNameElement();
2502        case 3575610:  return getTypeElement();
2503        case 3357091:  return getModeElement();
2504        case 1587405498:  return getDocumentationElement();
2505        default: return super.makeProperty(hash, name);
2506        }
2507
2508      }
2509
2510      @Override
2511      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2512        switch (hash) {
2513        case 3373707: /*name*/ return new String[] {"id"};
2514        case 3575610: /*type*/ return new String[] {"string"};
2515        case 3357091: /*mode*/ return new String[] {"code"};
2516        case 1587405498: /*documentation*/ return new String[] {"string"};
2517        default: return super.getTypesForProperty(hash, name);
2518        }
2519
2520      }
2521
2522      @Override
2523      public Base addChild(String name) throws FHIRException {
2524        if (name.equals("name")) {
2525          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.input.name");
2526        }
2527        else if (name.equals("type")) {
2528          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.input.type");
2529        }
2530        else if (name.equals("mode")) {
2531          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.input.mode");
2532        }
2533        else if (name.equals("documentation")) {
2534          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.input.documentation");
2535        }
2536        else
2537          return super.addChild(name);
2538      }
2539
2540      public StructureMapGroupInputComponent copy() {
2541        StructureMapGroupInputComponent dst = new StructureMapGroupInputComponent();
2542        copyValues(dst);
2543        return dst;
2544      }
2545
2546      public void copyValues(StructureMapGroupInputComponent dst) {
2547        super.copyValues(dst);
2548        dst.name = name == null ? null : name.copy();
2549        dst.type = type == null ? null : type.copy();
2550        dst.mode = mode == null ? null : mode.copy();
2551        dst.documentation = documentation == null ? null : documentation.copy();
2552      }
2553
2554      @Override
2555      public boolean equalsDeep(Base other_) {
2556        if (!super.equalsDeep(other_))
2557          return false;
2558        if (!(other_ instanceof StructureMapGroupInputComponent))
2559          return false;
2560        StructureMapGroupInputComponent o = (StructureMapGroupInputComponent) other_;
2561        return compareDeep(name, o.name, true) && compareDeep(type, o.type, true) && compareDeep(mode, o.mode, true)
2562           && compareDeep(documentation, o.documentation, true);
2563      }
2564
2565      @Override
2566      public boolean equalsShallow(Base other_) {
2567        if (!super.equalsShallow(other_))
2568          return false;
2569        if (!(other_ instanceof StructureMapGroupInputComponent))
2570          return false;
2571        StructureMapGroupInputComponent o = (StructureMapGroupInputComponent) other_;
2572        return compareValues(name, o.name, true) && compareValues(type, o.type, true) && compareValues(mode, o.mode, true)
2573           && compareValues(documentation, o.documentation, true);
2574      }
2575
2576      public boolean isEmpty() {
2577        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, type, mode, documentation
2578          );
2579      }
2580
2581  public String fhirType() {
2582    return "StructureMap.group.input";
2583
2584  }
2585
2586  }
2587
2588    @Block()
2589    public static class StructureMapGroupRuleComponent extends BackboneElement implements IBaseBackboneElement {
2590        /**
2591         * Name of the rule for internal references.
2592         */
2593        @Child(name = "name", type = {IdType.class}, order=1, min=0, max=1, modifier=false, summary=true)
2594        @Description(shortDefinition="Name of the rule for internal references", formalDefinition="Name of the rule for internal references." )
2595        protected IdType name;
2596
2597        /**
2598         * Source inputs to the mapping.
2599         */
2600        @Child(name = "source", type = {}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2601        @Description(shortDefinition="Source inputs to the mapping", formalDefinition="Source inputs to the mapping." )
2602        protected List<StructureMapGroupRuleSourceComponent> source;
2603
2604        /**
2605         * Content to create because of this mapping rule.
2606         */
2607        @Child(name = "target", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2608        @Description(shortDefinition="Content to create because of this mapping rule", formalDefinition="Content to create because of this mapping rule." )
2609        protected List<StructureMapGroupRuleTargetComponent> target;
2610
2611        /**
2612         * Rules contained in this rule.
2613         */
2614        @Child(name = "rule", type = {StructureMapGroupRuleComponent.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2615        @Description(shortDefinition="Rules contained in this rule", formalDefinition="Rules contained in this rule." )
2616        protected List<StructureMapGroupRuleComponent> rule;
2617
2618        /**
2619         * Which other rules to apply in the context of this rule.
2620         */
2621        @Child(name = "dependent", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
2622        @Description(shortDefinition="Which other rules to apply in the context of this rule", formalDefinition="Which other rules to apply in the context of this rule." )
2623        protected List<StructureMapGroupRuleDependentComponent> dependent;
2624
2625        /**
2626         * Documentation for this instance of data.
2627         */
2628        @Child(name = "documentation", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false)
2629        @Description(shortDefinition="Documentation for this instance of data", formalDefinition="Documentation for this instance of data." )
2630        protected StringType documentation;
2631
2632        private static final long serialVersionUID = 773925517L;
2633
2634    /**
2635     * Constructor
2636     */
2637      public StructureMapGroupRuleComponent() {
2638        super();
2639      }
2640
2641    /**
2642     * Constructor
2643     */
2644      public StructureMapGroupRuleComponent(StructureMapGroupRuleSourceComponent source) {
2645        super();
2646        this.addSource(source);
2647      }
2648
2649        /**
2650         * @return {@link #name} (Name of the rule for internal references.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2651         */
2652        public IdType getNameElement() { 
2653          if (this.name == null)
2654            if (Configuration.errorOnAutoCreate())
2655              throw new Error("Attempt to auto-create StructureMapGroupRuleComponent.name");
2656            else if (Configuration.doAutoCreate())
2657              this.name = new IdType(); // bb
2658          return this.name;
2659        }
2660
2661        public boolean hasNameElement() { 
2662          return this.name != null && !this.name.isEmpty();
2663        }
2664
2665        public boolean hasName() { 
2666          return this.name != null && !this.name.isEmpty();
2667        }
2668
2669        /**
2670         * @param value {@link #name} (Name of the rule for internal references.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
2671         */
2672        public StructureMapGroupRuleComponent setNameElement(IdType value) { 
2673          this.name = value;
2674          return this;
2675        }
2676
2677        /**
2678         * @return Name of the rule for internal references.
2679         */
2680        public String getName() { 
2681          return this.name == null ? null : this.name.getValue();
2682        }
2683
2684        /**
2685         * @param value Name of the rule for internal references.
2686         */
2687        public StructureMapGroupRuleComponent setName(String value) { 
2688          if (Utilities.noString(value))
2689            this.name = null;
2690          else {
2691            if (this.name == null)
2692              this.name = new IdType();
2693            this.name.setValue(value);
2694          }
2695          return this;
2696        }
2697
2698        /**
2699         * @return {@link #source} (Source inputs to the mapping.)
2700         */
2701        public List<StructureMapGroupRuleSourceComponent> getSource() { 
2702          if (this.source == null)
2703            this.source = new ArrayList<StructureMapGroupRuleSourceComponent>();
2704          return this.source;
2705        }
2706
2707        /**
2708         * @return Returns a reference to <code>this</code> for easy method chaining
2709         */
2710        public StructureMapGroupRuleComponent setSource(List<StructureMapGroupRuleSourceComponent> theSource) { 
2711          this.source = theSource;
2712          return this;
2713        }
2714
2715        public boolean hasSource() { 
2716          if (this.source == null)
2717            return false;
2718          for (StructureMapGroupRuleSourceComponent item : this.source)
2719            if (!item.isEmpty())
2720              return true;
2721          return false;
2722        }
2723
2724        public StructureMapGroupRuleSourceComponent addSource() { //3
2725          StructureMapGroupRuleSourceComponent t = new StructureMapGroupRuleSourceComponent();
2726          if (this.source == null)
2727            this.source = new ArrayList<StructureMapGroupRuleSourceComponent>();
2728          this.source.add(t);
2729          return t;
2730        }
2731
2732        public StructureMapGroupRuleComponent addSource(StructureMapGroupRuleSourceComponent t) { //3
2733          if (t == null)
2734            return this;
2735          if (this.source == null)
2736            this.source = new ArrayList<StructureMapGroupRuleSourceComponent>();
2737          this.source.add(t);
2738          return this;
2739        }
2740
2741        /**
2742         * @return The first repetition of repeating field {@link #source}, creating it if it does not already exist {3}
2743         */
2744        public StructureMapGroupRuleSourceComponent getSourceFirstRep() { 
2745          if (getSource().isEmpty()) {
2746            addSource();
2747          }
2748          return getSource().get(0);
2749        }
2750
2751        /**
2752         * @return {@link #target} (Content to create because of this mapping rule.)
2753         */
2754        public List<StructureMapGroupRuleTargetComponent> getTarget() { 
2755          if (this.target == null)
2756            this.target = new ArrayList<StructureMapGroupRuleTargetComponent>();
2757          return this.target;
2758        }
2759
2760        /**
2761         * @return Returns a reference to <code>this</code> for easy method chaining
2762         */
2763        public StructureMapGroupRuleComponent setTarget(List<StructureMapGroupRuleTargetComponent> theTarget) { 
2764          this.target = theTarget;
2765          return this;
2766        }
2767
2768        public boolean hasTarget() { 
2769          if (this.target == null)
2770            return false;
2771          for (StructureMapGroupRuleTargetComponent item : this.target)
2772            if (!item.isEmpty())
2773              return true;
2774          return false;
2775        }
2776
2777        public StructureMapGroupRuleTargetComponent addTarget() { //3
2778          StructureMapGroupRuleTargetComponent t = new StructureMapGroupRuleTargetComponent();
2779          if (this.target == null)
2780            this.target = new ArrayList<StructureMapGroupRuleTargetComponent>();
2781          this.target.add(t);
2782          return t;
2783        }
2784
2785        public StructureMapGroupRuleComponent addTarget(StructureMapGroupRuleTargetComponent t) { //3
2786          if (t == null)
2787            return this;
2788          if (this.target == null)
2789            this.target = new ArrayList<StructureMapGroupRuleTargetComponent>();
2790          this.target.add(t);
2791          return this;
2792        }
2793
2794        /**
2795         * @return The first repetition of repeating field {@link #target}, creating it if it does not already exist {3}
2796         */
2797        public StructureMapGroupRuleTargetComponent getTargetFirstRep() { 
2798          if (getTarget().isEmpty()) {
2799            addTarget();
2800          }
2801          return getTarget().get(0);
2802        }
2803
2804        /**
2805         * @return {@link #rule} (Rules contained in this rule.)
2806         */
2807        public List<StructureMapGroupRuleComponent> getRule() { 
2808          if (this.rule == null)
2809            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
2810          return this.rule;
2811        }
2812
2813        /**
2814         * @return Returns a reference to <code>this</code> for easy method chaining
2815         */
2816        public StructureMapGroupRuleComponent setRule(List<StructureMapGroupRuleComponent> theRule) { 
2817          this.rule = theRule;
2818          return this;
2819        }
2820
2821        public boolean hasRule() { 
2822          if (this.rule == null)
2823            return false;
2824          for (StructureMapGroupRuleComponent item : this.rule)
2825            if (!item.isEmpty())
2826              return true;
2827          return false;
2828        }
2829
2830        public StructureMapGroupRuleComponent addRule() { //3
2831          StructureMapGroupRuleComponent t = new StructureMapGroupRuleComponent();
2832          if (this.rule == null)
2833            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
2834          this.rule.add(t);
2835          return t;
2836        }
2837
2838        public StructureMapGroupRuleComponent addRule(StructureMapGroupRuleComponent t) { //3
2839          if (t == null)
2840            return this;
2841          if (this.rule == null)
2842            this.rule = new ArrayList<StructureMapGroupRuleComponent>();
2843          this.rule.add(t);
2844          return this;
2845        }
2846
2847        /**
2848         * @return The first repetition of repeating field {@link #rule}, creating it if it does not already exist {3}
2849         */
2850        public StructureMapGroupRuleComponent getRuleFirstRep() { 
2851          if (getRule().isEmpty()) {
2852            addRule();
2853          }
2854          return getRule().get(0);
2855        }
2856
2857        /**
2858         * @return {@link #dependent} (Which other rules to apply in the context of this rule.)
2859         */
2860        public List<StructureMapGroupRuleDependentComponent> getDependent() { 
2861          if (this.dependent == null)
2862            this.dependent = new ArrayList<StructureMapGroupRuleDependentComponent>();
2863          return this.dependent;
2864        }
2865
2866        /**
2867         * @return Returns a reference to <code>this</code> for easy method chaining
2868         */
2869        public StructureMapGroupRuleComponent setDependent(List<StructureMapGroupRuleDependentComponent> theDependent) { 
2870          this.dependent = theDependent;
2871          return this;
2872        }
2873
2874        public boolean hasDependent() { 
2875          if (this.dependent == null)
2876            return false;
2877          for (StructureMapGroupRuleDependentComponent item : this.dependent)
2878            if (!item.isEmpty())
2879              return true;
2880          return false;
2881        }
2882
2883        public StructureMapGroupRuleDependentComponent addDependent() { //3
2884          StructureMapGroupRuleDependentComponent t = new StructureMapGroupRuleDependentComponent();
2885          if (this.dependent == null)
2886            this.dependent = new ArrayList<StructureMapGroupRuleDependentComponent>();
2887          this.dependent.add(t);
2888          return t;
2889        }
2890
2891        public StructureMapGroupRuleComponent addDependent(StructureMapGroupRuleDependentComponent t) { //3
2892          if (t == null)
2893            return this;
2894          if (this.dependent == null)
2895            this.dependent = new ArrayList<StructureMapGroupRuleDependentComponent>();
2896          this.dependent.add(t);
2897          return this;
2898        }
2899
2900        /**
2901         * @return The first repetition of repeating field {@link #dependent}, creating it if it does not already exist {3}
2902         */
2903        public StructureMapGroupRuleDependentComponent getDependentFirstRep() { 
2904          if (getDependent().isEmpty()) {
2905            addDependent();
2906          }
2907          return getDependent().get(0);
2908        }
2909
2910        /**
2911         * @return {@link #documentation} (Documentation for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
2912         */
2913        public StringType getDocumentationElement() { 
2914          if (this.documentation == null)
2915            if (Configuration.errorOnAutoCreate())
2916              throw new Error("Attempt to auto-create StructureMapGroupRuleComponent.documentation");
2917            else if (Configuration.doAutoCreate())
2918              this.documentation = new StringType(); // bb
2919          return this.documentation;
2920        }
2921
2922        public boolean hasDocumentationElement() { 
2923          return this.documentation != null && !this.documentation.isEmpty();
2924        }
2925
2926        public boolean hasDocumentation() { 
2927          return this.documentation != null && !this.documentation.isEmpty();
2928        }
2929
2930        /**
2931         * @param value {@link #documentation} (Documentation for this instance of data.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value
2932         */
2933        public StructureMapGroupRuleComponent setDocumentationElement(StringType value) { 
2934          this.documentation = value;
2935          return this;
2936        }
2937
2938        /**
2939         * @return Documentation for this instance of data.
2940         */
2941        public String getDocumentation() { 
2942          return this.documentation == null ? null : this.documentation.getValue();
2943        }
2944
2945        /**
2946         * @param value Documentation for this instance of data.
2947         */
2948        public StructureMapGroupRuleComponent setDocumentation(String value) { 
2949          if (Utilities.noString(value))
2950            this.documentation = null;
2951          else {
2952            if (this.documentation == null)
2953              this.documentation = new StringType();
2954            this.documentation.setValue(value);
2955          }
2956          return this;
2957        }
2958
2959        protected void listChildren(List<Property> children) {
2960          super.listChildren(children);
2961          children.add(new Property("name", "id", "Name of the rule for internal references.", 0, 1, name));
2962          children.add(new Property("source", "", "Source inputs to the mapping.", 0, java.lang.Integer.MAX_VALUE, source));
2963          children.add(new Property("target", "", "Content to create because of this mapping rule.", 0, java.lang.Integer.MAX_VALUE, target));
2964          children.add(new Property("rule", "@StructureMap.group.rule", "Rules contained in this rule.", 0, java.lang.Integer.MAX_VALUE, rule));
2965          children.add(new Property("dependent", "", "Which other rules to apply in the context of this rule.", 0, java.lang.Integer.MAX_VALUE, dependent));
2966          children.add(new Property("documentation", "string", "Documentation for this instance of data.", 0, 1, documentation));
2967        }
2968
2969        @Override
2970        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2971          switch (_hash) {
2972          case 3373707: /*name*/  return new Property("name", "id", "Name of the rule for internal references.", 0, 1, name);
2973          case -896505829: /*source*/  return new Property("source", "", "Source inputs to the mapping.", 0, java.lang.Integer.MAX_VALUE, source);
2974          case -880905839: /*target*/  return new Property("target", "", "Content to create because of this mapping rule.", 0, java.lang.Integer.MAX_VALUE, target);
2975          case 3512060: /*rule*/  return new Property("rule", "@StructureMap.group.rule", "Rules contained in this rule.", 0, java.lang.Integer.MAX_VALUE, rule);
2976          case -1109226753: /*dependent*/  return new Property("dependent", "", "Which other rules to apply in the context of this rule.", 0, java.lang.Integer.MAX_VALUE, dependent);
2977          case 1587405498: /*documentation*/  return new Property("documentation", "string", "Documentation for this instance of data.", 0, 1, documentation);
2978          default: return super.getNamedProperty(_hash, _name, _checkValid);
2979          }
2980
2981        }
2982
2983      @Override
2984      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2985        switch (hash) {
2986        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // IdType
2987        case -896505829: /*source*/ return this.source == null ? new Base[0] : this.source.toArray(new Base[this.source.size()]); // StructureMapGroupRuleSourceComponent
2988        case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // StructureMapGroupRuleTargetComponent
2989        case 3512060: /*rule*/ return this.rule == null ? new Base[0] : this.rule.toArray(new Base[this.rule.size()]); // StructureMapGroupRuleComponent
2990        case -1109226753: /*dependent*/ return this.dependent == null ? new Base[0] : this.dependent.toArray(new Base[this.dependent.size()]); // StructureMapGroupRuleDependentComponent
2991        case 1587405498: /*documentation*/ return this.documentation == null ? new Base[0] : new Base[] {this.documentation}; // StringType
2992        default: return super.getProperty(hash, name, checkValid);
2993        }
2994
2995      }
2996
2997      @Override
2998      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2999        switch (hash) {
3000        case 3373707: // name
3001          this.name = TypeConvertor.castToId(value); // IdType
3002          return value;
3003        case -896505829: // source
3004          this.getSource().add((StructureMapGroupRuleSourceComponent) value); // StructureMapGroupRuleSourceComponent
3005          return value;
3006        case -880905839: // target
3007          this.getTarget().add((StructureMapGroupRuleTargetComponent) value); // StructureMapGroupRuleTargetComponent
3008          return value;
3009        case 3512060: // rule
3010          this.getRule().add((StructureMapGroupRuleComponent) value); // StructureMapGroupRuleComponent
3011          return value;
3012        case -1109226753: // dependent
3013          this.getDependent().add((StructureMapGroupRuleDependentComponent) value); // StructureMapGroupRuleDependentComponent
3014          return value;
3015        case 1587405498: // documentation
3016          this.documentation = TypeConvertor.castToString(value); // StringType
3017          return value;
3018        default: return super.setProperty(hash, name, value);
3019        }
3020
3021      }
3022
3023      @Override
3024      public Base setProperty(String name, Base value) throws FHIRException {
3025        if (name.equals("name")) {
3026          this.name = TypeConvertor.castToId(value); // IdType
3027        } else if (name.equals("source")) {
3028          this.getSource().add((StructureMapGroupRuleSourceComponent) value);
3029        } else if (name.equals("target")) {
3030          this.getTarget().add((StructureMapGroupRuleTargetComponent) value);
3031        } else if (name.equals("rule")) {
3032          this.getRule().add((StructureMapGroupRuleComponent) value);
3033        } else if (name.equals("dependent")) {
3034          this.getDependent().add((StructureMapGroupRuleDependentComponent) value);
3035        } else if (name.equals("documentation")) {
3036          this.documentation = TypeConvertor.castToString(value); // StringType
3037        } else
3038          return super.setProperty(name, value);
3039        return value;
3040      }
3041
3042      @Override
3043      public Base makeProperty(int hash, String name) throws FHIRException {
3044        switch (hash) {
3045        case 3373707:  return getNameElement();
3046        case -896505829:  return addSource(); 
3047        case -880905839:  return addTarget(); 
3048        case 3512060:  return addRule(); 
3049        case -1109226753:  return addDependent(); 
3050        case 1587405498:  return getDocumentationElement();
3051        default: return super.makeProperty(hash, name);
3052        }
3053
3054      }
3055
3056      @Override
3057      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3058        switch (hash) {
3059        case 3373707: /*name*/ return new String[] {"id"};
3060        case -896505829: /*source*/ return new String[] {};
3061        case -880905839: /*target*/ return new String[] {};
3062        case 3512060: /*rule*/ return new String[] {"@StructureMap.group.rule"};
3063        case -1109226753: /*dependent*/ return new String[] {};
3064        case 1587405498: /*documentation*/ return new String[] {"string"};
3065        default: return super.getTypesForProperty(hash, name);
3066        }
3067
3068      }
3069
3070      @Override
3071      public Base addChild(String name) throws FHIRException {
3072        if (name.equals("name")) {
3073          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.name");
3074        }
3075        else if (name.equals("source")) {
3076          return addSource();
3077        }
3078        else if (name.equals("target")) {
3079          return addTarget();
3080        }
3081        else if (name.equals("rule")) {
3082          return addRule();
3083        }
3084        else if (name.equals("dependent")) {
3085          return addDependent();
3086        }
3087        else if (name.equals("documentation")) {
3088          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.documentation");
3089        }
3090        else
3091          return super.addChild(name);
3092      }
3093
3094      public StructureMapGroupRuleComponent copy() {
3095        StructureMapGroupRuleComponent dst = new StructureMapGroupRuleComponent();
3096        copyValues(dst);
3097        return dst;
3098      }
3099
3100      public void copyValues(StructureMapGroupRuleComponent dst) {
3101        super.copyValues(dst);
3102        dst.name = name == null ? null : name.copy();
3103        if (source != null) {
3104          dst.source = new ArrayList<StructureMapGroupRuleSourceComponent>();
3105          for (StructureMapGroupRuleSourceComponent i : source)
3106            dst.source.add(i.copy());
3107        };
3108        if (target != null) {
3109          dst.target = new ArrayList<StructureMapGroupRuleTargetComponent>();
3110          for (StructureMapGroupRuleTargetComponent i : target)
3111            dst.target.add(i.copy());
3112        };
3113        if (rule != null) {
3114          dst.rule = new ArrayList<StructureMapGroupRuleComponent>();
3115          for (StructureMapGroupRuleComponent i : rule)
3116            dst.rule.add(i.copy());
3117        };
3118        if (dependent != null) {
3119          dst.dependent = new ArrayList<StructureMapGroupRuleDependentComponent>();
3120          for (StructureMapGroupRuleDependentComponent i : dependent)
3121            dst.dependent.add(i.copy());
3122        };
3123        dst.documentation = documentation == null ? null : documentation.copy();
3124      }
3125
3126      @Override
3127      public boolean equalsDeep(Base other_) {
3128        if (!super.equalsDeep(other_))
3129          return false;
3130        if (!(other_ instanceof StructureMapGroupRuleComponent))
3131          return false;
3132        StructureMapGroupRuleComponent o = (StructureMapGroupRuleComponent) other_;
3133        return compareDeep(name, o.name, true) && compareDeep(source, o.source, true) && compareDeep(target, o.target, true)
3134           && compareDeep(rule, o.rule, true) && compareDeep(dependent, o.dependent, true) && compareDeep(documentation, o.documentation, true)
3135          ;
3136      }
3137
3138      @Override
3139      public boolean equalsShallow(Base other_) {
3140        if (!super.equalsShallow(other_))
3141          return false;
3142        if (!(other_ instanceof StructureMapGroupRuleComponent))
3143          return false;
3144        StructureMapGroupRuleComponent o = (StructureMapGroupRuleComponent) other_;
3145        return compareValues(name, o.name, true) && compareValues(documentation, o.documentation, true);
3146      }
3147
3148      public boolean isEmpty() {
3149        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, source, target, rule
3150          , dependent, documentation);
3151      }
3152
3153  public String fhirType() {
3154    return "StructureMap.group.rule";
3155
3156  }
3157
3158// added from java-adornments.txt:
3159public String toString() {
3160    return StructureMapUtilities.ruleToString(this);
3161  }
3162// end addition
3163  }
3164
3165    @Block()
3166    public static class StructureMapGroupRuleSourceComponent extends BackboneElement implements IBaseBackboneElement {
3167        /**
3168         * Type or variable this rule applies to.
3169         */
3170        @Child(name = "context", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=true)
3171        @Description(shortDefinition="Type or variable this rule applies to", formalDefinition="Type or variable this rule applies to." )
3172        protected IdType context;
3173
3174        /**
3175         * Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.
3176         */
3177        @Child(name = "min", type = {IntegerType.class}, order=2, min=0, max=1, modifier=false, summary=true)
3178        @Description(shortDefinition="Specified minimum cardinality", formalDefinition="Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content." )
3179        protected IntegerType min;
3180
3181        /**
3182         * Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).
3183         */
3184        @Child(name = "max", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
3185        @Description(shortDefinition="Specified maximum cardinality (number or *)", formalDefinition="Specified maximum cardinality for the element - a number or a \"*\". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value)." )
3186        protected StringType max;
3187
3188        /**
3189         * Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.
3190         */
3191        @Child(name = "type", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true)
3192        @Description(shortDefinition="Rule only applies if source has this type", formalDefinition="Specified type for the element. This works as a condition on the mapping - use for polymorphic elements." )
3193        protected StringType type;
3194
3195        /**
3196         * A value to use if there is no existing value in the source object.
3197         */
3198        @Child(name = "defaultValue", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
3199        @Description(shortDefinition="Default value if no value exists", formalDefinition="A value to use if there is no existing value in the source object." )
3200        protected StringType defaultValue;
3201
3202        /**
3203         * Optional field for this source.
3204         */
3205        @Child(name = "element", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=true)
3206        @Description(shortDefinition="Optional field for this source", formalDefinition="Optional field for this source." )
3207        protected StringType element;
3208
3209        /**
3210         * How to handle the list mode for this element.
3211         */
3212        @Child(name = "listMode", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=true)
3213        @Description(shortDefinition="first | not_first | last | not_last | only_one", formalDefinition="How to handle the list mode for this element." )
3214        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-source-list-mode")
3215        protected Enumeration<StructureMapSourceListMode> listMode;
3216
3217        /**
3218         * Named context for field, if a field is specified.
3219         */
3220        @Child(name = "variable", type = {IdType.class}, order=8, min=0, max=1, modifier=false, summary=true)
3221        @Description(shortDefinition="Named context for field, if a field is specified", formalDefinition="Named context for field, if a field is specified." )
3222        protected IdType variable;
3223
3224        /**
3225         * FHIRPath expression  - must be true or the rule does not apply.
3226         */
3227        @Child(name = "condition", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
3228        @Description(shortDefinition="FHIRPath expression  - must be true or the rule does not apply", formalDefinition="FHIRPath expression  - must be true or the rule does not apply." )
3229        protected StringType condition;
3230
3231        /**
3232         * FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.
3233         */
3234        @Child(name = "check", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=true)
3235        @Description(shortDefinition="FHIRPath expression  - must be true or the mapping engine throws an error instead of completing", formalDefinition="FHIRPath expression  - must be true or the mapping engine throws an error instead of completing." )
3236        protected StringType check;
3237
3238        /**
3239         * A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.
3240         */
3241        @Child(name = "logMessage", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
3242        @Description(shortDefinition="Message to put in log if source exists (FHIRPath)", formalDefinition="A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found." )
3243        protected StringType logMessage;
3244
3245        private static final long serialVersionUID = 214178119L;
3246
3247    /**
3248     * Constructor
3249     */
3250      public StructureMapGroupRuleSourceComponent() {
3251        super();
3252      }
3253
3254    /**
3255     * Constructor
3256     */
3257      public StructureMapGroupRuleSourceComponent(String context) {
3258        super();
3259        this.setContext(context);
3260      }
3261
3262        /**
3263         * @return {@link #context} (Type or variable this rule applies to.). This is the underlying object with id, value and extensions. The accessor "getContext" gives direct access to the value
3264         */
3265        public IdType getContextElement() { 
3266          if (this.context == null)
3267            if (Configuration.errorOnAutoCreate())
3268              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.context");
3269            else if (Configuration.doAutoCreate())
3270              this.context = new IdType(); // bb
3271          return this.context;
3272        }
3273
3274        public boolean hasContextElement() { 
3275          return this.context != null && !this.context.isEmpty();
3276        }
3277
3278        public boolean hasContext() { 
3279          return this.context != null && !this.context.isEmpty();
3280        }
3281
3282        /**
3283         * @param value {@link #context} (Type or variable this rule applies to.). This is the underlying object with id, value and extensions. The accessor "getContext" gives direct access to the value
3284         */
3285        public StructureMapGroupRuleSourceComponent setContextElement(IdType value) { 
3286          this.context = value;
3287          return this;
3288        }
3289
3290        /**
3291         * @return Type or variable this rule applies to.
3292         */
3293        public String getContext() { 
3294          return this.context == null ? null : this.context.getValue();
3295        }
3296
3297        /**
3298         * @param value Type or variable this rule applies to.
3299         */
3300        public StructureMapGroupRuleSourceComponent setContext(String value) { 
3301            if (this.context == null)
3302              this.context = new IdType();
3303            this.context.setValue(value);
3304          return this;
3305        }
3306
3307        /**
3308         * @return {@link #min} (Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value
3309         */
3310        public IntegerType getMinElement() { 
3311          if (this.min == null)
3312            if (Configuration.errorOnAutoCreate())
3313              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.min");
3314            else if (Configuration.doAutoCreate())
3315              this.min = new IntegerType(); // bb
3316          return this.min;
3317        }
3318
3319        public boolean hasMinElement() { 
3320          return this.min != null && !this.min.isEmpty();
3321        }
3322
3323        public boolean hasMin() { 
3324          return this.min != null && !this.min.isEmpty();
3325        }
3326
3327        /**
3328         * @param value {@link #min} (Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value
3329         */
3330        public StructureMapGroupRuleSourceComponent setMinElement(IntegerType value) { 
3331          this.min = value;
3332          return this;
3333        }
3334
3335        /**
3336         * @return Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.
3337         */
3338        public int getMin() { 
3339          return this.min == null || this.min.isEmpty() ? 0 : this.min.getValue();
3340        }
3341
3342        /**
3343         * @param value Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.
3344         */
3345        public StructureMapGroupRuleSourceComponent setMin(int value) { 
3346            if (this.min == null)
3347              this.min = new IntegerType();
3348            this.min.setValue(value);
3349          return this;
3350        }
3351
3352        /**
3353         * @return {@link #max} (Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value
3354         */
3355        public StringType getMaxElement() { 
3356          if (this.max == null)
3357            if (Configuration.errorOnAutoCreate())
3358              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.max");
3359            else if (Configuration.doAutoCreate())
3360              this.max = new StringType(); // bb
3361          return this.max;
3362        }
3363
3364        public boolean hasMaxElement() { 
3365          return this.max != null && !this.max.isEmpty();
3366        }
3367
3368        public boolean hasMax() { 
3369          return this.max != null && !this.max.isEmpty();
3370        }
3371
3372        /**
3373         * @param value {@link #max} (Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value
3374         */
3375        public StructureMapGroupRuleSourceComponent setMaxElement(StringType value) { 
3376          this.max = value;
3377          return this;
3378        }
3379
3380        /**
3381         * @return Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).
3382         */
3383        public String getMax() { 
3384          return this.max == null ? null : this.max.getValue();
3385        }
3386
3387        /**
3388         * @param value Specified maximum cardinality for the element - a number or a "*". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).
3389         */
3390        public StructureMapGroupRuleSourceComponent setMax(String value) { 
3391          if (Utilities.noString(value))
3392            this.max = null;
3393          else {
3394            if (this.max == null)
3395              this.max = new StringType();
3396            this.max.setValue(value);
3397          }
3398          return this;
3399        }
3400
3401        /**
3402         * @return {@link #type} (Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
3403         */
3404        public StringType getTypeElement() { 
3405          if (this.type == null)
3406            if (Configuration.errorOnAutoCreate())
3407              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.type");
3408            else if (Configuration.doAutoCreate())
3409              this.type = new StringType(); // bb
3410          return this.type;
3411        }
3412
3413        public boolean hasTypeElement() { 
3414          return this.type != null && !this.type.isEmpty();
3415        }
3416
3417        public boolean hasType() { 
3418          return this.type != null && !this.type.isEmpty();
3419        }
3420
3421        /**
3422         * @param value {@link #type} (Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value
3423         */
3424        public StructureMapGroupRuleSourceComponent setTypeElement(StringType value) { 
3425          this.type = value;
3426          return this;
3427        }
3428
3429        /**
3430         * @return Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.
3431         */
3432        public String getType() { 
3433          return this.type == null ? null : this.type.getValue();
3434        }
3435
3436        /**
3437         * @param value Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.
3438         */
3439        public StructureMapGroupRuleSourceComponent setType(String value) { 
3440          if (Utilities.noString(value))
3441            this.type = null;
3442          else {
3443            if (this.type == null)
3444              this.type = new StringType();
3445            this.type.setValue(value);
3446          }
3447          return this;
3448        }
3449
3450        /**
3451         * @return {@link #defaultValue} (A value to use if there is no existing value in the source object.). This is the underlying object with id, value and extensions. The accessor "getDefaultValue" gives direct access to the value
3452         */
3453        public StringType getDefaultValueElement() { 
3454          if (this.defaultValue == null)
3455            if (Configuration.errorOnAutoCreate())
3456              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.defaultValue");
3457            else if (Configuration.doAutoCreate())
3458              this.defaultValue = new StringType(); // bb
3459          return this.defaultValue;
3460        }
3461
3462        public boolean hasDefaultValueElement() { 
3463          return this.defaultValue != null && !this.defaultValue.isEmpty();
3464        }
3465
3466        public boolean hasDefaultValue() { 
3467          return this.defaultValue != null && !this.defaultValue.isEmpty();
3468        }
3469
3470        /**
3471         * @param value {@link #defaultValue} (A value to use if there is no existing value in the source object.). This is the underlying object with id, value and extensions. The accessor "getDefaultValue" gives direct access to the value
3472         */
3473        public StructureMapGroupRuleSourceComponent setDefaultValueElement(StringType value) { 
3474          this.defaultValue = value;
3475          return this;
3476        }
3477
3478        /**
3479         * @return A value to use if there is no existing value in the source object.
3480         */
3481        public String getDefaultValue() { 
3482          return this.defaultValue == null ? null : this.defaultValue.getValue();
3483        }
3484
3485        /**
3486         * @param value A value to use if there is no existing value in the source object.
3487         */
3488        public StructureMapGroupRuleSourceComponent setDefaultValue(String value) { 
3489          if (Utilities.noString(value))
3490            this.defaultValue = null;
3491          else {
3492            if (this.defaultValue == null)
3493              this.defaultValue = new StringType();
3494            this.defaultValue.setValue(value);
3495          }
3496          return this;
3497        }
3498
3499        /**
3500         * @return {@link #element} (Optional field for this source.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value
3501         */
3502        public StringType getElementElement() { 
3503          if (this.element == null)
3504            if (Configuration.errorOnAutoCreate())
3505              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.element");
3506            else if (Configuration.doAutoCreate())
3507              this.element = new StringType(); // bb
3508          return this.element;
3509        }
3510
3511        public boolean hasElementElement() { 
3512          return this.element != null && !this.element.isEmpty();
3513        }
3514
3515        public boolean hasElement() { 
3516          return this.element != null && !this.element.isEmpty();
3517        }
3518
3519        /**
3520         * @param value {@link #element} (Optional field for this source.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value
3521         */
3522        public StructureMapGroupRuleSourceComponent setElementElement(StringType value) { 
3523          this.element = value;
3524          return this;
3525        }
3526
3527        /**
3528         * @return Optional field for this source.
3529         */
3530        public String getElement() { 
3531          return this.element == null ? null : this.element.getValue();
3532        }
3533
3534        /**
3535         * @param value Optional field for this source.
3536         */
3537        public StructureMapGroupRuleSourceComponent setElement(String value) { 
3538          if (Utilities.noString(value))
3539            this.element = null;
3540          else {
3541            if (this.element == null)
3542              this.element = new StringType();
3543            this.element.setValue(value);
3544          }
3545          return this;
3546        }
3547
3548        /**
3549         * @return {@link #listMode} (How to handle the list mode for this element.). This is the underlying object with id, value and extensions. The accessor "getListMode" gives direct access to the value
3550         */
3551        public Enumeration<StructureMapSourceListMode> getListModeElement() { 
3552          if (this.listMode == null)
3553            if (Configuration.errorOnAutoCreate())
3554              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.listMode");
3555            else if (Configuration.doAutoCreate())
3556              this.listMode = new Enumeration<StructureMapSourceListMode>(new StructureMapSourceListModeEnumFactory()); // bb
3557          return this.listMode;
3558        }
3559
3560        public boolean hasListModeElement() { 
3561          return this.listMode != null && !this.listMode.isEmpty();
3562        }
3563
3564        public boolean hasListMode() { 
3565          return this.listMode != null && !this.listMode.isEmpty();
3566        }
3567
3568        /**
3569         * @param value {@link #listMode} (How to handle the list mode for this element.). This is the underlying object with id, value and extensions. The accessor "getListMode" gives direct access to the value
3570         */
3571        public StructureMapGroupRuleSourceComponent setListModeElement(Enumeration<StructureMapSourceListMode> value) { 
3572          this.listMode = value;
3573          return this;
3574        }
3575
3576        /**
3577         * @return How to handle the list mode for this element.
3578         */
3579        public StructureMapSourceListMode getListMode() { 
3580          return this.listMode == null ? null : this.listMode.getValue();
3581        }
3582
3583        /**
3584         * @param value How to handle the list mode for this element.
3585         */
3586        public StructureMapGroupRuleSourceComponent setListMode(StructureMapSourceListMode value) { 
3587          if (value == null)
3588            this.listMode = null;
3589          else {
3590            if (this.listMode == null)
3591              this.listMode = new Enumeration<StructureMapSourceListMode>(new StructureMapSourceListModeEnumFactory());
3592            this.listMode.setValue(value);
3593          }
3594          return this;
3595        }
3596
3597        /**
3598         * @return {@link #variable} (Named context for field, if a field is specified.). This is the underlying object with id, value and extensions. The accessor "getVariable" gives direct access to the value
3599         */
3600        public IdType getVariableElement() { 
3601          if (this.variable == null)
3602            if (Configuration.errorOnAutoCreate())
3603              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.variable");
3604            else if (Configuration.doAutoCreate())
3605              this.variable = new IdType(); // bb
3606          return this.variable;
3607        }
3608
3609        public boolean hasVariableElement() { 
3610          return this.variable != null && !this.variable.isEmpty();
3611        }
3612
3613        public boolean hasVariable() { 
3614          return this.variable != null && !this.variable.isEmpty();
3615        }
3616
3617        /**
3618         * @param value {@link #variable} (Named context for field, if a field is specified.). This is the underlying object with id, value and extensions. The accessor "getVariable" gives direct access to the value
3619         */
3620        public StructureMapGroupRuleSourceComponent setVariableElement(IdType value) { 
3621          this.variable = value;
3622          return this;
3623        }
3624
3625        /**
3626         * @return Named context for field, if a field is specified.
3627         */
3628        public String getVariable() { 
3629          return this.variable == null ? null : this.variable.getValue();
3630        }
3631
3632        /**
3633         * @param value Named context for field, if a field is specified.
3634         */
3635        public StructureMapGroupRuleSourceComponent setVariable(String value) { 
3636          if (Utilities.noString(value))
3637            this.variable = null;
3638          else {
3639            if (this.variable == null)
3640              this.variable = new IdType();
3641            this.variable.setValue(value);
3642          }
3643          return this;
3644        }
3645
3646        /**
3647         * @return {@link #condition} (FHIRPath expression  - must be true or the rule does not apply.). This is the underlying object with id, value and extensions. The accessor "getCondition" gives direct access to the value
3648         */
3649        public StringType getConditionElement() { 
3650          if (this.condition == null)
3651            if (Configuration.errorOnAutoCreate())
3652              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.condition");
3653            else if (Configuration.doAutoCreate())
3654              this.condition = new StringType(); // bb
3655          return this.condition;
3656        }
3657
3658        public boolean hasConditionElement() { 
3659          return this.condition != null && !this.condition.isEmpty();
3660        }
3661
3662        public boolean hasCondition() { 
3663          return this.condition != null && !this.condition.isEmpty();
3664        }
3665
3666        /**
3667         * @param value {@link #condition} (FHIRPath expression  - must be true or the rule does not apply.). This is the underlying object with id, value and extensions. The accessor "getCondition" gives direct access to the value
3668         */
3669        public StructureMapGroupRuleSourceComponent setConditionElement(StringType value) { 
3670          this.condition = value;
3671          return this;
3672        }
3673
3674        /**
3675         * @return FHIRPath expression  - must be true or the rule does not apply.
3676         */
3677        public String getCondition() { 
3678          return this.condition == null ? null : this.condition.getValue();
3679        }
3680
3681        /**
3682         * @param value FHIRPath expression  - must be true or the rule does not apply.
3683         */
3684        public StructureMapGroupRuleSourceComponent setCondition(String value) { 
3685          if (Utilities.noString(value))
3686            this.condition = null;
3687          else {
3688            if (this.condition == null)
3689              this.condition = new StringType();
3690            this.condition.setValue(value);
3691          }
3692          return this;
3693        }
3694
3695        /**
3696         * @return {@link #check} (FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.). This is the underlying object with id, value and extensions. The accessor "getCheck" gives direct access to the value
3697         */
3698        public StringType getCheckElement() { 
3699          if (this.check == null)
3700            if (Configuration.errorOnAutoCreate())
3701              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.check");
3702            else if (Configuration.doAutoCreate())
3703              this.check = new StringType(); // bb
3704          return this.check;
3705        }
3706
3707        public boolean hasCheckElement() { 
3708          return this.check != null && !this.check.isEmpty();
3709        }
3710
3711        public boolean hasCheck() { 
3712          return this.check != null && !this.check.isEmpty();
3713        }
3714
3715        /**
3716         * @param value {@link #check} (FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.). This is the underlying object with id, value and extensions. The accessor "getCheck" gives direct access to the value
3717         */
3718        public StructureMapGroupRuleSourceComponent setCheckElement(StringType value) { 
3719          this.check = value;
3720          return this;
3721        }
3722
3723        /**
3724         * @return FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.
3725         */
3726        public String getCheck() { 
3727          return this.check == null ? null : this.check.getValue();
3728        }
3729
3730        /**
3731         * @param value FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.
3732         */
3733        public StructureMapGroupRuleSourceComponent setCheck(String value) { 
3734          if (Utilities.noString(value))
3735            this.check = null;
3736          else {
3737            if (this.check == null)
3738              this.check = new StringType();
3739            this.check.setValue(value);
3740          }
3741          return this;
3742        }
3743
3744        /**
3745         * @return {@link #logMessage} (A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.). This is the underlying object with id, value and extensions. The accessor "getLogMessage" gives direct access to the value
3746         */
3747        public StringType getLogMessageElement() { 
3748          if (this.logMessage == null)
3749            if (Configuration.errorOnAutoCreate())
3750              throw new Error("Attempt to auto-create StructureMapGroupRuleSourceComponent.logMessage");
3751            else if (Configuration.doAutoCreate())
3752              this.logMessage = new StringType(); // bb
3753          return this.logMessage;
3754        }
3755
3756        public boolean hasLogMessageElement() { 
3757          return this.logMessage != null && !this.logMessage.isEmpty();
3758        }
3759
3760        public boolean hasLogMessage() { 
3761          return this.logMessage != null && !this.logMessage.isEmpty();
3762        }
3763
3764        /**
3765         * @param value {@link #logMessage} (A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.). This is the underlying object with id, value and extensions. The accessor "getLogMessage" gives direct access to the value
3766         */
3767        public StructureMapGroupRuleSourceComponent setLogMessageElement(StringType value) { 
3768          this.logMessage = value;
3769          return this;
3770        }
3771
3772        /**
3773         * @return A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.
3774         */
3775        public String getLogMessage() { 
3776          return this.logMessage == null ? null : this.logMessage.getValue();
3777        }
3778
3779        /**
3780         * @param value A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.
3781         */
3782        public StructureMapGroupRuleSourceComponent setLogMessage(String value) { 
3783          if (Utilities.noString(value))
3784            this.logMessage = null;
3785          else {
3786            if (this.logMessage == null)
3787              this.logMessage = new StringType();
3788            this.logMessage.setValue(value);
3789          }
3790          return this;
3791        }
3792
3793        protected void listChildren(List<Property> children) {
3794          super.listChildren(children);
3795          children.add(new Property("context", "id", "Type or variable this rule applies to.", 0, 1, context));
3796          children.add(new Property("min", "integer", "Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.", 0, 1, min));
3797          children.add(new Property("max", "string", "Specified maximum cardinality for the element - a number or a \"*\". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).", 0, 1, max));
3798          children.add(new Property("type", "string", "Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.", 0, 1, type));
3799          children.add(new Property("defaultValue", "string", "A value to use if there is no existing value in the source object.", 0, 1, defaultValue));
3800          children.add(new Property("element", "string", "Optional field for this source.", 0, 1, element));
3801          children.add(new Property("listMode", "code", "How to handle the list mode for this element.", 0, 1, listMode));
3802          children.add(new Property("variable", "id", "Named context for field, if a field is specified.", 0, 1, variable));
3803          children.add(new Property("condition", "string", "FHIRPath expression  - must be true or the rule does not apply.", 0, 1, condition));
3804          children.add(new Property("check", "string", "FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.", 0, 1, check));
3805          children.add(new Property("logMessage", "string", "A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.", 0, 1, logMessage));
3806        }
3807
3808        @Override
3809        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
3810          switch (_hash) {
3811          case 951530927: /*context*/  return new Property("context", "id", "Type or variable this rule applies to.", 0, 1, context);
3812          case 108114: /*min*/  return new Property("min", "integer", "Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content.", 0, 1, min);
3813          case 107876: /*max*/  return new Property("max", "string", "Specified maximum cardinality for the element - a number or a \"*\". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value).", 0, 1, max);
3814          case 3575610: /*type*/  return new Property("type", "string", "Specified type for the element. This works as a condition on the mapping - use for polymorphic elements.", 0, 1, type);
3815          case -659125328: /*defaultValue*/  return new Property("defaultValue", "string", "A value to use if there is no existing value in the source object.", 0, 1, defaultValue);
3816          case -1662836996: /*element*/  return new Property("element", "string", "Optional field for this source.", 0, 1, element);
3817          case 1345445729: /*listMode*/  return new Property("listMode", "code", "How to handle the list mode for this element.", 0, 1, listMode);
3818          case -1249586564: /*variable*/  return new Property("variable", "id", "Named context for field, if a field is specified.", 0, 1, variable);
3819          case -861311717: /*condition*/  return new Property("condition", "string", "FHIRPath expression  - must be true or the rule does not apply.", 0, 1, condition);
3820          case 94627080: /*check*/  return new Property("check", "string", "FHIRPath expression  - must be true or the mapping engine throws an error instead of completing.", 0, 1, check);
3821          case -1067155421: /*logMessage*/  return new Property("logMessage", "string", "A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found.", 0, 1, logMessage);
3822          default: return super.getNamedProperty(_hash, _name, _checkValid);
3823          }
3824
3825        }
3826
3827      @Override
3828      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
3829        switch (hash) {
3830        case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // IdType
3831        case 108114: /*min*/ return this.min == null ? new Base[0] : new Base[] {this.min}; // IntegerType
3832        case 107876: /*max*/ return this.max == null ? new Base[0] : new Base[] {this.max}; // StringType
3833        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // StringType
3834        case -659125328: /*defaultValue*/ return this.defaultValue == null ? new Base[0] : new Base[] {this.defaultValue}; // StringType
3835        case -1662836996: /*element*/ return this.element == null ? new Base[0] : new Base[] {this.element}; // StringType
3836        case 1345445729: /*listMode*/ return this.listMode == null ? new Base[0] : new Base[] {this.listMode}; // Enumeration<StructureMapSourceListMode>
3837        case -1249586564: /*variable*/ return this.variable == null ? new Base[0] : new Base[] {this.variable}; // IdType
3838        case -861311717: /*condition*/ return this.condition == null ? new Base[0] : new Base[] {this.condition}; // StringType
3839        case 94627080: /*check*/ return this.check == null ? new Base[0] : new Base[] {this.check}; // StringType
3840        case -1067155421: /*logMessage*/ return this.logMessage == null ? new Base[0] : new Base[] {this.logMessage}; // StringType
3841        default: return super.getProperty(hash, name, checkValid);
3842        }
3843
3844      }
3845
3846      @Override
3847      public Base setProperty(int hash, String name, Base value) throws FHIRException {
3848        switch (hash) {
3849        case 951530927: // context
3850          this.context = TypeConvertor.castToId(value); // IdType
3851          return value;
3852        case 108114: // min
3853          this.min = TypeConvertor.castToInteger(value); // IntegerType
3854          return value;
3855        case 107876: // max
3856          this.max = TypeConvertor.castToString(value); // StringType
3857          return value;
3858        case 3575610: // type
3859          this.type = TypeConvertor.castToString(value); // StringType
3860          return value;
3861        case -659125328: // defaultValue
3862          this.defaultValue = TypeConvertor.castToString(value); // StringType
3863          return value;
3864        case -1662836996: // element
3865          this.element = TypeConvertor.castToString(value); // StringType
3866          return value;
3867        case 1345445729: // listMode
3868          value = new StructureMapSourceListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
3869          this.listMode = (Enumeration) value; // Enumeration<StructureMapSourceListMode>
3870          return value;
3871        case -1249586564: // variable
3872          this.variable = TypeConvertor.castToId(value); // IdType
3873          return value;
3874        case -861311717: // condition
3875          this.condition = TypeConvertor.castToString(value); // StringType
3876          return value;
3877        case 94627080: // check
3878          this.check = TypeConvertor.castToString(value); // StringType
3879          return value;
3880        case -1067155421: // logMessage
3881          this.logMessage = TypeConvertor.castToString(value); // StringType
3882          return value;
3883        default: return super.setProperty(hash, name, value);
3884        }
3885
3886      }
3887
3888      @Override
3889      public Base setProperty(String name, Base value) throws FHIRException {
3890        if (name.equals("context")) {
3891          this.context = TypeConvertor.castToId(value); // IdType
3892        } else if (name.equals("min")) {
3893          this.min = TypeConvertor.castToInteger(value); // IntegerType
3894        } else if (name.equals("max")) {
3895          this.max = TypeConvertor.castToString(value); // StringType
3896        } else if (name.equals("type")) {
3897          this.type = TypeConvertor.castToString(value); // StringType
3898        } else if (name.equals("defaultValue")) {
3899          this.defaultValue = TypeConvertor.castToString(value); // StringType
3900        } else if (name.equals("element")) {
3901          this.element = TypeConvertor.castToString(value); // StringType
3902        } else if (name.equals("listMode")) {
3903          value = new StructureMapSourceListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
3904          this.listMode = (Enumeration) value; // Enumeration<StructureMapSourceListMode>
3905        } else if (name.equals("variable")) {
3906          this.variable = TypeConvertor.castToId(value); // IdType
3907        } else if (name.equals("condition")) {
3908          this.condition = TypeConvertor.castToString(value); // StringType
3909        } else if (name.equals("check")) {
3910          this.check = TypeConvertor.castToString(value); // StringType
3911        } else if (name.equals("logMessage")) {
3912          this.logMessage = TypeConvertor.castToString(value); // StringType
3913        } else
3914          return super.setProperty(name, value);
3915        return value;
3916      }
3917
3918      @Override
3919      public Base makeProperty(int hash, String name) throws FHIRException {
3920        switch (hash) {
3921        case 951530927:  return getContextElement();
3922        case 108114:  return getMinElement();
3923        case 107876:  return getMaxElement();
3924        case 3575610:  return getTypeElement();
3925        case -659125328:  return getDefaultValueElement();
3926        case -1662836996:  return getElementElement();
3927        case 1345445729:  return getListModeElement();
3928        case -1249586564:  return getVariableElement();
3929        case -861311717:  return getConditionElement();
3930        case 94627080:  return getCheckElement();
3931        case -1067155421:  return getLogMessageElement();
3932        default: return super.makeProperty(hash, name);
3933        }
3934
3935      }
3936
3937      @Override
3938      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
3939        switch (hash) {
3940        case 951530927: /*context*/ return new String[] {"id"};
3941        case 108114: /*min*/ return new String[] {"integer"};
3942        case 107876: /*max*/ return new String[] {"string"};
3943        case 3575610: /*type*/ return new String[] {"string"};
3944        case -659125328: /*defaultValue*/ return new String[] {"string"};
3945        case -1662836996: /*element*/ return new String[] {"string"};
3946        case 1345445729: /*listMode*/ return new String[] {"code"};
3947        case -1249586564: /*variable*/ return new String[] {"id"};
3948        case -861311717: /*condition*/ return new String[] {"string"};
3949        case 94627080: /*check*/ return new String[] {"string"};
3950        case -1067155421: /*logMessage*/ return new String[] {"string"};
3951        default: return super.getTypesForProperty(hash, name);
3952        }
3953
3954      }
3955
3956      @Override
3957      public Base addChild(String name) throws FHIRException {
3958        if (name.equals("context")) {
3959          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.context");
3960        }
3961        else if (name.equals("min")) {
3962          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.min");
3963        }
3964        else if (name.equals("max")) {
3965          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.max");
3966        }
3967        else if (name.equals("type")) {
3968          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.type");
3969        }
3970        else if (name.equals("defaultValue")) {
3971          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.defaultValue");
3972        }
3973        else if (name.equals("element")) {
3974          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.element");
3975        }
3976        else if (name.equals("listMode")) {
3977          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.listMode");
3978        }
3979        else if (name.equals("variable")) {
3980          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.variable");
3981        }
3982        else if (name.equals("condition")) {
3983          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.condition");
3984        }
3985        else if (name.equals("check")) {
3986          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.check");
3987        }
3988        else if (name.equals("logMessage")) {
3989          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.source.logMessage");
3990        }
3991        else
3992          return super.addChild(name);
3993      }
3994
3995      public StructureMapGroupRuleSourceComponent copy() {
3996        StructureMapGroupRuleSourceComponent dst = new StructureMapGroupRuleSourceComponent();
3997        copyValues(dst);
3998        return dst;
3999      }
4000
4001      public void copyValues(StructureMapGroupRuleSourceComponent dst) {
4002        super.copyValues(dst);
4003        dst.context = context == null ? null : context.copy();
4004        dst.min = min == null ? null : min.copy();
4005        dst.max = max == null ? null : max.copy();
4006        dst.type = type == null ? null : type.copy();
4007        dst.defaultValue = defaultValue == null ? null : defaultValue.copy();
4008        dst.element = element == null ? null : element.copy();
4009        dst.listMode = listMode == null ? null : listMode.copy();
4010        dst.variable = variable == null ? null : variable.copy();
4011        dst.condition = condition == null ? null : condition.copy();
4012        dst.check = check == null ? null : check.copy();
4013        dst.logMessage = logMessage == null ? null : logMessage.copy();
4014      }
4015
4016      @Override
4017      public boolean equalsDeep(Base other_) {
4018        if (!super.equalsDeep(other_))
4019          return false;
4020        if (!(other_ instanceof StructureMapGroupRuleSourceComponent))
4021          return false;
4022        StructureMapGroupRuleSourceComponent o = (StructureMapGroupRuleSourceComponent) other_;
4023        return compareDeep(context, o.context, true) && compareDeep(min, o.min, true) && compareDeep(max, o.max, true)
4024           && compareDeep(type, o.type, true) && compareDeep(defaultValue, o.defaultValue, true) && compareDeep(element, o.element, true)
4025           && compareDeep(listMode, o.listMode, true) && compareDeep(variable, o.variable, true) && compareDeep(condition, o.condition, true)
4026           && compareDeep(check, o.check, true) && compareDeep(logMessage, o.logMessage, true);
4027      }
4028
4029      @Override
4030      public boolean equalsShallow(Base other_) {
4031        if (!super.equalsShallow(other_))
4032          return false;
4033        if (!(other_ instanceof StructureMapGroupRuleSourceComponent))
4034          return false;
4035        StructureMapGroupRuleSourceComponent o = (StructureMapGroupRuleSourceComponent) other_;
4036        return compareValues(context, o.context, true) && compareValues(min, o.min, true) && compareValues(max, o.max, true)
4037           && compareValues(type, o.type, true) && compareValues(defaultValue, o.defaultValue, true) && compareValues(element, o.element, true)
4038           && compareValues(listMode, o.listMode, true) && compareValues(variable, o.variable, true) && compareValues(condition, o.condition, true)
4039           && compareValues(check, o.check, true) && compareValues(logMessage, o.logMessage, true);
4040      }
4041
4042      public boolean isEmpty() {
4043        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(context, min, max, type
4044          , defaultValue, element, listMode, variable, condition, check, logMessage);
4045      }
4046
4047  public String fhirType() {
4048    return "StructureMap.group.rule.source";
4049
4050  }
4051
4052// added from java-adornments.txt:
4053public String toString() {
4054    return StructureMapUtilities.sourceToString(this);
4055  }
4056// end addition
4057  }
4058
4059    @Block()
4060    public static class StructureMapGroupRuleTargetComponent extends BackboneElement implements IBaseBackboneElement {
4061        /**
4062         * Variable this rule applies to.
4063         */
4064        @Child(name = "context", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=true)
4065        @Description(shortDefinition="Variable this rule applies to", formalDefinition="Variable this rule applies to." )
4066        protected StringType context;
4067
4068        /**
4069         * Field to create in the context.
4070         */
4071        @Child(name = "element", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
4072        @Description(shortDefinition="Field to create in the context", formalDefinition="Field to create in the context." )
4073        protected StringType element;
4074
4075        /**
4076         * Named context for field, if desired, and a field is specified.
4077         */
4078        @Child(name = "variable", type = {IdType.class}, order=3, min=0, max=1, modifier=false, summary=true)
4079        @Description(shortDefinition="Named context for field, if desired, and a field is specified", formalDefinition="Named context for field, if desired, and a field is specified." )
4080        protected IdType variable;
4081
4082        /**
4083         * If field is a list, how to manage the list.
4084         */
4085        @Child(name = "listMode", type = {CodeType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4086        @Description(shortDefinition="first | share | last | single", formalDefinition="If field is a list, how to manage the list." )
4087        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-target-list-mode")
4088        protected List<Enumeration<StructureMapTargetListMode>> listMode;
4089
4090        /**
4091         * Internal rule reference for shared list items.
4092         */
4093        @Child(name = "listRuleId", type = {IdType.class}, order=5, min=0, max=1, modifier=false, summary=true)
4094        @Description(shortDefinition="Internal rule reference for shared list items", formalDefinition="Internal rule reference for shared list items." )
4095        protected IdType listRuleId;
4096
4097        /**
4098         * How the data is copied / created.
4099         */
4100        @Child(name = "transform", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=true)
4101        @Description(shortDefinition="create | copy +", formalDefinition="How the data is copied / created." )
4102        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/map-transform")
4103        protected Enumeration<StructureMapTransform> transform;
4104
4105        /**
4106         * Parameters to the transform.
4107         */
4108        @Child(name = "parameter", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
4109        @Description(shortDefinition="Parameters to the transform", formalDefinition="Parameters to the transform." )
4110        protected List<StructureMapGroupRuleTargetParameterComponent> parameter;
4111
4112        private static final long serialVersionUID = 1565495071L;
4113
4114    /**
4115     * Constructor
4116     */
4117      public StructureMapGroupRuleTargetComponent() {
4118        super();
4119      }
4120
4121        /**
4122         * @return {@link #context} (Variable this rule applies to.). This is the underlying object with id, value and extensions. The accessor "getContext" gives direct access to the value
4123         */
4124        public StringType getContextElement() { 
4125          if (this.context == null)
4126            if (Configuration.errorOnAutoCreate())
4127              throw new Error("Attempt to auto-create StructureMapGroupRuleTargetComponent.context");
4128            else if (Configuration.doAutoCreate())
4129              this.context = new StringType(); // bb
4130          return this.context;
4131        }
4132
4133        public boolean hasContextElement() { 
4134          return this.context != null && !this.context.isEmpty();
4135        }
4136
4137        public boolean hasContext() { 
4138          return this.context != null && !this.context.isEmpty();
4139        }
4140
4141        /**
4142         * @param value {@link #context} (Variable this rule applies to.). This is the underlying object with id, value and extensions. The accessor "getContext" gives direct access to the value
4143         */
4144        public StructureMapGroupRuleTargetComponent setContextElement(StringType value) { 
4145          this.context = value;
4146          return this;
4147        }
4148
4149        /**
4150         * @return Variable this rule applies to.
4151         */
4152        public String getContext() { 
4153          return this.context == null ? null : this.context.getValue();
4154        }
4155
4156        /**
4157         * @param value Variable this rule applies to.
4158         */
4159        public StructureMapGroupRuleTargetComponent setContext(String value) { 
4160          if (Utilities.noString(value))
4161            this.context = null;
4162          else {
4163            if (this.context == null)
4164              this.context = new StringType();
4165            this.context.setValue(value);
4166          }
4167          return this;
4168        }
4169
4170        /**
4171         * @return {@link #element} (Field to create in the context.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value
4172         */
4173        public StringType getElementElement() { 
4174          if (this.element == null)
4175            if (Configuration.errorOnAutoCreate())
4176              throw new Error("Attempt to auto-create StructureMapGroupRuleTargetComponent.element");
4177            else if (Configuration.doAutoCreate())
4178              this.element = new StringType(); // bb
4179          return this.element;
4180        }
4181
4182        public boolean hasElementElement() { 
4183          return this.element != null && !this.element.isEmpty();
4184        }
4185
4186        public boolean hasElement() { 
4187          return this.element != null && !this.element.isEmpty();
4188        }
4189
4190        /**
4191         * @param value {@link #element} (Field to create in the context.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value
4192         */
4193        public StructureMapGroupRuleTargetComponent setElementElement(StringType value) { 
4194          this.element = value;
4195          return this;
4196        }
4197
4198        /**
4199         * @return Field to create in the context.
4200         */
4201        public String getElement() { 
4202          return this.element == null ? null : this.element.getValue();
4203        }
4204
4205        /**
4206         * @param value Field to create in the context.
4207         */
4208        public StructureMapGroupRuleTargetComponent setElement(String value) { 
4209          if (Utilities.noString(value))
4210            this.element = null;
4211          else {
4212            if (this.element == null)
4213              this.element = new StringType();
4214            this.element.setValue(value);
4215          }
4216          return this;
4217        }
4218
4219        /**
4220         * @return {@link #variable} (Named context for field, if desired, and a field is specified.). This is the underlying object with id, value and extensions. The accessor "getVariable" gives direct access to the value
4221         */
4222        public IdType getVariableElement() { 
4223          if (this.variable == null)
4224            if (Configuration.errorOnAutoCreate())
4225              throw new Error("Attempt to auto-create StructureMapGroupRuleTargetComponent.variable");
4226            else if (Configuration.doAutoCreate())
4227              this.variable = new IdType(); // bb
4228          return this.variable;
4229        }
4230
4231        public boolean hasVariableElement() { 
4232          return this.variable != null && !this.variable.isEmpty();
4233        }
4234
4235        public boolean hasVariable() { 
4236          return this.variable != null && !this.variable.isEmpty();
4237        }
4238
4239        /**
4240         * @param value {@link #variable} (Named context for field, if desired, and a field is specified.). This is the underlying object with id, value and extensions. The accessor "getVariable" gives direct access to the value
4241         */
4242        public StructureMapGroupRuleTargetComponent setVariableElement(IdType value) { 
4243          this.variable = value;
4244          return this;
4245        }
4246
4247        /**
4248         * @return Named context for field, if desired, and a field is specified.
4249         */
4250        public String getVariable() { 
4251          return this.variable == null ? null : this.variable.getValue();
4252        }
4253
4254        /**
4255         * @param value Named context for field, if desired, and a field is specified.
4256         */
4257        public StructureMapGroupRuleTargetComponent setVariable(String value) { 
4258          if (Utilities.noString(value))
4259            this.variable = null;
4260          else {
4261            if (this.variable == null)
4262              this.variable = new IdType();
4263            this.variable.setValue(value);
4264          }
4265          return this;
4266        }
4267
4268        /**
4269         * @return {@link #listMode} (If field is a list, how to manage the list.)
4270         */
4271        public List<Enumeration<StructureMapTargetListMode>> getListMode() { 
4272          if (this.listMode == null)
4273            this.listMode = new ArrayList<Enumeration<StructureMapTargetListMode>>();
4274          return this.listMode;
4275        }
4276
4277        /**
4278         * @return Returns a reference to <code>this</code> for easy method chaining
4279         */
4280        public StructureMapGroupRuleTargetComponent setListMode(List<Enumeration<StructureMapTargetListMode>> theListMode) { 
4281          this.listMode = theListMode;
4282          return this;
4283        }
4284
4285        public boolean hasListMode() { 
4286          if (this.listMode == null)
4287            return false;
4288          for (Enumeration<StructureMapTargetListMode> item : this.listMode)
4289            if (!item.isEmpty())
4290              return true;
4291          return false;
4292        }
4293
4294        /**
4295         * @return {@link #listMode} (If field is a list, how to manage the list.)
4296         */
4297        public Enumeration<StructureMapTargetListMode> addListModeElement() {//2 
4298          Enumeration<StructureMapTargetListMode> t = new Enumeration<StructureMapTargetListMode>(new StructureMapTargetListModeEnumFactory());
4299          if (this.listMode == null)
4300            this.listMode = new ArrayList<Enumeration<StructureMapTargetListMode>>();
4301          this.listMode.add(t);
4302          return t;
4303        }
4304
4305        /**
4306         * @param value {@link #listMode} (If field is a list, how to manage the list.)
4307         */
4308        public StructureMapGroupRuleTargetComponent addListMode(StructureMapTargetListMode value) { //1
4309          Enumeration<StructureMapTargetListMode> t = new Enumeration<StructureMapTargetListMode>(new StructureMapTargetListModeEnumFactory());
4310          t.setValue(value);
4311          if (this.listMode == null)
4312            this.listMode = new ArrayList<Enumeration<StructureMapTargetListMode>>();
4313          this.listMode.add(t);
4314          return this;
4315        }
4316
4317        /**
4318         * @param value {@link #listMode} (If field is a list, how to manage the list.)
4319         */
4320        public boolean hasListMode(StructureMapTargetListMode value) { 
4321          if (this.listMode == null)
4322            return false;
4323          for (Enumeration<StructureMapTargetListMode> v : this.listMode)
4324            if (v.getValue().equals(value)) // code
4325              return true;
4326          return false;
4327        }
4328
4329        /**
4330         * @return {@link #listRuleId} (Internal rule reference for shared list items.). This is the underlying object with id, value and extensions. The accessor "getListRuleId" gives direct access to the value
4331         */
4332        public IdType getListRuleIdElement() { 
4333          if (this.listRuleId == null)
4334            if (Configuration.errorOnAutoCreate())
4335              throw new Error("Attempt to auto-create StructureMapGroupRuleTargetComponent.listRuleId");
4336            else if (Configuration.doAutoCreate())
4337              this.listRuleId = new IdType(); // bb
4338          return this.listRuleId;
4339        }
4340
4341        public boolean hasListRuleIdElement() { 
4342          return this.listRuleId != null && !this.listRuleId.isEmpty();
4343        }
4344
4345        public boolean hasListRuleId() { 
4346          return this.listRuleId != null && !this.listRuleId.isEmpty();
4347        }
4348
4349        /**
4350         * @param value {@link #listRuleId} (Internal rule reference for shared list items.). This is the underlying object with id, value and extensions. The accessor "getListRuleId" gives direct access to the value
4351         */
4352        public StructureMapGroupRuleTargetComponent setListRuleIdElement(IdType value) { 
4353          this.listRuleId = value;
4354          return this;
4355        }
4356
4357        /**
4358         * @return Internal rule reference for shared list items.
4359         */
4360        public String getListRuleId() { 
4361          return this.listRuleId == null ? null : this.listRuleId.getValue();
4362        }
4363
4364        /**
4365         * @param value Internal rule reference for shared list items.
4366         */
4367        public StructureMapGroupRuleTargetComponent setListRuleId(String value) { 
4368          if (Utilities.noString(value))
4369            this.listRuleId = null;
4370          else {
4371            if (this.listRuleId == null)
4372              this.listRuleId = new IdType();
4373            this.listRuleId.setValue(value);
4374          }
4375          return this;
4376        }
4377
4378        /**
4379         * @return {@link #transform} (How the data is copied / created.). This is the underlying object with id, value and extensions. The accessor "getTransform" gives direct access to the value
4380         */
4381        public Enumeration<StructureMapTransform> getTransformElement() { 
4382          if (this.transform == null)
4383            if (Configuration.errorOnAutoCreate())
4384              throw new Error("Attempt to auto-create StructureMapGroupRuleTargetComponent.transform");
4385            else if (Configuration.doAutoCreate())
4386              this.transform = new Enumeration<StructureMapTransform>(new StructureMapTransformEnumFactory()); // bb
4387          return this.transform;
4388        }
4389
4390        public boolean hasTransformElement() { 
4391          return this.transform != null && !this.transform.isEmpty();
4392        }
4393
4394        public boolean hasTransform() { 
4395          return this.transform != null && !this.transform.isEmpty();
4396        }
4397
4398        /**
4399         * @param value {@link #transform} (How the data is copied / created.). This is the underlying object with id, value and extensions. The accessor "getTransform" gives direct access to the value
4400         */
4401        public StructureMapGroupRuleTargetComponent setTransformElement(Enumeration<StructureMapTransform> value) { 
4402          this.transform = value;
4403          return this;
4404        }
4405
4406        /**
4407         * @return How the data is copied / created.
4408         */
4409        public StructureMapTransform getTransform() { 
4410          return this.transform == null ? null : this.transform.getValue();
4411        }
4412
4413        /**
4414         * @param value How the data is copied / created.
4415         */
4416        public StructureMapGroupRuleTargetComponent setTransform(StructureMapTransform value) { 
4417          if (value == null)
4418            this.transform = null;
4419          else {
4420            if (this.transform == null)
4421              this.transform = new Enumeration<StructureMapTransform>(new StructureMapTransformEnumFactory());
4422            this.transform.setValue(value);
4423          }
4424          return this;
4425        }
4426
4427        /**
4428         * @return {@link #parameter} (Parameters to the transform.)
4429         */
4430        public List<StructureMapGroupRuleTargetParameterComponent> getParameter() { 
4431          if (this.parameter == null)
4432            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
4433          return this.parameter;
4434        }
4435
4436        /**
4437         * @return Returns a reference to <code>this</code> for easy method chaining
4438         */
4439        public StructureMapGroupRuleTargetComponent setParameter(List<StructureMapGroupRuleTargetParameterComponent> theParameter) { 
4440          this.parameter = theParameter;
4441          return this;
4442        }
4443
4444        public boolean hasParameter() { 
4445          if (this.parameter == null)
4446            return false;
4447          for (StructureMapGroupRuleTargetParameterComponent item : this.parameter)
4448            if (!item.isEmpty())
4449              return true;
4450          return false;
4451        }
4452
4453        public StructureMapGroupRuleTargetParameterComponent addParameter() { //3
4454          StructureMapGroupRuleTargetParameterComponent t = new StructureMapGroupRuleTargetParameterComponent();
4455          if (this.parameter == null)
4456            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
4457          this.parameter.add(t);
4458          return t;
4459        }
4460
4461        public StructureMapGroupRuleTargetComponent addParameter(StructureMapGroupRuleTargetParameterComponent t) { //3
4462          if (t == null)
4463            return this;
4464          if (this.parameter == null)
4465            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
4466          this.parameter.add(t);
4467          return this;
4468        }
4469
4470        /**
4471         * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
4472         */
4473        public StructureMapGroupRuleTargetParameterComponent getParameterFirstRep() { 
4474          if (getParameter().isEmpty()) {
4475            addParameter();
4476          }
4477          return getParameter().get(0);
4478        }
4479
4480        protected void listChildren(List<Property> children) {
4481          super.listChildren(children);
4482          children.add(new Property("context", "string", "Variable this rule applies to.", 0, 1, context));
4483          children.add(new Property("element", "string", "Field to create in the context.", 0, 1, element));
4484          children.add(new Property("variable", "id", "Named context for field, if desired, and a field is specified.", 0, 1, variable));
4485          children.add(new Property("listMode", "code", "If field is a list, how to manage the list.", 0, java.lang.Integer.MAX_VALUE, listMode));
4486          children.add(new Property("listRuleId", "id", "Internal rule reference for shared list items.", 0, 1, listRuleId));
4487          children.add(new Property("transform", "code", "How the data is copied / created.", 0, 1, transform));
4488          children.add(new Property("parameter", "", "Parameters to the transform.", 0, java.lang.Integer.MAX_VALUE, parameter));
4489        }
4490
4491        @Override
4492        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4493          switch (_hash) {
4494          case 951530927: /*context*/  return new Property("context", "string", "Variable this rule applies to.", 0, 1, context);
4495          case -1662836996: /*element*/  return new Property("element", "string", "Field to create in the context.", 0, 1, element);
4496          case -1249586564: /*variable*/  return new Property("variable", "id", "Named context for field, if desired, and a field is specified.", 0, 1, variable);
4497          case 1345445729: /*listMode*/  return new Property("listMode", "code", "If field is a list, how to manage the list.", 0, java.lang.Integer.MAX_VALUE, listMode);
4498          case 337117045: /*listRuleId*/  return new Property("listRuleId", "id", "Internal rule reference for shared list items.", 0, 1, listRuleId);
4499          case 1052666732: /*transform*/  return new Property("transform", "code", "How the data is copied / created.", 0, 1, transform);
4500          case 1954460585: /*parameter*/  return new Property("parameter", "", "Parameters to the transform.", 0, java.lang.Integer.MAX_VALUE, parameter);
4501          default: return super.getNamedProperty(_hash, _name, _checkValid);
4502          }
4503
4504        }
4505
4506      @Override
4507      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4508        switch (hash) {
4509        case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // StringType
4510        case -1662836996: /*element*/ return this.element == null ? new Base[0] : new Base[] {this.element}; // StringType
4511        case -1249586564: /*variable*/ return this.variable == null ? new Base[0] : new Base[] {this.variable}; // IdType
4512        case 1345445729: /*listMode*/ return this.listMode == null ? new Base[0] : this.listMode.toArray(new Base[this.listMode.size()]); // Enumeration<StructureMapTargetListMode>
4513        case 337117045: /*listRuleId*/ return this.listRuleId == null ? new Base[0] : new Base[] {this.listRuleId}; // IdType
4514        case 1052666732: /*transform*/ return this.transform == null ? new Base[0] : new Base[] {this.transform}; // Enumeration<StructureMapTransform>
4515        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // StructureMapGroupRuleTargetParameterComponent
4516        default: return super.getProperty(hash, name, checkValid);
4517        }
4518
4519      }
4520
4521      @Override
4522      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4523        switch (hash) {
4524        case 951530927: // context
4525          this.context = TypeConvertor.castToString(value); // StringType
4526          return value;
4527        case -1662836996: // element
4528          this.element = TypeConvertor.castToString(value); // StringType
4529          return value;
4530        case -1249586564: // variable
4531          this.variable = TypeConvertor.castToId(value); // IdType
4532          return value;
4533        case 1345445729: // listMode
4534          value = new StructureMapTargetListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4535          this.getListMode().add((Enumeration) value); // Enumeration<StructureMapTargetListMode>
4536          return value;
4537        case 337117045: // listRuleId
4538          this.listRuleId = TypeConvertor.castToId(value); // IdType
4539          return value;
4540        case 1052666732: // transform
4541          value = new StructureMapTransformEnumFactory().fromType(TypeConvertor.castToCode(value));
4542          this.transform = (Enumeration) value; // Enumeration<StructureMapTransform>
4543          return value;
4544        case 1954460585: // parameter
4545          this.getParameter().add((StructureMapGroupRuleTargetParameterComponent) value); // StructureMapGroupRuleTargetParameterComponent
4546          return value;
4547        default: return super.setProperty(hash, name, value);
4548        }
4549
4550      }
4551
4552      @Override
4553      public Base setProperty(String name, Base value) throws FHIRException {
4554        if (name.equals("context")) {
4555          this.context = TypeConvertor.castToString(value); // StringType
4556        } else if (name.equals("element")) {
4557          this.element = TypeConvertor.castToString(value); // StringType
4558        } else if (name.equals("variable")) {
4559          this.variable = TypeConvertor.castToId(value); // IdType
4560        } else if (name.equals("listMode")) {
4561          value = new StructureMapTargetListModeEnumFactory().fromType(TypeConvertor.castToCode(value));
4562          this.getListMode().add((Enumeration) value);
4563        } else if (name.equals("listRuleId")) {
4564          this.listRuleId = TypeConvertor.castToId(value); // IdType
4565        } else if (name.equals("transform")) {
4566          value = new StructureMapTransformEnumFactory().fromType(TypeConvertor.castToCode(value));
4567          this.transform = (Enumeration) value; // Enumeration<StructureMapTransform>
4568        } else if (name.equals("parameter")) {
4569          this.getParameter().add((StructureMapGroupRuleTargetParameterComponent) value);
4570        } else
4571          return super.setProperty(name, value);
4572        return value;
4573      }
4574
4575      @Override
4576      public Base makeProperty(int hash, String name) throws FHIRException {
4577        switch (hash) {
4578        case 951530927:  return getContextElement();
4579        case -1662836996:  return getElementElement();
4580        case -1249586564:  return getVariableElement();
4581        case 1345445729:  return addListModeElement();
4582        case 337117045:  return getListRuleIdElement();
4583        case 1052666732:  return getTransformElement();
4584        case 1954460585:  return addParameter(); 
4585        default: return super.makeProperty(hash, name);
4586        }
4587
4588      }
4589
4590      @Override
4591      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4592        switch (hash) {
4593        case 951530927: /*context*/ return new String[] {"string"};
4594        case -1662836996: /*element*/ return new String[] {"string"};
4595        case -1249586564: /*variable*/ return new String[] {"id"};
4596        case 1345445729: /*listMode*/ return new String[] {"code"};
4597        case 337117045: /*listRuleId*/ return new String[] {"id"};
4598        case 1052666732: /*transform*/ return new String[] {"code"};
4599        case 1954460585: /*parameter*/ return new String[] {};
4600        default: return super.getTypesForProperty(hash, name);
4601        }
4602
4603      }
4604
4605      @Override
4606      public Base addChild(String name) throws FHIRException {
4607        if (name.equals("context")) {
4608          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.context");
4609        }
4610        else if (name.equals("element")) {
4611          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.element");
4612        }
4613        else if (name.equals("variable")) {
4614          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.variable");
4615        }
4616        else if (name.equals("listMode")) {
4617          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.listMode");
4618        }
4619        else if (name.equals("listRuleId")) {
4620          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.listRuleId");
4621        }
4622        else if (name.equals("transform")) {
4623          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.target.transform");
4624        }
4625        else if (name.equals("parameter")) {
4626          return addParameter();
4627        }
4628        else
4629          return super.addChild(name);
4630      }
4631
4632      public StructureMapGroupRuleTargetComponent copy() {
4633        StructureMapGroupRuleTargetComponent dst = new StructureMapGroupRuleTargetComponent();
4634        copyValues(dst);
4635        return dst;
4636      }
4637
4638      public void copyValues(StructureMapGroupRuleTargetComponent dst) {
4639        super.copyValues(dst);
4640        dst.context = context == null ? null : context.copy();
4641        dst.element = element == null ? null : element.copy();
4642        dst.variable = variable == null ? null : variable.copy();
4643        if (listMode != null) {
4644          dst.listMode = new ArrayList<Enumeration<StructureMapTargetListMode>>();
4645          for (Enumeration<StructureMapTargetListMode> i : listMode)
4646            dst.listMode.add(i.copy());
4647        };
4648        dst.listRuleId = listRuleId == null ? null : listRuleId.copy();
4649        dst.transform = transform == null ? null : transform.copy();
4650        if (parameter != null) {
4651          dst.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
4652          for (StructureMapGroupRuleTargetParameterComponent i : parameter)
4653            dst.parameter.add(i.copy());
4654        };
4655      }
4656
4657      @Override
4658      public boolean equalsDeep(Base other_) {
4659        if (!super.equalsDeep(other_))
4660          return false;
4661        if (!(other_ instanceof StructureMapGroupRuleTargetComponent))
4662          return false;
4663        StructureMapGroupRuleTargetComponent o = (StructureMapGroupRuleTargetComponent) other_;
4664        return compareDeep(context, o.context, true) && compareDeep(element, o.element, true) && compareDeep(variable, o.variable, true)
4665           && compareDeep(listMode, o.listMode, true) && compareDeep(listRuleId, o.listRuleId, true) && compareDeep(transform, o.transform, true)
4666           && compareDeep(parameter, o.parameter, true);
4667      }
4668
4669      @Override
4670      public boolean equalsShallow(Base other_) {
4671        if (!super.equalsShallow(other_))
4672          return false;
4673        if (!(other_ instanceof StructureMapGroupRuleTargetComponent))
4674          return false;
4675        StructureMapGroupRuleTargetComponent o = (StructureMapGroupRuleTargetComponent) other_;
4676        return compareValues(context, o.context, true) && compareValues(element, o.element, true) && compareValues(variable, o.variable, true)
4677           && compareValues(listMode, o.listMode, true) && compareValues(listRuleId, o.listRuleId, true) && compareValues(transform, o.transform, true)
4678          ;
4679      }
4680
4681      public boolean isEmpty() {
4682        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(context, element, variable
4683          , listMode, listRuleId, transform, parameter);
4684      }
4685
4686  public String fhirType() {
4687    return "StructureMap.group.rule.target";
4688
4689  }
4690
4691// added from java-adornments.txt:
4692public String toString() {
4693    return StructureMapUtilities.targetToString(this);
4694  }
4695// end addition
4696  }
4697
4698    @Block()
4699    public static class StructureMapGroupRuleTargetParameterComponent extends BackboneElement implements IBaseBackboneElement {
4700        /**
4701         * Parameter value - variable or literal.
4702         */
4703        @Child(name = "value", type = {IdType.class, StringType.class, BooleanType.class, IntegerType.class, DecimalType.class, DateType.class, TimeType.class, DateTimeType.class}, order=1, min=1, max=1, modifier=false, summary=true)
4704        @Description(shortDefinition="Parameter value - variable or literal", formalDefinition="Parameter value - variable or literal." )
4705        protected DataType value;
4706
4707        private static final long serialVersionUID = -1135414639L;
4708
4709    /**
4710     * Constructor
4711     */
4712      public StructureMapGroupRuleTargetParameterComponent() {
4713        super();
4714      }
4715
4716    /**
4717     * Constructor
4718     */
4719      public StructureMapGroupRuleTargetParameterComponent(DataType value) {
4720        super();
4721        this.setValue(value);
4722      }
4723
4724        /**
4725         * @return {@link #value} (Parameter value - variable or literal.)
4726         */
4727        public DataType getValue() { 
4728          return this.value;
4729        }
4730
4731        /**
4732         * @return {@link #value} (Parameter value - variable or literal.)
4733         */
4734        public IdType getValueIdType() throws FHIRException { 
4735          if (this.value == null)
4736            this.value = new IdType();
4737          if (!(this.value instanceof IdType))
4738            throw new FHIRException("Type mismatch: the type IdType was expected, but "+this.value.getClass().getName()+" was encountered");
4739          return (IdType) this.value;
4740        }
4741
4742        public boolean hasValueIdType() { 
4743          return this != null && this.value instanceof IdType;
4744        }
4745
4746        /**
4747         * @return {@link #value} (Parameter value - variable or literal.)
4748         */
4749        public StringType getValueStringType() throws FHIRException { 
4750          if (this.value == null)
4751            this.value = new StringType();
4752          if (!(this.value instanceof StringType))
4753            throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered");
4754          return (StringType) this.value;
4755        }
4756
4757        public boolean hasValueStringType() { 
4758          return this != null && this.value instanceof StringType;
4759        }
4760
4761        /**
4762         * @return {@link #value} (Parameter value - variable or literal.)
4763         */
4764        public BooleanType getValueBooleanType() throws FHIRException { 
4765          if (this.value == null)
4766            this.value = new BooleanType();
4767          if (!(this.value instanceof BooleanType))
4768            throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered");
4769          return (BooleanType) this.value;
4770        }
4771
4772        public boolean hasValueBooleanType() { 
4773          return this != null && this.value instanceof BooleanType;
4774        }
4775
4776        /**
4777         * @return {@link #value} (Parameter value - variable or literal.)
4778         */
4779        public IntegerType getValueIntegerType() throws FHIRException { 
4780          if (this.value == null)
4781            this.value = new IntegerType();
4782          if (!(this.value instanceof IntegerType))
4783            throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered");
4784          return (IntegerType) this.value;
4785        }
4786
4787        public boolean hasValueIntegerType() { 
4788          return this != null && this.value instanceof IntegerType;
4789        }
4790
4791        /**
4792         * @return {@link #value} (Parameter value - variable or literal.)
4793         */
4794        public DecimalType getValueDecimalType() throws FHIRException { 
4795          if (this.value == null)
4796            this.value = new DecimalType();
4797          if (!(this.value instanceof DecimalType))
4798            throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered");
4799          return (DecimalType) this.value;
4800        }
4801
4802        public boolean hasValueDecimalType() { 
4803          return this != null && this.value instanceof DecimalType;
4804        }
4805
4806        /**
4807         * @return {@link #value} (Parameter value - variable or literal.)
4808         */
4809        public DateType getValueDateType() throws FHIRException { 
4810          if (this.value == null)
4811            this.value = new DateType();
4812          if (!(this.value instanceof DateType))
4813            throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered");
4814          return (DateType) this.value;
4815        }
4816
4817        public boolean hasValueDateType() { 
4818          return this != null && this.value instanceof DateType;
4819        }
4820
4821        /**
4822         * @return {@link #value} (Parameter value - variable or literal.)
4823         */
4824        public TimeType getValueTimeType() throws FHIRException { 
4825          if (this.value == null)
4826            this.value = new TimeType();
4827          if (!(this.value instanceof TimeType))
4828            throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered");
4829          return (TimeType) this.value;
4830        }
4831
4832        public boolean hasValueTimeType() { 
4833          return this != null && this.value instanceof TimeType;
4834        }
4835
4836        /**
4837         * @return {@link #value} (Parameter value - variable or literal.)
4838         */
4839        public DateTimeType getValueDateTimeType() throws FHIRException { 
4840          if (this.value == null)
4841            this.value = new DateTimeType();
4842          if (!(this.value instanceof DateTimeType))
4843            throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered");
4844          return (DateTimeType) this.value;
4845        }
4846
4847        public boolean hasValueDateTimeType() { 
4848          return this != null && this.value instanceof DateTimeType;
4849        }
4850
4851        public boolean hasValue() { 
4852          return this.value != null && !this.value.isEmpty();
4853        }
4854
4855        /**
4856         * @param value {@link #value} (Parameter value - variable or literal.)
4857         */
4858        public StructureMapGroupRuleTargetParameterComponent setValue(DataType value) { 
4859          if (value != null && !(value instanceof IdType || value instanceof StringType || value instanceof BooleanType || value instanceof IntegerType || value instanceof DecimalType || value instanceof DateType || value instanceof TimeType || value instanceof DateTimeType))
4860            throw new FHIRException("Not the right type for StructureMap.group.rule.target.parameter.value[x]: "+value.fhirType());
4861          this.value = value;
4862          return this;
4863        }
4864
4865        protected void listChildren(List<Property> children) {
4866          super.listChildren(children);
4867          children.add(new Property("value[x]", "id|string|boolean|integer|decimal|date|time|dateTime", "Parameter value - variable or literal.", 0, 1, value));
4868        }
4869
4870        @Override
4871        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
4872          switch (_hash) {
4873          case -1410166417: /*value[x]*/  return new Property("value[x]", "id|string|boolean|integer|decimal|date|time|dateTime", "Parameter value - variable or literal.", 0, 1, value);
4874          case 111972721: /*value*/  return new Property("value[x]", "id|string|boolean|integer|decimal|date|time|dateTime", "Parameter value - variable or literal.", 0, 1, value);
4875          case 231604844: /*valueId*/  return new Property("value[x]", "id", "Parameter value - variable or literal.", 0, 1, value);
4876          case -1424603934: /*valueString*/  return new Property("value[x]", "string", "Parameter value - variable or literal.", 0, 1, value);
4877          case 733421943: /*valueBoolean*/  return new Property("value[x]", "boolean", "Parameter value - variable or literal.", 0, 1, value);
4878          case -1668204915: /*valueInteger*/  return new Property("value[x]", "integer", "Parameter value - variable or literal.", 0, 1, value);
4879          case -2083993440: /*valueDecimal*/  return new Property("value[x]", "decimal", "Parameter value - variable or literal.", 0, 1, value);
4880          case -766192449: /*valueDate*/  return new Property("value[x]", "date", "Parameter value - variable or literal.", 0, 1, value);
4881          case -765708322: /*valueTime*/  return new Property("value[x]", "time", "Parameter value - variable or literal.", 0, 1, value);
4882          case 1047929900: /*valueDateTime*/  return new Property("value[x]", "dateTime", "Parameter value - variable or literal.", 0, 1, value);
4883          default: return super.getNamedProperty(_hash, _name, _checkValid);
4884          }
4885
4886        }
4887
4888      @Override
4889      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
4890        switch (hash) {
4891        case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // DataType
4892        default: return super.getProperty(hash, name, checkValid);
4893        }
4894
4895      }
4896
4897      @Override
4898      public Base setProperty(int hash, String name, Base value) throws FHIRException {
4899        switch (hash) {
4900        case 111972721: // value
4901          this.value = TypeConvertor.castToType(value); // DataType
4902          return value;
4903        default: return super.setProperty(hash, name, value);
4904        }
4905
4906      }
4907
4908      @Override
4909      public Base setProperty(String name, Base value) throws FHIRException {
4910        if (name.equals("value[x]")) {
4911          this.value = TypeConvertor.castToType(value); // DataType
4912        } else
4913          return super.setProperty(name, value);
4914        return value;
4915      }
4916
4917      @Override
4918      public Base makeProperty(int hash, String name) throws FHIRException {
4919        switch (hash) {
4920        case -1410166417:  return getValue();
4921        case 111972721:  return getValue();
4922        default: return super.makeProperty(hash, name);
4923        }
4924
4925      }
4926
4927      @Override
4928      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
4929        switch (hash) {
4930        case 111972721: /*value*/ return new String[] {"id", "string", "boolean", "integer", "decimal", "date", "time", "dateTime"};
4931        default: return super.getTypesForProperty(hash, name);
4932        }
4933
4934      }
4935
4936      @Override
4937      public Base addChild(String name) throws FHIRException {
4938        if (name.equals("valueId")) {
4939          this.value = new IdType();
4940          return this.value;
4941        }
4942        else if (name.equals("valueString")) {
4943          this.value = new StringType();
4944          return this.value;
4945        }
4946        else if (name.equals("valueBoolean")) {
4947          this.value = new BooleanType();
4948          return this.value;
4949        }
4950        else if (name.equals("valueInteger")) {
4951          this.value = new IntegerType();
4952          return this.value;
4953        }
4954        else if (name.equals("valueDecimal")) {
4955          this.value = new DecimalType();
4956          return this.value;
4957        }
4958        else if (name.equals("valueDate")) {
4959          this.value = new DateType();
4960          return this.value;
4961        }
4962        else if (name.equals("valueTime")) {
4963          this.value = new TimeType();
4964          return this.value;
4965        }
4966        else if (name.equals("valueDateTime")) {
4967          this.value = new DateTimeType();
4968          return this.value;
4969        }
4970        else
4971          return super.addChild(name);
4972      }
4973
4974      public StructureMapGroupRuleTargetParameterComponent copy() {
4975        StructureMapGroupRuleTargetParameterComponent dst = new StructureMapGroupRuleTargetParameterComponent();
4976        copyValues(dst);
4977        return dst;
4978      }
4979
4980      public void copyValues(StructureMapGroupRuleTargetParameterComponent dst) {
4981        super.copyValues(dst);
4982        dst.value = value == null ? null : value.copy();
4983      }
4984
4985      @Override
4986      public boolean equalsDeep(Base other_) {
4987        if (!super.equalsDeep(other_))
4988          return false;
4989        if (!(other_ instanceof StructureMapGroupRuleTargetParameterComponent))
4990          return false;
4991        StructureMapGroupRuleTargetParameterComponent o = (StructureMapGroupRuleTargetParameterComponent) other_;
4992        return compareDeep(value, o.value, true);
4993      }
4994
4995      @Override
4996      public boolean equalsShallow(Base other_) {
4997        if (!super.equalsShallow(other_))
4998          return false;
4999        if (!(other_ instanceof StructureMapGroupRuleTargetParameterComponent))
5000          return false;
5001        StructureMapGroupRuleTargetParameterComponent o = (StructureMapGroupRuleTargetParameterComponent) other_;
5002        return true;
5003      }
5004
5005      public boolean isEmpty() {
5006        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value);
5007      }
5008
5009  public String fhirType() {
5010    return "StructureMap.group.rule.target.parameter";
5011
5012  }
5013
5014// added from java-adornments.txt:
5015public String toString() {
5016        return value == null ? "null!" : value.toString();
5017      }
5018// end addition
5019  }
5020
5021    @Block()
5022    public static class StructureMapGroupRuleDependentComponent extends BackboneElement implements IBaseBackboneElement {
5023        /**
5024         * Name of a rule or group to apply.
5025         */
5026        @Child(name = "name", type = {IdType.class}, order=1, min=1, max=1, modifier=false, summary=true)
5027        @Description(shortDefinition="Name of a rule or group to apply", formalDefinition="Name of a rule or group to apply." )
5028        protected IdType name;
5029
5030        /**
5031         * Parameter to pass to the rule or group.
5032         */
5033        @Child(name = "parameter", type = {StructureMapGroupRuleTargetParameterComponent.class}, order=2, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5034        @Description(shortDefinition="Parameter to pass to the rule or group", formalDefinition="Parameter to pass to the rule or group." )
5035        protected List<StructureMapGroupRuleTargetParameterComponent> parameter;
5036
5037        private static final long serialVersionUID = -290346576L;
5038
5039    /**
5040     * Constructor
5041     */
5042      public StructureMapGroupRuleDependentComponent() {
5043        super();
5044      }
5045
5046    /**
5047     * Constructor
5048     */
5049      public StructureMapGroupRuleDependentComponent(String name, StructureMapGroupRuleTargetParameterComponent parameter) {
5050        super();
5051        this.setName(name);
5052        this.addParameter(parameter);
5053      }
5054
5055        /**
5056         * @return {@link #name} (Name of a rule or group to apply.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
5057         */
5058        public IdType getNameElement() { 
5059          if (this.name == null)
5060            if (Configuration.errorOnAutoCreate())
5061              throw new Error("Attempt to auto-create StructureMapGroupRuleDependentComponent.name");
5062            else if (Configuration.doAutoCreate())
5063              this.name = new IdType(); // bb
5064          return this.name;
5065        }
5066
5067        public boolean hasNameElement() { 
5068          return this.name != null && !this.name.isEmpty();
5069        }
5070
5071        public boolean hasName() { 
5072          return this.name != null && !this.name.isEmpty();
5073        }
5074
5075        /**
5076         * @param value {@link #name} (Name of a rule or group to apply.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
5077         */
5078        public StructureMapGroupRuleDependentComponent setNameElement(IdType value) { 
5079          this.name = value;
5080          return this;
5081        }
5082
5083        /**
5084         * @return Name of a rule or group to apply.
5085         */
5086        public String getName() { 
5087          return this.name == null ? null : this.name.getValue();
5088        }
5089
5090        /**
5091         * @param value Name of a rule or group to apply.
5092         */
5093        public StructureMapGroupRuleDependentComponent setName(String value) { 
5094            if (this.name == null)
5095              this.name = new IdType();
5096            this.name.setValue(value);
5097          return this;
5098        }
5099
5100        /**
5101         * @return {@link #parameter} (Parameter to pass to the rule or group.)
5102         */
5103        public List<StructureMapGroupRuleTargetParameterComponent> getParameter() { 
5104          if (this.parameter == null)
5105            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
5106          return this.parameter;
5107        }
5108
5109        /**
5110         * @return Returns a reference to <code>this</code> for easy method chaining
5111         */
5112        public StructureMapGroupRuleDependentComponent setParameter(List<StructureMapGroupRuleTargetParameterComponent> theParameter) { 
5113          this.parameter = theParameter;
5114          return this;
5115        }
5116
5117        public boolean hasParameter() { 
5118          if (this.parameter == null)
5119            return false;
5120          for (StructureMapGroupRuleTargetParameterComponent item : this.parameter)
5121            if (!item.isEmpty())
5122              return true;
5123          return false;
5124        }
5125
5126        public StructureMapGroupRuleTargetParameterComponent addParameter() { //3
5127          StructureMapGroupRuleTargetParameterComponent t = new StructureMapGroupRuleTargetParameterComponent();
5128          if (this.parameter == null)
5129            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
5130          this.parameter.add(t);
5131          return t;
5132        }
5133
5134        public StructureMapGroupRuleDependentComponent addParameter(StructureMapGroupRuleTargetParameterComponent t) { //3
5135          if (t == null)
5136            return this;
5137          if (this.parameter == null)
5138            this.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
5139          this.parameter.add(t);
5140          return this;
5141        }
5142
5143        /**
5144         * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist {3}
5145         */
5146        public StructureMapGroupRuleTargetParameterComponent getParameterFirstRep() { 
5147          if (getParameter().isEmpty()) {
5148            addParameter();
5149          }
5150          return getParameter().get(0);
5151        }
5152
5153        protected void listChildren(List<Property> children) {
5154          super.listChildren(children);
5155          children.add(new Property("name", "id", "Name of a rule or group to apply.", 0, 1, name));
5156          children.add(new Property("parameter", "@StructureMap.group.rule.target.parameter", "Parameter to pass to the rule or group.", 0, java.lang.Integer.MAX_VALUE, parameter));
5157        }
5158
5159        @Override
5160        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
5161          switch (_hash) {
5162          case 3373707: /*name*/  return new Property("name", "id", "Name of a rule or group to apply.", 0, 1, name);
5163          case 1954460585: /*parameter*/  return new Property("parameter", "@StructureMap.group.rule.target.parameter", "Parameter to pass to the rule or group.", 0, java.lang.Integer.MAX_VALUE, parameter);
5164          default: return super.getNamedProperty(_hash, _name, _checkValid);
5165          }
5166
5167        }
5168
5169      @Override
5170      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
5171        switch (hash) {
5172        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // IdType
5173        case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // StructureMapGroupRuleTargetParameterComponent
5174        default: return super.getProperty(hash, name, checkValid);
5175        }
5176
5177      }
5178
5179      @Override
5180      public Base setProperty(int hash, String name, Base value) throws FHIRException {
5181        switch (hash) {
5182        case 3373707: // name
5183          this.name = TypeConvertor.castToId(value); // IdType
5184          return value;
5185        case 1954460585: // parameter
5186          this.getParameter().add((StructureMapGroupRuleTargetParameterComponent) value); // StructureMapGroupRuleTargetParameterComponent
5187          return value;
5188        default: return super.setProperty(hash, name, value);
5189        }
5190
5191      }
5192
5193      @Override
5194      public Base setProperty(String name, Base value) throws FHIRException {
5195        if (name.equals("name")) {
5196          this.name = TypeConvertor.castToId(value); // IdType
5197        } else if (name.equals("parameter")) {
5198          this.getParameter().add((StructureMapGroupRuleTargetParameterComponent) value);
5199        } else
5200          return super.setProperty(name, value);
5201        return value;
5202      }
5203
5204      @Override
5205      public Base makeProperty(int hash, String name) throws FHIRException {
5206        switch (hash) {
5207        case 3373707:  return getNameElement();
5208        case 1954460585:  return addParameter(); 
5209        default: return super.makeProperty(hash, name);
5210        }
5211
5212      }
5213
5214      @Override
5215      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
5216        switch (hash) {
5217        case 3373707: /*name*/ return new String[] {"id"};
5218        case 1954460585: /*parameter*/ return new String[] {"@StructureMap.group.rule.target.parameter"};
5219        default: return super.getTypesForProperty(hash, name);
5220        }
5221
5222      }
5223
5224      @Override
5225      public Base addChild(String name) throws FHIRException {
5226        if (name.equals("name")) {
5227          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.group.rule.dependent.name");
5228        }
5229        else if (name.equals("parameter")) {
5230          return addParameter();
5231        }
5232        else
5233          return super.addChild(name);
5234      }
5235
5236      public StructureMapGroupRuleDependentComponent copy() {
5237        StructureMapGroupRuleDependentComponent dst = new StructureMapGroupRuleDependentComponent();
5238        copyValues(dst);
5239        return dst;
5240      }
5241
5242      public void copyValues(StructureMapGroupRuleDependentComponent dst) {
5243        super.copyValues(dst);
5244        dst.name = name == null ? null : name.copy();
5245        if (parameter != null) {
5246          dst.parameter = new ArrayList<StructureMapGroupRuleTargetParameterComponent>();
5247          for (StructureMapGroupRuleTargetParameterComponent i : parameter)
5248            dst.parameter.add(i.copy());
5249        };
5250      }
5251
5252      @Override
5253      public boolean equalsDeep(Base other_) {
5254        if (!super.equalsDeep(other_))
5255          return false;
5256        if (!(other_ instanceof StructureMapGroupRuleDependentComponent))
5257          return false;
5258        StructureMapGroupRuleDependentComponent o = (StructureMapGroupRuleDependentComponent) other_;
5259        return compareDeep(name, o.name, true) && compareDeep(parameter, o.parameter, true);
5260      }
5261
5262      @Override
5263      public boolean equalsShallow(Base other_) {
5264        if (!super.equalsShallow(other_))
5265          return false;
5266        if (!(other_ instanceof StructureMapGroupRuleDependentComponent))
5267          return false;
5268        StructureMapGroupRuleDependentComponent o = (StructureMapGroupRuleDependentComponent) other_;
5269        return compareValues(name, o.name, true);
5270      }
5271
5272      public boolean isEmpty() {
5273        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, parameter);
5274      }
5275
5276  public String fhirType() {
5277    return "StructureMap.group.rule.dependent";
5278
5279  }
5280
5281  }
5282
5283    /**
5284     * An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.
5285     */
5286    @Child(name = "url", type = {UriType.class}, order=0, min=1, max=1, modifier=false, summary=true)
5287    @Description(shortDefinition="Canonical identifier for this structure map, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers." )
5288    protected UriType url;
5289
5290    /**
5291     * A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.
5292     */
5293    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5294    @Description(shortDefinition="Additional identifier for the structure map", formalDefinition="A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance." )
5295    protected List<Identifier> identifier;
5296
5297    /**
5298     * The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
5299     */
5300    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
5301    @Description(shortDefinition="Business version of the structure map", formalDefinition="The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence." )
5302    protected StringType version;
5303
5304    /**
5305     * Indicates the mechanism used to compare versions to determine which is more current.
5306     */
5307    @Child(name = "versionAlgorithm", type = {StringType.class, Coding.class}, order=3, min=0, max=1, modifier=false, summary=true)
5308    @Description(shortDefinition="How to compare versions", formalDefinition="Indicates the mechanism used to compare versions to determine which is more current." )
5309    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/version-algorithm")
5310    protected DataType versionAlgorithm;
5311
5312    /**
5313     * A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
5314     */
5315    @Child(name = "name", type = {StringType.class}, order=4, min=1, max=1, modifier=false, summary=true)
5316    @Description(shortDefinition="Name for this structure map (computer friendly)", formalDefinition="A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
5317    protected StringType name;
5318
5319    /**
5320     * A short, descriptive, user-friendly title for the structure map.
5321     */
5322    @Child(name = "title", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true)
5323    @Description(shortDefinition="Name for this structure map (human friendly)", formalDefinition="A short, descriptive, user-friendly title for the structure map." )
5324    protected StringType title;
5325
5326    /**
5327     * The status of this structure map. Enables tracking the life-cycle of the content.
5328     */
5329    @Child(name = "status", type = {CodeType.class}, order=6, min=1, max=1, modifier=true, summary=true)
5330    @Description(shortDefinition="draft | active | retired | unknown", formalDefinition="The status of this structure map. Enables tracking the life-cycle of the content." )
5331    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/publication-status")
5332    protected Enumeration<PublicationStatus> status;
5333
5334    /**
5335     * A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
5336     */
5337    @Child(name = "experimental", type = {BooleanType.class}, order=7, min=0, max=1, modifier=false, summary=true)
5338    @Description(shortDefinition="For testing purposes, not real usage", formalDefinition="A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage." )
5339    protected BooleanType experimental;
5340
5341    /**
5342     * The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.
5343     */
5344    @Child(name = "date", type = {DateTimeType.class}, order=8, min=0, max=1, modifier=false, summary=true)
5345    @Description(shortDefinition="Date last changed", formalDefinition="The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes." )
5346    protected DateTimeType date;
5347
5348    /**
5349     * The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.
5350     */
5351    @Child(name = "publisher", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=true)
5352    @Description(shortDefinition="Name of the publisher/steward (organization or individual)", formalDefinition="The name of the organization or individual responsible for the release and ongoing maintenance of the structure map." )
5353    protected StringType publisher;
5354
5355    /**
5356     * Contact details to assist a user in finding and communicating with the publisher.
5357     */
5358    @Child(name = "contact", type = {ContactDetail.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5359    @Description(shortDefinition="Contact details for the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." )
5360    protected List<ContactDetail> contact;
5361
5362    /**
5363     * A free text natural language description of the structure map from a consumer's perspective.
5364     */
5365    @Child(name = "description", type = {MarkdownType.class}, order=11, min=0, max=1, modifier=false, summary=false)
5366    @Description(shortDefinition="Natural language description of the structure map", formalDefinition="A free text natural language description of the structure map from a consumer's perspective." )
5367    protected MarkdownType description;
5368
5369    /**
5370     * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.
5371     */
5372    @Child(name = "useContext", type = {UsageContext.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5373    @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances." )
5374    protected List<UsageContext> useContext;
5375
5376    /**
5377     * A legal or geographic region in which the structure map is intended to be used.
5378     */
5379    @Child(name = "jurisdiction", type = {CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5380    @Description(shortDefinition="Intended jurisdiction for structure map (if applicable)", formalDefinition="A legal or geographic region in which the structure map is intended to be used." )
5381    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/jurisdiction")
5382    protected List<CodeableConcept> jurisdiction;
5383
5384    /**
5385     * Explanation of why this structure map is needed and why it has been designed as it has.
5386     */
5387    @Child(name = "purpose", type = {MarkdownType.class}, order=14, min=0, max=1, modifier=false, summary=false)
5388    @Description(shortDefinition="Why this structure map is defined", formalDefinition="Explanation of why this structure map is needed and why it has been designed as it has." )
5389    protected MarkdownType purpose;
5390
5391    /**
5392     * A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.
5393     */
5394    @Child(name = "copyright", type = {MarkdownType.class}, order=15, min=0, max=1, modifier=false, summary=false)
5395    @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map." )
5396    protected MarkdownType copyright;
5397
5398    /**
5399     * A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
5400     */
5401    @Child(name = "copyrightLabel", type = {StringType.class}, order=16, min=0, max=1, modifier=false, summary=false)
5402    @Description(shortDefinition="Copyright holder and year(s)", formalDefinition="A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')." )
5403    protected StringType copyrightLabel;
5404
5405    /**
5406     * A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.
5407     */
5408    @Child(name = "structure", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5409    @Description(shortDefinition="Structure Definition used by this map", formalDefinition="A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced." )
5410    protected List<StructureMapStructureComponent> structure;
5411
5412    /**
5413     * Other maps used by this map (canonical URLs).
5414     */
5415    @Child(name = "import", type = {CanonicalType.class}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5416    @Description(shortDefinition="Other maps used by this map (canonical URLs)", formalDefinition="Other maps used by this map (canonical URLs)." )
5417    protected List<CanonicalType> import_;
5418
5419    /**
5420     * Definition of a constant value used in the map rules.
5421     */
5422    @Child(name = "const", type = {}, order=19, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5423    @Description(shortDefinition="Definition of the constant value used in the map rules", formalDefinition="Definition of a constant value used in the map rules." )
5424    protected List<StructureMapConstComponent> const_;
5425
5426    /**
5427     * Organizes the mapping into managable chunks for human review/ease of maintenance.
5428     */
5429    @Child(name = "group", type = {}, order=20, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
5430    @Description(shortDefinition="Named sections for reader convenience", formalDefinition="Organizes the mapping into managable chunks for human review/ease of maintenance." )
5431    protected List<StructureMapGroupComponent> group;
5432
5433    private static final long serialVersionUID = -1875777589L;
5434
5435  /**
5436   * Constructor
5437   */
5438    public StructureMap() {
5439      super();
5440    }
5441
5442  /**
5443   * Constructor
5444   */
5445    public StructureMap(String url, String name, PublicationStatus status, StructureMapGroupComponent group) {
5446      super();
5447      this.setUrl(url);
5448      this.setName(name);
5449      this.setStatus(status);
5450      this.addGroup(group);
5451    }
5452
5453    /**
5454     * @return {@link #url} (An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
5455     */
5456    public UriType getUrlElement() { 
5457      if (this.url == null)
5458        if (Configuration.errorOnAutoCreate())
5459          throw new Error("Attempt to auto-create StructureMap.url");
5460        else if (Configuration.doAutoCreate())
5461          this.url = new UriType(); // bb
5462      return this.url;
5463    }
5464
5465    public boolean hasUrlElement() { 
5466      return this.url != null && !this.url.isEmpty();
5467    }
5468
5469    public boolean hasUrl() { 
5470      return this.url != null && !this.url.isEmpty();
5471    }
5472
5473    /**
5474     * @param value {@link #url} (An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
5475     */
5476    public StructureMap setUrlElement(UriType value) { 
5477      this.url = value;
5478      return this;
5479    }
5480
5481    /**
5482     * @return An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.
5483     */
5484    public String getUrl() { 
5485      return this.url == null ? null : this.url.getValue();
5486    }
5487
5488    /**
5489     * @param value An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.
5490     */
5491    public StructureMap setUrl(String value) { 
5492        if (this.url == null)
5493          this.url = new UriType();
5494        this.url.setValue(value);
5495      return this;
5496    }
5497
5498    /**
5499     * @return {@link #identifier} (A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.)
5500     */
5501    public List<Identifier> getIdentifier() { 
5502      if (this.identifier == null)
5503        this.identifier = new ArrayList<Identifier>();
5504      return this.identifier;
5505    }
5506
5507    /**
5508     * @return Returns a reference to <code>this</code> for easy method chaining
5509     */
5510    public StructureMap setIdentifier(List<Identifier> theIdentifier) { 
5511      this.identifier = theIdentifier;
5512      return this;
5513    }
5514
5515    public boolean hasIdentifier() { 
5516      if (this.identifier == null)
5517        return false;
5518      for (Identifier item : this.identifier)
5519        if (!item.isEmpty())
5520          return true;
5521      return false;
5522    }
5523
5524    public Identifier addIdentifier() { //3
5525      Identifier t = new Identifier();
5526      if (this.identifier == null)
5527        this.identifier = new ArrayList<Identifier>();
5528      this.identifier.add(t);
5529      return t;
5530    }
5531
5532    public StructureMap addIdentifier(Identifier t) { //3
5533      if (t == null)
5534        return this;
5535      if (this.identifier == null)
5536        this.identifier = new ArrayList<Identifier>();
5537      this.identifier.add(t);
5538      return this;
5539    }
5540
5541    /**
5542     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
5543     */
5544    public Identifier getIdentifierFirstRep() { 
5545      if (getIdentifier().isEmpty()) {
5546        addIdentifier();
5547      }
5548      return getIdentifier().get(0);
5549    }
5550
5551    /**
5552     * @return {@link #version} (The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
5553     */
5554    public StringType getVersionElement() { 
5555      if (this.version == null)
5556        if (Configuration.errorOnAutoCreate())
5557          throw new Error("Attempt to auto-create StructureMap.version");
5558        else if (Configuration.doAutoCreate())
5559          this.version = new StringType(); // bb
5560      return this.version;
5561    }
5562
5563    public boolean hasVersionElement() { 
5564      return this.version != null && !this.version.isEmpty();
5565    }
5566
5567    public boolean hasVersion() { 
5568      return this.version != null && !this.version.isEmpty();
5569    }
5570
5571    /**
5572     * @param value {@link #version} (The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
5573     */
5574    public StructureMap setVersionElement(StringType value) { 
5575      this.version = value;
5576      return this;
5577    }
5578
5579    /**
5580     * @return The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
5581     */
5582    public String getVersion() { 
5583      return this.version == null ? null : this.version.getValue();
5584    }
5585
5586    /**
5587     * @param value The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.
5588     */
5589    public StructureMap setVersion(String value) { 
5590      if (Utilities.noString(value))
5591        this.version = null;
5592      else {
5593        if (this.version == null)
5594          this.version = new StringType();
5595        this.version.setValue(value);
5596      }
5597      return this;
5598    }
5599
5600    /**
5601     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
5602     */
5603    public DataType getVersionAlgorithm() { 
5604      return this.versionAlgorithm;
5605    }
5606
5607    /**
5608     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
5609     */
5610    public StringType getVersionAlgorithmStringType() throws FHIRException { 
5611      if (this.versionAlgorithm == null)
5612        this.versionAlgorithm = new StringType();
5613      if (!(this.versionAlgorithm instanceof StringType))
5614        throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
5615      return (StringType) this.versionAlgorithm;
5616    }
5617
5618    public boolean hasVersionAlgorithmStringType() { 
5619      return this != null && this.versionAlgorithm instanceof StringType;
5620    }
5621
5622    /**
5623     * @return {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
5624     */
5625    public Coding getVersionAlgorithmCoding() throws FHIRException { 
5626      if (this.versionAlgorithm == null)
5627        this.versionAlgorithm = new Coding();
5628      if (!(this.versionAlgorithm instanceof Coding))
5629        throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.versionAlgorithm.getClass().getName()+" was encountered");
5630      return (Coding) this.versionAlgorithm;
5631    }
5632
5633    public boolean hasVersionAlgorithmCoding() { 
5634      return this != null && this.versionAlgorithm instanceof Coding;
5635    }
5636
5637    public boolean hasVersionAlgorithm() { 
5638      return this.versionAlgorithm != null && !this.versionAlgorithm.isEmpty();
5639    }
5640
5641    /**
5642     * @param value {@link #versionAlgorithm} (Indicates the mechanism used to compare versions to determine which is more current.)
5643     */
5644    public StructureMap setVersionAlgorithm(DataType value) { 
5645      if (value != null && !(value instanceof StringType || value instanceof Coding))
5646        throw new FHIRException("Not the right type for StructureMap.versionAlgorithm[x]: "+value.fhirType());
5647      this.versionAlgorithm = value;
5648      return this;
5649    }
5650
5651    /**
5652     * @return {@link #name} (A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
5653     */
5654    public StringType getNameElement() { 
5655      if (this.name == null)
5656        if (Configuration.errorOnAutoCreate())
5657          throw new Error("Attempt to auto-create StructureMap.name");
5658        else if (Configuration.doAutoCreate())
5659          this.name = new StringType(); // bb
5660      return this.name;
5661    }
5662
5663    public boolean hasNameElement() { 
5664      return this.name != null && !this.name.isEmpty();
5665    }
5666
5667    public boolean hasName() { 
5668      return this.name != null && !this.name.isEmpty();
5669    }
5670
5671    /**
5672     * @param value {@link #name} (A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
5673     */
5674    public StructureMap setNameElement(StringType value) { 
5675      this.name = value;
5676      return this;
5677    }
5678
5679    /**
5680     * @return A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
5681     */
5682    public String getName() { 
5683      return this.name == null ? null : this.name.getValue();
5684    }
5685
5686    /**
5687     * @param value A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.
5688     */
5689    public StructureMap setName(String value) { 
5690        if (this.name == null)
5691          this.name = new StringType();
5692        this.name.setValue(value);
5693      return this;
5694    }
5695
5696    /**
5697     * @return {@link #title} (A short, descriptive, user-friendly title for the structure map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
5698     */
5699    public StringType getTitleElement() { 
5700      if (this.title == null)
5701        if (Configuration.errorOnAutoCreate())
5702          throw new Error("Attempt to auto-create StructureMap.title");
5703        else if (Configuration.doAutoCreate())
5704          this.title = new StringType(); // bb
5705      return this.title;
5706    }
5707
5708    public boolean hasTitleElement() { 
5709      return this.title != null && !this.title.isEmpty();
5710    }
5711
5712    public boolean hasTitle() { 
5713      return this.title != null && !this.title.isEmpty();
5714    }
5715
5716    /**
5717     * @param value {@link #title} (A short, descriptive, user-friendly title for the structure map.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
5718     */
5719    public StructureMap setTitleElement(StringType value) { 
5720      this.title = value;
5721      return this;
5722    }
5723
5724    /**
5725     * @return A short, descriptive, user-friendly title for the structure map.
5726     */
5727    public String getTitle() { 
5728      return this.title == null ? null : this.title.getValue();
5729    }
5730
5731    /**
5732     * @param value A short, descriptive, user-friendly title for the structure map.
5733     */
5734    public StructureMap setTitle(String value) { 
5735      if (Utilities.noString(value))
5736        this.title = null;
5737      else {
5738        if (this.title == null)
5739          this.title = new StringType();
5740        this.title.setValue(value);
5741      }
5742      return this;
5743    }
5744
5745    /**
5746     * @return {@link #status} (The status of this structure map. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
5747     */
5748    public Enumeration<PublicationStatus> getStatusElement() { 
5749      if (this.status == null)
5750        if (Configuration.errorOnAutoCreate())
5751          throw new Error("Attempt to auto-create StructureMap.status");
5752        else if (Configuration.doAutoCreate())
5753          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb
5754      return this.status;
5755    }
5756
5757    public boolean hasStatusElement() { 
5758      return this.status != null && !this.status.isEmpty();
5759    }
5760
5761    public boolean hasStatus() { 
5762      return this.status != null && !this.status.isEmpty();
5763    }
5764
5765    /**
5766     * @param value {@link #status} (The status of this structure map. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
5767     */
5768    public StructureMap setStatusElement(Enumeration<PublicationStatus> value) { 
5769      this.status = value;
5770      return this;
5771    }
5772
5773    /**
5774     * @return The status of this structure map. Enables tracking the life-cycle of the content.
5775     */
5776    public PublicationStatus getStatus() { 
5777      return this.status == null ? null : this.status.getValue();
5778    }
5779
5780    /**
5781     * @param value The status of this structure map. Enables tracking the life-cycle of the content.
5782     */
5783    public StructureMap setStatus(PublicationStatus value) { 
5784        if (this.status == null)
5785          this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory());
5786        this.status.setValue(value);
5787      return this;
5788    }
5789
5790    /**
5791     * @return {@link #experimental} (A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
5792     */
5793    public BooleanType getExperimentalElement() { 
5794      if (this.experimental == null)
5795        if (Configuration.errorOnAutoCreate())
5796          throw new Error("Attempt to auto-create StructureMap.experimental");
5797        else if (Configuration.doAutoCreate())
5798          this.experimental = new BooleanType(); // bb
5799      return this.experimental;
5800    }
5801
5802    public boolean hasExperimentalElement() { 
5803      return this.experimental != null && !this.experimental.isEmpty();
5804    }
5805
5806    public boolean hasExperimental() { 
5807      return this.experimental != null && !this.experimental.isEmpty();
5808    }
5809
5810    /**
5811     * @param value {@link #experimental} (A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value
5812     */
5813    public StructureMap setExperimentalElement(BooleanType value) { 
5814      this.experimental = value;
5815      return this;
5816    }
5817
5818    /**
5819     * @return A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
5820     */
5821    public boolean getExperimental() { 
5822      return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue();
5823    }
5824
5825    /**
5826     * @param value A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.
5827     */
5828    public StructureMap setExperimental(boolean value) { 
5829        if (this.experimental == null)
5830          this.experimental = new BooleanType();
5831        this.experimental.setValue(value);
5832      return this;
5833    }
5834
5835    /**
5836     * @return {@link #date} (The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
5837     */
5838    public DateTimeType getDateElement() { 
5839      if (this.date == null)
5840        if (Configuration.errorOnAutoCreate())
5841          throw new Error("Attempt to auto-create StructureMap.date");
5842        else if (Configuration.doAutoCreate())
5843          this.date = new DateTimeType(); // bb
5844      return this.date;
5845    }
5846
5847    public boolean hasDateElement() { 
5848      return this.date != null && !this.date.isEmpty();
5849    }
5850
5851    public boolean hasDate() { 
5852      return this.date != null && !this.date.isEmpty();
5853    }
5854
5855    /**
5856     * @param value {@link #date} (The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
5857     */
5858    public StructureMap setDateElement(DateTimeType value) { 
5859      this.date = value;
5860      return this;
5861    }
5862
5863    /**
5864     * @return The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.
5865     */
5866    public Date getDate() { 
5867      return this.date == null ? null : this.date.getValue();
5868    }
5869
5870    /**
5871     * @param value The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.
5872     */
5873    public StructureMap setDate(Date value) { 
5874      if (value == null)
5875        this.date = null;
5876      else {
5877        if (this.date == null)
5878          this.date = new DateTimeType();
5879        this.date.setValue(value);
5880      }
5881      return this;
5882    }
5883
5884    /**
5885     * @return {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
5886     */
5887    public StringType getPublisherElement() { 
5888      if (this.publisher == null)
5889        if (Configuration.errorOnAutoCreate())
5890          throw new Error("Attempt to auto-create StructureMap.publisher");
5891        else if (Configuration.doAutoCreate())
5892          this.publisher = new StringType(); // bb
5893      return this.publisher;
5894    }
5895
5896    public boolean hasPublisherElement() { 
5897      return this.publisher != null && !this.publisher.isEmpty();
5898    }
5899
5900    public boolean hasPublisher() { 
5901      return this.publisher != null && !this.publisher.isEmpty();
5902    }
5903
5904    /**
5905     * @param value {@link #publisher} (The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value
5906     */
5907    public StructureMap setPublisherElement(StringType value) { 
5908      this.publisher = value;
5909      return this;
5910    }
5911
5912    /**
5913     * @return The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.
5914     */
5915    public String getPublisher() { 
5916      return this.publisher == null ? null : this.publisher.getValue();
5917    }
5918
5919    /**
5920     * @param value The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.
5921     */
5922    public StructureMap setPublisher(String value) { 
5923      if (Utilities.noString(value))
5924        this.publisher = null;
5925      else {
5926        if (this.publisher == null)
5927          this.publisher = new StringType();
5928        this.publisher.setValue(value);
5929      }
5930      return this;
5931    }
5932
5933    /**
5934     * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.)
5935     */
5936    public List<ContactDetail> getContact() { 
5937      if (this.contact == null)
5938        this.contact = new ArrayList<ContactDetail>();
5939      return this.contact;
5940    }
5941
5942    /**
5943     * @return Returns a reference to <code>this</code> for easy method chaining
5944     */
5945    public StructureMap setContact(List<ContactDetail> theContact) { 
5946      this.contact = theContact;
5947      return this;
5948    }
5949
5950    public boolean hasContact() { 
5951      if (this.contact == null)
5952        return false;
5953      for (ContactDetail item : this.contact)
5954        if (!item.isEmpty())
5955          return true;
5956      return false;
5957    }
5958
5959    public ContactDetail addContact() { //3
5960      ContactDetail t = new ContactDetail();
5961      if (this.contact == null)
5962        this.contact = new ArrayList<ContactDetail>();
5963      this.contact.add(t);
5964      return t;
5965    }
5966
5967    public StructureMap addContact(ContactDetail t) { //3
5968      if (t == null)
5969        return this;
5970      if (this.contact == null)
5971        this.contact = new ArrayList<ContactDetail>();
5972      this.contact.add(t);
5973      return this;
5974    }
5975
5976    /**
5977     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
5978     */
5979    public ContactDetail getContactFirstRep() { 
5980      if (getContact().isEmpty()) {
5981        addContact();
5982      }
5983      return getContact().get(0);
5984    }
5985
5986    /**
5987     * @return {@link #description} (A free text natural language description of the structure map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
5988     */
5989    public MarkdownType getDescriptionElement() { 
5990      if (this.description == null)
5991        if (Configuration.errorOnAutoCreate())
5992          throw new Error("Attempt to auto-create StructureMap.description");
5993        else if (Configuration.doAutoCreate())
5994          this.description = new MarkdownType(); // bb
5995      return this.description;
5996    }
5997
5998    public boolean hasDescriptionElement() { 
5999      return this.description != null && !this.description.isEmpty();
6000    }
6001
6002    public boolean hasDescription() { 
6003      return this.description != null && !this.description.isEmpty();
6004    }
6005
6006    /**
6007     * @param value {@link #description} (A free text natural language description of the structure map from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
6008     */
6009    public StructureMap setDescriptionElement(MarkdownType value) { 
6010      this.description = value;
6011      return this;
6012    }
6013
6014    /**
6015     * @return A free text natural language description of the structure map from a consumer's perspective.
6016     */
6017    public String getDescription() { 
6018      return this.description == null ? null : this.description.getValue();
6019    }
6020
6021    /**
6022     * @param value A free text natural language description of the structure map from a consumer's perspective.
6023     */
6024    public StructureMap setDescription(String value) { 
6025      if (Utilities.noString(value))
6026        this.description = null;
6027      else {
6028        if (this.description == null)
6029          this.description = new MarkdownType();
6030        this.description.setValue(value);
6031      }
6032      return this;
6033    }
6034
6035    /**
6036     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.)
6037     */
6038    public List<UsageContext> getUseContext() { 
6039      if (this.useContext == null)
6040        this.useContext = new ArrayList<UsageContext>();
6041      return this.useContext;
6042    }
6043
6044    /**
6045     * @return Returns a reference to <code>this</code> for easy method chaining
6046     */
6047    public StructureMap setUseContext(List<UsageContext> theUseContext) { 
6048      this.useContext = theUseContext;
6049      return this;
6050    }
6051
6052    public boolean hasUseContext() { 
6053      if (this.useContext == null)
6054        return false;
6055      for (UsageContext item : this.useContext)
6056        if (!item.isEmpty())
6057          return true;
6058      return false;
6059    }
6060
6061    public UsageContext addUseContext() { //3
6062      UsageContext t = new UsageContext();
6063      if (this.useContext == null)
6064        this.useContext = new ArrayList<UsageContext>();
6065      this.useContext.add(t);
6066      return t;
6067    }
6068
6069    public StructureMap addUseContext(UsageContext t) { //3
6070      if (t == null)
6071        return this;
6072      if (this.useContext == null)
6073        this.useContext = new ArrayList<UsageContext>();
6074      this.useContext.add(t);
6075      return this;
6076    }
6077
6078    /**
6079     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
6080     */
6081    public UsageContext getUseContextFirstRep() { 
6082      if (getUseContext().isEmpty()) {
6083        addUseContext();
6084      }
6085      return getUseContext().get(0);
6086    }
6087
6088    /**
6089     * @return {@link #jurisdiction} (A legal or geographic region in which the structure map is intended to be used.)
6090     */
6091    public List<CodeableConcept> getJurisdiction() { 
6092      if (this.jurisdiction == null)
6093        this.jurisdiction = new ArrayList<CodeableConcept>();
6094      return this.jurisdiction;
6095    }
6096
6097    /**
6098     * @return Returns a reference to <code>this</code> for easy method chaining
6099     */
6100    public StructureMap setJurisdiction(List<CodeableConcept> theJurisdiction) { 
6101      this.jurisdiction = theJurisdiction;
6102      return this;
6103    }
6104
6105    public boolean hasJurisdiction() { 
6106      if (this.jurisdiction == null)
6107        return false;
6108      for (CodeableConcept item : this.jurisdiction)
6109        if (!item.isEmpty())
6110          return true;
6111      return false;
6112    }
6113
6114    public CodeableConcept addJurisdiction() { //3
6115      CodeableConcept t = new CodeableConcept();
6116      if (this.jurisdiction == null)
6117        this.jurisdiction = new ArrayList<CodeableConcept>();
6118      this.jurisdiction.add(t);
6119      return t;
6120    }
6121
6122    public StructureMap addJurisdiction(CodeableConcept t) { //3
6123      if (t == null)
6124        return this;
6125      if (this.jurisdiction == null)
6126        this.jurisdiction = new ArrayList<CodeableConcept>();
6127      this.jurisdiction.add(t);
6128      return this;
6129    }
6130
6131    /**
6132     * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist {3}
6133     */
6134    public CodeableConcept getJurisdictionFirstRep() { 
6135      if (getJurisdiction().isEmpty()) {
6136        addJurisdiction();
6137      }
6138      return getJurisdiction().get(0);
6139    }
6140
6141    /**
6142     * @return {@link #purpose} (Explanation of why this structure map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
6143     */
6144    public MarkdownType getPurposeElement() { 
6145      if (this.purpose == null)
6146        if (Configuration.errorOnAutoCreate())
6147          throw new Error("Attempt to auto-create StructureMap.purpose");
6148        else if (Configuration.doAutoCreate())
6149          this.purpose = new MarkdownType(); // bb
6150      return this.purpose;
6151    }
6152
6153    public boolean hasPurposeElement() { 
6154      return this.purpose != null && !this.purpose.isEmpty();
6155    }
6156
6157    public boolean hasPurpose() { 
6158      return this.purpose != null && !this.purpose.isEmpty();
6159    }
6160
6161    /**
6162     * @param value {@link #purpose} (Explanation of why this structure map is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value
6163     */
6164    public StructureMap setPurposeElement(MarkdownType value) { 
6165      this.purpose = value;
6166      return this;
6167    }
6168
6169    /**
6170     * @return Explanation of why this structure map is needed and why it has been designed as it has.
6171     */
6172    public String getPurpose() { 
6173      return this.purpose == null ? null : this.purpose.getValue();
6174    }
6175
6176    /**
6177     * @param value Explanation of why this structure map is needed and why it has been designed as it has.
6178     */
6179    public StructureMap setPurpose(String value) { 
6180      if (Utilities.noString(value))
6181        this.purpose = null;
6182      else {
6183        if (this.purpose == null)
6184          this.purpose = new MarkdownType();
6185        this.purpose.setValue(value);
6186      }
6187      return this;
6188    }
6189
6190    /**
6191     * @return {@link #copyright} (A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
6192     */
6193    public MarkdownType getCopyrightElement() { 
6194      if (this.copyright == null)
6195        if (Configuration.errorOnAutoCreate())
6196          throw new Error("Attempt to auto-create StructureMap.copyright");
6197        else if (Configuration.doAutoCreate())
6198          this.copyright = new MarkdownType(); // bb
6199      return this.copyright;
6200    }
6201
6202    public boolean hasCopyrightElement() { 
6203      return this.copyright != null && !this.copyright.isEmpty();
6204    }
6205
6206    public boolean hasCopyright() { 
6207      return this.copyright != null && !this.copyright.isEmpty();
6208    }
6209
6210    /**
6211     * @param value {@link #copyright} (A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value
6212     */
6213    public StructureMap setCopyrightElement(MarkdownType value) { 
6214      this.copyright = value;
6215      return this;
6216    }
6217
6218    /**
6219     * @return A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.
6220     */
6221    public String getCopyright() { 
6222      return this.copyright == null ? null : this.copyright.getValue();
6223    }
6224
6225    /**
6226     * @param value A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.
6227     */
6228    public StructureMap setCopyright(String value) { 
6229      if (Utilities.noString(value))
6230        this.copyright = null;
6231      else {
6232        if (this.copyright == null)
6233          this.copyright = new MarkdownType();
6234        this.copyright.setValue(value);
6235      }
6236      return this;
6237    }
6238
6239    /**
6240     * @return {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
6241     */
6242    public StringType getCopyrightLabelElement() { 
6243      if (this.copyrightLabel == null)
6244        if (Configuration.errorOnAutoCreate())
6245          throw new Error("Attempt to auto-create StructureMap.copyrightLabel");
6246        else if (Configuration.doAutoCreate())
6247          this.copyrightLabel = new StringType(); // bb
6248      return this.copyrightLabel;
6249    }
6250
6251    public boolean hasCopyrightLabelElement() { 
6252      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
6253    }
6254
6255    public boolean hasCopyrightLabel() { 
6256      return this.copyrightLabel != null && !this.copyrightLabel.isEmpty();
6257    }
6258
6259    /**
6260     * @param value {@link #copyrightLabel} (A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').). This is the underlying object with id, value and extensions. The accessor "getCopyrightLabel" gives direct access to the value
6261     */
6262    public StructureMap setCopyrightLabelElement(StringType value) { 
6263      this.copyrightLabel = value;
6264      return this;
6265    }
6266
6267    /**
6268     * @return A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
6269     */
6270    public String getCopyrightLabel() { 
6271      return this.copyrightLabel == null ? null : this.copyrightLabel.getValue();
6272    }
6273
6274    /**
6275     * @param value A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').
6276     */
6277    public StructureMap setCopyrightLabel(String value) { 
6278      if (Utilities.noString(value))
6279        this.copyrightLabel = null;
6280      else {
6281        if (this.copyrightLabel == null)
6282          this.copyrightLabel = new StringType();
6283        this.copyrightLabel.setValue(value);
6284      }
6285      return this;
6286    }
6287
6288    /**
6289     * @return {@link #structure} (A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.)
6290     */
6291    public List<StructureMapStructureComponent> getStructure() { 
6292      if (this.structure == null)
6293        this.structure = new ArrayList<StructureMapStructureComponent>();
6294      return this.structure;
6295    }
6296
6297    /**
6298     * @return Returns a reference to <code>this</code> for easy method chaining
6299     */
6300    public StructureMap setStructure(List<StructureMapStructureComponent> theStructure) { 
6301      this.structure = theStructure;
6302      return this;
6303    }
6304
6305    public boolean hasStructure() { 
6306      if (this.structure == null)
6307        return false;
6308      for (StructureMapStructureComponent item : this.structure)
6309        if (!item.isEmpty())
6310          return true;
6311      return false;
6312    }
6313
6314    public StructureMapStructureComponent addStructure() { //3
6315      StructureMapStructureComponent t = new StructureMapStructureComponent();
6316      if (this.structure == null)
6317        this.structure = new ArrayList<StructureMapStructureComponent>();
6318      this.structure.add(t);
6319      return t;
6320    }
6321
6322    public StructureMap addStructure(StructureMapStructureComponent t) { //3
6323      if (t == null)
6324        return this;
6325      if (this.structure == null)
6326        this.structure = new ArrayList<StructureMapStructureComponent>();
6327      this.structure.add(t);
6328      return this;
6329    }
6330
6331    /**
6332     * @return The first repetition of repeating field {@link #structure}, creating it if it does not already exist {3}
6333     */
6334    public StructureMapStructureComponent getStructureFirstRep() { 
6335      if (getStructure().isEmpty()) {
6336        addStructure();
6337      }
6338      return getStructure().get(0);
6339    }
6340
6341    /**
6342     * @return {@link #import_} (Other maps used by this map (canonical URLs).)
6343     */
6344    public List<CanonicalType> getImport() { 
6345      if (this.import_ == null)
6346        this.import_ = new ArrayList<CanonicalType>();
6347      return this.import_;
6348    }
6349
6350    /**
6351     * @return Returns a reference to <code>this</code> for easy method chaining
6352     */
6353    public StructureMap setImport(List<CanonicalType> theImport) { 
6354      this.import_ = theImport;
6355      return this;
6356    }
6357
6358    public boolean hasImport() { 
6359      if (this.import_ == null)
6360        return false;
6361      for (CanonicalType item : this.import_)
6362        if (!item.isEmpty())
6363          return true;
6364      return false;
6365    }
6366
6367    /**
6368     * @return {@link #import_} (Other maps used by this map (canonical URLs).)
6369     */
6370    public CanonicalType addImportElement() {//2 
6371      CanonicalType t = new CanonicalType();
6372      if (this.import_ == null)
6373        this.import_ = new ArrayList<CanonicalType>();
6374      this.import_.add(t);
6375      return t;
6376    }
6377
6378    /**
6379     * @param value {@link #import_} (Other maps used by this map (canonical URLs).)
6380     */
6381    public StructureMap addImport(String value) { //1
6382      CanonicalType t = new CanonicalType();
6383      t.setValue(value);
6384      if (this.import_ == null)
6385        this.import_ = new ArrayList<CanonicalType>();
6386      this.import_.add(t);
6387      return this;
6388    }
6389
6390    /**
6391     * @param value {@link #import_} (Other maps used by this map (canonical URLs).)
6392     */
6393    public boolean hasImport(String value) { 
6394      if (this.import_ == null)
6395        return false;
6396      for (CanonicalType v : this.import_)
6397        if (v.getValue().equals(value)) // canonical
6398          return true;
6399      return false;
6400    }
6401
6402    /**
6403     * @return {@link #const_} (Definition of a constant value used in the map rules.)
6404     */
6405    public List<StructureMapConstComponent> getConst() { 
6406      if (this.const_ == null)
6407        this.const_ = new ArrayList<StructureMapConstComponent>();
6408      return this.const_;
6409    }
6410
6411    /**
6412     * @return Returns a reference to <code>this</code> for easy method chaining
6413     */
6414    public StructureMap setConst(List<StructureMapConstComponent> theConst) { 
6415      this.const_ = theConst;
6416      return this;
6417    }
6418
6419    public boolean hasConst() { 
6420      if (this.const_ == null)
6421        return false;
6422      for (StructureMapConstComponent item : this.const_)
6423        if (!item.isEmpty())
6424          return true;
6425      return false;
6426    }
6427
6428    public StructureMapConstComponent addConst() { //3
6429      StructureMapConstComponent t = new StructureMapConstComponent();
6430      if (this.const_ == null)
6431        this.const_ = new ArrayList<StructureMapConstComponent>();
6432      this.const_.add(t);
6433      return t;
6434    }
6435
6436    public StructureMap addConst(StructureMapConstComponent t) { //3
6437      if (t == null)
6438        return this;
6439      if (this.const_ == null)
6440        this.const_ = new ArrayList<StructureMapConstComponent>();
6441      this.const_.add(t);
6442      return this;
6443    }
6444
6445    /**
6446     * @return The first repetition of repeating field {@link #const_}, creating it if it does not already exist {3}
6447     */
6448    public StructureMapConstComponent getConstFirstRep() { 
6449      if (getConst().isEmpty()) {
6450        addConst();
6451      }
6452      return getConst().get(0);
6453    }
6454
6455    /**
6456     * @return {@link #group} (Organizes the mapping into managable chunks for human review/ease of maintenance.)
6457     */
6458    public List<StructureMapGroupComponent> getGroup() { 
6459      if (this.group == null)
6460        this.group = new ArrayList<StructureMapGroupComponent>();
6461      return this.group;
6462    }
6463
6464    /**
6465     * @return Returns a reference to <code>this</code> for easy method chaining
6466     */
6467    public StructureMap setGroup(List<StructureMapGroupComponent> theGroup) { 
6468      this.group = theGroup;
6469      return this;
6470    }
6471
6472    public boolean hasGroup() { 
6473      if (this.group == null)
6474        return false;
6475      for (StructureMapGroupComponent item : this.group)
6476        if (!item.isEmpty())
6477          return true;
6478      return false;
6479    }
6480
6481    public StructureMapGroupComponent addGroup() { //3
6482      StructureMapGroupComponent t = new StructureMapGroupComponent();
6483      if (this.group == null)
6484        this.group = new ArrayList<StructureMapGroupComponent>();
6485      this.group.add(t);
6486      return t;
6487    }
6488
6489    public StructureMap addGroup(StructureMapGroupComponent t) { //3
6490      if (t == null)
6491        return this;
6492      if (this.group == null)
6493        this.group = new ArrayList<StructureMapGroupComponent>();
6494      this.group.add(t);
6495      return this;
6496    }
6497
6498    /**
6499     * @return The first repetition of repeating field {@link #group}, creating it if it does not already exist {3}
6500     */
6501    public StructureMapGroupComponent getGroupFirstRep() { 
6502      if (getGroup().isEmpty()) {
6503        addGroup();
6504      }
6505      return getGroup().get(0);
6506    }
6507
6508      protected void listChildren(List<Property> children) {
6509        super.listChildren(children);
6510        children.add(new Property("url", "uri", "An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.", 0, 1, url));
6511        children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
6512        children.add(new Property("version", "string", "The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version));
6513        children.add(new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm));
6514        children.add(new Property("name", "string", "A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
6515        children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the structure map.", 0, 1, title));
6516        children.add(new Property("status", "code", "The status of this structure map. Enables tracking the life-cycle of the content.", 0, 1, status));
6517        children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental));
6518        children.add(new Property("date", "dateTime", "The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.", 0, 1, date));
6519        children.add(new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.", 0, 1, publisher));
6520        children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact));
6521        children.add(new Property("description", "markdown", "A free text natural language description of the structure map from a consumer's perspective.", 0, 1, description));
6522        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
6523        children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the structure map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction));
6524        children.add(new Property("purpose", "markdown", "Explanation of why this structure map is needed and why it has been designed as it has.", 0, 1, purpose));
6525        children.add(new Property("copyright", "markdown", "A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.", 0, 1, copyright));
6526        children.add(new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel));
6527        children.add(new Property("structure", "", "A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.", 0, java.lang.Integer.MAX_VALUE, structure));
6528        children.add(new Property("import", "canonical(StructureMap)", "Other maps used by this map (canonical URLs).", 0, java.lang.Integer.MAX_VALUE, import_));
6529        children.add(new Property("const", "", "Definition of a constant value used in the map rules.", 0, java.lang.Integer.MAX_VALUE, const_));
6530        children.add(new Property("group", "", "Organizes the mapping into managable chunks for human review/ease of maintenance.", 0, java.lang.Integer.MAX_VALUE, group));
6531      }
6532
6533      @Override
6534      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
6535        switch (_hash) {
6536        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this structure map when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers.", 0, 1, url);
6537        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier);
6538        case 351608024: /*version*/  return new Property("version", "string", "The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version);
6539        case -115699031: /*versionAlgorithm[x]*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
6540        case 1508158071: /*versionAlgorithm*/  return new Property("versionAlgorithm[x]", "string|Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
6541        case 1836908904: /*versionAlgorithmString*/  return new Property("versionAlgorithm[x]", "string", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
6542        case 1373807809: /*versionAlgorithmCoding*/  return new Property("versionAlgorithm[x]", "Coding", "Indicates the mechanism used to compare versions to determine which is more current.", 0, 1, versionAlgorithm);
6543        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
6544        case 110371416: /*title*/  return new Property("title", "string", "A short, descriptive, user-friendly title for the structure map.", 0, 1, title);
6545        case -892481550: /*status*/  return new Property("status", "code", "The status of this structure map. Enables tracking the life-cycle of the content.", 0, 1, status);
6546        case -404562712: /*experimental*/  return new Property("experimental", "boolean", "A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental);
6547        case 3076014: /*date*/  return new Property("date", "dateTime", "The date  (and optionally time) when the structure map was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the structure map changes.", 0, 1, date);
6548        case 1447404028: /*publisher*/  return new Property("publisher", "string", "The name of the organization or individual responsible for the release and ongoing maintenance of the structure map.", 0, 1, publisher);
6549        case 951526432: /*contact*/  return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact);
6550        case -1724546052: /*description*/  return new Property("description", "markdown", "A free text natural language description of the structure map from a consumer's perspective.", 0, 1, description);
6551        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate structure map instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
6552        case -507075711: /*jurisdiction*/  return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the structure map is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction);
6553        case -220463842: /*purpose*/  return new Property("purpose", "markdown", "Explanation of why this structure map is needed and why it has been designed as it has.", 0, 1, purpose);
6554        case 1522889671: /*copyright*/  return new Property("copyright", "markdown", "A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map.", 0, 1, copyright);
6555        case 765157229: /*copyrightLabel*/  return new Property("copyrightLabel", "string", "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved').", 0, 1, copyrightLabel);
6556        case 144518515: /*structure*/  return new Property("structure", "", "A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced.", 0, java.lang.Integer.MAX_VALUE, structure);
6557        case -1184795739: /*import*/  return new Property("import", "canonical(StructureMap)", "Other maps used by this map (canonical URLs).", 0, java.lang.Integer.MAX_VALUE, import_);
6558        case 94844771: /*const*/  return new Property("const", "", "Definition of a constant value used in the map rules.", 0, java.lang.Integer.MAX_VALUE, const_);
6559        case 98629247: /*group*/  return new Property("group", "", "Organizes the mapping into managable chunks for human review/ease of maintenance.", 0, java.lang.Integer.MAX_VALUE, group);
6560        default: return super.getNamedProperty(_hash, _name, _checkValid);
6561        }
6562
6563      }
6564
6565      @Override
6566      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
6567        switch (hash) {
6568        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
6569        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
6570        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
6571        case 1508158071: /*versionAlgorithm*/ return this.versionAlgorithm == null ? new Base[0] : new Base[] {this.versionAlgorithm}; // DataType
6572        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
6573        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
6574        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus>
6575        case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType
6576        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
6577        case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType
6578        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail
6579        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
6580        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
6581        case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept
6582        case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType
6583        case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType
6584        case 765157229: /*copyrightLabel*/ return this.copyrightLabel == null ? new Base[0] : new Base[] {this.copyrightLabel}; // StringType
6585        case 144518515: /*structure*/ return this.structure == null ? new Base[0] : this.structure.toArray(new Base[this.structure.size()]); // StructureMapStructureComponent
6586        case -1184795739: /*import*/ return this.import_ == null ? new Base[0] : this.import_.toArray(new Base[this.import_.size()]); // CanonicalType
6587        case 94844771: /*const*/ return this.const_ == null ? new Base[0] : this.const_.toArray(new Base[this.const_.size()]); // StructureMapConstComponent
6588        case 98629247: /*group*/ return this.group == null ? new Base[0] : this.group.toArray(new Base[this.group.size()]); // StructureMapGroupComponent
6589        default: return super.getProperty(hash, name, checkValid);
6590        }
6591
6592      }
6593
6594      @Override
6595      public Base setProperty(int hash, String name, Base value) throws FHIRException {
6596        switch (hash) {
6597        case 116079: // url
6598          this.url = TypeConvertor.castToUri(value); // UriType
6599          return value;
6600        case -1618432855: // identifier
6601          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
6602          return value;
6603        case 351608024: // version
6604          this.version = TypeConvertor.castToString(value); // StringType
6605          return value;
6606        case 1508158071: // versionAlgorithm
6607          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6608          return value;
6609        case 3373707: // name
6610          this.name = TypeConvertor.castToString(value); // StringType
6611          return value;
6612        case 110371416: // title
6613          this.title = TypeConvertor.castToString(value); // StringType
6614          return value;
6615        case -892481550: // status
6616          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6617          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6618          return value;
6619        case -404562712: // experimental
6620          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6621          return value;
6622        case 3076014: // date
6623          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6624          return value;
6625        case 1447404028: // publisher
6626          this.publisher = TypeConvertor.castToString(value); // StringType
6627          return value;
6628        case 951526432: // contact
6629          this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail
6630          return value;
6631        case -1724546052: // description
6632          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6633          return value;
6634        case -669707736: // useContext
6635          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
6636          return value;
6637        case -507075711: // jurisdiction
6638          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
6639          return value;
6640        case -220463842: // purpose
6641          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6642          return value;
6643        case 1522889671: // copyright
6644          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6645          return value;
6646        case 765157229: // copyrightLabel
6647          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6648          return value;
6649        case 144518515: // structure
6650          this.getStructure().add((StructureMapStructureComponent) value); // StructureMapStructureComponent
6651          return value;
6652        case -1184795739: // import
6653          this.getImport().add(TypeConvertor.castToCanonical(value)); // CanonicalType
6654          return value;
6655        case 94844771: // const
6656          this.getConst().add((StructureMapConstComponent) value); // StructureMapConstComponent
6657          return value;
6658        case 98629247: // group
6659          this.getGroup().add((StructureMapGroupComponent) value); // StructureMapGroupComponent
6660          return value;
6661        default: return super.setProperty(hash, name, value);
6662        }
6663
6664      }
6665
6666      @Override
6667      public Base setProperty(String name, Base value) throws FHIRException {
6668        if (name.equals("url")) {
6669          this.url = TypeConvertor.castToUri(value); // UriType
6670        } else if (name.equals("identifier")) {
6671          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
6672        } else if (name.equals("version")) {
6673          this.version = TypeConvertor.castToString(value); // StringType
6674        } else if (name.equals("versionAlgorithm[x]")) {
6675          this.versionAlgorithm = TypeConvertor.castToType(value); // DataType
6676        } else if (name.equals("name")) {
6677          this.name = TypeConvertor.castToString(value); // StringType
6678        } else if (name.equals("title")) {
6679          this.title = TypeConvertor.castToString(value); // StringType
6680        } else if (name.equals("status")) {
6681          value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
6682          this.status = (Enumeration) value; // Enumeration<PublicationStatus>
6683        } else if (name.equals("experimental")) {
6684          this.experimental = TypeConvertor.castToBoolean(value); // BooleanType
6685        } else if (name.equals("date")) {
6686          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
6687        } else if (name.equals("publisher")) {
6688          this.publisher = TypeConvertor.castToString(value); // StringType
6689        } else if (name.equals("contact")) {
6690          this.getContact().add(TypeConvertor.castToContactDetail(value));
6691        } else if (name.equals("description")) {
6692          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
6693        } else if (name.equals("useContext")) {
6694          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
6695        } else if (name.equals("jurisdiction")) {
6696          this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value));
6697        } else if (name.equals("purpose")) {
6698          this.purpose = TypeConvertor.castToMarkdown(value); // MarkdownType
6699        } else if (name.equals("copyright")) {
6700          this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType
6701        } else if (name.equals("copyrightLabel")) {
6702          this.copyrightLabel = TypeConvertor.castToString(value); // StringType
6703        } else if (name.equals("structure")) {
6704          this.getStructure().add((StructureMapStructureComponent) value);
6705        } else if (name.equals("import")) {
6706          this.getImport().add(TypeConvertor.castToCanonical(value));
6707        } else if (name.equals("const")) {
6708          this.getConst().add((StructureMapConstComponent) value);
6709        } else if (name.equals("group")) {
6710          this.getGroup().add((StructureMapGroupComponent) value);
6711        } else
6712          return super.setProperty(name, value);
6713        return value;
6714      }
6715
6716      @Override
6717      public Base makeProperty(int hash, String name) throws FHIRException {
6718        switch (hash) {
6719        case 116079:  return getUrlElement();
6720        case -1618432855:  return addIdentifier(); 
6721        case 351608024:  return getVersionElement();
6722        case -115699031:  return getVersionAlgorithm();
6723        case 1508158071:  return getVersionAlgorithm();
6724        case 3373707:  return getNameElement();
6725        case 110371416:  return getTitleElement();
6726        case -892481550:  return getStatusElement();
6727        case -404562712:  return getExperimentalElement();
6728        case 3076014:  return getDateElement();
6729        case 1447404028:  return getPublisherElement();
6730        case 951526432:  return addContact(); 
6731        case -1724546052:  return getDescriptionElement();
6732        case -669707736:  return addUseContext(); 
6733        case -507075711:  return addJurisdiction(); 
6734        case -220463842:  return getPurposeElement();
6735        case 1522889671:  return getCopyrightElement();
6736        case 765157229:  return getCopyrightLabelElement();
6737        case 144518515:  return addStructure(); 
6738        case -1184795739:  return addImportElement();
6739        case 94844771:  return addConst(); 
6740        case 98629247:  return addGroup(); 
6741        default: return super.makeProperty(hash, name);
6742        }
6743
6744      }
6745
6746      @Override
6747      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
6748        switch (hash) {
6749        case 116079: /*url*/ return new String[] {"uri"};
6750        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
6751        case 351608024: /*version*/ return new String[] {"string"};
6752        case 1508158071: /*versionAlgorithm*/ return new String[] {"string", "Coding"};
6753        case 3373707: /*name*/ return new String[] {"string"};
6754        case 110371416: /*title*/ return new String[] {"string"};
6755        case -892481550: /*status*/ return new String[] {"code"};
6756        case -404562712: /*experimental*/ return new String[] {"boolean"};
6757        case 3076014: /*date*/ return new String[] {"dateTime"};
6758        case 1447404028: /*publisher*/ return new String[] {"string"};
6759        case 951526432: /*contact*/ return new String[] {"ContactDetail"};
6760        case -1724546052: /*description*/ return new String[] {"markdown"};
6761        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
6762        case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"};
6763        case -220463842: /*purpose*/ return new String[] {"markdown"};
6764        case 1522889671: /*copyright*/ return new String[] {"markdown"};
6765        case 765157229: /*copyrightLabel*/ return new String[] {"string"};
6766        case 144518515: /*structure*/ return new String[] {};
6767        case -1184795739: /*import*/ return new String[] {"canonical"};
6768        case 94844771: /*const*/ return new String[] {};
6769        case 98629247: /*group*/ return new String[] {};
6770        default: return super.getTypesForProperty(hash, name);
6771        }
6772
6773      }
6774
6775      @Override
6776      public Base addChild(String name) throws FHIRException {
6777        if (name.equals("url")) {
6778          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.url");
6779        }
6780        else if (name.equals("identifier")) {
6781          return addIdentifier();
6782        }
6783        else if (name.equals("version")) {
6784          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.version");
6785        }
6786        else if (name.equals("versionAlgorithmString")) {
6787          this.versionAlgorithm = new StringType();
6788          return this.versionAlgorithm;
6789        }
6790        else if (name.equals("versionAlgorithmCoding")) {
6791          this.versionAlgorithm = new Coding();
6792          return this.versionAlgorithm;
6793        }
6794        else if (name.equals("name")) {
6795          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.name");
6796        }
6797        else if (name.equals("title")) {
6798          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.title");
6799        }
6800        else if (name.equals("status")) {
6801          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.status");
6802        }
6803        else if (name.equals("experimental")) {
6804          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.experimental");
6805        }
6806        else if (name.equals("date")) {
6807          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.date");
6808        }
6809        else if (name.equals("publisher")) {
6810          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.publisher");
6811        }
6812        else if (name.equals("contact")) {
6813          return addContact();
6814        }
6815        else if (name.equals("description")) {
6816          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.description");
6817        }
6818        else if (name.equals("useContext")) {
6819          return addUseContext();
6820        }
6821        else if (name.equals("jurisdiction")) {
6822          return addJurisdiction();
6823        }
6824        else if (name.equals("purpose")) {
6825          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.purpose");
6826        }
6827        else if (name.equals("copyright")) {
6828          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.copyright");
6829        }
6830        else if (name.equals("copyrightLabel")) {
6831          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.copyrightLabel");
6832        }
6833        else if (name.equals("structure")) {
6834          return addStructure();
6835        }
6836        else if (name.equals("import")) {
6837          throw new FHIRException("Cannot call addChild on a singleton property StructureMap.import");
6838        }
6839        else if (name.equals("const")) {
6840          return addConst();
6841        }
6842        else if (name.equals("group")) {
6843          return addGroup();
6844        }
6845        else
6846          return super.addChild(name);
6847      }
6848
6849  public String fhirType() {
6850    return "StructureMap";
6851
6852  }
6853
6854      public StructureMap copy() {
6855        StructureMap dst = new StructureMap();
6856        copyValues(dst);
6857        return dst;
6858      }
6859
6860      public void copyValues(StructureMap dst) {
6861        super.copyValues(dst);
6862        dst.url = url == null ? null : url.copy();
6863        if (identifier != null) {
6864          dst.identifier = new ArrayList<Identifier>();
6865          for (Identifier i : identifier)
6866            dst.identifier.add(i.copy());
6867        };
6868        dst.version = version == null ? null : version.copy();
6869        dst.versionAlgorithm = versionAlgorithm == null ? null : versionAlgorithm.copy();
6870        dst.name = name == null ? null : name.copy();
6871        dst.title = title == null ? null : title.copy();
6872        dst.status = status == null ? null : status.copy();
6873        dst.experimental = experimental == null ? null : experimental.copy();
6874        dst.date = date == null ? null : date.copy();
6875        dst.publisher = publisher == null ? null : publisher.copy();
6876        if (contact != null) {
6877          dst.contact = new ArrayList<ContactDetail>();
6878          for (ContactDetail i : contact)
6879            dst.contact.add(i.copy());
6880        };
6881        dst.description = description == null ? null : description.copy();
6882        if (useContext != null) {
6883          dst.useContext = new ArrayList<UsageContext>();
6884          for (UsageContext i : useContext)
6885            dst.useContext.add(i.copy());
6886        };
6887        if (jurisdiction != null) {
6888          dst.jurisdiction = new ArrayList<CodeableConcept>();
6889          for (CodeableConcept i : jurisdiction)
6890            dst.jurisdiction.add(i.copy());
6891        };
6892        dst.purpose = purpose == null ? null : purpose.copy();
6893        dst.copyright = copyright == null ? null : copyright.copy();
6894        dst.copyrightLabel = copyrightLabel == null ? null : copyrightLabel.copy();
6895        if (structure != null) {
6896          dst.structure = new ArrayList<StructureMapStructureComponent>();
6897          for (StructureMapStructureComponent i : structure)
6898            dst.structure.add(i.copy());
6899        };
6900        if (import_ != null) {
6901          dst.import_ = new ArrayList<CanonicalType>();
6902          for (CanonicalType i : import_)
6903            dst.import_.add(i.copy());
6904        };
6905        if (const_ != null) {
6906          dst.const_ = new ArrayList<StructureMapConstComponent>();
6907          for (StructureMapConstComponent i : const_)
6908            dst.const_.add(i.copy());
6909        };
6910        if (group != null) {
6911          dst.group = new ArrayList<StructureMapGroupComponent>();
6912          for (StructureMapGroupComponent i : group)
6913            dst.group.add(i.copy());
6914        };
6915      }
6916
6917      protected StructureMap typedCopy() {
6918        return copy();
6919      }
6920
6921      @Override
6922      public boolean equalsDeep(Base other_) {
6923        if (!super.equalsDeep(other_))
6924          return false;
6925        if (!(other_ instanceof StructureMap))
6926          return false;
6927        StructureMap o = (StructureMap) other_;
6928        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
6929           && compareDeep(versionAlgorithm, o.versionAlgorithm, true) && compareDeep(name, o.name, true) && compareDeep(title, o.title, true)
6930           && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true)
6931           && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) && compareDeep(description, o.description, true)
6932           && compareDeep(useContext, o.useContext, true) && compareDeep(jurisdiction, o.jurisdiction, true)
6933           && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(copyrightLabel, o.copyrightLabel, true)
6934           && compareDeep(structure, o.structure, true) && compareDeep(import_, o.import_, true) && compareDeep(const_, o.const_, true)
6935           && compareDeep(group, o.group, true);
6936      }
6937
6938      @Override
6939      public boolean equalsShallow(Base other_) {
6940        if (!super.equalsShallow(other_))
6941          return false;
6942        if (!(other_ instanceof StructureMap))
6943          return false;
6944        StructureMap o = (StructureMap) other_;
6945        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true)
6946           && compareValues(title, o.title, true) && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true)
6947           && compareValues(date, o.date, true) && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true)
6948           && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) && compareValues(copyrightLabel, o.copyrightLabel, true)
6949           && compareValues(import_, o.import_, true);
6950      }
6951
6952      public boolean isEmpty() {
6953        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
6954          , versionAlgorithm, name, title, status, experimental, date, publisher, contact
6955          , description, useContext, jurisdiction, purpose, copyright, copyrightLabel, structure
6956          , import_, const_, group);
6957      }
6958
6959  @Override
6960  public ResourceType getResourceType() {
6961    return ResourceType.StructureMap;
6962   }
6963
6964 /**
6965   * Search parameter: <b>context-quantity</b>
6966   * <p>
6967   * Description: <b>Multiple Resources: 
6968
6969* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
6970* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
6971* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
6972* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
6973* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
6974* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
6975* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
6976* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
6977* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
6978* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
6979* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
6980* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
6981* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
6982* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
6983* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
6984* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
6985* [Library](library.html): A quantity- or range-valued use context assigned to the library
6986* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
6987* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
6988* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
6989* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
6990* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
6991* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
6992* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
6993* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
6994* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
6995* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
6996* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
6997* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
6998* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
6999</b><br>
7000   * Type: <b>quantity</b><br>
7001   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
7002   * </p>
7003   */
7004  @SearchParamDefinition(name="context-quantity", path="(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition\r\n* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition\r\n* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide\r\n* [Library](library.html): A quantity- or range-valued use context assigned to the library\r\n* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script\r\n* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set\r\n", type="quantity" )
7005  public static final String SP_CONTEXT_QUANTITY = "context-quantity";
7006 /**
7007   * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b>
7008   * <p>
7009   * Description: <b>Multiple Resources: 
7010
7011* [ActivityDefinition](activitydefinition.html): A quantity- or range-valued use context assigned to the activity definition
7012* [ActorDefinition](actordefinition.html): A quantity- or range-valued use context assigned to the Actor Definition
7013* [CapabilityStatement](capabilitystatement.html): A quantity- or range-valued use context assigned to the capability statement
7014* [ChargeItemDefinition](chargeitemdefinition.html): A quantity- or range-valued use context assigned to the charge item definition
7015* [Citation](citation.html): A quantity- or range-valued use context assigned to the citation
7016* [CodeSystem](codesystem.html): A quantity- or range-valued use context assigned to the code system
7017* [CompartmentDefinition](compartmentdefinition.html): A quantity- or range-valued use context assigned to the compartment definition
7018* [ConceptMap](conceptmap.html): A quantity- or range-valued use context assigned to the concept map
7019* [ConditionDefinition](conditiondefinition.html): A quantity- or range-valued use context assigned to the condition definition
7020* [EventDefinition](eventdefinition.html): A quantity- or range-valued use context assigned to the event definition
7021* [Evidence](evidence.html): A quantity- or range-valued use context assigned to the evidence
7022* [EvidenceReport](evidencereport.html): A quantity- or range-valued use context assigned to the evidence report
7023* [EvidenceVariable](evidencevariable.html): A quantity- or range-valued use context assigned to the evidence variable
7024* [ExampleScenario](examplescenario.html): A quantity- or range-valued use context assigned to the example scenario
7025* [GraphDefinition](graphdefinition.html): A quantity- or range-valued use context assigned to the graph definition
7026* [ImplementationGuide](implementationguide.html): A quantity- or range-valued use context assigned to the implementation guide
7027* [Library](library.html): A quantity- or range-valued use context assigned to the library
7028* [Measure](measure.html): A quantity- or range-valued use context assigned to the measure
7029* [MessageDefinition](messagedefinition.html): A quantity- or range-valued use context assigned to the message definition
7030* [NamingSystem](namingsystem.html): A quantity- or range-valued use context assigned to the naming system
7031* [OperationDefinition](operationdefinition.html): A quantity- or range-valued use context assigned to the operation definition
7032* [PlanDefinition](plandefinition.html): A quantity- or range-valued use context assigned to the plan definition
7033* [Questionnaire](questionnaire.html): A quantity- or range-valued use context assigned to the questionnaire
7034* [Requirements](requirements.html): A quantity- or range-valued use context assigned to the requirements
7035* [SearchParameter](searchparameter.html): A quantity- or range-valued use context assigned to the search parameter
7036* [StructureDefinition](structuredefinition.html): A quantity- or range-valued use context assigned to the structure definition
7037* [StructureMap](structuremap.html): A quantity- or range-valued use context assigned to the structure map
7038* [TerminologyCapabilities](terminologycapabilities.html): A quantity- or range-valued use context assigned to the terminology capabilities
7039* [TestScript](testscript.html): A quantity- or range-valued use context assigned to the test script
7040* [ValueSet](valueset.html): A quantity- or range-valued use context assigned to the value set
7041</b><br>
7042   * Type: <b>quantity</b><br>
7043   * Path: <b>(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range)) | (ActorDefinition.useContext.value.ofType(Quantity)) | (ActorDefinition.useContext.value.ofType(Range)) | (CapabilityStatement.useContext.value.ofType(Quantity)) | (CapabilityStatement.useContext.value.ofType(Range)) | (ChargeItemDefinition.useContext.value.ofType(Quantity)) | (ChargeItemDefinition.useContext.value.ofType(Range)) | (Citation.useContext.value.ofType(Quantity)) | (Citation.useContext.value.ofType(Range)) | (CodeSystem.useContext.value.ofType(Quantity)) | (CodeSystem.useContext.value.ofType(Range)) | (CompartmentDefinition.useContext.value.ofType(Quantity)) | (CompartmentDefinition.useContext.value.ofType(Range)) | (ConceptMap.useContext.value.ofType(Quantity)) | (ConceptMap.useContext.value.ofType(Range)) | (ConditionDefinition.useContext.value.ofType(Quantity)) | (ConditionDefinition.useContext.value.ofType(Range)) | (EventDefinition.useContext.value.ofType(Quantity)) | (EventDefinition.useContext.value.ofType(Range)) | (Evidence.useContext.value.ofType(Quantity)) | (Evidence.useContext.value.ofType(Range)) | (EvidenceReport.useContext.value.ofType(Quantity)) | (EvidenceReport.useContext.value.ofType(Range)) | (EvidenceVariable.useContext.value.ofType(Quantity)) | (EvidenceVariable.useContext.value.ofType(Range)) | (ExampleScenario.useContext.value.ofType(Quantity)) | (ExampleScenario.useContext.value.ofType(Range)) | (GraphDefinition.useContext.value.ofType(Quantity)) | (GraphDefinition.useContext.value.ofType(Range)) | (ImplementationGuide.useContext.value.ofType(Quantity)) | (ImplementationGuide.useContext.value.ofType(Range)) | (Library.useContext.value.ofType(Quantity)) | (Library.useContext.value.ofType(Range)) | (Measure.useContext.value.ofType(Quantity)) | (Measure.useContext.value.ofType(Range)) | (MessageDefinition.useContext.value.ofType(Quantity)) | (MessageDefinition.useContext.value.ofType(Range)) | (NamingSystem.useContext.value.ofType(Quantity)) | (NamingSystem.useContext.value.ofType(Range)) | (OperationDefinition.useContext.value.ofType(Quantity)) | (OperationDefinition.useContext.value.ofType(Range)) | (PlanDefinition.useContext.value.ofType(Quantity)) | (PlanDefinition.useContext.value.ofType(Range)) | (Questionnaire.useContext.value.ofType(Quantity)) | (Questionnaire.useContext.value.ofType(Range)) | (Requirements.useContext.value.ofType(Quantity)) | (Requirements.useContext.value.ofType(Range)) | (SearchParameter.useContext.value.ofType(Quantity)) | (SearchParameter.useContext.value.ofType(Range)) | (StructureDefinition.useContext.value.ofType(Quantity)) | (StructureDefinition.useContext.value.ofType(Range)) | (StructureMap.useContext.value.ofType(Quantity)) | (StructureMap.useContext.value.ofType(Range)) | (TerminologyCapabilities.useContext.value.ofType(Quantity)) | (TerminologyCapabilities.useContext.value.ofType(Range)) | (TestScript.useContext.value.ofType(Quantity)) | (TestScript.useContext.value.ofType(Range)) | (ValueSet.useContext.value.ofType(Quantity)) | (ValueSet.useContext.value.ofType(Range))</b><br>
7044   * </p>
7045   */
7046  public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY);
7047
7048 /**
7049   * Search parameter: <b>context-type-quantity</b>
7050   * <p>
7051   * Description: <b>Multiple Resources: 
7052
7053* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
7054* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
7055* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
7056* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
7057* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
7058* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
7059* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
7060* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
7061* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
7062* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
7063* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
7064* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
7065* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
7066* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
7067* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
7068* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
7069* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
7070* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
7071* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
7072* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
7073* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
7074* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
7075* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
7076* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
7077* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
7078* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
7079* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
7080* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
7081* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
7082* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
7083</b><br>
7084   * Type: <b>composite</b><br>
7085   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
7086   * </p>
7087   */
7088  @SearchParamDefinition(name="context-type-quantity", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide\r\n* [Library](library.html): A use context type and quantity- or range-based value assigned to the library\r\n* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context-quantity"} )
7089  public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity";
7090 /**
7091   * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b>
7092   * <p>
7093   * Description: <b>Multiple Resources: 
7094
7095* [ActivityDefinition](activitydefinition.html): A use context type and quantity- or range-based value assigned to the activity definition
7096* [ActorDefinition](actordefinition.html): A use context type and quantity- or range-based value assigned to the Actor Definition
7097* [CapabilityStatement](capabilitystatement.html): A use context type and quantity- or range-based value assigned to the capability statement
7098* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and quantity- or range-based value assigned to the charge item definition
7099* [Citation](citation.html): A use context type and quantity- or range-based value assigned to the citation
7100* [CodeSystem](codesystem.html): A use context type and quantity- or range-based value assigned to the code system
7101* [CompartmentDefinition](compartmentdefinition.html): A use context type and quantity- or range-based value assigned to the compartment definition
7102* [ConceptMap](conceptmap.html): A use context type and quantity- or range-based value assigned to the concept map
7103* [ConditionDefinition](conditiondefinition.html): A use context type and quantity- or range-based value assigned to the condition definition
7104* [EventDefinition](eventdefinition.html): A use context type and quantity- or range-based value assigned to the event definition
7105* [Evidence](evidence.html): A use context type and quantity- or range-based value assigned to the evidence
7106* [EvidenceReport](evidencereport.html): A use context type and quantity- or range-based value assigned to the evidence report
7107* [EvidenceVariable](evidencevariable.html): A use context type and quantity- or range-based value assigned to the evidence variable
7108* [ExampleScenario](examplescenario.html): A use context type and quantity- or range-based value assigned to the example scenario
7109* [GraphDefinition](graphdefinition.html): A use context type and quantity- or range-based value assigned to the graph definition
7110* [ImplementationGuide](implementationguide.html): A use context type and quantity- or range-based value assigned to the implementation guide
7111* [Library](library.html): A use context type and quantity- or range-based value assigned to the library
7112* [Measure](measure.html): A use context type and quantity- or range-based value assigned to the measure
7113* [MessageDefinition](messagedefinition.html): A use context type and quantity- or range-based value assigned to the message definition
7114* [NamingSystem](namingsystem.html): A use context type and quantity- or range-based value assigned to the naming system
7115* [OperationDefinition](operationdefinition.html): A use context type and quantity- or range-based value assigned to the operation definition
7116* [PlanDefinition](plandefinition.html): A use context type and quantity- or range-based value assigned to the plan definition
7117* [Questionnaire](questionnaire.html): A use context type and quantity- or range-based value assigned to the questionnaire
7118* [Requirements](requirements.html): A use context type and quantity- or range-based value assigned to the requirements
7119* [SearchParameter](searchparameter.html): A use context type and quantity- or range-based value assigned to the search parameter
7120* [StructureDefinition](structuredefinition.html): A use context type and quantity- or range-based value assigned to the structure definition
7121* [StructureMap](structuremap.html): A use context type and quantity- or range-based value assigned to the structure map
7122* [TerminologyCapabilities](terminologycapabilities.html): A use context type and quantity- or range-based value assigned to the terminology capabilities
7123* [TestScript](testscript.html): A use context type and quantity- or range-based value assigned to the test script
7124* [ValueSet](valueset.html): A use context type and quantity- or range-based value assigned to the value set
7125</b><br>
7126   * Type: <b>composite</b><br>
7127   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
7128   * </p>
7129   */
7130  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY);
7131
7132 /**
7133   * Search parameter: <b>context-type-value</b>
7134   * <p>
7135   * Description: <b>Multiple Resources: 
7136
7137* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
7138* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
7139* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
7140* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
7141* [Citation](citation.html): A use context type and value assigned to the citation
7142* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
7143* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
7144* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
7145* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
7146* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
7147* [Evidence](evidence.html): A use context type and value assigned to the evidence
7148* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
7149* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
7150* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
7151* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
7152* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
7153* [Library](library.html): A use context type and value assigned to the library
7154* [Measure](measure.html): A use context type and value assigned to the measure
7155* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
7156* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
7157* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
7158* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
7159* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
7160* [Requirements](requirements.html): A use context type and value assigned to the requirements
7161* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
7162* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
7163* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
7164* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
7165* [TestScript](testscript.html): A use context type and value assigned to the test script
7166* [ValueSet](valueset.html): A use context type and value assigned to the value set
7167</b><br>
7168   * Type: <b>composite</b><br>
7169   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
7170   * </p>
7171   */
7172  @SearchParamDefinition(name="context-type-value", path="ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition\r\n* [Citation](citation.html): A use context type and value assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context type and value assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition\r\n* [Evidence](evidence.html): A use context type and value assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide\r\n* [Library](library.html): A use context type and value assigned to the library\r\n* [Measure](measure.html): A use context type and value assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context type and value assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context type and value assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context type and value assigned to the test script\r\n* [ValueSet](valueset.html): A use context type and value assigned to the value set\r\n", type="composite", compositeOf={"context-type", "context"} )
7173  public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value";
7174 /**
7175   * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b>
7176   * <p>
7177   * Description: <b>Multiple Resources: 
7178
7179* [ActivityDefinition](activitydefinition.html): A use context type and value assigned to the activity definition
7180* [ActorDefinition](actordefinition.html): A use context type and value assigned to the Actor Definition
7181* [CapabilityStatement](capabilitystatement.html): A use context type and value assigned to the capability statement
7182* [ChargeItemDefinition](chargeitemdefinition.html): A use context type and value assigned to the charge item definition
7183* [Citation](citation.html): A use context type and value assigned to the citation
7184* [CodeSystem](codesystem.html): A use context type and value assigned to the code system
7185* [CompartmentDefinition](compartmentdefinition.html): A use context type and value assigned to the compartment definition
7186* [ConceptMap](conceptmap.html): A use context type and value assigned to the concept map
7187* [ConditionDefinition](conditiondefinition.html): A use context type and value assigned to the condition definition
7188* [EventDefinition](eventdefinition.html): A use context type and value assigned to the event definition
7189* [Evidence](evidence.html): A use context type and value assigned to the evidence
7190* [EvidenceReport](evidencereport.html): A use context type and value assigned to the evidence report
7191* [EvidenceVariable](evidencevariable.html): A use context type and value assigned to the evidence variable
7192* [ExampleScenario](examplescenario.html): A use context type and value assigned to the example scenario
7193* [GraphDefinition](graphdefinition.html): A use context type and value assigned to the graph definition
7194* [ImplementationGuide](implementationguide.html): A use context type and value assigned to the implementation guide
7195* [Library](library.html): A use context type and value assigned to the library
7196* [Measure](measure.html): A use context type and value assigned to the measure
7197* [MessageDefinition](messagedefinition.html): A use context type and value assigned to the message definition
7198* [NamingSystem](namingsystem.html): A use context type and value assigned to the naming system
7199* [OperationDefinition](operationdefinition.html): A use context type and value assigned to the operation definition
7200* [PlanDefinition](plandefinition.html): A use context type and value assigned to the plan definition
7201* [Questionnaire](questionnaire.html): A use context type and value assigned to the questionnaire
7202* [Requirements](requirements.html): A use context type and value assigned to the requirements
7203* [SearchParameter](searchparameter.html): A use context type and value assigned to the search parameter
7204* [StructureDefinition](structuredefinition.html): A use context type and value assigned to the structure definition
7205* [StructureMap](structuremap.html): A use context type and value assigned to the structure map
7206* [TerminologyCapabilities](terminologycapabilities.html): A use context type and value assigned to the terminology capabilities
7207* [TestScript](testscript.html): A use context type and value assigned to the test script
7208* [ValueSet](valueset.html): A use context type and value assigned to the value set
7209</b><br>
7210   * Type: <b>composite</b><br>
7211   * Path: <b>ActivityDefinition.useContext | ActorDefinition.useContext | CapabilityStatement.useContext | ChargeItemDefinition.useContext | Citation.useContext | CodeSystem.useContext | CompartmentDefinition.useContext | ConceptMap.useContext | ConditionDefinition.useContext | EventDefinition.useContext | Evidence.useContext | EvidenceReport.useContext | EvidenceVariable.useContext | ExampleScenario.useContext | GraphDefinition.useContext | ImplementationGuide.useContext | Library.useContext | Measure.useContext | MessageDefinition.useContext | NamingSystem.useContext | OperationDefinition.useContext | PlanDefinition.useContext | Questionnaire.useContext | Requirements.useContext | SearchParameter.useContext | StructureDefinition.useContext | StructureMap.useContext | TerminologyCapabilities.useContext | TestScript.useContext | ValueSet.useContext</b><br>
7212   * </p>
7213   */
7214  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE);
7215
7216 /**
7217   * Search parameter: <b>context-type</b>
7218   * <p>
7219   * Description: <b>Multiple Resources: 
7220
7221* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
7222* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
7223* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
7224* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
7225* [Citation](citation.html): A type of use context assigned to the citation
7226* [CodeSystem](codesystem.html): A type of use context assigned to the code system
7227* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
7228* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
7229* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
7230* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
7231* [Evidence](evidence.html): A type of use context assigned to the evidence
7232* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
7233* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
7234* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
7235* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
7236* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
7237* [Library](library.html): A type of use context assigned to the library
7238* [Measure](measure.html): A type of use context assigned to the measure
7239* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
7240* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
7241* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
7242* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
7243* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
7244* [Requirements](requirements.html): A type of use context assigned to the requirements
7245* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
7246* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
7247* [StructureMap](structuremap.html): A type of use context assigned to the structure map
7248* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
7249* [TestScript](testscript.html): A type of use context assigned to the test script
7250* [ValueSet](valueset.html): A type of use context assigned to the value set
7251</b><br>
7252   * Type: <b>token</b><br>
7253   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
7254   * </p>
7255   */
7256  @SearchParamDefinition(name="context-type", path="ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition\r\n* [Citation](citation.html): A type of use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A type of use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition\r\n* [Evidence](evidence.html): A type of use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide\r\n* [Library](library.html): A type of use context assigned to the library\r\n* [Measure](measure.html): A type of use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A type of use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A type of use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A type of use context assigned to the test script\r\n* [ValueSet](valueset.html): A type of use context assigned to the value set\r\n", type="token" )
7257  public static final String SP_CONTEXT_TYPE = "context-type";
7258 /**
7259   * <b>Fluent Client</b> search parameter constant for <b>context-type</b>
7260   * <p>
7261   * Description: <b>Multiple Resources: 
7262
7263* [ActivityDefinition](activitydefinition.html): A type of use context assigned to the activity definition
7264* [ActorDefinition](actordefinition.html): A type of use context assigned to the Actor Definition
7265* [CapabilityStatement](capabilitystatement.html): A type of use context assigned to the capability statement
7266* [ChargeItemDefinition](chargeitemdefinition.html): A type of use context assigned to the charge item definition
7267* [Citation](citation.html): A type of use context assigned to the citation
7268* [CodeSystem](codesystem.html): A type of use context assigned to the code system
7269* [CompartmentDefinition](compartmentdefinition.html): A type of use context assigned to the compartment definition
7270* [ConceptMap](conceptmap.html): A type of use context assigned to the concept map
7271* [ConditionDefinition](conditiondefinition.html): A type of use context assigned to the condition definition
7272* [EventDefinition](eventdefinition.html): A type of use context assigned to the event definition
7273* [Evidence](evidence.html): A type of use context assigned to the evidence
7274* [EvidenceReport](evidencereport.html): A type of use context assigned to the evidence report
7275* [EvidenceVariable](evidencevariable.html): A type of use context assigned to the evidence variable
7276* [ExampleScenario](examplescenario.html): A type of use context assigned to the example scenario
7277* [GraphDefinition](graphdefinition.html): A type of use context assigned to the graph definition
7278* [ImplementationGuide](implementationguide.html): A type of use context assigned to the implementation guide
7279* [Library](library.html): A type of use context assigned to the library
7280* [Measure](measure.html): A type of use context assigned to the measure
7281* [MessageDefinition](messagedefinition.html): A type of use context assigned to the message definition
7282* [NamingSystem](namingsystem.html): A type of use context assigned to the naming system
7283* [OperationDefinition](operationdefinition.html): A type of use context assigned to the operation definition
7284* [PlanDefinition](plandefinition.html): A type of use context assigned to the plan definition
7285* [Questionnaire](questionnaire.html): A type of use context assigned to the questionnaire
7286* [Requirements](requirements.html): A type of use context assigned to the requirements
7287* [SearchParameter](searchparameter.html): A type of use context assigned to the search parameter
7288* [StructureDefinition](structuredefinition.html): A type of use context assigned to the structure definition
7289* [StructureMap](structuremap.html): A type of use context assigned to the structure map
7290* [TerminologyCapabilities](terminologycapabilities.html): A type of use context assigned to the terminology capabilities
7291* [TestScript](testscript.html): A type of use context assigned to the test script
7292* [ValueSet](valueset.html): A type of use context assigned to the value set
7293</b><br>
7294   * Type: <b>token</b><br>
7295   * Path: <b>ActivityDefinition.useContext.code | ActorDefinition.useContext.code | CapabilityStatement.useContext.code | ChargeItemDefinition.useContext.code | Citation.useContext.code | CodeSystem.useContext.code | CompartmentDefinition.useContext.code | ConceptMap.useContext.code | ConditionDefinition.useContext.code | EventDefinition.useContext.code | Evidence.useContext.code | EvidenceReport.useContext.code | EvidenceVariable.useContext.code | ExampleScenario.useContext.code | GraphDefinition.useContext.code | ImplementationGuide.useContext.code | Library.useContext.code | Measure.useContext.code | MessageDefinition.useContext.code | NamingSystem.useContext.code | OperationDefinition.useContext.code | PlanDefinition.useContext.code | Questionnaire.useContext.code | Requirements.useContext.code | SearchParameter.useContext.code | StructureDefinition.useContext.code | StructureMap.useContext.code | TerminologyCapabilities.useContext.code | TestScript.useContext.code | ValueSet.useContext.code</b><br>
7296   * </p>
7297   */
7298  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE);
7299
7300 /**
7301   * Search parameter: <b>context</b>
7302   * <p>
7303   * Description: <b>Multiple Resources: 
7304
7305* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
7306* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
7307* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
7308* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
7309* [Citation](citation.html): A use context assigned to the citation
7310* [CodeSystem](codesystem.html): A use context assigned to the code system
7311* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
7312* [ConceptMap](conceptmap.html): A use context assigned to the concept map
7313* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
7314* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
7315* [Evidence](evidence.html): A use context assigned to the evidence
7316* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
7317* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
7318* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
7319* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
7320* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
7321* [Library](library.html): A use context assigned to the library
7322* [Measure](measure.html): A use context assigned to the measure
7323* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
7324* [NamingSystem](namingsystem.html): A use context assigned to the naming system
7325* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
7326* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
7327* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
7328* [Requirements](requirements.html): A use context assigned to the requirements
7329* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
7330* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
7331* [StructureMap](structuremap.html): A use context assigned to the structure map
7332* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7333* [TestScript](testscript.html): A use context assigned to the test script
7334* [ValueSet](valueset.html): A use context assigned to the value set
7335</b><br>
7336   * Type: <b>token</b><br>
7337   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
7338   * </p>
7339   */
7340  @SearchParamDefinition(name="context", path="(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition\r\n* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition\r\n* [Citation](citation.html): A use context assigned to the citation\r\n* [CodeSystem](codesystem.html): A use context assigned to the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition\r\n* [ConceptMap](conceptmap.html): A use context assigned to the concept map\r\n* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition\r\n* [EventDefinition](eventdefinition.html): A use context assigned to the event definition\r\n* [Evidence](evidence.html): A use context assigned to the evidence\r\n* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report\r\n* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable\r\n* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario\r\n* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition\r\n* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide\r\n* [Library](library.html): A use context assigned to the library\r\n* [Measure](measure.html): A use context assigned to the measure\r\n* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition\r\n* [NamingSystem](namingsystem.html): A use context assigned to the naming system\r\n* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition\r\n* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition\r\n* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire\r\n* [Requirements](requirements.html): A use context assigned to the requirements\r\n* [SearchParameter](searchparameter.html): A use context assigned to the search parameter\r\n* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition\r\n* [StructureMap](structuremap.html): A use context assigned to the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities\r\n* [TestScript](testscript.html): A use context assigned to the test script\r\n* [ValueSet](valueset.html): A use context assigned to the value set\r\n", type="token" )
7341  public static final String SP_CONTEXT = "context";
7342 /**
7343   * <b>Fluent Client</b> search parameter constant for <b>context</b>
7344   * <p>
7345   * Description: <b>Multiple Resources: 
7346
7347* [ActivityDefinition](activitydefinition.html): A use context assigned to the activity definition
7348* [ActorDefinition](actordefinition.html): A use context assigned to the Actor Definition
7349* [CapabilityStatement](capabilitystatement.html): A use context assigned to the capability statement
7350* [ChargeItemDefinition](chargeitemdefinition.html): A use context assigned to the charge item definition
7351* [Citation](citation.html): A use context assigned to the citation
7352* [CodeSystem](codesystem.html): A use context assigned to the code system
7353* [CompartmentDefinition](compartmentdefinition.html): A use context assigned to the compartment definition
7354* [ConceptMap](conceptmap.html): A use context assigned to the concept map
7355* [ConditionDefinition](conditiondefinition.html): A use context assigned to the condition definition
7356* [EventDefinition](eventdefinition.html): A use context assigned to the event definition
7357* [Evidence](evidence.html): A use context assigned to the evidence
7358* [EvidenceReport](evidencereport.html): A use context assigned to the evidence report
7359* [EvidenceVariable](evidencevariable.html): A use context assigned to the evidence variable
7360* [ExampleScenario](examplescenario.html): A use context assigned to the example scenario
7361* [GraphDefinition](graphdefinition.html): A use context assigned to the graph definition
7362* [ImplementationGuide](implementationguide.html): A use context assigned to the implementation guide
7363* [Library](library.html): A use context assigned to the library
7364* [Measure](measure.html): A use context assigned to the measure
7365* [MessageDefinition](messagedefinition.html): A use context assigned to the message definition
7366* [NamingSystem](namingsystem.html): A use context assigned to the naming system
7367* [OperationDefinition](operationdefinition.html): A use context assigned to the operation definition
7368* [PlanDefinition](plandefinition.html): A use context assigned to the plan definition
7369* [Questionnaire](questionnaire.html): A use context assigned to the questionnaire
7370* [Requirements](requirements.html): A use context assigned to the requirements
7371* [SearchParameter](searchparameter.html): A use context assigned to the search parameter
7372* [StructureDefinition](structuredefinition.html): A use context assigned to the structure definition
7373* [StructureMap](structuremap.html): A use context assigned to the structure map
7374* [TerminologyCapabilities](terminologycapabilities.html): A use context assigned to the terminology capabilities
7375* [TestScript](testscript.html): A use context assigned to the test script
7376* [ValueSet](valueset.html): A use context assigned to the value set
7377</b><br>
7378   * Type: <b>token</b><br>
7379   * Path: <b>(ActivityDefinition.useContext.value.ofType(CodeableConcept)) | (ActorDefinition.useContext.value.ofType(CodeableConcept)) | (CapabilityStatement.useContext.value.ofType(CodeableConcept)) | (ChargeItemDefinition.useContext.value.ofType(CodeableConcept)) | (Citation.useContext.value.ofType(CodeableConcept)) | (CodeSystem.useContext.value.ofType(CodeableConcept)) | (CompartmentDefinition.useContext.value.ofType(CodeableConcept)) | (ConceptMap.useContext.value.ofType(CodeableConcept)) | (ConditionDefinition.useContext.value.ofType(CodeableConcept)) | (EventDefinition.useContext.value.ofType(CodeableConcept)) | (Evidence.useContext.value.ofType(CodeableConcept)) | (EvidenceReport.useContext.value.ofType(CodeableConcept)) | (EvidenceVariable.useContext.value.ofType(CodeableConcept)) | (ExampleScenario.useContext.value.ofType(CodeableConcept)) | (GraphDefinition.useContext.value.ofType(CodeableConcept)) | (ImplementationGuide.useContext.value.ofType(CodeableConcept)) | (Library.useContext.value.ofType(CodeableConcept)) | (Measure.useContext.value.ofType(CodeableConcept)) | (MessageDefinition.useContext.value.ofType(CodeableConcept)) | (NamingSystem.useContext.value.ofType(CodeableConcept)) | (OperationDefinition.useContext.value.ofType(CodeableConcept)) | (PlanDefinition.useContext.value.ofType(CodeableConcept)) | (Questionnaire.useContext.value.ofType(CodeableConcept)) | (Requirements.useContext.value.ofType(CodeableConcept)) | (SearchParameter.useContext.value.ofType(CodeableConcept)) | (StructureDefinition.useContext.value.ofType(CodeableConcept)) | (StructureMap.useContext.value.ofType(CodeableConcept)) | (TerminologyCapabilities.useContext.value.ofType(CodeableConcept)) | (TestScript.useContext.value.ofType(CodeableConcept)) | (ValueSet.useContext.value.ofType(CodeableConcept))</b><br>
7380   * </p>
7381   */
7382  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT);
7383
7384 /**
7385   * Search parameter: <b>date</b>
7386   * <p>
7387   * Description: <b>Multiple Resources: 
7388
7389* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7390* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7391* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7392* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7393* [Citation](citation.html): The citation publication date
7394* [CodeSystem](codesystem.html): The code system publication date
7395* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7396* [ConceptMap](conceptmap.html): The concept map publication date
7397* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7398* [EventDefinition](eventdefinition.html): The event definition publication date
7399* [Evidence](evidence.html): The evidence publication date
7400* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7401* [ExampleScenario](examplescenario.html): The example scenario publication date
7402* [GraphDefinition](graphdefinition.html): The graph definition publication date
7403* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7404* [Library](library.html): The library publication date
7405* [Measure](measure.html): The measure publication date
7406* [MessageDefinition](messagedefinition.html): The message definition publication date
7407* [NamingSystem](namingsystem.html): The naming system publication date
7408* [OperationDefinition](operationdefinition.html): The operation definition publication date
7409* [PlanDefinition](plandefinition.html): The plan definition publication date
7410* [Questionnaire](questionnaire.html): The questionnaire publication date
7411* [Requirements](requirements.html): The requirements publication date
7412* [SearchParameter](searchparameter.html): The search parameter publication date
7413* [StructureDefinition](structuredefinition.html): The structure definition publication date
7414* [StructureMap](structuremap.html): The structure map publication date
7415* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7416* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7417* [TestScript](testscript.html): The test script publication date
7418* [ValueSet](valueset.html): The value set publication date
7419</b><br>
7420   * Type: <b>date</b><br>
7421   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
7422   * </p>
7423   */
7424  @SearchParamDefinition(name="date", path="ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The activity definition publication date\r\n* [ActorDefinition](actordefinition.html): The Actor Definition publication date\r\n* [CapabilityStatement](capabilitystatement.html): The capability statement publication date\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date\r\n* [Citation](citation.html): The citation publication date\r\n* [CodeSystem](codesystem.html): The code system publication date\r\n* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date\r\n* [ConceptMap](conceptmap.html): The concept map publication date\r\n* [ConditionDefinition](conditiondefinition.html): The condition definition publication date\r\n* [EventDefinition](eventdefinition.html): The event definition publication date\r\n* [Evidence](evidence.html): The evidence publication date\r\n* [EvidenceVariable](evidencevariable.html): The evidence variable publication date\r\n* [ExampleScenario](examplescenario.html): The example scenario publication date\r\n* [GraphDefinition](graphdefinition.html): The graph definition publication date\r\n* [ImplementationGuide](implementationguide.html): The implementation guide publication date\r\n* [Library](library.html): The library publication date\r\n* [Measure](measure.html): The measure publication date\r\n* [MessageDefinition](messagedefinition.html): The message definition publication date\r\n* [NamingSystem](namingsystem.html): The naming system publication date\r\n* [OperationDefinition](operationdefinition.html): The operation definition publication date\r\n* [PlanDefinition](plandefinition.html): The plan definition publication date\r\n* [Questionnaire](questionnaire.html): The questionnaire publication date\r\n* [Requirements](requirements.html): The requirements publication date\r\n* [SearchParameter](searchparameter.html): The search parameter publication date\r\n* [StructureDefinition](structuredefinition.html): The structure definition publication date\r\n* [StructureMap](structuremap.html): The structure map publication date\r\n* [SubscriptionTopic](subscriptiontopic.html): Date status first applied\r\n* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date\r\n* [TestScript](testscript.html): The test script publication date\r\n* [ValueSet](valueset.html): The value set publication date\r\n", type="date" )
7425  public static final String SP_DATE = "date";
7426 /**
7427   * <b>Fluent Client</b> search parameter constant for <b>date</b>
7428   * <p>
7429   * Description: <b>Multiple Resources: 
7430
7431* [ActivityDefinition](activitydefinition.html): The activity definition publication date
7432* [ActorDefinition](actordefinition.html): The Actor Definition publication date
7433* [CapabilityStatement](capabilitystatement.html): The capability statement publication date
7434* [ChargeItemDefinition](chargeitemdefinition.html): The charge item definition publication date
7435* [Citation](citation.html): The citation publication date
7436* [CodeSystem](codesystem.html): The code system publication date
7437* [CompartmentDefinition](compartmentdefinition.html): The compartment definition publication date
7438* [ConceptMap](conceptmap.html): The concept map publication date
7439* [ConditionDefinition](conditiondefinition.html): The condition definition publication date
7440* [EventDefinition](eventdefinition.html): The event definition publication date
7441* [Evidence](evidence.html): The evidence publication date
7442* [EvidenceVariable](evidencevariable.html): The evidence variable publication date
7443* [ExampleScenario](examplescenario.html): The example scenario publication date
7444* [GraphDefinition](graphdefinition.html): The graph definition publication date
7445* [ImplementationGuide](implementationguide.html): The implementation guide publication date
7446* [Library](library.html): The library publication date
7447* [Measure](measure.html): The measure publication date
7448* [MessageDefinition](messagedefinition.html): The message definition publication date
7449* [NamingSystem](namingsystem.html): The naming system publication date
7450* [OperationDefinition](operationdefinition.html): The operation definition publication date
7451* [PlanDefinition](plandefinition.html): The plan definition publication date
7452* [Questionnaire](questionnaire.html): The questionnaire publication date
7453* [Requirements](requirements.html): The requirements publication date
7454* [SearchParameter](searchparameter.html): The search parameter publication date
7455* [StructureDefinition](structuredefinition.html): The structure definition publication date
7456* [StructureMap](structuremap.html): The structure map publication date
7457* [SubscriptionTopic](subscriptiontopic.html): Date status first applied
7458* [TerminologyCapabilities](terminologycapabilities.html): The terminology capabilities publication date
7459* [TestScript](testscript.html): The test script publication date
7460* [ValueSet](valueset.html): The value set publication date
7461</b><br>
7462   * Type: <b>date</b><br>
7463   * Path: <b>ActivityDefinition.date | ActorDefinition.date | CapabilityStatement.date | ChargeItemDefinition.date | Citation.date | CodeSystem.date | CompartmentDefinition.date | ConceptMap.date | ConditionDefinition.date | EventDefinition.date | Evidence.date | EvidenceVariable.date | ExampleScenario.date | GraphDefinition.date | ImplementationGuide.date | Library.date | Measure.date | MessageDefinition.date | NamingSystem.date | OperationDefinition.date | PlanDefinition.date | Questionnaire.date | Requirements.date | SearchParameter.date | StructureDefinition.date | StructureMap.date | SubscriptionTopic.date | TerminologyCapabilities.date | TestScript.date | ValueSet.date</b><br>
7464   * </p>
7465   */
7466  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
7467
7468 /**
7469   * Search parameter: <b>description</b>
7470   * <p>
7471   * Description: <b>Multiple Resources: 
7472
7473* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7474* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7475* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7476* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7477* [Citation](citation.html): The description of the citation
7478* [CodeSystem](codesystem.html): The description of the code system
7479* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7480* [ConceptMap](conceptmap.html): The description of the concept map
7481* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7482* [EventDefinition](eventdefinition.html): The description of the event definition
7483* [Evidence](evidence.html): The description of the evidence
7484* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7485* [GraphDefinition](graphdefinition.html): The description of the graph definition
7486* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7487* [Library](library.html): The description of the library
7488* [Measure](measure.html): The description of the measure
7489* [MessageDefinition](messagedefinition.html): The description of the message definition
7490* [NamingSystem](namingsystem.html): The description of the naming system
7491* [OperationDefinition](operationdefinition.html): The description of the operation definition
7492* [PlanDefinition](plandefinition.html): The description of the plan definition
7493* [Questionnaire](questionnaire.html): The description of the questionnaire
7494* [Requirements](requirements.html): The description of the requirements
7495* [SearchParameter](searchparameter.html): The description of the search parameter
7496* [StructureDefinition](structuredefinition.html): The description of the structure definition
7497* [StructureMap](structuremap.html): The description of the structure map
7498* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7499* [TestScript](testscript.html): The description of the test script
7500* [ValueSet](valueset.html): The description of the value set
7501</b><br>
7502   * Type: <b>string</b><br>
7503   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
7504   * </p>
7505   */
7506  @SearchParamDefinition(name="description", path="ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The description of the activity definition\r\n* [ActorDefinition](actordefinition.html): The description of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The description of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition\r\n* [Citation](citation.html): The description of the citation\r\n* [CodeSystem](codesystem.html): The description of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition\r\n* [ConceptMap](conceptmap.html): The description of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The description of the condition definition\r\n* [EventDefinition](eventdefinition.html): The description of the event definition\r\n* [Evidence](evidence.html): The description of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The description of the evidence variable\r\n* [GraphDefinition](graphdefinition.html): The description of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The description of the implementation guide\r\n* [Library](library.html): The description of the library\r\n* [Measure](measure.html): The description of the measure\r\n* [MessageDefinition](messagedefinition.html): The description of the message definition\r\n* [NamingSystem](namingsystem.html): The description of the naming system\r\n* [OperationDefinition](operationdefinition.html): The description of the operation definition\r\n* [PlanDefinition](plandefinition.html): The description of the plan definition\r\n* [Questionnaire](questionnaire.html): The description of the questionnaire\r\n* [Requirements](requirements.html): The description of the requirements\r\n* [SearchParameter](searchparameter.html): The description of the search parameter\r\n* [StructureDefinition](structuredefinition.html): The description of the structure definition\r\n* [StructureMap](structuremap.html): The description of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities\r\n* [TestScript](testscript.html): The description of the test script\r\n* [ValueSet](valueset.html): The description of the value set\r\n", type="string" )
7507  public static final String SP_DESCRIPTION = "description";
7508 /**
7509   * <b>Fluent Client</b> search parameter constant for <b>description</b>
7510   * <p>
7511   * Description: <b>Multiple Resources: 
7512
7513* [ActivityDefinition](activitydefinition.html): The description of the activity definition
7514* [ActorDefinition](actordefinition.html): The description of the Actor Definition
7515* [CapabilityStatement](capabilitystatement.html): The description of the capability statement
7516* [ChargeItemDefinition](chargeitemdefinition.html): The description of the charge item definition
7517* [Citation](citation.html): The description of the citation
7518* [CodeSystem](codesystem.html): The description of the code system
7519* [CompartmentDefinition](compartmentdefinition.html): The description of the compartment definition
7520* [ConceptMap](conceptmap.html): The description of the concept map
7521* [ConditionDefinition](conditiondefinition.html): The description of the condition definition
7522* [EventDefinition](eventdefinition.html): The description of the event definition
7523* [Evidence](evidence.html): The description of the evidence
7524* [EvidenceVariable](evidencevariable.html): The description of the evidence variable
7525* [GraphDefinition](graphdefinition.html): The description of the graph definition
7526* [ImplementationGuide](implementationguide.html): The description of the implementation guide
7527* [Library](library.html): The description of the library
7528* [Measure](measure.html): The description of the measure
7529* [MessageDefinition](messagedefinition.html): The description of the message definition
7530* [NamingSystem](namingsystem.html): The description of the naming system
7531* [OperationDefinition](operationdefinition.html): The description of the operation definition
7532* [PlanDefinition](plandefinition.html): The description of the plan definition
7533* [Questionnaire](questionnaire.html): The description of the questionnaire
7534* [Requirements](requirements.html): The description of the requirements
7535* [SearchParameter](searchparameter.html): The description of the search parameter
7536* [StructureDefinition](structuredefinition.html): The description of the structure definition
7537* [StructureMap](structuremap.html): The description of the structure map
7538* [TerminologyCapabilities](terminologycapabilities.html): The description of the terminology capabilities
7539* [TestScript](testscript.html): The description of the test script
7540* [ValueSet](valueset.html): The description of the value set
7541</b><br>
7542   * Type: <b>string</b><br>
7543   * Path: <b>ActivityDefinition.description | ActorDefinition.description | CapabilityStatement.description | ChargeItemDefinition.description | Citation.description | CodeSystem.description | CompartmentDefinition.description | ConceptMap.description | ConditionDefinition.description | EventDefinition.description | Evidence.description | EvidenceVariable.description | GraphDefinition.description | ImplementationGuide.description | Library.description | Measure.description | MessageDefinition.description | NamingSystem.description | OperationDefinition.description | PlanDefinition.description | Questionnaire.description | Requirements.description | SearchParameter.description | StructureDefinition.description | StructureMap.description | TerminologyCapabilities.description | TestScript.description | ValueSet.description</b><br>
7544   * </p>
7545   */
7546  public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION);
7547
7548 /**
7549   * Search parameter: <b>identifier</b>
7550   * <p>
7551   * Description: <b>Multiple Resources: 
7552
7553* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7554* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7555* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7556* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7557* [Citation](citation.html): External identifier for the citation
7558* [CodeSystem](codesystem.html): External identifier for the code system
7559* [ConceptMap](conceptmap.html): External identifier for the concept map
7560* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7561* [EventDefinition](eventdefinition.html): External identifier for the event definition
7562* [Evidence](evidence.html): External identifier for the evidence
7563* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7564* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7565* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7566* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7567* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7568* [Library](library.html): External identifier for the library
7569* [Measure](measure.html): External identifier for the measure
7570* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7571* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7572* [NamingSystem](namingsystem.html): External identifier for the naming system
7573* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7574* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7575* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7576* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7577* [Requirements](requirements.html): External identifier for the requirements
7578* [SearchParameter](searchparameter.html): External identifier for the search parameter
7579* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7580* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7581* [StructureMap](structuremap.html): External identifier for the structure map
7582* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7583* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7584* [TestPlan](testplan.html): An identifier for the test plan
7585* [TestScript](testscript.html): External identifier for the test script
7586* [ValueSet](valueset.html): External identifier for the value set
7587</b><br>
7588   * Type: <b>token</b><br>
7589   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
7590   * </p>
7591   */
7592  @SearchParamDefinition(name="identifier", path="ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition\r\n* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition\r\n* [Citation](citation.html): External identifier for the citation\r\n* [CodeSystem](codesystem.html): External identifier for the code system\r\n* [ConceptMap](conceptmap.html): External identifier for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition\r\n* [EventDefinition](eventdefinition.html): External identifier for the event definition\r\n* [Evidence](evidence.html): External identifier for the evidence\r\n* [EvidenceReport](evidencereport.html): External identifier for the evidence report\r\n* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable\r\n* [ExampleScenario](examplescenario.html): External identifier for the example scenario\r\n* [GraphDefinition](graphdefinition.html): External identifier for the graph definition\r\n* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide\r\n* [Library](library.html): External identifier for the library\r\n* [Measure](measure.html): External identifier for the measure\r\n* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication\r\n* [MessageDefinition](messagedefinition.html): External identifier for the message definition\r\n* [NamingSystem](namingsystem.html): External identifier for the naming system\r\n* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition\r\n* [OperationDefinition](operationdefinition.html): External identifier for the search parameter\r\n* [PlanDefinition](plandefinition.html): External identifier for the plan definition\r\n* [Questionnaire](questionnaire.html): External identifier for the questionnaire\r\n* [Requirements](requirements.html): External identifier for the requirements\r\n* [SearchParameter](searchparameter.html): External identifier for the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): External identifier for the structure definition\r\n* [StructureMap](structuremap.html): External identifier for the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic\r\n* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities\r\n* [TestPlan](testplan.html): An identifier for the test plan\r\n* [TestScript](testscript.html): External identifier for the test script\r\n* [ValueSet](valueset.html): External identifier for the value set\r\n", type="token" )
7593  public static final String SP_IDENTIFIER = "identifier";
7594 /**
7595   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
7596   * <p>
7597   * Description: <b>Multiple Resources: 
7598
7599* [ActivityDefinition](activitydefinition.html): External identifier for the activity definition
7600* [ActorDefinition](actordefinition.html): External identifier for the Actor Definition
7601* [CapabilityStatement](capabilitystatement.html): External identifier for the capability statement
7602* [ChargeItemDefinition](chargeitemdefinition.html): External identifier for the charge item definition
7603* [Citation](citation.html): External identifier for the citation
7604* [CodeSystem](codesystem.html): External identifier for the code system
7605* [ConceptMap](conceptmap.html): External identifier for the concept map
7606* [ConditionDefinition](conditiondefinition.html): External identifier for the condition definition
7607* [EventDefinition](eventdefinition.html): External identifier for the event definition
7608* [Evidence](evidence.html): External identifier for the evidence
7609* [EvidenceReport](evidencereport.html): External identifier for the evidence report
7610* [EvidenceVariable](evidencevariable.html): External identifier for the evidence variable
7611* [ExampleScenario](examplescenario.html): External identifier for the example scenario
7612* [GraphDefinition](graphdefinition.html): External identifier for the graph definition
7613* [ImplementationGuide](implementationguide.html): External identifier for the implementation guide
7614* [Library](library.html): External identifier for the library
7615* [Measure](measure.html): External identifier for the measure
7616* [MedicationKnowledge](medicationknowledge.html): Business identifier for this medication
7617* [MessageDefinition](messagedefinition.html): External identifier for the message definition
7618* [NamingSystem](namingsystem.html): External identifier for the naming system
7619* [ObservationDefinition](observationdefinition.html): The unique identifier associated with the specimen definition
7620* [OperationDefinition](operationdefinition.html): External identifier for the search parameter
7621* [PlanDefinition](plandefinition.html): External identifier for the plan definition
7622* [Questionnaire](questionnaire.html): External identifier for the questionnaire
7623* [Requirements](requirements.html): External identifier for the requirements
7624* [SearchParameter](searchparameter.html): External identifier for the search parameter
7625* [SpecimenDefinition](specimendefinition.html): The unique identifier associated with the SpecimenDefinition
7626* [StructureDefinition](structuredefinition.html): External identifier for the structure definition
7627* [StructureMap](structuremap.html): External identifier for the structure map
7628* [SubscriptionTopic](subscriptiontopic.html): Business Identifier for SubscriptionTopic
7629* [TerminologyCapabilities](terminologycapabilities.html): External identifier for the terminology capabilities
7630* [TestPlan](testplan.html): An identifier for the test plan
7631* [TestScript](testscript.html): External identifier for the test script
7632* [ValueSet](valueset.html): External identifier for the value set
7633</b><br>
7634   * Type: <b>token</b><br>
7635   * Path: <b>ActivityDefinition.identifier | ActorDefinition.identifier | CapabilityStatement.identifier | ChargeItemDefinition.identifier | Citation.identifier | CodeSystem.identifier | ConceptMap.identifier | ConditionDefinition.identifier | EventDefinition.identifier | Evidence.identifier | EvidenceReport.identifier | EvidenceVariable.identifier | ExampleScenario.identifier | GraphDefinition.identifier | ImplementationGuide.identifier | Library.identifier | Measure.identifier | MedicationKnowledge.identifier | MessageDefinition.identifier | NamingSystem.identifier | ObservationDefinition.identifier | OperationDefinition.identifier | PlanDefinition.identifier | Questionnaire.identifier | Requirements.identifier | SearchParameter.identifier | SpecimenDefinition.identifier | StructureDefinition.identifier | StructureMap.identifier | SubscriptionTopic.identifier | TerminologyCapabilities.identifier | TestPlan.identifier | TestScript.identifier | ValueSet.identifier</b><br>
7636   * </p>
7637   */
7638  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
7639
7640 /**
7641   * Search parameter: <b>jurisdiction</b>
7642   * <p>
7643   * Description: <b>Multiple Resources: 
7644
7645* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7646* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7647* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7648* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7649* [Citation](citation.html): Intended jurisdiction for the citation
7650* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7651* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7652* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7653* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7654* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7655* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7656* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7657* [Library](library.html): Intended jurisdiction for the library
7658* [Measure](measure.html): Intended jurisdiction for the measure
7659* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7660* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7661* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7662* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7663* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7664* [Requirements](requirements.html): Intended jurisdiction for the requirements
7665* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7666* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7667* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7668* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7669* [TestScript](testscript.html): Intended jurisdiction for the test script
7670* [ValueSet](valueset.html): Intended jurisdiction for the value set
7671</b><br>
7672   * Type: <b>token</b><br>
7673   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
7674   * </p>
7675   */
7676  @SearchParamDefinition(name="jurisdiction", path="ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition\r\n* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition\r\n* [Citation](citation.html): Intended jurisdiction for the citation\r\n* [CodeSystem](codesystem.html): Intended jurisdiction for the code system\r\n* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition\r\n* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition\r\n* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario\r\n* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition\r\n* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide\r\n* [Library](library.html): Intended jurisdiction for the library\r\n* [Measure](measure.html): Intended jurisdiction for the measure\r\n* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition\r\n* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system\r\n* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition\r\n* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition\r\n* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire\r\n* [Requirements](requirements.html): Intended jurisdiction for the requirements\r\n* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter\r\n* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition\r\n* [StructureMap](structuremap.html): Intended jurisdiction for the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities\r\n* [TestScript](testscript.html): Intended jurisdiction for the test script\r\n* [ValueSet](valueset.html): Intended jurisdiction for the value set\r\n", type="token" )
7677  public static final String SP_JURISDICTION = "jurisdiction";
7678 /**
7679   * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b>
7680   * <p>
7681   * Description: <b>Multiple Resources: 
7682
7683* [ActivityDefinition](activitydefinition.html): Intended jurisdiction for the activity definition
7684* [ActorDefinition](actordefinition.html): Intended jurisdiction for the Actor Definition
7685* [CapabilityStatement](capabilitystatement.html): Intended jurisdiction for the capability statement
7686* [ChargeItemDefinition](chargeitemdefinition.html): Intended jurisdiction for the charge item definition
7687* [Citation](citation.html): Intended jurisdiction for the citation
7688* [CodeSystem](codesystem.html): Intended jurisdiction for the code system
7689* [ConceptMap](conceptmap.html): Intended jurisdiction for the concept map
7690* [ConditionDefinition](conditiondefinition.html): Intended jurisdiction for the condition definition
7691* [EventDefinition](eventdefinition.html): Intended jurisdiction for the event definition
7692* [ExampleScenario](examplescenario.html): Intended jurisdiction for the example scenario
7693* [GraphDefinition](graphdefinition.html): Intended jurisdiction for the graph definition
7694* [ImplementationGuide](implementationguide.html): Intended jurisdiction for the implementation guide
7695* [Library](library.html): Intended jurisdiction for the library
7696* [Measure](measure.html): Intended jurisdiction for the measure
7697* [MessageDefinition](messagedefinition.html): Intended jurisdiction for the message definition
7698* [NamingSystem](namingsystem.html): Intended jurisdiction for the naming system
7699* [OperationDefinition](operationdefinition.html): Intended jurisdiction for the operation definition
7700* [PlanDefinition](plandefinition.html): Intended jurisdiction for the plan definition
7701* [Questionnaire](questionnaire.html): Intended jurisdiction for the questionnaire
7702* [Requirements](requirements.html): Intended jurisdiction for the requirements
7703* [SearchParameter](searchparameter.html): Intended jurisdiction for the search parameter
7704* [StructureDefinition](structuredefinition.html): Intended jurisdiction for the structure definition
7705* [StructureMap](structuremap.html): Intended jurisdiction for the structure map
7706* [TerminologyCapabilities](terminologycapabilities.html): Intended jurisdiction for the terminology capabilities
7707* [TestScript](testscript.html): Intended jurisdiction for the test script
7708* [ValueSet](valueset.html): Intended jurisdiction for the value set
7709</b><br>
7710   * Type: <b>token</b><br>
7711   * Path: <b>ActivityDefinition.jurisdiction | ActorDefinition.jurisdiction | CapabilityStatement.jurisdiction | ChargeItemDefinition.jurisdiction | Citation.jurisdiction | CodeSystem.jurisdiction | ConceptMap.jurisdiction | ConditionDefinition.jurisdiction | EventDefinition.jurisdiction | ExampleScenario.jurisdiction | GraphDefinition.jurisdiction | ImplementationGuide.jurisdiction | Library.jurisdiction | Measure.jurisdiction | MessageDefinition.jurisdiction | NamingSystem.jurisdiction | OperationDefinition.jurisdiction | PlanDefinition.jurisdiction | Questionnaire.jurisdiction | Requirements.jurisdiction | SearchParameter.jurisdiction | StructureDefinition.jurisdiction | StructureMap.jurisdiction | TerminologyCapabilities.jurisdiction | TestScript.jurisdiction | ValueSet.jurisdiction</b><br>
7712   * </p>
7713   */
7714  public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION);
7715
7716 /**
7717   * Search parameter: <b>name</b>
7718   * <p>
7719   * Description: <b>Multiple Resources: 
7720
7721* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7722* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7723* [Citation](citation.html): Computationally friendly name of the citation
7724* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7725* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7726* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7727* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7728* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7729* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7730* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7731* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7732* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7733* [Library](library.html): Computationally friendly name of the library
7734* [Measure](measure.html): Computationally friendly name of the measure
7735* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7736* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7737* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7738* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7739* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7740* [Requirements](requirements.html): Computationally friendly name of the requirements
7741* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7742* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7743* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7744* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7745* [TestScript](testscript.html): Computationally friendly name of the test script
7746* [ValueSet](valueset.html): Computationally friendly name of the value set
7747</b><br>
7748   * Type: <b>string</b><br>
7749   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
7750   * </p>
7751   */
7752  @SearchParamDefinition(name="name", path="ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition\r\n* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement\r\n* [Citation](citation.html): Computationally friendly name of the citation\r\n* [CodeSystem](codesystem.html): Computationally friendly name of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition\r\n* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition\r\n* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide\r\n* [Library](library.html): Computationally friendly name of the library\r\n* [Measure](measure.html): Computationally friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition\r\n* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system\r\n* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire\r\n* [Requirements](requirements.html): Computationally friendly name of the requirements\r\n* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition\r\n* [StructureMap](structuremap.html): Computationally friendly name of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): Computationally friendly name of the test script\r\n* [ValueSet](valueset.html): Computationally friendly name of the value set\r\n", type="string" )
7753  public static final String SP_NAME = "name";
7754 /**
7755   * <b>Fluent Client</b> search parameter constant for <b>name</b>
7756   * <p>
7757   * Description: <b>Multiple Resources: 
7758
7759* [ActivityDefinition](activitydefinition.html): Computationally friendly name of the activity definition
7760* [CapabilityStatement](capabilitystatement.html): Computationally friendly name of the capability statement
7761* [Citation](citation.html): Computationally friendly name of the citation
7762* [CodeSystem](codesystem.html): Computationally friendly name of the code system
7763* [CompartmentDefinition](compartmentdefinition.html): Computationally friendly name of the compartment definition
7764* [ConceptMap](conceptmap.html): Computationally friendly name of the concept map
7765* [ConditionDefinition](conditiondefinition.html): Computationally friendly name of the condition definition
7766* [EventDefinition](eventdefinition.html): Computationally friendly name of the event definition
7767* [EvidenceVariable](evidencevariable.html): Computationally friendly name of the evidence variable
7768* [ExampleScenario](examplescenario.html): Computationally friendly name of the example scenario
7769* [GraphDefinition](graphdefinition.html): Computationally friendly name of the graph definition
7770* [ImplementationGuide](implementationguide.html): Computationally friendly name of the implementation guide
7771* [Library](library.html): Computationally friendly name of the library
7772* [Measure](measure.html): Computationally friendly name of the measure
7773* [MessageDefinition](messagedefinition.html): Computationally friendly name of the message definition
7774* [NamingSystem](namingsystem.html): Computationally friendly name of the naming system
7775* [OperationDefinition](operationdefinition.html): Computationally friendly name of the operation definition
7776* [PlanDefinition](plandefinition.html): Computationally friendly name of the plan definition
7777* [Questionnaire](questionnaire.html): Computationally friendly name of the questionnaire
7778* [Requirements](requirements.html): Computationally friendly name of the requirements
7779* [SearchParameter](searchparameter.html): Computationally friendly name of the search parameter
7780* [StructureDefinition](structuredefinition.html): Computationally friendly name of the structure definition
7781* [StructureMap](structuremap.html): Computationally friendly name of the structure map
7782* [TerminologyCapabilities](terminologycapabilities.html): Computationally friendly name of the terminology capabilities
7783* [TestScript](testscript.html): Computationally friendly name of the test script
7784* [ValueSet](valueset.html): Computationally friendly name of the value set
7785</b><br>
7786   * Type: <b>string</b><br>
7787   * Path: <b>ActivityDefinition.name | CapabilityStatement.name | Citation.name | CodeSystem.name | CompartmentDefinition.name | ConceptMap.name | ConditionDefinition.name | EventDefinition.name | EvidenceVariable.name | ExampleScenario.name | GraphDefinition.name | ImplementationGuide.name | Library.name | Measure.name | MessageDefinition.name | NamingSystem.name | OperationDefinition.name | PlanDefinition.name | Questionnaire.name | Requirements.name | SearchParameter.name | StructureDefinition.name | StructureMap.name | TerminologyCapabilities.name | TestScript.name | ValueSet.name</b><br>
7788   * </p>
7789   */
7790  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
7791
7792 /**
7793   * Search parameter: <b>publisher</b>
7794   * <p>
7795   * Description: <b>Multiple Resources: 
7796
7797* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7798* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7799* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7800* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7801* [Citation](citation.html): Name of the publisher of the citation
7802* [CodeSystem](codesystem.html): Name of the publisher of the code system
7803* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7804* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7805* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7806* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7807* [Evidence](evidence.html): Name of the publisher of the evidence
7808* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7809* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7810* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7811* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7812* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7813* [Library](library.html): Name of the publisher of the library
7814* [Measure](measure.html): Name of the publisher of the measure
7815* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7816* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7817* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7818* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7819* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7820* [Requirements](requirements.html): Name of the publisher of the requirements
7821* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7822* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7823* [StructureMap](structuremap.html): Name of the publisher of the structure map
7824* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7825* [TestScript](testscript.html): Name of the publisher of the test script
7826* [ValueSet](valueset.html): Name of the publisher of the value set
7827</b><br>
7828   * Type: <b>string</b><br>
7829   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
7830   * </p>
7831   */
7832  @SearchParamDefinition(name="publisher", path="ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition\r\n* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition\r\n* [Citation](citation.html): Name of the publisher of the citation\r\n* [CodeSystem](codesystem.html): Name of the publisher of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition\r\n* [ConceptMap](conceptmap.html): Name of the publisher of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition\r\n* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition\r\n* [Evidence](evidence.html): Name of the publisher of the evidence\r\n* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable\r\n* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario\r\n* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition\r\n* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide\r\n* [Library](library.html): Name of the publisher of the library\r\n* [Measure](measure.html): Name of the publisher of the measure\r\n* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition\r\n* [NamingSystem](namingsystem.html): Name of the publisher of the naming system\r\n* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition\r\n* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition\r\n* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire\r\n* [Requirements](requirements.html): Name of the publisher of the requirements\r\n* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter\r\n* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition\r\n* [StructureMap](structuremap.html): Name of the publisher of the structure map\r\n* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities\r\n* [TestScript](testscript.html): Name of the publisher of the test script\r\n* [ValueSet](valueset.html): Name of the publisher of the value set\r\n", type="string" )
7833  public static final String SP_PUBLISHER = "publisher";
7834 /**
7835   * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
7836   * <p>
7837   * Description: <b>Multiple Resources: 
7838
7839* [ActivityDefinition](activitydefinition.html): Name of the publisher of the activity definition
7840* [ActorDefinition](actordefinition.html): Name of the publisher of the Actor Definition
7841* [CapabilityStatement](capabilitystatement.html): Name of the publisher of the capability statement
7842* [ChargeItemDefinition](chargeitemdefinition.html): Name of the publisher of the charge item definition
7843* [Citation](citation.html): Name of the publisher of the citation
7844* [CodeSystem](codesystem.html): Name of the publisher of the code system
7845* [CompartmentDefinition](compartmentdefinition.html): Name of the publisher of the compartment definition
7846* [ConceptMap](conceptmap.html): Name of the publisher of the concept map
7847* [ConditionDefinition](conditiondefinition.html): Name of the publisher of the condition definition
7848* [EventDefinition](eventdefinition.html): Name of the publisher of the event definition
7849* [Evidence](evidence.html): Name of the publisher of the evidence
7850* [EvidenceReport](evidencereport.html): Name of the publisher of the evidence report
7851* [EvidenceVariable](evidencevariable.html): Name of the publisher of the evidence variable
7852* [ExampleScenario](examplescenario.html): Name of the publisher of the example scenario
7853* [GraphDefinition](graphdefinition.html): Name of the publisher of the graph definition
7854* [ImplementationGuide](implementationguide.html): Name of the publisher of the implementation guide
7855* [Library](library.html): Name of the publisher of the library
7856* [Measure](measure.html): Name of the publisher of the measure
7857* [MessageDefinition](messagedefinition.html): Name of the publisher of the message definition
7858* [NamingSystem](namingsystem.html): Name of the publisher of the naming system
7859* [OperationDefinition](operationdefinition.html): Name of the publisher of the operation definition
7860* [PlanDefinition](plandefinition.html): Name of the publisher of the plan definition
7861* [Questionnaire](questionnaire.html): Name of the publisher of the questionnaire
7862* [Requirements](requirements.html): Name of the publisher of the requirements
7863* [SearchParameter](searchparameter.html): Name of the publisher of the search parameter
7864* [StructureDefinition](structuredefinition.html): Name of the publisher of the structure definition
7865* [StructureMap](structuremap.html): Name of the publisher of the structure map
7866* [TerminologyCapabilities](terminologycapabilities.html): Name of the publisher of the terminology capabilities
7867* [TestScript](testscript.html): Name of the publisher of the test script
7868* [ValueSet](valueset.html): Name of the publisher of the value set
7869</b><br>
7870   * Type: <b>string</b><br>
7871   * Path: <b>ActivityDefinition.publisher | ActorDefinition.publisher | CapabilityStatement.publisher | ChargeItemDefinition.publisher | Citation.publisher | CodeSystem.publisher | CompartmentDefinition.publisher | ConceptMap.publisher | ConditionDefinition.publisher | EventDefinition.publisher | Evidence.publisher | EvidenceReport.publisher | EvidenceVariable.publisher | ExampleScenario.publisher | GraphDefinition.publisher | ImplementationGuide.publisher | Library.publisher | Measure.publisher | MessageDefinition.publisher | NamingSystem.publisher | OperationDefinition.publisher | PlanDefinition.publisher | Questionnaire.publisher | Requirements.publisher | SearchParameter.publisher | StructureDefinition.publisher | StructureMap.publisher | TerminologyCapabilities.publisher | TestScript.publisher | ValueSet.publisher</b><br>
7872   * </p>
7873   */
7874  public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER);
7875
7876 /**
7877   * Search parameter: <b>status</b>
7878   * <p>
7879   * Description: <b>Multiple Resources: 
7880
7881* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7882* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7883* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7884* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7885* [Citation](citation.html): The current status of the citation
7886* [CodeSystem](codesystem.html): The current status of the code system
7887* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7888* [ConceptMap](conceptmap.html): The current status of the concept map
7889* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7890* [EventDefinition](eventdefinition.html): The current status of the event definition
7891* [Evidence](evidence.html): The current status of the evidence
7892* [EvidenceReport](evidencereport.html): The current status of the evidence report
7893* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7894* [ExampleScenario](examplescenario.html): The current status of the example scenario
7895* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7896* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7897* [Library](library.html): The current status of the library
7898* [Measure](measure.html): The current status of the measure
7899* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7900* [MessageDefinition](messagedefinition.html): The current status of the message definition
7901* [NamingSystem](namingsystem.html): The current status of the naming system
7902* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7903* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7904* [PlanDefinition](plandefinition.html): The current status of the plan definition
7905* [Questionnaire](questionnaire.html): The current status of the questionnaire
7906* [Requirements](requirements.html): The current status of the requirements
7907* [SearchParameter](searchparameter.html): The current status of the search parameter
7908* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7909* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7910* [StructureMap](structuremap.html): The current status of the structure map
7911* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7912* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7913* [TestPlan](testplan.html): The current status of the test plan
7914* [TestScript](testscript.html): The current status of the test script
7915* [ValueSet](valueset.html): The current status of the value set
7916</b><br>
7917   * Type: <b>token</b><br>
7918   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
7919   * </p>
7920   */
7921  @SearchParamDefinition(name="status", path="ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The current status of the activity definition\r\n* [ActorDefinition](actordefinition.html): The current status of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition\r\n* [Citation](citation.html): The current status of the citation\r\n* [CodeSystem](codesystem.html): The current status of the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition\r\n* [ConceptMap](conceptmap.html): The current status of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition\r\n* [EventDefinition](eventdefinition.html): The current status of the event definition\r\n* [Evidence](evidence.html): The current status of the evidence\r\n* [EvidenceReport](evidencereport.html): The current status of the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable\r\n* [ExampleScenario](examplescenario.html): The current status of the example scenario\r\n* [GraphDefinition](graphdefinition.html): The current status of the graph definition\r\n* [ImplementationGuide](implementationguide.html): The current status of the implementation guide\r\n* [Library](library.html): The current status of the library\r\n* [Measure](measure.html): The current status of the measure\r\n* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error\r\n* [MessageDefinition](messagedefinition.html): The current status of the message definition\r\n* [NamingSystem](namingsystem.html): The current status of the naming system\r\n* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown\r\n* [OperationDefinition](operationdefinition.html): The current status of the operation definition\r\n* [PlanDefinition](plandefinition.html): The current status of the plan definition\r\n* [Questionnaire](questionnaire.html): The current status of the questionnaire\r\n* [Requirements](requirements.html): The current status of the requirements\r\n* [SearchParameter](searchparameter.html): The current status of the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown\r\n* [StructureDefinition](structuredefinition.html): The current status of the structure definition\r\n* [StructureMap](structuremap.html): The current status of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown\r\n* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities\r\n* [TestPlan](testplan.html): The current status of the test plan\r\n* [TestScript](testscript.html): The current status of the test script\r\n* [ValueSet](valueset.html): The current status of the value set\r\n", type="token" )
7922  public static final String SP_STATUS = "status";
7923 /**
7924   * <b>Fluent Client</b> search parameter constant for <b>status</b>
7925   * <p>
7926   * Description: <b>Multiple Resources: 
7927
7928* [ActivityDefinition](activitydefinition.html): The current status of the activity definition
7929* [ActorDefinition](actordefinition.html): The current status of the Actor Definition
7930* [CapabilityStatement](capabilitystatement.html): The current status of the capability statement
7931* [ChargeItemDefinition](chargeitemdefinition.html): The current status of the charge item definition
7932* [Citation](citation.html): The current status of the citation
7933* [CodeSystem](codesystem.html): The current status of the code system
7934* [CompartmentDefinition](compartmentdefinition.html): The current status of the compartment definition
7935* [ConceptMap](conceptmap.html): The current status of the concept map
7936* [ConditionDefinition](conditiondefinition.html): The current status of the condition definition
7937* [EventDefinition](eventdefinition.html): The current status of the event definition
7938* [Evidence](evidence.html): The current status of the evidence
7939* [EvidenceReport](evidencereport.html): The current status of the evidence report
7940* [EvidenceVariable](evidencevariable.html): The current status of the evidence variable
7941* [ExampleScenario](examplescenario.html): The current status of the example scenario
7942* [GraphDefinition](graphdefinition.html): The current status of the graph definition
7943* [ImplementationGuide](implementationguide.html): The current status of the implementation guide
7944* [Library](library.html): The current status of the library
7945* [Measure](measure.html): The current status of the measure
7946* [MedicationKnowledge](medicationknowledge.html): active | inactive | entered-in-error
7947* [MessageDefinition](messagedefinition.html): The current status of the message definition
7948* [NamingSystem](namingsystem.html): The current status of the naming system
7949* [ObservationDefinition](observationdefinition.html): Publication status of the ObservationDefinition: draft, active, retired, unknown
7950* [OperationDefinition](operationdefinition.html): The current status of the operation definition
7951* [PlanDefinition](plandefinition.html): The current status of the plan definition
7952* [Questionnaire](questionnaire.html): The current status of the questionnaire
7953* [Requirements](requirements.html): The current status of the requirements
7954* [SearchParameter](searchparameter.html): The current status of the search parameter
7955* [SpecimenDefinition](specimendefinition.html): Publication status of the SpecimenDefinition: draft, active, retired, unknown
7956* [StructureDefinition](structuredefinition.html): The current status of the structure definition
7957* [StructureMap](structuremap.html): The current status of the structure map
7958* [SubscriptionTopic](subscriptiontopic.html): draft | active | retired | unknown
7959* [TerminologyCapabilities](terminologycapabilities.html): The current status of the terminology capabilities
7960* [TestPlan](testplan.html): The current status of the test plan
7961* [TestScript](testscript.html): The current status of the test script
7962* [ValueSet](valueset.html): The current status of the value set
7963</b><br>
7964   * Type: <b>token</b><br>
7965   * Path: <b>ActivityDefinition.status | ActorDefinition.status | CapabilityStatement.status | ChargeItemDefinition.status | Citation.status | CodeSystem.status | CompartmentDefinition.status | ConceptMap.status | ConditionDefinition.status | EventDefinition.status | Evidence.status | EvidenceReport.status | EvidenceVariable.status | ExampleScenario.status | GraphDefinition.status | ImplementationGuide.status | Library.status | Measure.status | MedicationKnowledge.status | MessageDefinition.status | NamingSystem.status | ObservationDefinition.status | OperationDefinition.status | PlanDefinition.status | Questionnaire.status | Requirements.status | SearchParameter.status | SpecimenDefinition.status | StructureDefinition.status | StructureMap.status | SubscriptionTopic.status | TerminologyCapabilities.status | TestPlan.status | TestScript.status | ValueSet.status</b><br>
7966   * </p>
7967   */
7968  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
7969
7970 /**
7971   * Search parameter: <b>title</b>
7972   * <p>
7973   * Description: <b>Multiple Resources: 
7974
7975* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
7976* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
7977* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
7978* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
7979* [Citation](citation.html): The human-friendly name of the citation
7980* [CodeSystem](codesystem.html): The human-friendly name of the code system
7981* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
7982* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
7983* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
7984* [Evidence](evidence.html): The human-friendly name of the evidence
7985* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
7986* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
7987* [Library](library.html): The human-friendly name of the library
7988* [Measure](measure.html): The human-friendly name of the measure
7989* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
7990* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
7991* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
7992* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
7993* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
7994* [Requirements](requirements.html): The human-friendly name of the requirements
7995* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
7996* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
7997* [StructureMap](structuremap.html): The human-friendly name of the structure map
7998* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
7999* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
8000* [TestScript](testscript.html): The human-friendly name of the test script
8001* [ValueSet](valueset.html): The human-friendly name of the value set
8002</b><br>
8003   * Type: <b>string</b><br>
8004   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
8005   * </p>
8006   */
8007  @SearchParamDefinition(name="title", path="ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition\r\n* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition\r\n* [Citation](citation.html): The human-friendly name of the citation\r\n* [CodeSystem](codesystem.html): The human-friendly name of the code system\r\n* [ConceptMap](conceptmap.html): The human-friendly name of the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition\r\n* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition\r\n* [Evidence](evidence.html): The human-friendly name of the evidence\r\n* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable\r\n* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide\r\n* [Library](library.html): The human-friendly name of the library\r\n* [Measure](measure.html): The human-friendly name of the measure\r\n* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition\r\n* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition\r\n* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition\r\n* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition\r\n* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire\r\n* [Requirements](requirements.html): The human-friendly name of the requirements\r\n* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition\r\n* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition\r\n* [StructureMap](structuremap.html): The human-friendly name of the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities\r\n* [TestScript](testscript.html): The human-friendly name of the test script\r\n* [ValueSet](valueset.html): The human-friendly name of the value set\r\n", type="string" )
8008  public static final String SP_TITLE = "title";
8009 /**
8010   * <b>Fluent Client</b> search parameter constant for <b>title</b>
8011   * <p>
8012   * Description: <b>Multiple Resources: 
8013
8014* [ActivityDefinition](activitydefinition.html): The human-friendly name of the activity definition
8015* [ActorDefinition](actordefinition.html): The human-friendly name of the Actor Definition
8016* [CapabilityStatement](capabilitystatement.html): The human-friendly name of the capability statement
8017* [ChargeItemDefinition](chargeitemdefinition.html): The human-friendly name of the charge item definition
8018* [Citation](citation.html): The human-friendly name of the citation
8019* [CodeSystem](codesystem.html): The human-friendly name of the code system
8020* [ConceptMap](conceptmap.html): The human-friendly name of the concept map
8021* [ConditionDefinition](conditiondefinition.html): The human-friendly name of the condition definition
8022* [EventDefinition](eventdefinition.html): The human-friendly name of the event definition
8023* [Evidence](evidence.html): The human-friendly name of the evidence
8024* [EvidenceVariable](evidencevariable.html): The human-friendly name of the evidence variable
8025* [ImplementationGuide](implementationguide.html): The human-friendly name of the implementation guide
8026* [Library](library.html): The human-friendly name of the library
8027* [Measure](measure.html): The human-friendly name of the measure
8028* [MessageDefinition](messagedefinition.html): The human-friendly name of the message definition
8029* [ObservationDefinition](observationdefinition.html): Human-friendly name of the ObservationDefinition
8030* [OperationDefinition](operationdefinition.html): The human-friendly name of the operation definition
8031* [PlanDefinition](plandefinition.html): The human-friendly name of the plan definition
8032* [Questionnaire](questionnaire.html): The human-friendly name of the questionnaire
8033* [Requirements](requirements.html): The human-friendly name of the requirements
8034* [SpecimenDefinition](specimendefinition.html): Human-friendly name of the SpecimenDefinition
8035* [StructureDefinition](structuredefinition.html): The human-friendly name of the structure definition
8036* [StructureMap](structuremap.html): The human-friendly name of the structure map
8037* [SubscriptionTopic](subscriptiontopic.html): Name for this SubscriptionTopic (Human friendly)
8038* [TerminologyCapabilities](terminologycapabilities.html): The human-friendly name of the terminology capabilities
8039* [TestScript](testscript.html): The human-friendly name of the test script
8040* [ValueSet](valueset.html): The human-friendly name of the value set
8041</b><br>
8042   * Type: <b>string</b><br>
8043   * Path: <b>ActivityDefinition.title | ActorDefinition.title | CapabilityStatement.title | ChargeItemDefinition.title | Citation.title | CodeSystem.title | ConceptMap.title | ConditionDefinition.title | EventDefinition.title | Evidence.title | EvidenceVariable.title | ImplementationGuide.title | Library.title | Measure.title | MessageDefinition.title | ObservationDefinition.title | OperationDefinition.title | PlanDefinition.title | Questionnaire.title | Requirements.title | SpecimenDefinition.title | StructureDefinition.title | StructureMap.title | SubscriptionTopic.title | TerminologyCapabilities.title | TestScript.title | ValueSet.title</b><br>
8044   * </p>
8045   */
8046  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
8047
8048 /**
8049   * Search parameter: <b>url</b>
8050   * <p>
8051   * Description: <b>Multiple Resources: 
8052
8053* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
8054* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
8055* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
8056* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
8057* [Citation](citation.html): The uri that identifies the citation
8058* [CodeSystem](codesystem.html): The uri that identifies the code system
8059* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
8060* [ConceptMap](conceptmap.html): The URI that identifies the concept map
8061* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
8062* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
8063* [Evidence](evidence.html): The uri that identifies the evidence
8064* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
8065* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
8066* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
8067* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
8068* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
8069* [Library](library.html): The uri that identifies the library
8070* [Measure](measure.html): The uri that identifies the measure
8071* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition
8072* [NamingSystem](namingsystem.html): The uri that identifies the naming system
8073* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition
8074* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition
8075* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition
8076* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire
8077* [Requirements](requirements.html): The uri that identifies the requirements
8078* [SearchParameter](searchparameter.html): The uri that identifies the search parameter
8079* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition
8080* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition
8081* [StructureMap](structuremap.html): The uri that identifies the structure map
8082* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)
8083* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities
8084* [TestPlan](testplan.html): The uri that identifies the test plan
8085* [TestScript](testscript.html): The uri that identifies the test script
8086* [ValueSet](valueset.html): The uri that identifies the value set
8087</b><br>
8088   * Type: <b>uri</b><br>
8089   * Path: <b>ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url</b><br>
8090   * </p>
8091   */
8092  @SearchParamDefinition(name="url", path="ActivityDefinition.url | ActorDefinition.url | CapabilityStatement.url | ChargeItemDefinition.url | Citation.url | CodeSystem.url | CompartmentDefinition.url | ConceptMap.url | ConditionDefinition.url | EventDefinition.url | Evidence.url | EvidenceReport.url | EvidenceVariable.url | ExampleScenario.url | GraphDefinition.url | ImplementationGuide.url | Library.url | Measure.url | MessageDefinition.url | NamingSystem.url | ObservationDefinition.url | OperationDefinition.url | PlanDefinition.url | Questionnaire.url | Requirements.url | SearchParameter.url | SpecimenDefinition.url | StructureDefinition.url | StructureMap.url | SubscriptionTopic.url | TerminologyCapabilities.url | TestPlan.url | TestScript.url | ValueSet.url", description="Multiple Resources: \r\n\r\n* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition\r\n* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition\r\n* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement\r\n* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition\r\n* [Citation](citation.html): The uri that identifies the citation\r\n* [CodeSystem](codesystem.html): The uri that identifies the code system\r\n* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition\r\n* [ConceptMap](conceptmap.html): The URI that identifies the concept map\r\n* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition\r\n* [EventDefinition](eventdefinition.html): The uri that identifies the event definition\r\n* [Evidence](evidence.html): The uri that identifies the evidence\r\n* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report\r\n* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable\r\n* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario\r\n* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition\r\n* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide\r\n* [Library](library.html): The uri that identifies the library\r\n* [Measure](measure.html): The uri that identifies the measure\r\n* [MessageDefinition](messagedefinition.html): The uri that identifies the message definition\r\n* [NamingSystem](namingsystem.html): The uri that identifies the naming system\r\n* [ObservationDefinition](observationdefinition.html): The uri that identifies the observation definition\r\n* [OperationDefinition](operationdefinition.html): The uri that identifies the operation definition\r\n* [PlanDefinition](plandefinition.html): The uri that identifies the plan definition\r\n* [Questionnaire](questionnaire.html): The uri that identifies the questionnaire\r\n* [Requirements](requirements.html): The uri that identifies the requirements\r\n* [SearchParameter](searchparameter.html): The uri that identifies the search parameter\r\n* [SpecimenDefinition](specimendefinition.html): The uri that identifies the specimen definition\r\n* [StructureDefinition](structuredefinition.html): The uri that identifies the structure definition\r\n* [StructureMap](structuremap.html): The uri that identifies the structure map\r\n* [SubscriptionTopic](subscriptiontopic.html): Logical canonical URL to reference this SubscriptionTopic (globally unique)\r\n* [TerminologyCapabilities](terminologycapabilities.html): The uri that identifies the terminology capabilities\r\n* [TestPlan](testplan.html): The uri that identifies the test plan\r\n* [TestScript](testscript.html): The uri that identifies the test script\r\n* [ValueSet](valueset.html): The uri that identifies the value set\r\n", type="uri" )
8093  public static final String SP_URL = "url";
8094 /**
8095   * <b>Fluent Client</b> search parameter constant for <b>url</b>
8096   * <p>
8097   * Description: <b>Multiple Resources: 
8098
8099* [ActivityDefinition](activitydefinition.html): The uri that identifies the activity definition
8100* [ActorDefinition](actordefinition.html): The uri that identifies the Actor Definition
8101* [CapabilityStatement](capabilitystatement.html): The uri that identifies the capability statement
8102* [ChargeItemDefinition](chargeitemdefinition.html): The uri that identifies the charge item definition
8103* [Citation](citation.html): The uri that identifies the citation
8104* [CodeSystem](codesystem.html): The uri that identifies the code system
8105* [CompartmentDefinition](compartmentdefinition.html): The uri that identifies the compartment definition
8106* [ConceptMap](conceptmap.html): The URI that identifies the concept map
8107* [ConditionDefinition](conditiondefinition.html): The uri that identifies the condition definition
8108* [EventDefinition](eventdefinition.html): The uri that identifies the event definition
8109* [Evidence](evidence.html): The uri that identifies the evidence
8110* [EvidenceReport](evidencereport.html): The uri that identifies the evidence report
8111* [EvidenceVariable](evidencevariable.html): The uri that identifies the evidence variable
8112* [ExampleScenario](examplescenario.html): The uri that identifies the example scenario
8113* [GraphDefinition](graphdefinition.html): The uri that identifies the graph definition
8114* [ImplementationGuide](implementationguide.html): The uri that identifies the implementation guide
8115* [Library](library.html): The uri that identifies the library
8116* [Measure](measure.html): The uri that identifies the measure
8117* [MessageDefinition](messagedefini