net.dpml.cli.validation

Class DateValidator

public class DateValidator extends Object implements Validator

The DateValidator validates the argument values are date or time value(s). The following example shows how to validate that an argument value(s) is a Date of the following type: d/M/yy (see java.text.DateFormat).
 DateFormat date = new SimpleDateFormat("d/M/yy");
 ...
 ArgumentBuilder builder = new ArgumentBuilder();
 Argument dateFormat =
     builder.withName("date");
            .withValidator(new DateValidator(dateFormat));
 
The following example shows how to validate that an argument value(s) is a time of the following type: HH:mm:ss (see java.text.DateFormat).
 DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
 ...
 ArgumentBuilder builder = new ArgumentBuilder();
 Argument time =
     builder.withName("time");
            .withValidator(new DateValidator(timeFormat));
 

Version: @PROJECT-VERSION@

Author: @PUBLISHER-NAME@

See Also: java.text.DateFormat

Constructor Summary
DateValidator()
Creates a Validator for the default date/time format
DateValidator(DateFormat format)
Creates a Validator for the specified DateFormat.
DateValidator(List formats)
Creates a Validator for the List of specified DateFormats.
Method Summary
static DateValidatorgetDateInstance()
Creates a Validator for dates.
static DateValidatorgetDateTimeInstance()
Creates a Validator for date/times
DateFormat[]getFormats()
Gets the date formats permitted.
DategetMaximum()
Returns the maximum date permitted.
DategetMinimum()
Returns the minimum date permitted.
static DateValidatorgetTimeInstance()
Creates a Validator for times.
booleanisLeniant()
Return the leaniant flag.
voidsetFormat(DateFormat format)
Sets the date format permitted.
voidsetFormats(List formats)
Sets the date formats permitted.
voidsetFormats(DateFormat[] formats)
Sets the date formats permitted.
voidsetLeniant(boolean lenient)
Set the leaniant flag.
voidsetMaximum(Date maximum)
Sets the maximum Date to the specified value.
voidsetMinimum(Date minimum)
Sets the minimum Date to the specified value.
voidvalidate(List values)
Validate each String value in the specified List against this instances permitted DateFormats.

Constructor Detail

DateValidator

public DateValidator()
Creates a Validator for the default date/time format

DateValidator

public DateValidator(DateFormat format)
Creates a Validator for the specified DateFormat.

Parameters: format a DateFormat which dates must conform to

DateValidator

public DateValidator(List formats)
Creates a Validator for the List of specified DateFormats.

Parameters: formats a List of DateFormats which dates must conform to

Method Detail

getDateInstance

public static DateValidator getDateInstance()
Creates a Validator for dates.

Returns: DateValidator a Validator for dates

getDateTimeInstance

public static DateValidator getDateTimeInstance()
Creates a Validator for date/times

Returns: DateValidator a Validator for date/times

getFormats

public DateFormat[] getFormats()
Gets the date formats permitted.

Returns: the permitted formats

getMaximum

public Date getMaximum()
Returns the maximum date permitted.

Returns: Date the maximum date permitted. If no maximum date has been specified then return null.

getMinimum

public Date getMinimum()
Returns the minimum date permitted.

Returns: Date the minimum date permitted. If no minimum date has been specified then return null.

getTimeInstance

public static DateValidator getTimeInstance()
Creates a Validator for times.

Returns: DateValidator a Validator for times

isLeniant

public boolean isLeniant()
Return the leaniant flag.

Returns: true if leniant

setFormat

public void setFormat(DateFormat format)
Sets the date format permitted.

Parameters: format the format to use

setFormats

public void setFormats(List formats)
Sets the date formats permitted.

Parameters: formats the List of DateFormats to use

setFormats

public void setFormats(DateFormat[] formats)
Sets the date formats permitted.

Parameters: formats the array of DateFormats to use

setLeniant

public void setLeniant(boolean lenient)
Set the leaniant flag.

Parameters: lenient true if leniant

setMaximum

public void setMaximum(Date maximum)
Sets the maximum Date to the specified value.

Parameters: maximum the maximum Date permitted

setMinimum

public void setMinimum(Date minimum)
Sets the minimum Date to the specified value.

Parameters: minimum the minimum Date permitted

validate

public void validate(List values)
Validate each String value in the specified List against this instances permitted DateFormats. If a value is valid then it's String value in the list is replaced with it's Date value.

Parameters: values the list of values to validate

Throws: InvalidArgumentException if a value is invalid

See Also: validate