|
1 ###################################################################### |
|
2 package XML::DOM::DOMException; |
|
3 ###################################################################### |
|
4 |
|
5 use Exporter; |
|
6 |
|
7 use overload '""' => \&stringify; |
|
8 use vars qw ( @ISA @EXPORT @ErrorNames ); |
|
9 |
|
10 BEGIN |
|
11 { |
|
12 @ISA = qw( Exporter ); |
|
13 @EXPORT = qw( INDEX_SIZE_ERR |
|
14 DOMSTRING_SIZE_ERR |
|
15 HIERARCHY_REQUEST_ERR |
|
16 WRONG_DOCUMENT_ERR |
|
17 INVALID_CHARACTER_ERR |
|
18 NO_DATA_ALLOWED_ERR |
|
19 NO_MODIFICATION_ALLOWED_ERR |
|
20 NOT_FOUND_ERR |
|
21 NOT_SUPPORTED_ERR |
|
22 INUSE_ATTRIBUTE_ERR |
|
23 ); |
|
24 } |
|
25 |
|
26 sub UNKNOWN_ERR () {0;} # not in the DOM Spec! |
|
27 sub INDEX_SIZE_ERR () {1;} |
|
28 sub DOMSTRING_SIZE_ERR () {2;} |
|
29 sub HIERARCHY_REQUEST_ERR () {3;} |
|
30 sub WRONG_DOCUMENT_ERR () {4;} |
|
31 sub INVALID_CHARACTER_ERR () {5;} |
|
32 sub NO_DATA_ALLOWED_ERR () {6;} |
|
33 sub NO_MODIFICATION_ALLOWED_ERR () {7;} |
|
34 sub NOT_FOUND_ERR () {8;} |
|
35 sub NOT_SUPPORTED_ERR () {9;} |
|
36 sub INUSE_ATTRIBUTE_ERR () {10;} |
|
37 |
|
38 @ErrorNames = ( |
|
39 "UNKNOWN_ERR", |
|
40 "INDEX_SIZE_ERR", |
|
41 "DOMSTRING_SIZE_ERR", |
|
42 "HIERARCHY_REQUEST_ERR", |
|
43 "WRONG_DOCUMENT_ERR", |
|
44 "INVALID_CHARACTER_ERR", |
|
45 "NO_DATA_ALLOWED_ERR", |
|
46 "NO_MODIFICATION_ALLOWED_ERR", |
|
47 "NOT_FOUND_ERR", |
|
48 "NOT_SUPPORTED_ERR", |
|
49 "INUSE_ATTRIBUTE_ERR" |
|
50 ); |
|
51 sub new |
|
52 { |
|
53 my ($type, $code, $msg) = @_; |
|
54 my $self = bless {Code => $code}, $type; |
|
55 |
|
56 $self->{Message} = $msg if defined $msg; |
|
57 |
|
58 # print "=> Exception: " . $self->stringify . "\n"; |
|
59 $self; |
|
60 } |
|
61 |
|
62 sub getCode |
|
63 { |
|
64 $_[0]->{Code}; |
|
65 } |
|
66 |
|
67 #------------------------------------------------------------ |
|
68 # Extra method implementations |
|
69 |
|
70 sub getName |
|
71 { |
|
72 $ErrorNames[$_[0]->{Code}]; |
|
73 } |
|
74 |
|
75 sub getMessage |
|
76 { |
|
77 $_[0]->{Message}; |
|
78 } |
|
79 |
|
80 sub stringify |
|
81 { |
|
82 my $self = shift; |
|
83 |
|
84 "XML::DOM::DOMException(Code=" . $self->getCode . ", Name=" . |
|
85 $self->getName . ", Message=" . $self->getMessage . ")"; |
|
86 } |
|
87 |
|
88 1; # package return code |