Public Member Functions | Private Attributes

DateValidator Class Reference
[Form example]

A validator that accepts dates. More...

#include <DateValidator.h>

Inheritance diagram for DateValidator:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DateValidator (const boost::gregorian::date &bottom, const boost::gregorian::date &top)
 Construct a date validator.
virtual State validate (WString &input) const

Private Attributes

boost::gregorian::date bottom_
boost::gregorian::date top_

Detailed Description

A validator that accepts dates.

This example validator only accepts input in the dd/mm/yyyy format, and checks that the date is in the right range.

It would be a natural thing to extend this class to provide access to the parsed date as a boost::gregorian::date object for example.

This class is part of the Wt form example.

Definition at line 33 of file DateValidator.h.


Constructor & Destructor Documentation

DateValidator::DateValidator ( const boost::gregorian::date &  bottom,
const boost::gregorian::date &  top 
)

Construct a date validator.

The validator will accept only dates in the indicated range.


Member Function Documentation

WValidator::State DateValidator::validate ( WString input ) const [virtual]

Reimplemented from Wt::WRegExpValidator.

Definition at line 26 of file DateValidator.C.

{
  WValidator::State state = WRegExpValidator::validate(input);

  std::string text = input.toUTF8();

  if ((state == Valid) && !text.empty()) {
    boost::smatch what;
    boost::regex_match(text, what, boost::regex(regExp().toUTF8()));

    try {
      date d
        = from_string(what[3] + "/" + what[2] + "/" + what[1]);

      if ((d >= bottom_) && (d <= top_))
        return Valid;
      else
        return Invalid;

    } catch (std::exception& e) {
      return Invalid;
    }
  } else
    return state;
}

Member Data Documentation

boost::gregorian::date DateValidator::bottom_ [private]

Definition at line 50 of file DateValidator.h.

boost::gregorian::date DateValidator::top_ [private]

Definition at line 50 of file DateValidator.h.


The documentation for this class was generated from the following files:

Generated on Sat Dec 4 2010 06:32:31 for Wt by doxygen 1.7.2