jcmdline
Class DateParam

java.lang.Object
  extended byjcmdline.AbstractParameter
      extended byjcmdline.DateParam
All Implemented Interfaces:
Parameter

public class DateParam
extends AbstractParameter

A parameter that accepts a date as its value.

The format for the date is taken from the strings ResourceBundle.

Sample Usage:

     DateParam startDateParam = 
         new DateParam("startDate", 
                       "start date of report", 
                       DateParam.REQUIRED);
     DateParam endDateParam = 
         new DateParam("endDate", 
                       "end date of report", 
                       DateParam.REQUIRED);
 
     // Time for startDate will be the beginning of the day by default.
     // Set the time for the end of the report to be the end of the day.
     endDateParam.setDefaultTime(23, 59, 58, 999);
 
     CmdLineHandler cl = new DefaultCmdLineHandler(
         "myreport", "report of activity over days",
         new Parameter[] {}, 
         new Parameter[] { startDateParam, endDateParam });
     
     cl.parse();
 
     // Don't need to check isSet() because params are REQUIRED
     Date stDate = startDateParam.getDate();
     Date enDate = endDateParam.getDate();
     .
     .
  

Version:
jcmdline Rel. 1.0.3 $Id: DateParam.java,v 1.2 2002/12/07 14:22:06 lglawrence Exp $
Author:
Lynne Lawrence
See Also:
DateTimeParam, TimeParam

Field Summary
 
Fields inherited from class jcmdline.AbstractParameter
acceptableValues, desc, hidden, ignoreRequired, multiValued, optional, optionLabel, set, tag, values
 
Fields inherited from interface jcmdline.Parameter
HIDDEN, MULTI_VALUED, OPTIONAL, PUBLIC, REQUIRED, SINGLE_VALUED
 
Constructor Summary
DateParam(java.lang.String tag, java.lang.String desc)
          constructor - creates single-valued, optional, public parameter
DateParam(java.lang.String tag, java.lang.String desc, boolean optional)
          constructor - creates single-valued, public parameter which will will be either optional or required, as specified.
DateParam(java.lang.String tag, java.lang.String desc, boolean optional, boolean multiValued)
          constructor - creates a public parameter which will will be either optional or required, and/or multi-valued, as specified.
DateParam(java.lang.String tag, java.lang.String desc, boolean optional, boolean multiValued, boolean hidden)
          constructor - creates a parameter which will will be either optional or required, single or multi-valued, and hidden or public as specified.
DateParam(java.lang.String tag, java.lang.String desc, java.util.Date[] acceptableValues)
          constructor - creates a single-valued, optional, public, number parameter whose value must be one of the specified values.
DateParam(java.lang.String tag, java.lang.String desc, java.util.Date[] acceptableValues, boolean optional)
          constructor - creates a single-valued, public, number parameter whose value must be one of the specified values, and which is required or optional, as specified.
DateParam(java.lang.String tag, java.lang.String desc, java.util.Date[] acceptableValues, boolean optional, boolean multiValued)
          constructor - creates a public number parameter whose value must be one of the specified values, and which is required or optional and/or multi-valued, as specified.
DateParam(java.lang.String tag, java.lang.String desc, java.util.Date[] acceptableValues, boolean optional, boolean multiValued, boolean hidden)
          constructor - creates a Parameter, all of whose options are specified.
 
Method Summary
 java.util.Date[] getAcceptableDates()
          Gets the acceptable values as Date objects.
 java.util.Date getDate()
          Returns the value of this Parameter as a java.util.Date object.
 java.util.Date[] getDates()
          Returns the values of this Parameter as java.util.Date objects.
 int[] getDefaultTime()
          Gets default values for the time component used to generate the Date value.
static java.lang.String getParseFormat()
          Gets the format used to parse the date/time values.
 void setAcceptableDates(java.util.Collection vals)
          Sets acceptable values for this Parameter from a Collection of Date objects.
 void setAcceptableDates(java.util.Date[] dates)
          Sets the values that will be acceptable for this Parameter using Date objects.
 void setAcceptableValues(java.util.Collection vals)
          Unsupported.
 void setAcceptableValues(java.lang.String[] vals)
          Unsupported.
 void setDefaultTime(int h, int m, int s, int ms)
          Sets default values for the time component used to generate the Date value.
 void validateValue(java.lang.String val)
          Verifies that value is valid for this entity - called by add/setValue(s)().
 
