1 |
|
# |
2 |
< |
# Checker.pm |
2 |
> |
# Checker.pm ---- INTERFACE CLASS |
3 |
|
# |
4 |
|
# Originally Written by Christopher Williams |
5 |
|
# |
10 |
|
# Interface |
11 |
|
# --------- |
12 |
|
# new() : A new Checker object |
13 |
< |
# check(param) : Run a check on the given value |
13 |
> |
# check(param) : Run a check on the given value - return (1/0,§messageobj) |
14 |
|
# addchecker(checker) : Add a checker object to be run in additon |
15 |
+ |
# consider(value) : check the value and analyse the input. Returns |
16 |
+ |
# (check_retvalue,messageobj,@list_of_analysis) |
17 |
|
|
18 |
< |
package Checker; |
18 |
> |
package ActiveDoc::Checker; |
19 |
|
require 5.004; |
20 |
+ |
use Utilities::Message; |
21 |
|
|
22 |
|
sub new { |
23 |
|
my $class=shift; |
26 |
|
return $self; |
27 |
|
} |
28 |
|
|
29 |
+ |
# |
30 |
+ |
# Simply delegate checks to other checkers. Override to do real work |
31 |
+ |
# |
32 |
|
sub check { |
33 |
|
my $self=shift; |
34 |
|
my $checkvalue=shift; |
35 |
+ |
my $message=Utilities::Message->new(); |
36 |
+ |
|
37 |
+ |
return ($self->runchecks($checkvalue,$message), $message); |
38 |
+ |
} |
39 |
+ |
|
40 |
+ |
# |
41 |
+ |
# Basic consider routine - no analysis performed - just a simple check |
42 |
+ |
# |
43 |
+ |
sub consider { |
44 |
+ |
my $self=shift; |
45 |
+ |
my $value=shift; |
46 |
|
|
47 |
< |
$self->runchecks(); |
47 |
> |
return ($self->check($value)); |
48 |
|
} |
49 |
|
|
50 |
|
sub runchecks { |
51 |
|
my $self=shift; |
52 |
|
my $checkvalue=shift; |
53 |
+ |
my $messageobj=shift; |
54 |
+ |
my $ret=0; |
55 |
|
|
56 |
+ |
my ($retval,@message); |
57 |
|
foreach $check ( @{$self->{checkers}} ) { |
58 |
< |
$check->check($checkvalue); |
58 |
> |
($retval,$message)=$check->check($checkvalue); |
59 |
> |
$ret=$retval | $ret; |
60 |
> |
$messageobj->copy($message); #copy messages into current message |
61 |
> |
undef $message; # dont want old messages piling up |
62 |
> |
$messageobj->setlevel(); |
63 |
|
} |
64 |
+ |
return $ret; |
65 |
|
} |
66 |
|
|
67 |
|
sub addchecker { |