Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }