1 16 package org.apache.cocoon.woody.datatype.validationruleimpl; 17 18 import org.apache.cocoon.woody.datatype.ValidationRule; 19 import org.apache.cocoon.woody.util.DomHelper; 20 import org.outerj.expression.Expression; 21 import org.w3c.dom.Element ; 22 23 28 public class LengthValidationRuleBuilder extends AbstractValidationRuleBuilder { 29 public ValidationRule build(Element validationRuleElement) throws Exception { 30 LengthValidationRule rule = new LengthValidationRule(); 31 32 String exactExprString = validationRuleElement.getAttribute("exact"); 33 String minExprString = validationRuleElement.getAttribute("min"); 34 String maxExprString = validationRuleElement.getAttribute("max"); 35 36 if (exactExprString.length() > 0) { 37 Expression expression = parseExpression(exactExprString, validationRuleElement, "exact"); 38 rule.setExactExpr(expression); 39 } else if (minExprString.length() > 0 && maxExprString.length() > 0) { 40 Expression expression = parseExpression(minExprString, validationRuleElement, "min"); 41 rule.setMinExpr(expression); 42 expression = parseExpression(maxExprString, validationRuleElement, "max"); 43 rule.setMaxExpr(expression); 44 } else if (minExprString.length() > 0) { 45 Expression expression = parseExpression(minExprString, validationRuleElement, "min"); 46 rule.setMinExpr(expression); 47 } else if (maxExprString.length() > 0) { 48 Expression expression = parseExpression(maxExprString, validationRuleElement, "max"); 49 rule.setMaxExpr(expression); 50 } else { 51 throw new Exception ("length validation rule requires a min and/or max, or exact attribute at " + DomHelper.getLocation(validationRuleElement)); 52 } 53 54 buildFailMessage(validationRuleElement, rule); 55 56 return rule; 57 } 58 } 59 | Popular Tags |