NAME

Data::FormValidator::ConstraintsFactory - Module to create constraints for HTML::FormValidator.

DESCRIPTION

This module contains functions to help generate complex constraints.

If you are writing new code, take a look at Data::FormValidator::Constraints::MethodsFactory instead. It's a modern alternative to what's here, offering improved names and syntax.

SYNOPSIS

use Data::FormValidator::ConstraintsFactory qw( :set :bool );

constraints => {
param1 => make_or_constraint(
        make_num_set_constraint( -1, ( 1 .. 10 ) ),
        make_set_constraint( 1, ( 20 .. 30 ) ),
      ),
province => make_word_set_constraint( 1, "AB QC ON TN NU" ),
bid  => make_range_constraint( 1, 1, 10 ),
}

BOOLEAN CONSTRAINTS

Those constraints are available by using the :bool tag.

make_not_constraint( $c1 )

This will create a constraint that will return the negation of the result of constraint $c1.

make_or_constraint( @constraints )

This will create a constraint that will return the result of the first constraint that return an non false result.

make_and_constraint( @constraints )

This will create a constraint that will return the result of the first constraint that return an non false result only if all constraints returns a non-false results.

SET CONSTRAINTS

Those constraints are available by using the :set tag.

make_set_constraint( $res, @elements )

This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.

The eq operator is used for comparison.

make_num_set_constraint( $res, @elements )

This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.

The == operator is used for comparison.

make_word_set_constraint( $res, $set )

This will create a constraint that will return $res if the value is a word in $set, or the negation of $res otherwise.

make_cmp_set_constraint( $res, $cmp, @elements )

This will create a constraint that will return $res if the value is one of the @elements set, or the negation of $res otherwise.

$cmp is a function which takes two argument and should return true or false depending if the two elements are equal.

NUMERICAL LOGICAL CONSTRAINTS

Those constraints are available by using the :num tag.

make_clamp_constraint( $res, $low, $high )

This will create a constraint that will return $res if the value is between $low and $high bounds included or its negation otherwise.

make_lt_constraint( $res, $bound )

This will create a constraint that will return $res if the value is lower than $bound, or the negation of $res otherwise.

make_le_constraint( $res, $bound )

This will create a constraint that will return $res if the value is lower or equal than $bound, or the negation of $res otherwise.

make_gt_constraint( $res, $bound )

This will create a constraint that will return $res if the value is greater than $bound, or the negation of $res otherwise.

make_ge_constraint( $res, $bound )

This will create a constraint that will return $res if the value is greater or equal than $bound, or the negation of $res otherwise.

OTHER CONSTRAINTS

make_length_constraint($max_length)

This will create a constraint that will return true if the value has a length of less than or equal to $max_length

SEE ALSO

Data::FormValidator(3)

AUTHOR

Author: Francis J. Lacoste <francis.lacoste@iNsu.COM> Maintainer: Mark Stosberg <mark@summersault.com>

COPYRIGHT

Copyright (c) 2000 iNsu Innovations Inc. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms as perl itself.