Mercurial > pub > Impl
view Lib/IMPL/Web/QueryHandler.pm @ 63:76b878ad6596
Added serialization support for the IMPL::Object::List
More intelligent Exception message
Fixed encoding support in the actions
Improoved tests
Minor fixes
author | wizard |
---|---|
date | Mon, 15 Mar 2010 02:38:09 +0300 |
parents | c64bd1bf727d |
children | 2840c4c85db8 |
line wrap: on
line source
package IMPL::Web::QueryHandler; use base qw(IMPL::Object IMPL::Object::Autofill); use IMPL::Class::Property; __PACKAGE__->PassThroughArgs; use IMPL::Exception; sub Invoke { my ($self,$action,$nextHandler) = @_; if (not ref $self or UNIVERSAL::isa($self,'IMPL::Object::Factory')) { return $self->new( action => $action )->Invoke($action,$nextHandler); } else { return $self->Process($action,$nextHandler); } } sub Process { die new NotImplementedException("The method isn't implemented", __PACKAGE__, 'Process'); } 1; __END__ =pod =head1 DESCRIPTION Базовый класс для обработчиков запросов. =head1 MEMBERS =over 4 =item C< Invoke($action,$nextHandler) > Вызывается механизмом обработки запроса, для передачи управления обработчику. Данная реализация проверяет как была вызвана, если как статический метод, то создает экземпляр класса и вызывает у созданного объекта метод C< Invoke > с параметрами C< $action >, C< $nextHandler >. Если метод был вызван у объекта, то управление передается методу C< Process > C< $action > Экземпляр запроса C< $nextHandler > Делегат для вызова следующего обработчика. Вызывается без параметров, но следующему обработчику втоматически будут переданы необходимые параметры. =back =cut