org.apache.commons.validator.routines
Class AbstractCalendarValidator

java.lang.Object
  extended by org.apache.commons.validator.routines.AbstractFormatValidator
      extended by org.apache.commons.validator.routines.AbstractCalendarValidator
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
CalendarValidator, DateValidator, TimeValidator

public abstract class AbstractCalendarValidator
extends AbstractFormatValidator

Abstract class for Date/Time/Calendar validation.

This is a base class for building Date / Time Validators using format parsing.

Since:
Validator 1.3.0
Version:
$Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
See Also:
Serialized Form

Field Summary
private  int dateStyle
           
private  int timeStyle
           
 
Constructor Summary
AbstractCalendarValidator(boolean strict, int dateStyle, int timeStyle)
          Construct an instance with the specified strict, time and date style parameters.
 
Method Summary
private  int calculateCompareResult(java.util.Calendar value, java.util.Calendar compare, int field)
          Compares the field from two calendars indicating whether the field for the first calendar is equal to, less than or greater than the field from the second calendar.
private  int calculateQuarter(java.util.Calendar calendar, int monthOfFirstQuarter)
          Calculate the quarter for the specified Calendar.
protected  int compare(java.util.Calendar value, java.util.Calendar compare, int field)
          Compares a calendar value to another, indicating whether it is equal, less then or more than at a specified level.
protected  int compareQuarters(java.util.Calendar value, java.util.Calendar compare, int monthOfFirstQuarter)
          Compares a calendar's quarter value to another, indicating whether it is equal, less then or more than the specified quarter.
protected  int compareTime(java.util.Calendar value, java.util.Calendar compare, int field)
          Compares a calendar time value to another, indicating whether it is equal, less then or more than at a specified level.
protected  java.lang.String format(java.lang.Object value, java.text.Format formatter)
          Format a value with the specified DateFormat.
 java.lang.String format(java.lang.Object value, java.util.Locale locale, java.util.TimeZone timeZone)
          Format an object into a String using the specified Locale.
 java.lang.String format(java.lang.Object value, java.lang.String pattern, java.util.Locale locale)
          Format an object using the specified pattern and/or Locale.
 java.lang.String format(java.lang.Object value, java.lang.String pattern, java.util.Locale locale, java.util.TimeZone timeZone)
          Format an object using the specified pattern and/or Locale.
 java.lang.String format(java.lang.Object value, java.lang.String pattern, java.util.TimeZone timeZone)
          Format an object into a String using the specified pattern.
 java.lang.String format(java.lang.Object value, java.util.TimeZone timeZone)
          Format an object into a String using the default Locale.
protected  java.text.Format getFormat(java.util.Locale locale)
          Returns a DateFormat for the specified Locale.
protected  java.text.Format getFormat(java.lang.String pattern, java.util.Locale locale)
          Returns a DateFormat for the specified pattern and/or Locale.
 boolean isValid(java.lang.String value, java.lang.String pattern, java.util.Locale locale)
          Validate using the specified Locale.
protected  java.lang.Object parse(java.lang.String value, java.lang.String pattern, java.util.Locale locale, java.util.TimeZone timeZone)
          Checks if the value is valid against a specified pattern.
protected abstract  java.lang.Object processParsedValue(java.lang.Object value, java.text.Format formatter)
          Process the parsed value, performing any further validation and type conversion required.
 
Methods inherited from class org.apache.commons.validator.routines.AbstractFormatValidator
format, format, format, isStrict, isValid, isValid, isValid, parse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dateStyle

private int dateStyle

timeStyle

private int timeStyle
Constructor Detail

AbstractCalendarValidator

public AbstractCalendarValidator(boolean strict,
                                 int dateStyle,
                                 int timeStyle)
Construct an instance with the specified strict, time and date style parameters.

Parameters:
strict - true if strict Format parsing should be used.
dateStyle - the date style to use for Locale validation.
timeStyle - the time style to use for Locale validation.
Method Detail

isValid

public boolean isValid(java.lang.String value,
                       java.lang.String pattern,
                       java.util.Locale locale)

Validate using the specified Locale.

Specified by:
isValid in class AbstractFormatValidator
Parameters:
value - The value validation is being performed on.
pattern - The pattern used to format the value.
locale - The locale to use for the Format, defaults to the default
Returns:
true if the value is valid.

format

public java.lang.String format(java.lang.Object value,
                               java.util.TimeZone timeZone)

Format an object into a String using the default Locale.

Parameters:
value - The value validation is being performed on.
timeZone - The Time Zone used to format the date, system default if null (unless value is a Calendar.
Returns:
The value formatted as a String.

format

public java.lang.String format(java.lang.Object value,
                               java.lang.String pattern,
                               java.util.TimeZone timeZone)

Format an object into a String using the specified pattern.

Parameters:
value - The value validation is being performed on.
pattern - The pattern used to format the value.
timeZone - The Time Zone used to format the date, system default if null (unless value is a Calendar.
Returns:
The value formatted as a String.

format

public java.lang.String format(java.lang.Object value,
                               java.util.Locale locale,
                               java.util.TimeZone timeZone)

Format an object into a String using the specified Locale.

Parameters:
value - The value validation is being performed on.
locale - The locale to use for the Format.
timeZone - The Time Zone used to format the date, system default if null (unless value is a Calendar.
Returns:
The value formatted as a String.

format

public java.lang.String format(java.lang.Object value,
                               java.lang.String pattern,
                               java.util.Locale locale)

Format an object using the specified pattern and/or Locale.

Overrides:
format in class AbstractFormatValidator
Parameters:
value - The value validation is being performed on.
pattern - The pattern used to format the value.
locale - The locale to use for the Format.
Returns:
The value formatted as a String.

format

public java.lang.String format(java.lang.Object value,
                               java.lang.String pattern,
                               java.util.Locale locale,
                               java.util.TimeZone timeZone)

Format an object using the specified pattern and/or Locale.

Parameters:
value - The value validation is being performed on.
pattern - The pattern used to format the value.
locale - The locale to use for the Format.
timeZone - The Time Zone used to format the date, system default if null (unless value is a Calendar.
Returns:
The value formatted as a String.

format

protected java.lang.String format(java.lang.Object value,
                                  java.text.Format formatter)

Format a value with the specified DateFormat.

Overrides:
format in class AbstractFormatValidator
Parameters:
value - The value to be formatted.
formatter - The Format to use.
Returns:
The formatted value.

parse

protected java.lang.Object parse(java.lang.String value,
                                 java.lang.String pattern,
                                 java.util.Locale locale,
                                 java.util.TimeZone timeZone)

Checks if the value is valid against a specified pattern.

Parameters:
value - The value validation is being performed on.
pattern - The pattern used to validate the value against, or the default for the Locale if null.
locale - The locale to use for the date format, system default if null.
timeZone - The Time Zone used to parse the date, system default if null.
Returns:
The parsed value if valid or null if invalid.

processParsedValue

protected abstract java.lang.Object processParsedValue(java.lang.Object value,
                                                       java.text.Format formatter)

Process the parsed value, performing any further validation and type conversion required.

Specified by:
processParsedValue in class AbstractFormatValidator
Parameters:
value - The parsed object created.
formatter - The Format used to parse the value with.
Returns:
The parsed value converted to the appropriate type if valid or null if invalid.

getFormat

protected java.text.Format getFormat(java.lang.String pattern,
                                     java.util.Locale locale)

Returns a DateFormat for the specified pattern and/or Locale.

Specified by:
getFormat in class AbstractFormatValidator
Parameters:
pattern - The pattern used to validate the value against or null to use the default for the Locale.
locale - The locale to use for the currency format, system default if null.
Returns:
The DateFormat to created.

getFormat

protected java.text.Format getFormat(java.util.Locale locale)

Returns a DateFormat for the specified Locale.

Parameters:
locale - The locale a DateFormat is required for, system default if null.
Returns:
The DateFormat to created.

compare

protected int compare(java.util.Calendar value,
                      java.util.Calendar compare,
                      int field)

Compares a calendar value to another, indicating whether it is equal, less then or more than at a specified level.

Parameters:
value - The Calendar value.
compare - The Calendar to check the value against.
field - The field level to compare to - e.g. specifying Calendar.MONTH will compare the year and month portions of the calendar.
Returns:
Zero if the first value is equal to the second, -1 if it is less than the second or +1 if it is greater than the second.

compareTime

protected int compareTime(java.util.Calendar value,
                          java.util.Calendar compare,
                          int field)

Compares a calendar time value to another, indicating whether it is equal, less then or more than at a specified level.

Parameters:
value - The Calendar value.
compare - The Calendar to check the value against.
field - The field level to compare to - e.g. specifying Calendar.MINUTE will compare the hours and minutes portions of the calendar.
Returns:
Zero if the first value is equal to the second, -1 if it is less than the second or +1 if it is greater than the second.

compareQuarters

protected int compareQuarters(java.util.Calendar value,
                              java.util.Calendar compare,
                              int monthOfFirstQuarter)

Compares a calendar's quarter value to another, indicating whether it is equal, less then or more than the specified quarter.

Parameters:
value - The Calendar value.
compare - The Calendar to check the value against.
monthOfFirstQuarter - The month that the first quarter starts.
Returns:
Zero if the first quarter is equal to the second, -1 if it is less than the second or +1 if it is greater than the second.

calculateQuarter

private int calculateQuarter(java.util.Calendar calendar,
                             int monthOfFirstQuarter)

Calculate the quarter for the specified Calendar.

Parameters:
calendar - The Calendar value.
monthOfFirstQuarter - The month that the first quarter starts.
Returns:
The calculated quarter.

calculateCompareResult

private int calculateCompareResult(java.util.Calendar value,
                                   java.util.Calendar compare,
                                   int field)

Compares the field from two calendars indicating whether the field for the first calendar is equal to, less than or greater than the field from the second calendar.

Parameters:
value - The Calendar value.
compare - The Calendar to check the value against.
field - The field to compare for the calendars.
Returns:
Zero if the first calendar's field is equal to the seconds, -1 if it is less than the seconds or +1 if it is greater than the seconds.


Copyright (c) 2001-2004 Apache Software Foundation