001 package hirondelle.web4j.model;
002
003 /**
004 Validate a field in a Model Object.
005
006 <P>Model Objects are <em>not</em> required to use this interface when validating data, but it is
007 often convenient to do so. In combination with {@link Check}, this interface is meant to reduce
008 code repetition related to validation.
009
010 <P>This interface is appropriate only for checks on a single field.
011
012 <P>Please see {@link Check} for more information, and for some useful implementations.
013 */
014 public interface Validator {
015
016 /**
017 Return <tt>true</tt> only if <tt>aObject</tt> passes this validation.
018
019 <P><tt>aObject</tt> is a field in some Model Object, being validated in a constructor. If the
020 field is a primitive value (such as <tt>int</tt>), then it must be converted by the caller into
021 a corresponding wrapper object (such as {@link Integer}).
022
023 @param aObject may be <tt>null</tt>.
024 */
025 boolean isValid(Object aObject);
026
027 }