annotate Lib/IMPL/DOM/Schema/Validator/RegExp.pm @ 134:44977efed303

Significant performance optimizations Fixed recursion problems due converting objects to JSON Added cache support for the templates Added discovery feature for the web methods
author wizard
date Mon, 21 Jun 2010 02:39:53 +0400
parents a6e9759ff88a
children e6447ad85cb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
1 package IMPL::DOM::Schema::Validator::RegExp;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
2
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
3 use base qw(IMPL::DOM::Schema::Validator);
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
4
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
5 our %CTOR = (
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
6 'IMPL::DOM::Schema::Validator' => sub {
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
7 my %args = @_;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
8 $args{nodeName} ||= 'RegExp';
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
9 %args;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
10 }
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
11 );
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
12
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
13 use IMPL::Class::Property;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
14
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
15 BEGIN {
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
16 public property message => prop_all;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
17 }
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
18
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
19 sub CTOR {
104
196bf443b5e1 DOM::Schema RC0 inflators support, validation and some other things,
wizard
parents: 100
diff changeset
20 my ($this,%args) = @_;
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
21
104
196bf443b5e1 DOM::Schema RC0 inflators support, validation and some other things,
wizard
parents: 100
diff changeset
22 $this->message($args{message} || "A %Node.nodeName% doesn't match to the format %Schema.display%");
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
23 }
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
24
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
25 sub Validate {
104
196bf443b5e1 DOM::Schema RC0 inflators support, validation and some other things,
wizard
parents: 100
diff changeset
26 my ($this,$node,$ctx) = @_;
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
27
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
28 my $rx = $this->nodeValue;
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
29 return new IMPL::DOM::Schema::ValidationError(
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
30 Node => $node,
105
a6e9759ff88a Fixed a validation errors parameters
wizard
parents: 104
diff changeset
31 Source => $ctx && $ctx->{Source} || $this->parentNode,
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
32 Schema => $this->parentNode,
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
33 Message => $this->message
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
34 ) unless (not $node->isComplex) and $node->nodeValue =~ /$rx/;
104
196bf443b5e1 DOM::Schema RC0 inflators support, validation and some other things,
wizard
parents: 100
diff changeset
35 return ();
100
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
36 }
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
37
df6b4f054957 Schema in progress
wizard
parents:
diff changeset
38 1;