📄 paramchecker.java
字号:
long a = ((Long) leftField.value).longValue(); long b = ((Long) rightField.value).longValue(); if (a < b) ; else { isValid = false; addMsg("err_need_less", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_DOUBLE)) { double a = ((Double) leftField.value).doubleValue(); double b = ((Double) rightField.value).doubleValue(); if (a < b) ; else { isValid = false; addMsg("err_need_less", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_FLOAT)) { float a = ((Float) leftField.value).floatValue(); float b = ((Float) rightField.value).floatValue(); if (a < b) ; else { isValid = false; addMsg("err_need_less", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } } else if (token.equals("=")) { if (leftField.type.equals(this.TYPE_INT)) { int a = ((Integer) leftField.value).intValue(); int b = ((Integer) rightField.value).intValue(); if (a == b) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_DATE)) { Date a = (Date) leftField.value; Date b = (Date) rightField.value; if (DateUtil.compare(a, b) == 0) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_LONG)) { long a = ((Long) leftField.value).longValue(); long b = ((Long) rightField.value).longValue(); if (a == b) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_BOOLEAN)) { boolean a = ((Boolean) leftField.value).booleanValue(); boolean b = ((Boolean) rightField.value).booleanValue(); if (a == b) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_STRING)) { String a = (String) leftField.value; String b = (String) rightField.value; if (a.equals(b)) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_DOUBLE)) { double a = ((Double) leftField.value).doubleValue(); double b = ((Double) rightField.value).doubleValue(); if (a == b) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } else if (leftField.type.equals(this.TYPE_FLOAT)) { float a = ((Float) leftField.value).floatValue(); float b = ((Float) rightField.value).floatValue(); if (a == b) ; else { isValid = false; addMsg("err_need_equal", new String[] {leftFieldDesc, "" +rightFieldDesc}); } } } else { isValid = false; addMsg("err_format", new String[] {rulePairStr}); } return isValid; } public void checkUnionCond(Vector rules) throws CheckErrException { int len = rules.size(); boolean isValid = true; for (int i = 0; i < len; i++) { isValid = true; String rule = (String) rules.get(i); rule = rule.trim(); if (rule.indexOf(">=")!=-1) { isValid = this.checkUnionCond(rule, ">="); } else if (rule.indexOf("<=")!=-1) { isValid = this.checkUnionCond(rule, "<="); } else if (rule.indexOf(">")!=-1) { isValid = this.checkUnionCond(rule, ">"); } else if (rule.indexOf("<")!=-1) { isValid = this.checkUnionCond(rule, "<"); } else if (rule.indexOf("=")!=-1) { isValid = this.checkUnionCond(rule, "="); } else { addMsg("err_format", new String[] {rule}); if (onErrorExit) break; } if (!isValid) { if (onErrorExit) break; } } } public void doCheck(FormRule fr) throws CheckErrException, ErrMsgException { if (fr==null) throw new ErrMsgException(LoadString("err_formrule_none", new String[] {})); onErrorExit = fr.isOnErrorExit(); formResource = fr.getRes(); check(fr.getRules()); checkUnionCond(fr.getUnionRules()); if (msgs.size()!=0) throw new ErrMsgException(getMessage(false)); } public void check(Vector rules) throws CheckErrException, ErrMsgException { Iterator ir = rules.iterator(); while (ir.hasNext()) { String rule = (String) ir.next(); checkField(rule); } } public void checkField(String rule) throws CheckErrException, ErrMsgException { rule = rule.trim(); if (rule.startsWith(this.TYPE_STRING)) { checkFieldString(rule); } else if (rule.startsWith(this.TYPE_INT)) { checkFieldInt(rule); } else if (rule.startsWith(this.TYPE_DATE)) { checkFieldDate(rule); } else if (rule.startsWith(this.TYPE_STRING_ARRAY)) { checkFieldStringArray(rule); } else if (rule.startsWith(this.TYPE_INT_ARRAY)) { checkFieldIntArray(rule); } else if (rule.startsWith(this.TYPE_LONG)) { checkFieldLong(rule); } else if (rule.startsWith(this.TYPE_BOOLEAN)) { checkFieldBoolean(rule); } else if (rule.startsWith(this.TYPE_DOUBLE)) { checkFieldDouble(rule); } else if (rule.startsWith(this.TYPE_FLOAT)) { checkFieldFloat(rule); } else throw new ErrMsgException(LoadString("err_type", new String[] {rule})); } public String parseFieldDesc(String desc) { if (formResource==null || formResource.equals("")) return desc; if (!desc.startsWith("#")) return desc; else { String key = desc.substring(1, desc.length()).trim(); return SkinUtil.LoadString(request, formResource, key); } } public void checkFieldIntArray(String ruleStr) throws CheckErrException { String fieldName = ""; String[] rule = split(ruleStr); if (rule == null) { addMsg("err_format", new String[] {ruleStr}); return; } int len = rule.length; if (len < 4) { addMsg("err_format", new String[] {ruleStr}); return; } fieldName = rule[1]; String fieldDesc = parseFieldDesc(rule[2]); String[] values = getFieldValues(fieldName); int[] intValues = null; len = 0; if (values!=null) { len = values.length; intValues = new int[len]; } for (int i=0; i<len; i++) { try { intValues[i] = Integer.parseInt(values[i]); } catch (Exception e) { addMsg("err_not_num", new String[] {fieldDesc}); break; } } Field f = new Field(fieldName, fieldDesc, intValues, this.TYPE_INT_ARRAY); fields.put(fieldName, f); String NULL = rule[3]; if (values == null) { if (NULL.equalsIgnoreCase("not")) { addMsg("err_want", new String[] {fieldDesc}); return; } } } public void checkFieldStringArray(String ruleStr) throws CheckErrException { String fieldName = ""; String[] rule = split(ruleStr); if (rule == null) { addMsg("err_format", new String[] {ruleStr}); return; } int len = rule.length; if (len < 4) { addMsg("err_format", new String[] {ruleStr}); return; } fieldName = rule[1]; String fieldDesc = parseFieldDesc(rule[2]); String[] values = getFieldValues(fieldName); Field f = new Field(fieldName, fieldDesc, values, this.TYPE_STRING_ARRAY); fields.put(fieldName, f); String NULL = rule[3]; if (values == null) { if (NULL.equalsIgnoreCase("not")) { addMsg("err_want", new String[] {fieldDesc}); } else if (NULL.equals("allow")) ; else { addMsg("err_format", new String[] {NULL}); } } } public void checkFieldBoolean(String ruleStr) throws CheckErrException { String fieldName = ""; String[] rule = split(ruleStr); if (rule == null) { addMsg("err_format", new String[] {ruleStr}); return; } int len = rule.length; if (len < 4) { addMsg("err_format", new String[] {ruleStr}); return; } fieldName = rule[1]; String value = getFieldValue(fieldName); checkFieldBoolean(ruleStr, value); } public void checkFieldBoolean(String ruleStr, String value) throws CheckErrException { String fieldName = ""; String type = ""; String fieldDesc = ""; String[] rule = split(ruleStr); if (rule == null) { addMsg("err_format", new String[] {ruleStr}); return; } int len = rule.length; if (len < 4) { addMsg("err_format", new String[] {ruleStr}); return; } type = rule[0]; fieldName = rule[1]; fieldDesc = parseFieldDesc(rule[2]); String NULL = rule[3]; if (value == null) { if (NULL.equalsIgnoreCase("not")) { addMsg("err_want", new String[] {fieldDesc}); return; } else if (NULL.equals("allow")) ; else { value = NULL; } } Boolean bu; if (value!=null && value.equals("true") || value.equals("1")) bu = new Boolean(true); else bu = new Boolean(false); boolean isValid = true; Field f = new Field(fieldName, fieldDesc, bu, type); fields.put(fieldName, f); if (!isValid) { if (onErrorExit) { throw new CheckErrException(msgs); } } } public void checkFieldDate(String ruleStr) throws CheckErrException { String fieldName = ""; String[] rule = split(ruleStr); if (rule == null) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -