package ca.uhn.fhir.parser; import java.util.HashMap; import java.util.Map; import ca.uhn.fhir.model.api.IValueSetEnumBinder; /** * See #120 */ public enum WorkflowActionEnum { /** * Code Value: <b>sign-off</b> * * Sign off workflow action. */ SIGNOFF("sign-off","#workflow-action"), /** * Code Value: <b>sign-off-later</b> * * Sign off later workflow action. */ SIGNOFFLATER("sign-off-later","#workflow-action"), /** * Code Value: <b>correctionist</b> * * Correctionist workflow action. */ CORRECTIONIST("correctionist","#workflow-action"); /** * Identifier for this Value Set: * local/workflow-action */ public static final String VALUESET_IDENTIFIER = "#workflow-action"; /** * Name for this Value Set: * WorkflowAction */ public static final String VALUESET_NAME = "WorkflowAction"; private static Map<String, WorkflowActionEnum> CODE_TO_ENUM = new HashMap<String, WorkflowActionEnum>(); private static Map<String, Map<String, WorkflowActionEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, WorkflowActionEnum>>(); private final String myCode; private final String mySystem; static { for (WorkflowActionEnum next : WorkflowActionEnum.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<String, WorkflowActionEnum>()); } 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 WorkflowActionEnum forCode(String theCode) { WorkflowActionEnum retVal = CODE_TO_ENUM.get(theCode); return retVal; } /** * Converts codes to their respective enumerated values */ public static final IValueSetEnumBinder<WorkflowActionEnum> VALUESET_BINDER = new IValueSetEnumBinder<WorkflowActionEnum>() { @Override public String toCodeString(WorkflowActionEnum theEnum) { return theEnum.getCode(); } @Override public String toSystemString(WorkflowActionEnum theEnum) { return theEnum.getSystem(); } @Override public WorkflowActionEnum fromCodeString(String theCodeString) { return CODE_TO_ENUM.get(theCodeString); } @Override public WorkflowActionEnum fromCodeString(String theCodeString, String theSystemString) { Map<String, WorkflowActionEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString); if (map == null) { return null; } return map.get(theCodeString); } }; /** * Constructor */ WorkflowActionEnum(String theCode, String theSystem){ myCode = theCode; mySystem = theSystem; } }