All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ca.uhn.fhir.model.dstu.valueset.BindingConformanceEnum Maven / Gradle / Ivy

There is a newer version: 7.6.1
Show newest version

package ca.uhn.fhir.model.dstu.valueset;

import ca.uhn.fhir.model.api.*;
import java.util.HashMap;
import java.util.Map;

public enum BindingConformanceEnum {

	/**
	 * Code Value: required
	 *
	 * Only codes in the specified set are allowed.  If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes.
	 */
	REQUIRED("required", "http://hl7.org/fhir/binding-conformance"),
	
	/**
	 * Code Value: preferred
	 *
	 * For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant.
	 */
	PREFERRED("preferred", "http://hl7.org/fhir/binding-conformance"),
	
	/**
	 * Code Value: example
	 *
	 * The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs.
	 */
	EXAMPLE("example", "http://hl7.org/fhir/binding-conformance"),
	
	;
	
	/**
	 * Identifier for this Value Set:
	 * http://hl7.org/fhir/vs/binding-conformance
	 */
	public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/binding-conformance";

	/**
	 * Name for this Value Set:
	 * BindingConformance
	 */
	public static final String VALUESET_NAME = "BindingConformance";

	private static Map CODE_TO_ENUM = new HashMap();
	private static Map> SYSTEM_TO_CODE_TO_ENUM = new HashMap>();
	
	private final String myCode;
	private final String mySystem;
	
	static {
		for (BindingConformanceEnum next : BindingConformanceEnum.values()) {
			CODE_TO_ENUM.put(next.getCode(), next);
			
			if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
				SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap());
			}
			SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);			
		}
	}
	
	/**
	 * Returns the code associated with this enumerated value
	 */
	public String getCode() {
		return myCode;
	}
	
	/**
	 * Returns the code system associated with this enumerated value
	 */
	public String getSystem() {
		return mySystem;
	}
	
	/**
	 * Returns the enumerated value associated with this code
	 */
	public static BindingConformanceEnum forCode(String theCode) {
		BindingConformanceEnum retVal = CODE_TO_ENUM.get(theCode);
		return retVal;
	}

	/**
	 * Converts codes to their respective enumerated values
	 */
	public static final IValueSetEnumBinder VALUESET_BINDER = new IValueSetEnumBinder() {
		@Override
		public String toCodeString(BindingConformanceEnum theEnum) {
			return theEnum.getCode();
		}

		@Override
		public String toSystemString(BindingConformanceEnum theEnum) {
			return theEnum.getSystem();
		}
		
		@Override
		public BindingConformanceEnum fromCodeString(String theCodeString) {
			return CODE_TO_ENUM.get(theCodeString);
		}
		
		@Override
		public BindingConformanceEnum fromCodeString(String theCodeString, String theSystemString) {
			Map map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
			if (map == null) {
				return null;
			}
			return map.get(theCodeString);
		}
		
	};
	
	/** 
	 * Constructor
	 */
	BindingConformanceEnum(String theCode, String theSystem) {
		myCode = theCode;
		mySystem = theSystem;
	}

	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy