Mercurial > pub > Impl
diff Lib/IMPL/Transform.pm @ 38:d660fb38b7cc
small fixes
ORM shema to SQL schema transformation
author | Sergey |
---|---|
date | Mon, 23 Nov 2009 17:57:07 +0300 |
parents | 94d47b388442 |
children | 32d2350fccf9 |
line wrap: on
line diff
--- a/Lib/IMPL/Transform.pm Mon Nov 23 00:59:06 2009 +0300 +++ b/Lib/IMPL/Transform.pm Mon Nov 23 17:57:07 2009 +0300 @@ -20,29 +20,35 @@ } sub Transform { - my ($this,$object) = @_; + my ($this,$object,@args) = @_; if (not ref $object) { die new IMPL::Exception("There is no the template for a plain value in the transform") unless $this->{$Plain}; my $template = $this->{$Plain}; - return $this->$template($object); + return $this->$template($object,@args); } else { my $template = $this->MatchTemplate($object) || $this->Default or die new IMPL::Transform::NoTransformException(ref $object); - return $this->$template($object); + return $this->$template($object,@args); } } sub MatchTemplate { my ($this,$object) = @_; - my $class = ref $object; + my $class = $this->GetClassForObject( $object ); foreach my $tClass ( keys %{$this->Templates || {}} ) { return $this->Templates->{$tClass} if ($tClass eq $class); } } +sub GetClassForObject { + my ($this,$object) = @_; + + return ref $object; +} + package IMPL::Transform::NoTransformException; use base qw(IMPL::Exception); @@ -76,7 +82,8 @@ my $result = $t->Transform($obj); -=head1 Summary -Преобразует данные содержащиеся в форме в реальные объекты используя специальное преобразование. +=head1 DESCRIPTION + +Преобразование одного объекта к другому, например даных к их представлению. =cut \ No newline at end of file