ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/Scram/ProjectSearcher.pm
Revision: 1.2
Committed: Mon Aug 28 08:35:15 2000 UTC (24 years, 8 months ago) by williamc
Content type: text/plain
Branch: MAIN
CVS Tags: V1_0_1, V1_0_0, V1_pre0, SCRAM_V1, SCRAMV1_IMPORT, V0_19_7, V0_19_6, V0_19_6p1, V0_19_5, SFATEST, V0_19_4, V0_19_4_pre3, V0_19_4_pre2, V0_19_4_pre1, V0_19_3, V0_19_2, V0_19_1, V0_19_0, V0_18_5, V0_18_4, V_18_3_TEST, VO_18_3, V0_18_3, V0_18_2, V0_18_1
Branch point for: V1_pre1, SCRAM_V1_BRANCH, V0_19_4_B
Changes since 1.1: +53 -0 lines
Log Message:
remove Interface.pm

File Contents

# User Rev Content
1 williamc 1.2 #
2     # ProjectSearcher.pm
3     #
4     # Originally Written by Christopher Williams
5     #
6     # Description
7     #
8     # Interface
9     # ---------
10     # new(ScramProjectDB) : A new ProjectSearcher object
11     # addproject(name,version) : add the name,version of a project
12     # get(level) : return the item corresponding to the nth level
13     # newiterator() : return an iterator;
14     # levels : return the number of levels available
15    
16     package Scram::ProjectSearcher;
17     use Scram::SearchIterator;
18     require 5.004;
19    
20     sub new {
21     my $class=shift;
22     $self={};
23     bless $self, $class;
24     $self->{db}=shift;
25     $self->{level}=0;
26     return $self;
27     }
28    
29     sub get {
30     my $self=shift;
31     my $level=shift;
32    
33     # instantiate object
34     return $self->{db}->getarea(@{$self->{projects}[$level]});
35     }
36    
37     sub addproject {
38     my $self=shift;
39     my $name=shift;
40     my $version=shift;
41    
42     $self->{projects}[$self->{level}++]=[ $name, $version ];
43     }
44    
45     sub newiterator {
46     my $self=shift;
47     return Scram::SearchIterator->new($self);
48     }
49    
50     sub levels {
51     my $self=shift;
52     return $self->{level}-1;
53     }