Methods inherited from class jcmdline.AbstractParameter
addValue, getAcceptableValues, getDesc, getIgnoreRequired, getOptionLabel, getTag, getValue, getValues, isHidden, isMultiValued, isOptional, isSet, setDesc, setHidden, setIgnoreRequired, setMultiValued, setOptional, setOptionLabel, setTag, setValue, setValues, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc)
constructor - creates single-valued, optional, public parameter

Parameters:
tag - a unique identifier for this parameter
desc - a description of the parameter, suitable for display in a usage statement
Throws:
java.lang.IllegalArgumentException - if tag or are invalid.
See Also:
setTag(), setDesc()

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 boolean optional)
constructor - creates single-valued, public parameter which will will be either optional or required, as specified.

Parameters:
tag - a unique identifier for this parameter
desc - a description of the parameter, suitable for display in a usage statement
optional - OPTIONAL if optional, REQUIRED if required
Throws:
java.lang.IllegalArgumentException - if any of the specified parameters are invalid.
See Also:
setTag(), setDesc()

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 boolean optional,
                 boolean multiValued)
constructor - creates a public parameter which will will be either optional or required, and/or multi-valued, as specified.

Parameters:
tag - a unique identifier for this parameter
desc - a description of the parameter, suitable for display in a usage statement
optional - OPTIONAL if optional, REQUIRED if required
multiValued - MULTI_VALUED if the parameter can accept multiple values, SINGLE_VALUED if the parameter can contain only a single value
Throws:
java.lang.IllegalArgumentException - if any of the specified parameters are invalid.
See Also:
setTag(), setDesc(), SINGLE_VALUED, MULTI_VALUED

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 boolean optional,
                 boolean multiValued,
                 boolean hidden)
constructor - creates a parameter which will will be either optional or required, single or multi-valued, and hidden or public as specified.

Parameters:
tag - a unique identifier for this parameter
desc - a description of the parameter, suitable for display in a usage statement
optional - OPTIONAL if optional, REQUIRED if required
multiValued - MULTI_VALUED if the parameter can accept multiple values, SINGLE_VALUED if the parameter can contain only a single value
hidden - HIDDEN if parameter is not to be listed in the usage, PUBLIC otherwise.
Throws:
java.lang.IllegalArgumentException - if any of the specified parameters are invalid.
See Also:
setTag(), setDesc(), SINGLE_VALUED, MULTI_VALUED, HIDDEN, PUBLIC

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 java.util.Date[] acceptableValues)
constructor - creates a single-valued, optional, public, number parameter whose value must be one of the specified values.

Parameters:
tag - the tag associated with this parameter
desc - a description of the parameter, suitable for display in a usage statement
acceptableValues - the acceptable values for the parameter
Throws:
java.lang.IllegalArgumentException - if any parameter is invalid.
See Also:
setTag(), setDesc(), setAcceptableDates()

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 java.util.Date[] acceptableValues,
                 boolean optional)
constructor - creates a single-valued, public, number parameter whose value must be one of the specified values, and which is required or optional, as specified.

Parameters:
tag - the tag associated with this parameter
desc - a description of the parameter, suitable for display in a usage statement
acceptableValues - the acceptable values for the parameter
optional - OPTIONAL if optional, REQUIRED if required
Throws:
java.lang.IllegalArgumentException - if any parameter is invalid.
See Also:
setTag(), setDesc(), setAcceptableDates(), OPTIONAL, REQUIRED

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 java.util.Date[] acceptableValues,
                 boolean optional,
                 boolean multiValued)
constructor - creates a public number parameter whose value must be one of the specified values, and which is required or optional and/or multi-valued, as specified.

Parameters:
tag - the tag associated with this parameter
desc - a description of the parameter, suitable for display in a usage statement
acceptableValues - the acceptable values for the parameter
optional - OPTIONAL if optional, REQUIRED if required
multiValued - MULTI_VALUED if the parameter can accept multiple values, SINGLE_VALUED if the parameter can contain only a single value
Throws:
java.lang.IllegalArgumentException - if any parameter is invalid.
See Also:
setTag(), setDesc(), setAcceptableDates(), OPTIONAL, REQUIRED, SINGLE_VALUED, MULTI_VALUED

DateParam

