Blame view

java110-utils/src/main/java/com/java110/utils/util/FlowUtil.java 1.27 KB
88e030b7   王彪总   init project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  package com.java110.utils.util;
  
  import java.util.Map;
  
  public class FlowUtil {
  
      /**
       * el表达式判断
       *
       * @param expression
       * @param vars
       * @return
       */
      public static boolean isCondition(String expression, Map<String, Object> vars) {
          if (expression == null || expression == "") {
              return false;
          }
  
          //分割表达式
          String[] exprArr = expression.split("[{}$&]");
          for (String expr : exprArr) {
              //是否包含键message
              if (expr.contains("flag")) {
                  if (!vars.containsKey("flag")) {
                      continue;
                  }
                  if (expr.contains("==")) {
                      String[] primes = expr.split("==");
                      String valExpr = primes[1].trim();
                      if (valExpr.startsWith("'")) {
                          valExpr = valExpr.substring(1);
                      }
                      if (valExpr.endsWith("'")) {
                          valExpr = valExpr.substring(0, valExpr.length() - 1);
                      }
                      if (primes.length == 2 && valExpr.equals(vars.get("flag"))) {
                          return true;
                      }
                  }
              }
          }
          return false;
      }
  }