ActionIdEnum.java
package com.mycim.valueobject.consts;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import java.util.*;
/**
* @author Qiansheng.Wang
* @since 2020-02-28
*/
public enum ActionIdEnum {
APPROVE(1, "Approve"),
REJECT(2, "Reject"),
YES(3, "Yes"),
NO(4, "No"),
CONFIRM(5, "Confirm"),
SKIP(6, "Skip"),
DEFAULT(7, "Default");
private Integer sequence;
private String description;
private ActionIdEnum(Integer sequence, String desc) {
this.sequence = sequence;
this.description = desc;
}
/**
* Convert the {@code ActionIdEnum} to {@code List<Map<String, String>>} sort by {@code sequence}
* <p>
* Key is element string, value is element description
*
* @return {"key": "element.toString", "value": "element.description", "sequence": "element.sequence"}
*/
public static List<Map<String, String>> toMapList() {
List<Map<String, String>> list = new ArrayList<>();
for (ActionIdEnum element : ActionIdEnum.values()) {
Map<String, String> map = new HashMap<>();
map.put("key", element.toString());
map.put("value", element.getDescription());
map.put("sequence", StringUtils.toString(element.getSequence()));
list.add(map);
}
Collections.sort(list, new Comparator<Map<String, String>>() {
@Override
public int compare(Map<String, String> o1, Map<String, String> o2) {
int o1Seq = MapUtils.getIntValue(o1, "sequence");
int o2Seq = MapUtils.getIntValue(o2, "sequence");
return o1Seq - o2Seq;
}
});
return list;
}
public static Boolean allowsOperation(String btnName) {
return StringUtils.equals(ActionIdEnum.APPROVE.toString(), btnName) ||
StringUtils.equals(ActionIdEnum.YES.toString(), btnName) ||
StringUtils.equals(ActionIdEnum.CONFIRM.toString(), btnName);
}
public Integer getSequence() {
return sequence;
}
public String getDescription() {
return description;
}
}