NAME
Workflow::Validator::HasRequiredField - Validator to ensure certain data are in the context
VERSION
This documentation describes version 2.05 of this package
SYNOPSIS
# Validator is created automatically when you mark a field as
# 'is_required=yes' in the action, such as:
<action name=
"CreateUser"
>
<field name=
"username"
is_required=
"yes"
source_class=
"App::Fied::ValidUsers"
/>
...
DESCRIPTION
This is a simple validator to ensure that each of the fields you have marked with the 'is_required' property as 'yes' are indeed present before the associated action is executed.
for instance, given the configuration:
<action name=
"CreateUser"
>
<field name=
"username"
is_required=
"yes"
/>
<field name=
"email"
is_required=
"yes"
/>
<field name=
"office"
>
</action>
An action executed with such a context:
my
$wf
= FACTORY->get_workflow(
$id
);
$wf
->context(
username
=>
'foo'
);
$wf
->context(
office
=>
'Ottumwa'
);
$wf
->execute_action(
'CreateUser'
);
Would fail with a message:
You normally do not need to configure this validator yourself. It gets generated automatically when the Action configration is read in. However, if you do need to create it yourself:
<action name=
'Foo'
>
<validator name=
"HasRequiredField"
>
<arg value=
"fieldOne"
/>
<arg value=
"field_two"
/>
</validator>
<?action>
Note that we do not try to match the value in the context against a set of known values or algorithm, just see if the value is defined -- using the Perl notion for defined rather than true/false, which means '0' and the empty string will both be valid.
METHODS
validate
Validates whether a given set of required fields are defined.
Takes two parameters: a workflow object and an array of names of fields.
The provided fields are matched against the workflow in question and Workflow::Exception's are thrown in case of missing fields.
COPYRIGHT
Copyright (c) 2003-2021 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.
Please see the LICENSE
AUTHORS
Please see Workflow