001: /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
002: *
003: * ***** BEGIN LICENSE BLOCK *****
004: * Version: MPL 1.1/GPL 2.0
005: *
006: * The contents of this file are subject to the Mozilla Public License Version
007: * 1.1 (the "License"); you may not use this file except in compliance with
008: * the License. You may obtain a copy of the License at
009: * http://www.mozilla.org/MPL/
010: *
011: * Software distributed under the License is distributed on an "AS IS" basis,
012: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
013: * for the specific language governing rights and limitations under the
014: * License.
015: *
016: * The Original Code is Rhino code, released
017: * May 6, 1999.
018: *
019: * The Initial Developer of the Original Code is
020: * Netscape Communications Corporation.
021: * Portions created by the Initial Developer are Copyright (C) 1997-1999
022: * the Initial Developer. All Rights Reserved.
023: *
024: * Contributor(s):
025: * Norris Boyd
026: *
027: * Alternatively, the contents of this file may be used under the terms of
028: * the GNU General Public License Version 2 or later (the "GPL"), in which
029: * case the provisions of the GPL are applicable instead of those above. If
030: * you wish to allow use of your version of this file only under the terms of
031: * the GPL and not to allow others to use your version of this file under the
032: * MPL, indicate your decision by deleting the provisions above and replacing
033: * them with the notice and other provisions required by the GPL. If you do
034: * not delete the provisions above, a recipient may use your version of this
035: * file under either the MPL or the GPL.
036: *
037: * ***** END LICENSE BLOCK ***** */
038:
039: // API class
040: package org.mozilla.javascript;
041:
042: /**
043: * This is interface defines a protocol for the reporting of
044: * errors during JavaScript translation or execution.
045: *
046: * @author Norris Boyd
047: */
048:
049: public interface ErrorReporter {
050:
051: /**
052: * Report a warning.
053: *
054: * The implementing class may choose to ignore the warning
055: * if it desires.
056: *
057: * @param message a String describing the warning
058: * @param sourceName a String describing the JavaScript source
059: * where the warning occured; typically a filename or URL
060: * @param line the line number associated with the warning
061: * @param lineSource the text of the line (may be null)
062: * @param lineOffset the offset into lineSource where problem was detected
063: */
064: void warning(String message, String sourceName, int line,
065: String lineSource, int lineOffset);
066:
067: /**
068: * Report an error.
069: *
070: * The implementing class is free to throw an exception if
071: * it desires.
072: *
073: * If execution has not yet begun, the JavaScript engine is
074: * free to find additional errors rather than terminating
075: * the translation. It will not execute a script that had
076: * errors, however.
077: *
078: * @param message a String describing the error
079: * @param sourceName a String describing the JavaScript source
080: * where the error occured; typically a filename or URL
081: * @param line the line number associated with the error
082: * @param lineSource the text of the line (may be null)
083: * @param lineOffset the offset into lineSource where problem was detected
084: */
085: void error(String message, String sourceName, int line,
086: String lineSource, int lineOffset);
087:
088: /**
089: * Creates an EvaluatorException that may be thrown.
090: *
091: * runtimeErrors, unlike errors, will always terminate the
092: * current script.
093: *
094: * @param message a String describing the error
095: * @param sourceName a String describing the JavaScript source
096: * where the error occured; typically a filename or URL
097: * @param line the line number associated with the error
098: * @param lineSource the text of the line (may be null)
099: * @param lineOffset the offset into lineSource where problem was detected
100: * @return an EvaluatorException that will be thrown.
101: */
102: EvaluatorException runtimeError(String message, String sourceName,
103: int line, String lineSource, int lineOffset);
104: }
|