| Tripletail documentation | Contained in the Tripletail distribution. |
Tripletail::Validator::FilterFactory - Tripletail::Validator 内部クラス
Copyright 2006 YMIRLINK Inc.
This framework is free software; you can redistribute it and/or modify it under the same terms as Perl itself
このフレームワークはフリーソフトウェアです。あなたは Perl と同じライセンスの 元で再配布及び変更を行うことが出来ます。
Address bug reports and comments to: tl@tripletail.jp
HP : http://tripletail.jp/
| Tripletail documentation | Contained in the Tripletail distribution. |
# ----------------------------------------------------------------------------- # Tripletail::Validator::FilterFactory - Filterã¤ã³ã¹ã¿ã³ã¹ã®çæ # ----------------------------------------------------------------------------- package Tripletail::Validator::FilterFactory; use strict; use warnings; use UNIVERSAL qw( isa ); use Tripletail; use Tripletail::Validator::Filter; my $filterCache = {}; my $userFilters = do { my $userFilters = {}; my $ini = $TL->INI(); my @filters = $ini->getKeys('Validator'); foreach my $filter (@filters) { eval 'use ' . $ini->get( Validator => $filter ); if ( !$@ && $ini->get( Validator => $filter ) ->isa('Tripletail::Validator::Filter') ) { $userFilters->{$filter} = $ini->get( Validator => $filter ); } } $userFilters; }; 1; #---------------------------------- ä¸è¬ sub getFilter { my $filter = shift; if ( !defined( $filterCache->{$filter} ) ) { eval qq{\$filterCache->{$filter} = new Tripletail::Validator::Filter::$filter}; if ($@) { if ( defined( $userFilters->{$filter} ) ) { eval qq{\$filterCache->{$filter} = new $userFilters->{$filter}}; } if ($@) { die qq{Filter [$filter] not found.}; } } } return $filterCache->{$filter}; } __END__