001package org.hl7.fhir.r4.model.codesystems;
002
003
004
005
006/*
007  Copyright (c) 2011+, HL7, Inc.
008  All rights reserved.
009  
010  Redistribution and use in source and binary forms, with or without modification, 
011  are permitted provided that the following conditions are met:
012  
013   * Redistributions of source code must retain the above copyright notice, this 
014     list of conditions and the following disclaimer.
015   * Redistributions in binary form must reproduce the above copyright notice, 
016     this list of conditions and the following disclaimer in the documentation 
017     and/or other materials provided with the distribution.
018   * Neither the name of HL7 nor the names of its contributors may be used to 
019     endorse or promote products derived from this software without specific 
020     prior written permission.
021  
022  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
023  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
024  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
025  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
026  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
027  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
028  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
029  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
030  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
031  POSSIBILITY OF SUCH DAMAGE.
032  
033*/
034
035// Generated on Wed, Jan 30, 2019 16:19-0500 for FHIR v4.0.0
036
037
038import org.hl7.fhir.exceptions.FHIRException;
039
040public enum SearchParamType {
041
042        /**
043         * Search parameter SHALL be a number (a whole number, or a decimal).
044         */
045        NUMBER, 
046        /**
047         * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.
048         */
049        DATE, 
050        /**
051         * Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.
052         */
053        STRING, 
054        /**
055         * Search parameter on a coded element or identifier. May be used to search through the text, display, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used.
056         */
057        TOKEN, 
058        /**
059         * A reference to another resource (Reference or canonical).
060         */
061        REFERENCE, 
062        /**
063         * A composite search parameter that combines a search on two values together.
064         */
065        COMPOSITE, 
066        /**
067         * A search parameter that searches on a quantity.
068         */
069        QUANTITY, 
070        /**
071         * A search parameter that searches on a URI (RFC 3986).
072         */
073        URI, 
074        /**
075         * Special logic applies to this parameter per the description of the search parameter.
076         */
077        SPECIAL, 
078        /**
079         * added to help the parsers
080         */
081        NULL;
082        public static SearchParamType fromCode(String codeString) throws FHIRException {
083            if (codeString == null || "".equals(codeString))
084                return null;
085        if ("number".equals(codeString))
086          return NUMBER;
087        if ("date".equals(codeString))
088          return DATE;
089        if ("string".equals(codeString))
090          return STRING;
091        if ("token".equals(codeString))
092          return TOKEN;
093        if ("reference".equals(codeString))
094          return REFERENCE;
095        if ("composite".equals(codeString))
096          return COMPOSITE;
097        if ("quantity".equals(codeString))
098          return QUANTITY;
099        if ("uri".equals(codeString))
100          return URI;
101        if ("special".equals(codeString))
102          return SPECIAL;
103        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
104        }
105        public String toCode() {
106          switch (this) {
107            case NUMBER: return "number";
108            case DATE: return "date";
109            case STRING: return "string";
110            case TOKEN: return "token";
111            case REFERENCE: return "reference";
112            case COMPOSITE: return "composite";
113            case QUANTITY: return "quantity";
114            case URI: return "uri";
115            case SPECIAL: return "special";
116            case NULL: return null;
117            default: return "?";
118          }
119        }
120        public String getSystem() {
121          return "http://hl7.org/fhir/search-param-type";
122        }
123        public String getDefinition() {
124          switch (this) {
125            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
126            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
127            case STRING: return "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces.";
128            case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, display, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a \"|\", depending on the modifier used.";
129            case REFERENCE: return "A reference to another resource (Reference or canonical).";
130            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
131            case QUANTITY: return "A search parameter that searches on a quantity.";
132            case URI: return "A search parameter that searches on a URI (RFC 3986).";
133            case SPECIAL: return "Special logic applies to this parameter per the description of the search parameter.";
134            case NULL: return null;
135            default: return "?";
136          }
137        }
138        public String getDisplay() {
139          switch (this) {
140            case NUMBER: return "Number";
141            case DATE: return "Date/DateTime";
142            case STRING: return "String";
143            case TOKEN: return "Token";
144            case REFERENCE: return "Reference";
145            case COMPOSITE: return "Composite";
146            case QUANTITY: return "Quantity";
147            case URI: return "URI";
148            case SPECIAL: return "Special";
149            case NULL: return null;
150            default: return "?";
151          }
152    }
153
154
155}