1 16 package org.apache.cocoon.woody.datatype.validationruleimpl; 17 18 import org.apache.cocoon.woody.datatype.ValidationError; 19 import org.apache.cocoon.woody.util.I18nMessage; 20 import org.apache.cocoon.woody.Constants; 21 import org.outerj.expression.ExpressionContext; 22 23 28 public class EmailValidationRule extends AbstractValidationRule { 29 30 public ValidationError validate(Object value, ExpressionContext expressionContext) { 31 String email = (String )value; 32 33 if (isEmail(email)) 34 return null; 35 else 36 return hasFailMessage() ? getFailMessage() : new ValidationError(new I18nMessage("validation.string.invalidemail", Constants.I18N_CATALOGUE)); 37 } 38 39 public boolean supportsType(Class clazz, boolean arrayType) { 40 return clazz.isAssignableFrom(String .class) && !arrayType; 41 } 42 43 private boolean isEmail(String email) { 44 46 int space = email.indexOf(' '); 48 if (space != -1) 49 return false; 50 51 int atpos = email.indexOf('@'); 53 if (atpos < 1) 54 return false; 55 56 atpos++; 57 58 int anotheratpos = email.indexOf('@', atpos); 60 if (anotheratpos != -1) 61 return false; 62 63 int dotAfterAt = email.indexOf('.', atpos); 65 if (dotAfterAt == -1) 66 return false; 67 68 return true; 69 } 70 } | Popular Tags |