view Lib/IMPL/Web/View/ObjectFactory.pm @ 243:cd2b1f121029

*TTView: fixed template selection based on the model type
author sergey
date Fri, 19 Oct 2012 02:23:15 +0400
parents abc7c26bf615
children 7c517134c42f
line wrap: on
line source

package IMPL::Web::View::ObjectFactory;
use strict;

our $AUTOLOAD;

use IMPL::declare {
	require => {
		Exception => 'IMPL::Exception',
		OpException => '-IMPL::InvalidOperationException'
	},
	base =>[
	   'IMPL::Object::Factory' => '@_'
	]
};

sub AUTOLOAD {
	my $this = shift;
	my ($method) = ($AUTOLOAD =~ m/(\w+)$/);
	
	return if $method eq 'DESTROY';
	my $target = $this->factory; 
	if ( $target->can($method) ) {
	   	return $target->$method(@_);
	} else {
	   die OpException->new("Method '$method' isn't found in '$target'")
	}
}

1;