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: // <netbeans>
067: // @param id A unique id for each type of error message,
068: // which can be used to for example quickly dispatch
069: // to error-specific handlers
070: // @param params A value or array of values that are specific
071: // for each error.
072: , String id, Object params
073: // </netbeans>
074: );
075:
076: /**
077: * Report an error.
078: *
079: * The implementing class is free to throw an exception if
080: * it desires.
081: *
082: * If execution has not yet begun, the JavaScript engine is
083: * free to find additional errors rather than terminating
084: * the translation. It will not execute a script that had
085: * errors, however.
086: *
087: * @param message a String describing the error
088: * @param sourceName a String describing the JavaScript source
089: * where the error occured; typically a filename or URL
090: * @param line the line number associated with the error
091: * @param lineSource the text of the line (may be null)
092: * @param lineOffset the offset into lineSource where problem was detected
093: */
094: void error(String message, String sourceName, int line,
095: String lineSource, int lineOffset
096: // <netbeans>
097: // @param id A unique id for each type of error message,
098: // which can be used to for example quickly dispatch
099: // to error-specific handlers
100: // @param params A value or array of values that are specific
101: // for each error.
102: , String id, Object params
103: // </netbeans>
104: );
105:
106: /**
107: * Creates an EvaluatorException that may be thrown.
108: *
109: * runtimeErrors, unlike errors, will always terminate the
110: * current script.
111: *
112: * @param message a String describing the error
113: * @param sourceName a String describing the JavaScript source
114: * where the error occured; typically a filename or URL
115: * @param line the line number associated with the error
116: * @param lineSource the text of the line (may be null)
117: * @param lineOffset the offset into lineSource where problem was detected
118: * @return an EvaluatorException that will be thrown.
119: */
120: EvaluatorException runtimeError(String message, String sourceName,
121: int line, String lineSource, int lineOffset);
122: }
|