Source code: com/virtuosotechnologies/lib/xml/ZeroToleranceErrorHandler.java
1 /*
2 ================================================================================
3
4 FILE: ZeroToleranceErrorHandler.java
5
6 PROJECT:
7
8 Virtuoso Utilities
9
10 CONTENTS:
11
12 ErrorHandler that doesn't tolerate any errors
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.lib.xml;
43
44
45 import java.util.logging.Logger;
46 import java.util.logging.Level;
47 import org.xml.sax.ErrorHandler;
48 import org.xml.sax.SAXParseException;
49 import org.xml.sax.SAXException;
50
51
52 /**
53 * ErrorHandler that doesn't tolerate any errors. Any errors reported get
54 * thrown as exceptions. Ignores warnings. Also optionally logs events.
55 */
56 public class ZeroToleranceErrorHandler
57 implements
58 ErrorHandler
59 {
60 private Logger logger_;
61 private Level errorLevel_;
62 private Level warningLevel_;
63
64
65 /**
66 * Construct an error handler that doesn't log errors
67 */
68 public ZeroToleranceErrorHandler()
69 {
70 logger_ = null;
71 }
72
73
74 /**
75 * Construct an error handler that logs all errors and warnings at the given level
76 *
77 * @param level level to log errors and warnings
78 */
79 public ZeroToleranceErrorHandler(
80 Level level)
81 {
82 this(level, level);
83 }
84
85
86 /**
87 * Construct an error handler that logs all errors and warnings at the given levels
88 *
89 * @param errorLevel level to log errors
90 * @param warningLevel level to log warnings
91 */
92 public ZeroToleranceErrorHandler(
93 Level errorLevel,
94 Level warningLevel)
95 {
96 logger_ = Logger.getLogger("com.virtuosotechnologies.asaph.xmldatabase");
97 errorLevel_ = errorLevel;
98 warningLevel_ = warningLevel;
99 }
100
101
102 public void error(
103 SAXParseException ex)
104 throws
105 SAXException
106 {
107 if (logger_ != null)
108 {
109 logger_.log(errorLevel_, "XML parsing error on line " + ex.getLineNumber() +
110 ", column " + ex.getColumnNumber() + ": " + ex.getMessage());
111 }
112 throw ex;
113 }
114
115
116 public void fatalError(
117 SAXParseException ex)
118 throws
119 SAXException
120 {
121 if (logger_ != null)
122 {
123 logger_.log(errorLevel_, "XML parsing fatal error on line " + ex.getLineNumber() +
124 ", column " + ex.getColumnNumber() + ": " + ex.getMessage());
125 }
126 throw ex;
127 }
128
129
130 public void warning(
131 SAXParseException ex)
132 throws
133 SAXException
134 {
135 if (logger_ != null)
136 {
137 logger_.log(warningLevel_, "XML parsing warning on line " + ex.getLineNumber() +
138 ", column " + ex.getColumnNumber() + ": " + ex.getMessage());
139 }
140 }
141 }