GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  WORKFLOW::VALIDATOR (3)

.ds Aq ’

NAME

Workflow::Validator - Ensure data are valid

CONTENTS

VERSION

This documentation describes version 1.05 of this package

SYNOPSIS



 # First declare the validator...
 <validator name="DateValidator"
            class="MyApp::Validator::Date">
   <param name="date_format" value="%Y-%m-%d %h:%m"/>
 </validator>

 # Then associate the validator with runtime data from the context...
 <action name="MyAction">
    <validator name="DateValidator">
       <arg>$due_date</arg>
    </validator>
 </action>

 # TODO: You can also inintialize and instantiate in one step if you
 # dont need to centralize or reuse (does this work?)

 <action name="MyAction">
    <validator class="MyApp::Validator::Date">
       <param name="date_format" value="%Y-%m-%d %h:%m"/>
       <arg>$due_date</arg>
    </validator>
 </action>

 # Then implement the logic

 package MyApp::Validator::Date;

 use strict;
 use base qw( Workflow::Validator );
 use DateTime::Format::Strptime;
 use Workflow::Exception qw( configuration_error );

 __PACKAGE__->mk_accessors( formatter );

 sub _init {
     my ( $self, $params ) = @_;
     unless ( $params->{date_format} ) {
         configuration_error
             "You must define a value for date_format in ",
             "declaration of validator ", $self->name;
     }
     if ( ref $params->{date_format} ) {
         configuration_error
             "The value for date_format must be a simple scalar in ",
             "declaration of validator ", $self->name;
     }
     my $formatter = DateTime::Format::Strptime->new(
                              pattern => $params->{date_format},
                              on_error => undef );
     $self->formatter( $formatter );
 }

 sub validate {
     my ( $self, $wf, $date_string ) = @_;
     my $fmt = $self->formatter;
     my $date_object = $fmt->parse_datetime( $date_string );
     unless ( $date_object ) {
         validation_error
             "Date $date_string does not match pattern ", $fmt->pattern, " ",
             "due to error ", $fmt->errstr, "";
     }
 }



DESCRIPTION

Validators specified by ’validator_name’ are looked up in the Workflow::Factory which reads a separate configuration and generates validators. (Generally all validators should be declared, but it is not required.)

Validators are objects with a single public method, ’validate()’ that take as arguments a workflow object and a list of parameters. The parameters are filled in by the workflow engine according to the instantiation declaration in the Action.

The idea behind a validator is that it validates data but does not care where it comes from.

SUBCLASSING

    Strategy

    Methods

init( \%params )

Called when the validator is first initialized. If you do not have sufficient information in \%params you should throw an exception.

_init

This is a dummy method, please see init.

validate( $workflow, $data )

Determine whether your $data is true or false. If necessary you can get the application context information from the $workflow object.

COPYRIGHT

Copyright (c) 2003-2004 Chris Winters. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHORS

Chris Winters <chris@cwinters.com>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WORKFLOW::VALIDATOR (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.