/[cvs]/nfo/perl/libs/OEF/API/Abstract.pm
ViewVC logotype

Diff of /nfo/perl/libs/OEF/API/Abstract.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by joko, Fri Apr 4 17:25:51 2003 UTC revision 1.3 by joko, Fri Jun 6 03:22:34 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## -------------------------------------------------------------------------  ## -------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.3  2003/06/06 03:22:34  joko
6    ##  new: now capable of registering symbols along with api methods
7    ##
8  ##  Revision 1.2  2003/04/04 17:25:51  joko  ##  Revision 1.2  2003/04/04 17:25:51  joko
9  ##  minor update regarding debugging output  ##  minor update regarding debugging output
10  ##  ##
# Line 33  sub register { Line 36  sub register {
36    $self->_push_api($payload);    $self->_push_api($payload);
37  }  }
38    
39    sub register_symbols {
40      my $self = shift;
41      my $payload = shift;
42      print __PACKAGE__, ": ", ref($self), " registers its Symbols", "\n";
43      #print Dumper($payload);
44      $self->_push_symbols($payload);
45    }
46    
47  sub _push_api {  sub _push_api {
48    my $self = shift;    my $self = shift;
49    my $payload = shift;    my $payload = shift;
50    push @{$self->{api}}, @$payload;    push @{$self->{api}}, @$payload;
51  }  }
52    
53    sub _push_symbols {
54      my $self = shift;
55      my $payload = shift;
56      foreach (@$payload) {
57        push @{$self->{symbols}}, $_;
58      }
59    }
60    
61  sub build {  sub build {
62    my $self = shift;    my $self = shift;
63    my $plugins = shift;    my $plugins = shift;
64    # base api    
65      # 1. base api & symbols
66    $self->_api_init();    $self->_api_init();
67    # api extensions (plugins)    $self->_sym_init() if $self->can("_sym_init");
68      
69      # 2. api extensions (plugins)
70    #my @api_ext;    #my @api_ext;
71    foreach (@$plugins) {    foreach (@$plugins) {
72      my $subapi = DesignPattern::Object->fromPackage($_);      my $subapi = DesignPattern::Object->fromPackage($_);
# Line 53  sub build { Line 75  sub build {
75        #push @api_ext, @$subapi_metadata;        #push @api_ext, @$subapi_metadata;
76        #$self->register($subapi->getApiMetadata());        #$self->register($subapi->getApiMetadata());
77        $self->_push_api($subapi->getApiMetadata());        $self->_push_api($subapi->getApiMetadata());
78          $self->_push_symbols($subapi->getSymbolMetadata()) if $subapi->can("getSymbolMetadata");
79      }      }
80    }    }
81    #my @api_merged = (@$api_base, @api_ext);    #my @api_merged = (@$api_base, @api_ext);
82    #print Dumper(@api_merged);    #print Dumper(@api_merged);
83    #return \@api_merged;    #return \@api_merged;
84      
85    return 1;    return 1;
86  }  }
87    
88  sub getApiMetadata {  sub getApiMetadata {
89    my $self = shift;    my $self = shift;
   #print Dumper($self);  
90    return $self->{api};    return $self->{api};
91  }  }
92    
93    sub getSymbolMetadata {
94      my $self = shift;
95      return $self->{symbols};
96    }
97    
98  1;  1;
99  __END__  __END__

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed