/usr/local/CPAN/HTML-WebDAO/HTML/WebDAO/Lexer/Lbase.pm


#$Id: Lbase.pm 106 2007-06-25 10:35:07Z zag $

package HTML::WebDAO::Lexer::Lbase;
use HTML::WebDAO::Base;
use Data::Dumper;
use base qw( HTML::WebDAO::Base );
use strict;
__PACKAGE__->attributes qw/ all  /;

sub _init() {
    my $self = shift;
    return $self->Init(@_);
}

sub Init {
    #Parametrs is realm
    my $self = shift;
    my %par  = @_;
    delete $par{context};
    $self->all( \%par );
    return %par;
}

sub get_self {
    return $_[0];
}

sub childs {
    my $self = shift;
    return $self->all->{childs} || [];
}

sub value {
    my $self = shift;
    my $eng  = shift;
    my $par  = $self->all;
    my $res;
    if ( exists $par->{value} ) {
        $res = $par->{value};
    }
    else {
        my @val = @{ $self->childs }
          ? do {
            map { $_->value($eng) } @{ $self->childs };
          }
          : ();
        $res = @val > 1 ? \@val : $val[0];
    }
    return ( $par->{name}, $res );
}

1;