001package org.hl7.fhir.dstu3.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 Sat, Mar 25, 2017 21:03-0400 for FHIR v3.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, displayname, 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.
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         * added to help the parsers
076         */
077        NULL;
078        public static SearchParamType fromCode(String codeString) throws FHIRException {
079            if (codeString == null || "".equals(codeString))
080                return null;
081        if ("number".equals(codeString))
082          return NUMBER;
083        if ("date".equals(codeString))
084          return DATE;
085        if ("string".equals(codeString))
086          return STRING;
087        if ("token".equals(codeString))
088          return TOKEN;
089        if ("reference".equals(codeString))
090          return REFERENCE;
091        if ("composite".equals(codeString))
092          return COMPOSITE;
093        if ("quantity".equals(codeString))
094          return QUANTITY;
095        if ("uri".equals(codeString))
096          return URI;
097        throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
098        }
099        public String toCode() {
100          switch (this) {
101            case NUMBER: return "number";
102            case DATE: return "date";
103            case STRING: return "string";
104            case TOKEN: return "token";
105            case REFERENCE: return "reference";
106            case COMPOSITE: return "composite";
107            case QUANTITY: return "quantity";
108            case URI: return "uri";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113        public String getSystem() {
114          return "http://hl7.org/fhir/search-param-type";
115        }
116        public String getDefinition() {
117          switch (this) {
118            case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal).";
119            case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported.";
120            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.";
121            case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, displayname, 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.";
122            case REFERENCE: return "A reference to another resource.";
123            case COMPOSITE: return "A composite search parameter that combines a search on two values together.";
124            case QUANTITY: return "A search parameter that searches on a quantity.";
125            case URI: return "A search parameter that searches on a URI (RFC 3986).";
126            case NULL: return null;
127            default: return "?";
128          }
129        }
130        public String getDisplay() {
131          switch (this) {
132            case NUMBER: return "Number";
133            case DATE: return "Date/DateTime";
134            case STRING: return "String";
135            case TOKEN: return "Token";
136            case REFERENCE: return "Reference";
137            case COMPOSITE: return "Composite";
138            case QUANTITY: return "Quantity";
139            case URI: return "URI";
140            case NULL: return null;
141            default: return "?";
142          }
143    }
144
145
146}