KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > gargoylesoftware > htmlunit > javascript > StrictErrorReporter


1 /*
2  * Copyright (c) 2002, 2005 Gargoyle Software Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12  * 3. The end-user documentation included with the redistribution, if any, must
13  * include the following acknowledgment:
14  *
15  * "This product includes software developed by Gargoyle Software Inc.
16  * (http://www.GargoyleSoftware.com/)."
17  *
18  * Alternately, this acknowledgment may appear in the software itself, if
19  * and wherever such third-party acknowledgments normally appear.
20  * 4. The name "Gargoyle Software" must not be used to endorse or promote
21  * products derived from this software without prior written permission.
22  * For written permission, please contact info@GargoyleSoftware.com.
23  * 5. Products derived from this software may not be called "HtmlUnit", nor may
24  * "HtmlUnit" appear in their name, without prior written permission of
25  * Gargoyle Software Inc.
26  *
27  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
28  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
29  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARGOYLE
30  * SOFTWARE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
31  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
33  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
36  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37  */

38 package com.gargoylesoftware.htmlunit.javascript;
39
40 import com.gargoylesoftware.htmlunit.Assert;
41 import org.apache.commons.logging.Log;
42 import org.mozilla.javascript.ErrorReporter;
43 import org.mozilla.javascript.EvaluatorException;
44
45 /**
46  * A javascript error reporter that will log all warnings and errors, no matter how trivial.
47  *
48  * @version $Revision: 100 $
49  * @author <a HREF="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
50  */

51 public class StrictErrorReporter implements ErrorReporter {
52     private final Log log_;
53
54     /**
55      * Create an instance.
56      *
57      * @param log The log to use when reporting errors
58      */

59     public StrictErrorReporter( final Log log ) {
60         Assert.notNull("log", log);
61         log_ = log;
62     }
63
64
65     /**
66      * Log a warning
67      *
68      * @param message The message to be displayed.
69      * @param sourceName The name of the source file
70      * @param line The line number
71      * @param lineSource The source code that failed
72      * @param lineOffset The line offset
73      */

74     public void warning(
75             final String JavaDoc message, final String JavaDoc sourceName, final int line,
76             final String JavaDoc lineSource, final int lineOffset) {
77         log_.warn(format( "warning", message, sourceName, line, lineSource, lineOffset ));
78     }
79
80
81     /**
82      * Log an error
83      *
84      * @param message The message to be displayed.
85      * @param sourceName The name of the source file
86      * @param line The line number
87      * @param lineSource The source code that failed
88      * @param lineOffset The line offset
89      */

90     public void error(
91             final String JavaDoc message, final String JavaDoc sourceName, final int line,
92             final String JavaDoc lineSource, final int lineOffset) {
93
94         log_.error(format( "error", message, sourceName, line, lineSource, lineOffset));
95         throw new EvaluatorException(message, sourceName, line, lineSource, lineOffset);
96     }
97
98
99     /**
100      * Log a runtime error
101      *
102      * @param message The message to be displayed.
103      * @param sourceName The name of the source file
104      * @param line The line number
105      * @param lineSource The source code that failed
106      * @param lineOffset The line offset
107      * @return An evaluator exception
108      */

109     public EvaluatorException runtimeError(
110             final String JavaDoc message, final String JavaDoc sourceName, final int line,
111             final String JavaDoc lineSource, final int lineOffset) {
112
113         log_.error(format( "runtimeError", message, sourceName, line, lineSource, lineOffset ));
114         return new EvaluatorException(message, sourceName, line, lineSource, lineOffset);
115     }
116
117
118     private String JavaDoc format(
119             final String JavaDoc prefix, final String JavaDoc message, final String JavaDoc sourceName,
120             final int line, final String JavaDoc lineSource, final int lineOffset) {
121
122         return prefix+": message=["+message+"] sourceName=["+sourceName+"] line=["+line
123             +"] lineSource=["+lineSource+"] lineOffset=["+lineOffset+"]";
124     }
125 }
126
Popular Tags