/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.view.list;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import de.rcenvironment.core.component.workflow.execution.api.WorkflowState;
/**
* A simple synchronized {@link Map} holding the last known {@link WorkflowState} for each workflow
* by its id.
*
* @author Robert Mischke
*/
public final class WorkflowStateModel {
private static WorkflowStateModel instance = new WorkflowStateModel();
private Map<String, WorkflowState> theMap = Collections.synchronizedMap(new HashMap<String, WorkflowState>());
private WorkflowStateModel() {}
public static WorkflowStateModel getInstance() {
return instance;
}
/**
* Fetches the last known state for a workflow.
*
* @param key the id of the workflow
* @return the last known state or null if none exists
*/
public WorkflowState getState(String key) {
if (theMap.containsKey(key)) {
return theMap.get(key);
} else {
return WorkflowState.UNKNOWN;
}
}
/**
* Sets the latest known state for a workflow.
*
* @param string the id of the workflow
* @param value the new last known state
*/
public void setState(String string, WorkflowState value) {
theMap.put(string, value);
}
}