Mercurial > pub > Impl
comparison Lib/IMPL/Web/Application/ControllerUnit.pm @ 110:c13a215508ca
Refactoring,
ControllerUnit
author | wizard |
---|---|
date | Mon, 17 May 2010 17:42:27 +0400 |
parents | |
children | 6c25ea91c985 |
comparison
equal
deleted
inserted
replaced
109:ddf0f037d460 | 110:c13a215508ca |
---|---|
1 package IMPL::Web::Application::ControllerUnit; | |
2 | |
3 use base qw(IMPL::Object); | |
4 | |
5 use IMPL::Class::Property; | |
6 | |
7 BEGIN { | |
8 public property action => prop_get | owner_set; | |
9 public property application => prop_get | owner_set; | |
10 public property query => prop_get | owner_set; | |
11 } | |
12 | |
13 sub CTOR { | |
14 my ($this,$action) = @_; | |
15 | |
16 $this->action($action); | |
17 $this->application($action->application); | |
18 $this->query($action->query); | |
19 } | |
20 | |
21 sub InvokeAction { | |
22 my ($self,$method,$action) = @_; | |
23 | |
24 if ($self->can($method)) { | |
25 my $unit = $self->new($action); | |
26 $unit->$method(); | |
27 } else { | |
28 die new IMPL::InvalidOperationException("Invalid method call",$self,$method); | |
29 } | |
30 } |