/[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.1 by joko, Thu Mar 27 15:39:10 2003 UTC revision 1.4 by joko, Wed Jun 25 23:36:27 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## -------------------------------------------------------------------------  ## -------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.4  2003/06/25 23:36:27  joko
6    ##  minor update: comment
7    ##
8    ##  Revision 1.3  2003/06/06 03:22:34  joko
9    ##  new: now capable of registering symbols along with api methods
10    ##
11    ##  Revision 1.2  2003/04/04 17:25:51  joko
12    ##  minor update regarding debugging output
13    ##
14  ##  Revision 1.1  2003/03/27 15:39:10  joko  ##  Revision 1.1  2003/03/27 15:39:10  joko
15  ##  initial commit, api metadata registration helper  ##  initial commit, api metadata registration helper
16  ##  ##
# Line 24  sub register { Line 33  sub register {
33    my $self = shift;    my $self = shift;
34    my $payload = shift;    my $payload = shift;
35    #print ref($self), " [$self] registers its API", "\n";    #print ref($self), " [$self] registers its API", "\n";
36    print ref($self), " registers its API", "\n";    print __PACKAGE__, ": ", ref($self), " registers its API", "\n";
37    #$logger->info( ref($self), " [$self]", " registers its API" );    #$logger->info( ref($self), " [$self]", " registers its API" );
38    #print Dumper($payload);    #print Dumper($payload);
39    $self->_push_api($payload);    $self->_push_api($payload);
40  }  }
41    
42    sub register_symbols {
43      my $self = shift;
44      my $payload = shift;
45      print __PACKAGE__, ": ", ref($self), " registers its Symbols", "\n";
46      #print Dumper($payload);
47      $self->_push_symbols($payload);
48    }
49    
50  sub _push_api {  sub _push_api {
51    my $self = shift;    my $self = shift;
52    my $payload = shift;    my $payload = shift;
53    push @{$self->{api}}, @$payload;    push @{$self->{api}}, @$payload;
54  }  }
55    
56    sub _push_symbols {
57      my $self = shift;
58      my $payload = shift;
59      foreach (@$payload) {
60        push @{$self->{symbols}}, $_;
61      }
62    }
63    
64    # create hierarchical API declaration tree recursively
65  sub build {  sub build {
66    my $self = shift;    my $self = shift;
67    my $plugins = shift;    my $plugins = shift;
68    # base api    
69      # 1. base api & symbols
70    $self->_api_init();    $self->_api_init();
71    # api extensions (plugins)    $self->_sym_init() if $self->can("_sym_init");
72      
73      # 2. api extensions (plugins)
74    #my @api_ext;    #my @api_ext;
75    foreach (@$plugins) {    foreach (@$plugins) {
76      my $subapi = DesignPattern::Object->fromPackage($_);      my $subapi = DesignPattern::Object->fromPackage($_);
# Line 50  sub build { Line 79  sub build {
79        #push @api_ext, @$subapi_metadata;        #push @api_ext, @$subapi_metadata;
80        #$self->register($subapi->getApiMetadata());        #$self->register($subapi->getApiMetadata());
81        $self->_push_api($subapi->getApiMetadata());        $self->_push_api($subapi->getApiMetadata());
82          $self->_push_symbols($subapi->getSymbolMetadata()) if $subapi->can("getSymbolMetadata");
83      }      }
84    }    }
85    #my @api_merged = (@$api_base, @api_ext);    #my @api_merged = (@$api_base, @api_ext);
86    #print Dumper(@api_merged);    #print Dumper(@api_merged);
87    #return \@api_merged;    #return \@api_merged;
88      
89    return 1;    return 1;
90  }  }
91    
92  sub getApiMetadata {  sub getApiMetadata {
93    my $self = shift;    my $self = shift;
   #print Dumper($self);  
94    return $self->{api};    return $self->{api};
95  }  }
96    
97    sub getSymbolMetadata {
98      my $self = shift;
99      return $self->{symbols};
100    }
101    
102  1;  1;
103  __END__  __END__

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

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