1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package net.sf.beanform.validator;
16
17 import java.util.Locale;
18
19 import org.apache.tapestry.form.IFormComponent;
20 import org.apache.tapestry.form.ValidationMessages;
21 import org.apache.tapestry.form.validator.BaseValidator;
22 import org.apache.tapestry.valid.ValidatorException;
23
24 /***
25 * Base class for numeric validators.
26 *
27 * @author Daniel Gredler
28 */
29 public abstract class AbstractNumberValidator extends BaseValidator {
30
31 public void validate( IFormComponent field, ValidationMessages messages, Object value )
32 throws ValidatorException {
33 if( value instanceof String ) {
34 try {
35 String s = (String) value;
36 this.parseNumber( s );
37 }
38 catch( NumberFormatException e ) {
39 String msg = this.buildMessage( field, messages.getLocale() );
40 throw new ValidatorException( msg );
41 }
42 }
43 else if( value != null ) {
44 String msg = this.buildMessage( field, messages.getLocale() );
45 throw new ValidatorException( msg );
46 }
47 }
48
49 protected abstract void parseNumber( String s );
50 protected abstract String buildMessage( IFormComponent field, Locale locale );
51
52 }