summaryrefslogtreecommitdiff
path: root/Build/tools/XML/DOM/DOMException.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Build/tools/XML/DOM/DOMException.pm')
-rw-r--r--Build/tools/XML/DOM/DOMException.pm88
1 files changed, 88 insertions, 0 deletions
diff --git a/Build/tools/XML/DOM/DOMException.pm b/Build/tools/XML/DOM/DOMException.pm
new file mode 100644
index 00000000000..d49c69859a4
--- /dev/null
+++ b/Build/tools/XML/DOM/DOMException.pm
@@ -0,0 +1,88 @@
+######################################################################
+package XML::DOM::DOMException;
+######################################################################
+
+use Exporter;
+
+use overload '""' => \&stringify;
+use vars qw ( @ISA @EXPORT @ErrorNames );
+
+BEGIN
+{
+ @ISA = qw( Exporter );
+ @EXPORT = qw( INDEX_SIZE_ERR
+ DOMSTRING_SIZE_ERR
+ HIERARCHY_REQUEST_ERR
+ WRONG_DOCUMENT_ERR
+ INVALID_CHARACTER_ERR
+ NO_DATA_ALLOWED_ERR
+ NO_MODIFICATION_ALLOWED_ERR
+ NOT_FOUND_ERR
+ NOT_SUPPORTED_ERR
+ INUSE_ATTRIBUTE_ERR
+ );
+}
+
+sub UNKNOWN_ERR () {0;} # not in the DOM Spec!
+sub INDEX_SIZE_ERR () {1;}
+sub DOMSTRING_SIZE_ERR () {2;}
+sub HIERARCHY_REQUEST_ERR () {3;}
+sub WRONG_DOCUMENT_ERR () {4;}
+sub INVALID_CHARACTER_ERR () {5;}
+sub NO_DATA_ALLOWED_ERR () {6;}
+sub NO_MODIFICATION_ALLOWED_ERR () {7;}
+sub NOT_FOUND_ERR () {8;}
+sub NOT_SUPPORTED_ERR () {9;}
+sub INUSE_ATTRIBUTE_ERR () {10;}
+
+@ErrorNames = (
+ "UNKNOWN_ERR",
+ "INDEX_SIZE_ERR",
+ "DOMSTRING_SIZE_ERR",
+ "HIERARCHY_REQUEST_ERR",
+ "WRONG_DOCUMENT_ERR",
+ "INVALID_CHARACTER_ERR",
+ "NO_DATA_ALLOWED_ERR",
+ "NO_MODIFICATION_ALLOWED_ERR",
+ "NOT_FOUND_ERR",
+ "NOT_SUPPORTED_ERR",
+ "INUSE_ATTRIBUTE_ERR"
+ );
+sub new
+{
+ my ($type, $code, $msg) = @_;
+ my $self = bless {Code => $code}, $type;
+
+ $self->{Message} = $msg if defined $msg;
+
+# print "=> Exception: " . $self->stringify . "\n";
+ $self;
+}
+
+sub getCode
+{
+ $_[0]->{Code};
+}
+
+#------------------------------------------------------------
+# Extra method implementations
+
+sub getName
+{
+ $ErrorNames[$_[0]->{Code}];
+}
+
+sub getMessage
+{
+ $_[0]->{Message};
+}
+
+sub stringify
+{
+ my $self = shift;
+
+ "XML::DOM::DOMException(Code=" . $self->getCode . ", Name=" .
+ $self->getName . ", Message=" . $self->getMessage . ")";
+}
+
+1; # package return code