comparison Lib/IMPL/Object/Abstract.pm @ 194:4d0e1962161c

Replaced tabs with spaces IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
author cin
date Tue, 10 Apr 2012 20:08:29 +0400
parents d1676be8afcc
children 6b1dda998839
comparison
equal deleted inserted replaced
193:8e8401c0aea4 194:4d0e1962161c
17 my @sequence; 17 my @sequence;
18 18
19 my $refCTORS = *{"${class}::CTOR"}{HASH}; 19 my $refCTORS = *{"${class}::CTOR"}{HASH};
20 20
21 foreach my $super ( @{"${class}::ISA"} ) { 21 foreach my $super ( @{"${class}::ISA"} ) {
22 my $superSequence = $cacheCTOR{$super} || cache_ctor($super); 22 my $superSequence = $cacheCTOR{$super} || cache_ctor($super);
23 23
24 my $mapper = $refCTORS ? $refCTORS->{$super} : undef; 24 my $mapper = $refCTORS ? $refCTORS->{$super} : undef;
25 if (ref $mapper eq 'CODE') { 25 if (ref $mapper eq 'CODE') {
26 if ($mapper == *_pass_through_mapper{CODE}) { 26 if ($mapper == *_pass_through_mapper{CODE}) {
27 push @sequence,@$superSequence; 27 push @sequence,@$superSequence;
28 } else { 28 } else {
29 push @sequence, sub { 29 push @sequence, sub {
30 my $this = shift; 30 my $this = shift;
31 $this->$_($mapper->(@_)) foreach @$superSequence; 31 $this->$_($mapper->(@_)) foreach @$superSequence;
32 } if @$superSequence; 32 } if @$superSequence;
33 } 33 }
34 } else { 34 } else {
35 warn "Unsupported mapper type, in '$class' for the super class '$super'" if $mapper; 35 warn "Unsupported mapper type, in '$class' for the super class '$super'" if $mapper;
36 push @sequence, sub { 36 push @sequence, sub {
37 my $this = shift; 37 my $this = shift;
38 $this->$_() foreach @$superSequence; 38 $this->$_() foreach @$superSequence;
39 } if @$superSequence; 39 } if @$superSequence;
40 } 40 }
41 } 41 }
42 42
43 push @sequence, *{"${class}::CTOR"}{CODE} if *{"${class}::CTOR"}{CODE}; 43 push @sequence, *{"${class}::CTOR"}{CODE} if *{"${class}::CTOR"}{CODE};
44 44
45 $cacheCTOR{$class} = \@sequence; 45 $cacheCTOR{$class} = \@sequence;
46 return \@sequence; 46 return \@sequence;
47 } 47 }
48 48
49 sub dump_ctor { 49 sub dump_ctor {
50 my ($self) = @_; 50 my ($self) = @_;
51 $self = ref $self || $self; 51 $self = ref $self || $self;
52 52
53 warn "dumping $self .ctor"; 53 warn "dumping $self .ctor";
54 warn "$_" foreach @{$cacheCTOR{$self}||[]}; 54 warn "$_" foreach @{$cacheCTOR{$self}||[]};
55 } 55 }
56 56
57 sub callCTOR { 57 sub callCTOR {
58 my $self = shift; 58 my $self = shift;
59 my $class = ref $self; 59 my $class = ref $self;
66 66
67 return (ref $self || $self); 67 return (ref $self || $self);
68 } 68 }
69 69
70 sub typeof { 70 sub typeof {
71 ref $_[0] || $_[0]; 71 ref $_[0] || $_[0];
72 } 72 }
73 73
74 sub isDisposed { 74 sub isDisposed {
75 0; 75 0;
76 } 76 }