package WebDAO::Lexer::object; =head1 NAME WebDAO::Lexer::object - Process object tag =head1 SYNOPSIS =head1 DESCRIPTION WebDAO::Lexer::object - Process object tag =cut use base 'WebDAO::Lexer::base'; use strict; use warnings; use Data::Dumper; sub value { my $self = shift; my $eng = shift; my @args = (); #skip not any foreach my $c ( $self->childs ) { unless ( UNIVERSAL::isa( $c, 'WebDAO::Lexer::base' ) ) { print "Bad element at " . ref($c); # next; } #get values push @args, $c->value($eng); } #warn "Result: " . Dumper([@args]). Dumper($self->attr); if ($eng) { my $error; my $attr = $self->attr; #check if alias unless ( $eng->_pack4name( $attr->{class} ) ) { #try class as perl modulename $error = $eng->register_class( $attr->{class} ); } if ($error) { # _log1 $self warn "use module $attr->{class} id: $attr->{id} fail. $error"; return; } else { my $object = $eng->_createObj( $attr->{id}, $attr->{class}, @args ); # _log1 $self warn "create_obj fail for class: " . $attr->{class} . " ,id: " . $attr->{id} unless $object; return $object; } } } 1; __DATA__ =head1 SEE ALSO http://sourceforge.net/projects/webdao =head1 AUTHOR Zahatski Aliaksandr, Ezag@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright 2002-2011 by Zahatski Aliaksandr This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut