ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/BuildSystem/Requirements.pm
(Generate patch)

Comparing COMP/SCRAM/src/BuildSystem/Requirements.pm (file contents):
Revision 1.1.2.4.2.2 by williamc, Thu Aug 10 15:39:19 2000 UTC vs.
Revision 1.1.2.4.2.6 by williamc, Mon Aug 21 18:41:03 2000 UTC

# Line 2 | Line 2
2   #
3   # Interface
4   # ---------
5 < # new(file,URLcache)     : new requirements doc
5 > # new(url,URLcache,ObjectStore)     : new requirements doc
6   # setup(toolbox): set up the requirements into the specified toolbox object
7   # download(toolbox)    : download description files (into toolbox cache)
8   # tools()       : Return list of requirements (ordered)
# Line 10 | Line 10
10   # url(tool)     : return the url of a given tool
11  
12   package BuildSystem::Requirements;
13 < use ActiveDoc::SimpleURLDoc;
13 > use ActiveDoc::ActiveDoc;
14   use Utilities::Verbose;
15  
16   require 5.004;
# Line 22 | Line 22 | sub new {
22          bless $self, $class;
23          $self->{file}=shift;
24          $self->{cache}=shift;
25 +        $self->{dbstore}=shift;
26          $self->{mydocversion}="2.0";
27          $self->{Arch}=1;
28          push @{$self->{ARCHBLOCK}}, $self->{Arch};
# Line 59 | Line 60 | sub url {
60  
61   sub init {
62          my $self=shift;
63 <        my $file=shift;
63 >        my $url=shift;
64  
65 <        my $switch=ActiveDoc::SimpleURLDoc->new($self->{cache});
66 <        $switch->filetoparse($file);
67 <        $switch->newparse("doc");
67 <        $switch->addtag("doc","Doc", \&Doc_start,$self,"",$self,"",$self);
65 >        my $switch=ActiveDoc::ActiveDoc->new($self->{cache},$self->{dbstore});
66 >        $switch->verbosity($self->verbosity());
67 >        $switch->url($url);
68          $switch->newparse("ordering");
69          $switch->addbasetags("ordering");
70          $switch->addtag("ordering","Architecture",
# Line 76 | Line 76 | sub init {
76                                          \&require_start,$self,
77                                          "", $self,
78                                          "", $self);
79        # -- backwards compatiblity - TODO remove with backwards comp in ToolBox
80        $switch->newparse("oldordering");
81        $switch->addtag("oldordering","Architecture",
82                                        \&Arch_Start,$self,
83                                        "", $self,
84                                        \&Arch_End, $self);
85        $switch->grouptag("Architecture","oldordering");
86        $switch->addtag("oldordering","require",
87                                        \&oldrequire_start,$self,
88                                        "", $self,
89                                        "", $self);
79  
80          $self->{switch}=$switch;
81          @{$self->{tools}}=();
82          
83 <        $self->{switch}->parse("doc");
83 >        my($doctype,$docversion)=$switch->doctype();
84          # -- for backwards compatability only parse if we have a docversion
85          #    defined
86 <        if ( defined $self->{docversion} ) {
87 <          if ( $self->{docversion} eq $self->{mydocversion} ) {
86 >        if ( defined $docversion ) {
87 >          if ( $docversion eq $self->{mydocversion} ) {
88              $self->{switch}->parse("ordering");
89            }
101          elsif ( $self->{docversion} eq "1.0" ) {
102            print "Warning : Version 1.0 Requirement docs deprecated\n";
103            $self->{switch}->parse("oldordering");
104          }
90          }
91          else {
92            #print "wrong doc version - not parsing\n";
# Line 121 | Line 106 | sub download {
106  
107   # ---- Tag routines
108  
124 sub Doc_start {
125        my $self=shift;
126        my $name=shift;
127        my $hashref=shift;
128
129        $self->{switch}->checktag( $name, $hashref, 'type');
130        $self->{switch}->checktag( $name, $hashref, 'version');
131
132        $self->{docversion}=$$hashref{'version'};
133 }
134
109   sub require_start {
110          my $self=shift;
111          my $name=shift;
# Line 167 | Line 141 | sub Arch_End {
141          pop @{$self->{ARCHBLOCK}};
142          $self->{Arch}=$self->{ARCHBLOCK}[$#{$self->{ARCHBLOCK}}];
143   }
170
171 sub oldrequire_start {
172        my $self=shift;
173        my $name=shift;
174        my $hashref=shift;
175
176        $self->{switch}->checktag( $name, $hashref, 'version');
177        $self->{switch}->checktag( $name, $hashref, 'name');
178        $self->{switch}->checktag( $name, $hashref, 'file');
179        if ( $self->{Arch} ) {
180          push @{$self->{tools}}, $$hashref{'name'};
181          $self->{version}{$$hashref{'name'}}=$$hashref{'version'};
182          $self->{url}{$$hashref{'name'}}=$$hashref{'file'};
183        }
184 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines