|
@@ -20,9 +20,9 @@ public class ConditionNode extends Node {
|
|
|
private Boolean def;
|
|
|
private FilterGroup conditions;
|
|
|
@JsonIgnore
|
|
|
- private Map<String, String> operatorMap = new HashMap<>();
|
|
|
+ private static Map<String, String> operatorMap = new HashMap<>();
|
|
|
|
|
|
- {
|
|
|
+ static {
|
|
|
// 等于
|
|
|
operatorMap.put("eq", "var:eq(%s, %s)");
|
|
|
// 不等于
|
|
@@ -51,7 +51,7 @@ public class ConditionNode extends Node {
|
|
|
operatorMap.put("bt", "var > %s && var < %s");
|
|
|
}
|
|
|
|
|
|
- protected String stringVal(Object val) {
|
|
|
+ protected static String stringVal(Object val) {
|
|
|
if (val instanceof String) {
|
|
|
return String.format("'%s'", val);
|
|
|
} else {
|
|
@@ -59,7 +59,7 @@ public class ConditionNode extends Node {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public String toExpression(FilterGroup filterGroup) {
|
|
|
+ public static String toExpression(FilterGroup filterGroup) {
|
|
|
List<FilterCondition> conditions = filterGroup.getConditions();
|
|
|
String expression = conditions.stream().map(condition -> {
|
|
|
String operator = condition.getOperator();
|
|
@@ -67,11 +67,11 @@ public class ConditionNode extends Node {
|
|
|
if (StringUtils.isNotBlank(operator) && Objects.nonNull(value)) {
|
|
|
if (value instanceof Collection) {
|
|
|
value = ((Collection<?>) value).stream()
|
|
|
- .map(this::stringVal)
|
|
|
+ .map(ConditionNode::stringVal)
|
|
|
.collect(Collectors.joining(","));
|
|
|
} else if (value instanceof Object[]) {
|
|
|
value = Arrays.stream((Object[]) value)
|
|
|
- .map(this::stringVal)
|
|
|
+ .map(ConditionNode::stringVal)
|
|
|
.collect(Collectors.joining(","));
|
|
|
} else {
|
|
|
value = stringVal(value);
|
|
@@ -86,7 +86,7 @@ public class ConditionNode extends Node {
|
|
|
} else {
|
|
|
String collect = filterGroup.getGroups()
|
|
|
.stream()
|
|
|
- .map(this::toExpression)
|
|
|
+ .map(ConditionNode::toExpression)
|
|
|
.collect(Collectors.joining("and".equals(filterGroup.getOperator()) ? " && " : " || "));
|
|
|
if (StringUtils.isNotBlank(expression)) {
|
|
|
return String.format("(%s) %s (%s)", expression, "and".equals(filterGroup.getOperator()) ? " && " : " || ", collect);
|