001 002package ca.uhn.fhir.model.dstu2.valueset; 003 004import ca.uhn.fhir.model.api.*; 005import java.util.HashMap; 006import java.util.Map; 007 008public enum StructureDefinitionKindEnum { 009 010 /** 011 * Display: <b>Data Type</b><br> 012 * Code Value: <b>datatype</b> 013 * 014 * A data type - either a primitive or complex structure that defines a set of data elements. These can be used throughout Resource and extension definitions. 015 */ 016 DATA_TYPE("datatype", "http://hl7.org/fhir/structure-definition-kind"), 017 018 /** 019 * Display: <b>Resource</b><br> 020 * Code Value: <b>resource</b> 021 * 022 * A resource defined by the FHIR specification. 023 */ 024 RESOURCE("resource", "http://hl7.org/fhir/structure-definition-kind"), 025 026 /** 027 * Display: <b>Logical Model</b><br> 028 * Code Value: <b>logical</b> 029 * 030 * A logical model - a conceptual package of data that will be mapped to resources for implementation. 031 */ 032 LOGICAL_MODEL("logical", "http://hl7.org/fhir/structure-definition-kind"), 033 034 ; 035 036 /** 037 * Identifier for this Value Set: 038 * 039 */ 040 public static final String VALUESET_IDENTIFIER = ""; 041 042 /** 043 * Name for this Value Set: 044 * StructureDefinitionKind 045 */ 046 public static final String VALUESET_NAME = "StructureDefinitionKind"; 047 048 private static Map<String, StructureDefinitionKindEnum> CODE_TO_ENUM = new HashMap<String, StructureDefinitionKindEnum>(); 049 private static Map<String, Map<String, StructureDefinitionKindEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, StructureDefinitionKindEnum>>(); 050 051 private final String myCode; 052 private final String mySystem; 053 054 static { 055 for (StructureDefinitionKindEnum next : StructureDefinitionKindEnum.values()) { 056 CODE_TO_ENUM.put(next.getCode(), next); 057 058 if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) { 059 SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, StructureDefinitionKindEnum>()); 060 } 061 SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next); 062 } 063 } 064 065 /** 066 * Returns the code associated with this enumerated value 067 */ 068 public String getCode() { 069 return myCode; 070 } 071 072 /** 073 * Returns the code system associated with this enumerated value 074 */ 075 public String getSystem() { 076 return mySystem; 077 } 078 079 /** 080 * Returns the enumerated value associated with this code 081 */ 082 public static StructureDefinitionKindEnum forCode(String theCode) { 083 StructureDefinitionKindEnum retVal = CODE_TO_ENUM.get(theCode); 084 return retVal; 085 } 086 087 /** 088 * Converts codes to their respective enumerated values 089 */ 090 public static final IValueSetEnumBinder<StructureDefinitionKindEnum> VALUESET_BINDER = new IValueSetEnumBinder<StructureDefinitionKindEnum>() { 091 @Override 092 public String toCodeString(StructureDefinitionKindEnum theEnum) { 093 return theEnum.getCode(); 094 } 095 096 @Override 097 public String toSystemString(StructureDefinitionKindEnum theEnum) { 098 return theEnum.getSystem(); 099 } 100 101 @Override 102 public StructureDefinitionKindEnum fromCodeString(String theCodeString) { 103 return CODE_TO_ENUM.get(theCodeString); 104 } 105 106 @Override 107 public StructureDefinitionKindEnum fromCodeString(String theCodeString, String theSystemString) { 108 Map<String, StructureDefinitionKindEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString); 109 if (map == null) { 110 return null; 111 } 112 return map.get(theCodeString); 113 } 114 115 }; 116 117 /** 118 * Constructor 119 */ 120 StructureDefinitionKindEnum(String theCode, String theSystem) { 121 myCode = theCode; 122 mySystem = theSystem; 123 } 124 125 126}