@Override public void init(Object param) { E.illegalArgumentIfNot(param instanceof List, "At least 2 parameters expected for subStr function"); List<String> params = (List<String>) param; targetStr = S.ensure(params.get(0)).strippedOff(S.DOUBLE_QUOTES); String sBegin = params.get(1); E.illegalArgumentIfNot(S.isInt(sBegin), "the 2nd parameter must be valid integer"); int begin = Integer.parseInt(sBegin); E.illegalArgumentIf(begin < 0, "the 2nd parameter must be valid integer"); int end = -1; if (params.size() > 2) { String sEnd = params.get(2); E.illegalArgumentIfNot(S.isInt(sEnd), "the 3nd parameter must be valid integer"); end = Integer.parseInt(sEnd); E.illegalArgumentIf(end < begin, "the 3nd parameter not be less than the 2nd parameter"); if (end > targetStr.length()) { end = targetStr.length(); } } targetStr = -1 == end ? targetStr.substring(begin) : targetStr.substring(begin, end); }
@Override public void init(Object param) { E.illegalArgumentIfNot(param instanceof List, "At least 2 parameters expected for subStr function"); List<String> params = (List<String>) param; targetStr = S.ensure(params.get(0)).strippedOff(S.DOUBLE_QUOTES); String sBegin = params.get(1); E.illegalArgumentIfNot(S.isInt(sBegin), "the 2nd parameter must be valid integer"); int begin = Integer.parseInt(sBegin); E.illegalArgumentIf(begin < 0, "the 2nd parameter must be valid integer"); int end = -1; if (params.size() > 2) { String sEnd = params.get(2); E.illegalArgumentIfNot(S.isInt(sEnd), "the 3nd parameter must be valid integer"); end = Integer.parseInt(sEnd); E.illegalArgumentIf(end < begin, "the 3nd parameter not be less than the 2nd parameter"); if (end > targetStr.length()) { end = targetStr.length(); } } targetStr = -1 == end ? targetStr.substring(begin) : targetStr.substring(begin, end); }
private Object evalFunc(String funcExpr) { String funcName = funcExpr; List<String> vals = C.list(); if (funcExpr.contains("(")) { funcName = S.cut(funcExpr).beforeFirst("("); String paramStr = S.cut(funcExpr).afterFirst("("); paramStr = S.cut(paramStr).beforeLast(")"); if (S.notBlank(paramStr)) { vals = C.newList(S.fastSplit(paramStr, ",")); for (int i = 0; i < vals.size(); ++i) { String val = S.ensure(vals.get(i).trim()).strippedOff(S.DOUBLE_QUOTES); val = processStringSubstitution(val); vals.set(i, val); } } } Func func = $.convert(funcName).to(Func.class); switch (vals.size()) { case 0: break; case 1: func.init(vals.get(0)); break; default: func.init(vals); } return func.apply(); }
private Object evalFunc(String funcExpr) { String funcName = funcExpr; List<String> vals = C.list(); if (funcExpr.contains("(")) { funcName = S.cut(funcExpr).beforeFirst("("); String paramStr = S.cut(funcExpr).afterFirst("("); paramStr = S.cut(paramStr).beforeLast(")"); if (S.notBlank(paramStr)) { vals = C.newList(S.fastSplit(paramStr, ",")); for (int i = 0; i < vals.size(); ++i) { String val = S.ensure(vals.get(i).trim()).strippedOff(S.DOUBLE_QUOTES); val = processStringSubstitution(val); vals.set(i, val); } } } Func func = $.convert(funcName).to(Func.class); switch (vals.size()) { case 0: break; case 1: func.init(vals.get(0)); break; default: func.init(vals); } return func.apply(); }