package foundation.state;
|
|
import java.util.List;
|
|
import foundation.util.MapList;
|
import foundation.util.Util;
|
|
public class ObjectStateOperatorsBucket {
|
|
private static MapList<String, String> items;
|
|
static {
|
items = new MapList<String, String>();
|
}
|
|
public static void loadOne(List<String> targets, StatePoint statePoint) {
|
String toCode = statePoint.getToCode();
|
toCode = toCode.toLowerCase();
|
|
String endCode = statePoint.getEndCode();
|
String fromCode = statePoint.getFromCode();
|
|
for (String target: targets) {
|
//1. commit
|
String key = createKey(target, statePoint.getFromCode(), statePoint.getOperator());
|
|
if (items.contains(key)) {
|
continue;
|
}
|
|
items.add(key, toCode);
|
|
//2. approve
|
if (Util.isEmpty(endCode)) {
|
continue;
|
}
|
|
key = createKey(target, statePoint.getToCode(), "approve");
|
if (items.contains(key)) {
|
continue;
|
}
|
|
endCode = endCode.toLowerCase();
|
items.add(key, endCode);
|
|
//3. gohome
|
key = createKey(target, statePoint.getToCode(), "gohome");
|
if (items.contains(key)) {
|
continue;
|
}
|
|
fromCode = fromCode.toLowerCase();
|
items.add(key, fromCode);
|
}
|
}
|
|
public static String getToStates(String dataName, String fromState, String operator) {
|
String key = createKey(dataName, fromState, operator);
|
return items.get(key);
|
}
|
|
private static String createKey(String dataName, String fromState, String operator) {
|
return dataName + "-" + fromState + "-" + operator;
|
}
|
|
}
|