--- nfo/perl/libs/OEF/API/Abstract.pm 2003/04/04 17:25:51 1.2 +++ nfo/perl/libs/OEF/API/Abstract.pm 2003/06/06 03:22:34 1.3 @@ -1,7 +1,10 @@ ## ------------------------------------------------------------------------- -## $Id: Abstract.pm,v 1.2 2003/04/04 17:25:51 joko Exp $ +## $Id: Abstract.pm,v 1.3 2003/06/06 03:22:34 joko Exp $ ## ------------------------------------------------------------------------- ## $Log: Abstract.pm,v $ +## Revision 1.3 2003/06/06 03:22:34 joko +## new: now capable of registering symbols along with api methods +## ## Revision 1.2 2003/04/04 17:25:51 joko ## minor update regarding debugging output ## @@ -33,18 +36,37 @@ $self->_push_api($payload); } +sub register_symbols { + my $self = shift; + my $payload = shift; + print __PACKAGE__, ": ", ref($self), " registers its Symbols", "\n"; + #print Dumper($payload); + $self->_push_symbols($payload); +} + sub _push_api { my $self = shift; my $payload = shift; push @{$self->{api}}, @$payload; } +sub _push_symbols { + my $self = shift; + my $payload = shift; + foreach (@$payload) { + push @{$self->{symbols}}, $_; + } +} + sub build { my $self = shift; my $plugins = shift; - # base api + + # 1. base api & symbols $self->_api_init(); - # api extensions (plugins) + $self->_sym_init() if $self->can("_sym_init"); + + # 2. api extensions (plugins) #my @api_ext; foreach (@$plugins) { my $subapi = DesignPattern::Object->fromPackage($_); @@ -53,19 +75,25 @@ #push @api_ext, @$subapi_metadata; #$self->register($subapi->getApiMetadata()); $self->_push_api($subapi->getApiMetadata()); + $self->_push_symbols($subapi->getSymbolMetadata()) if $subapi->can("getSymbolMetadata"); } } #my @api_merged = (@$api_base, @api_ext); #print Dumper(@api_merged); #return \@api_merged; + return 1; } sub getApiMetadata { my $self = shift; - #print Dumper($self); return $self->{api}; } +sub getSymbolMetadata { + my $self = shift; + return $self->{symbols}; +} + 1; __END__