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

Comparing COMP/SCRAM/src/ActiveDoc/UserQuery.pm (file contents):
Revision 1.3 by williamc, Thu Sep 23 10:35:02 1999 UTC vs.
Revision 1.6 by williamc, Fri Dec 17 08:36:23 1999 UTC

# Line 1 | Line 1
1   #
2   #  UserQuery
3   #
4 < #  Set up and record Queries requested fromthe user
4 > #  Set up and record Queries requested from the user
5   #
6   # Interface
7   # ---------
8   # new(UserInterface)    : A new query object with a specific interface
9 + # dump(fh,expr)         : dump out parameters that match expr to filehandle
10 + # store(fh)             : dump every param to fh
11 + # restore(fh)           : restore from filehandle
12 + # params()              : return list of all params
13   # setparam(name,value)  : set a parameter
14   # setifundef(name,value) : only set param to value if undefined
15   # getparam(name)        : return value of named parameter
16 + # getexpandedparam(name) : return the value of the parameter with any
17 + #                          variables expanded in the context of the UserQuery
18 + #                          variables
19   # clearquery()          : remove all queries to be asked
20   # setquery($type,$parameter,$string,@args) : register a query of type for
21   #                                               $parameter
# Line 33 | Line 40 | sub new {
40          return $self;
41   }
42  
43 + sub dump {
44 +        my $self=shift;
45 +        my $fh=shift;
46 +        my $string=shift;
47 +
48 +        foreach $key ( keys %{$self->{params}} ) {
49 +          if ( $key=~/$string/ ) {
50 +                print $fh "k:".$key."\n";
51 +                print $fh "v:".$self->{params}{$key}."\n";
52 +          }
53 +        }
54 +        print $fh "#End\n";
55 + }
56 +
57 + sub store {
58 +        my $self=shift;
59 +        my $fh=shift;
60 +
61 +        my $key;
62 +        foreach $key ( keys %{$self->{params}} ) {
63 +          print $fh "k:".$key."\n";
64 +          print $fh "v:".$self->{params}{$key}."\n";
65 +        }
66 +        print $fh "#End\n";
67 + }
68 +
69 + sub restore {
70 +        my $self=shift;
71 +        my $fh=shift;
72 +
73 +        my $check="k:";
74 +        my $key="";
75 +        while ( $line=<$fh> ) {
76 +          chomp $line;
77 +          last if ( $line eq "\#End" );
78 +          if ( $line!~/^$check/ ) {
79 +                die "Data Corruption Error when restoring $self\n";
80 +          }
81 +          if ( $check eq "k:" ) {
82 +                $check="v:";
83 +                ($key=$line)=~s/k://;
84 +          }
85 +          else {
86 +                $check="k:";
87 +                ($value=$line)=~s/v://;
88 +                $self->setparam($key,$value);
89 +          }
90 +        } #end while
91 + }
92 +
93   sub setparam {
94          my $self=shift;
95          my $name=shift;
96          my $value=shift;
97  
98 +        print "Setting $name = $value\n";
99          $self->{params}{$name}=$value;
100   }
101  
102 + sub params {
103 +        my $self=shift;
104 +        return ( keys %{$self->{params}} );
105 + }
106 +
107   sub setifundef {
108          my $self=shift;
109          my $name=shift;
# Line 57 | Line 120 | sub getparam {
120          return $self->{params}{$name};
121   }      
122  
123 + sub getexpandedparam {
124 +        my $self=shift;
125 +        my $name=shift;
126 +        
127 +        my $string=$self->getparam($name);
128 +        $string=~s/\$\((.*?)\)/$self->{paramhash}{$1}/g;
129 +        $string=~s/\$(.*?)( |\/|\Z)/$self->{paramhash}{$1}$2/g;
130 +
131 +        return $string;
132 + }
133 +
134   sub clearquery {
135          my $self=shift;
136          undef %self->{querytype};

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines