ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SCRAM/src/BuildSystem/BuildClass.pm
Revision: 1.2
Committed: Tue Oct 17 13:05:55 2000 UTC (24 years, 6 months ago) by williamc
Content type: text/plain
Branch: MAIN
CVS Tags: 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_2, V0_18_1
Branch point for: SCRAM_V1_BRANCH, V0_19_4_B
Changes since 1.1: +1 -1 lines
Log Message:
Fixed paramupdate method

File Contents

# User Rev Content
1 williamc 1.1 #
2     # BuildClass.pm
3     #
4     # Originally Written by Christopher Williams
5     #
6     # Description
7     #
8     # Interface
9     # ---------
10     # new() : A new BuildClass object
11     # child() : return a new object that is a copy of the object
12     # paramupdate($hashref) : update variable hash according to provided hashref
13     # paramlist() : return a list of all params that have been set
14     # param(name) : return value of given param - undef if undefined
15    
16     package BuildSystem::BuildClass;
17     require 5.004;
18    
19     sub new {
20     my $class=shift;
21     my $type=ref($class) || $class;
22     my $self={};
23     bless $self, $type;
24     return $self;
25     }
26    
27     sub child {
28     my $self=shift;
29     my $child=$self->new();
30     $child->paramupdate($self->{vars});
31     return $child;
32     }
33    
34     sub paramlist {
35     my $self=shift;
36     return (keys %{$self->{vars}});
37     }
38    
39     sub param {
40     my $self=shift;
41     my $name=shift;
42    
43     my $rv=undef;
44     if ( exists $self->{vars}{$name} ) {
45     $rv=$self->{vars}{$name};
46     }
47     return $rv;
48     }
49    
50     sub paramupdate {
51     my $self=shift;
52     my $hashref=shift;
53    
54 williamc 1.2 foreach $key ( keys %$hashref ) {
55 williamc 1.1 $self->{vars}{$key}=$$hashref{$key};
56     }
57     }