public DateParam(java.lang.String tag,
                 java.lang.String desc,
                 java.util.Date[] acceptableValues,
                 boolean optional,
                 boolean multiValued,
                 boolean hidden)
constructor - creates a Parameter, all of whose options are specified.

Parameters:
tag - the tag associated with this parameter
desc - a description of the parameter, suitable for display in a usage statement
acceptableValues - the acceptable values for the parameter
optional - OPTIONAL if optional, REQUIRED if required
multiValued - MULTI_VALUED if the parameter can accept multiple values, SINGLE_VALUED if the parameter can contain only a single value
hidden - HIDDEN if parameter is not to be listed in the usage, PUBLIC otherwise.
Throws:
java.lang.IllegalArgumentException - if any parameter is invalid.
See Also:
setTag(), setDesc(), setAcceptableDates(), OPTIONAL, REQUIRED, SINGLE_VALUED, MULTI_VALUED, HIDDEN, PUBLIC
Method Detail

validateValue

public void validateValue(java.lang.String val)
                   throws CmdLineException
Verifies that value is valid for this entity - called by add/setValue(s)().

Specified by:
validateValue in interface Parameter
Overrides:
validateValue in class AbstractParameter
Parameters:
val - the value to be validated
Throws:
CmdLineException - if value is not valid.

getDate

public java.util.Date getDate()
Returns the value of this Parameter as a java.util.Date object. Should there be more than one value for this Parameter, the first value will be returned.

Returns:
the value of this Parameter as a Date object

getDates

public java.util.Date[] getDates()
Returns the values of this Parameter as java.util.Date objects.

Returns:
The values of this Parameter as Date objects. Note the the return value may be an empty array if no values have been set.

getParseFormat

public static java.lang.String getParseFormat()
Gets the format used to parse the date/time values.

Returns:
the format used to parse the date/time values

setAcceptableDates

public void setAcceptableDates(java.util.Date[] dates)
Sets the values that will be acceptable for this Parameter using Date objects. Any time portion of the Date objects will be stripped.

Parameters:
dates - an array of acceptable dates

getAcceptableDates

public java.util.Date[] getAcceptableDates()
Gets the acceptable values as Date objects.

Returns:
The acceptable values as an array of Date objects. Note that null is returned if acceptable values have not been set.

setAcceptableDates

public void setAcceptableDates(java.util.Collection vals)
Sets acceptable values for this Parameter from a Collection of Date objects. Any time portion of the Date objects will be stripped.

Parameters:
vals - a Collection of java.util.Date objects representing the acceptable values.
Throws:
java.lang.ClassCastException - if any member of vals is not a Date object.

setAcceptableValues

public void setAcceptableValues(java.util.Collection vals)
Unsupported. This method is unsupported because, with the date format coming from a resource bundle, it is not reasonable to code string values for acceptable values - better to use Date objects.

Specified by:
setAcceptableValues in interface Parameter
Overrides:
setAcceptableValues in class AbstractParameter
Parameters:
vals - the new acceptable values
Throws:
java.lang.UnsupportedOperationException
See Also:
setAcceptableDates(Date[]), setAcceptableDates(Collection)

setAcceptableValues

public void setAcceptableValues(java.lang.String[] vals)
Unsupported. This method is unsupported because, with the date format coming from a resource bundle, it is not reasonable to code string values for acceptable values - better to use Date objects.

Specified by:
setAcceptableValues in interface Parameter
Overrides:
setAcceptableValues in class AbstractParameter
Parameters:
vals - the new acceptable values
Throws:
java.lang.UnsupportedOperationException
See Also:
setAcceptableDates(Date[]), setAcceptableDates(Collection)

setDefaultTime

public void setDefaultTime(int h,
                           int m,
                           int s,
                           int ms)
Sets default values for the time component used to generate the Date value.

Parameters:
h - the hours - 0-23 - defaults to 0
m - the minutes - 0-59 - defaults to 0
s - the seconds - 0-59 - defaults to 0
ms - the milliseconds - 0-999 - defaults to 0
Throws:
java.lang.IllegalArgumentException - if any of the parameters are in error.

getDefaultTime

public int[] getDefaultTime()
Gets default values for the time component used to generate the Date value.

Returns:
a 4 element int array, where the elements are the default hours, minutes, seconds, and milliseconds, in that order