view Lib/IMPL/Config/Container.pm @ 104:196bf443b5e1

DOM::Schema RC0 inflators support, validation and some other things, Minor and major fixes almost for everything. A 'Source' property of the ValidationErrors generated from a NodeSet or a NodeList is subject to change in the future.
author wizard
date Tue, 11 May 2010 02:42:59 +0400
parents 0f3e369553bd
children 76515373dac0
line wrap: on
line source

package IMPL::Config::Container;
use strict;
use warnings;

use base qw(IMPL::Config);
use IMPL::Class::Property;

BEGIN {
    public property Chidren => prop_all;
}

sub CTOR {
    my ($this,%args) = @_;
    
    $this->Chidren(\%args);
}

sub save {
    my ($this,$ctx) = @_;
    
    while (my ($key,$value) = each %{$this->Chidren}) {
        $ctx->AddVar($key,$value);
    }
}

our $AUTOLOAD;
sub AUTOLOAD {
    my $this = shift;
    
    (my $prop = $AUTOLOAD) =~ s/.*?(\w+)$/$1/;
    
    my $child = $this->Chidren->{$prop};
    if (UNIVERSAL::isa($child,'IMPL::Config::Class')) {
        return $child->instance(@_);
    } else {
        return $child;
    }
}

1;