Changeset 3373 for ext/Perl-MetaModel/lib/Perl/Meta/Class.pm
- Timestamp:
- 05/18/05 03:51:03 (4 years ago)
- svk:copy_cache_prev:
- 4945
- Files:
-
- 1 modified
-
ext/Perl-MetaModel/lib/Perl/Meta/Class.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ext/Perl-MetaModel/lib/Perl/Meta/Class.pm
r3361 r3373 158 158 } 159 159 160 # can we remove these?161 160 method methods ($self:) returns Hash { %:methods } 162 161 method methodLabels ($self:) returns Array { %:methods.keys() } 163 162 164 163 method findMethod ($self: $label) returns Perl::Meta::Method { 165 166 } 167 168 our &Perl::Meta::Class::isMethodSupported ::= &Perl::Meta::Class::findMethod; 169 170 method invokeMethod ($self: Str $label, @args) returns Any { 164 return %:methods{$label} if %:methods.exists($label); 165 return $:parent.findMethod($label) if $:parent.defined; 166 return undef; 167 } 168 169 method isMethodSupported ($self: $label) returns Bool { 170 $self.findMethod($label) ?? 1 :: 0; 171 } 172 173 method invokeMethod ($self: Str $label, *@args) returns Any { 171 174 my $method = $self.findMethod($label); 172 175 ($method.defined) 173 176 || die "Method not found"; 174 177 my $impl = $method.code(); 178 ($impl.defined) 179 || die "Method has no code"; 175 180 return $impl($self, @args); 176 181 }
