Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
   *
   * This Source Code Form is subject to the terms of the Mozilla Public
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
  package org.mozilla.javascript.tools;
  
 
 import java.io.*;
 import java.util.*;

Error reporter for tools. Currently used by both the shell and the compiler.
 
 public class ToolErrorReporter implements ErrorReporter {
 
     public ToolErrorReporter(boolean reportWarnings) {
         this(reportWarnings.);
     }
 
     public ToolErrorReporter(boolean reportWarningsPrintStream err) {
         this. = reportWarnings;
         this. = err;
     }

    
Look up the message corresponding to messageId in the org.mozilla.javascript.tools.shell.resources.Messages property file. For internationalization support.
 
     public static String getMessage(String messageId) {
         return getMessage(messageId, (Object []) null);
     }
 
     public static String getMessage(String messageIdString argument) {
         Object[] args = { argument };
         return getMessage(messageIdargs);
     }
 
     public static String getMessage(String messageIdObject arg1Object arg2)
     {
         Object[] args = { arg1arg2 };
         return getMessage(messageIdargs);
     }
 
     public static String getMessage(String messageIdObject[] args) {
         Context cx = Context.getCurrentContext();
         Locale locale = cx == null ? Locale.getDefault() : cx.getLocale();
 
         // ResourceBundle does caching.
         ResourceBundle rb = ResourceBundle.getBundle
             ("org.mozilla.javascript.tools.resources.Messages"locale);
 
         String formatString;
         try {
             formatString = rb.getString(messageId);
         } catch (java.util.MissingResourceException mre) {
             throw new RuntimeException("no message resource found for message property "
                                        + messageId);
         }
 
         if (args == null) {
             return formatString;
         } else {
             MessageFormat formatter = new MessageFormat(formatString);
             return formatter.format(args);
         }
     }
 
     private static String getExceptionMessage(RhinoException ex)
     {
         String msg;
         if (ex instanceof JavaScriptException) {
             msg = getMessage("msg.uncaughtJSException"ex.details());
         } else if (ex instanceof EcmaError) {
             msg = getMessage("msg.uncaughtEcmaError"ex.details());
         } else if (ex instanceof EvaluatorException) {
             msg = ex.details();
         } else {
             msg = ex.toString();
         }
         return msg;
     }
 
     public void warning(String messageString sourceNameint line,
                         String lineSourceint lineOffset)
     {
         if (!)
             return;
         reportErrorMessage(messagesourceNamelinelineSourcelineOffset,
                            true);
     }
 
     public void error(String messageString sourceNameint line,
                      String lineSourceint lineOffset)
    {
         = true;
        reportErrorMessage(messagesourceNamelinelineSourcelineOffset,
                           false);
    }
    public EvaluatorException runtimeError(String messageString sourceName,
                                           int lineString lineSource,
                                           int lineOffset)
    {
        return new EvaluatorException(messagesourceNameline,
                                      lineSourcelineOffset);
    }
    public boolean hasReportedError() {
        return ;
    }
    public boolean isReportingWarnings() {
        return this.;
    }
    public void setIsReportingWarnings(boolean reportWarnings) {
        this. = reportWarnings;
    }
    public static void reportException(ErrorReporter erRhinoException ex)
    {
        if (er instanceof ToolErrorReporter) {
            ((ToolErrorReporter)er).reportException(ex);
        } else {
            String msg = getExceptionMessage(ex);
            er.error(msgex.sourceName(), ex.lineNumber(),
                     ex.lineSource(), ex.columnNumber());
        }
    }
    public void reportException(RhinoException ex)
    {
        if (ex instanceof WrappedException) {
            WrappedException we = (WrappedException)ex;
            we.printStackTrace();
        } else {
            String lineSeparator =
                SecurityUtilities.getSystemProperty("line.separator");
            String msg = getExceptionMessage(ex) + lineSeparator +
                ex.getScriptStackTrace();
            reportErrorMessage(msgex.sourceName(), ex.lineNumber(),
                               ex.lineSource(), ex.columnNumber(), false);
        }
    }
    private void reportErrorMessage(String messageString sourceNameint line,
                                    String lineSourceint lineOffset,
                                    boolean justWarning)
    {
        if (line > 0) {
            String lineStr = String.valueOf(line);
            if (sourceName != null) {
                Object[] args = { sourceNamelineStrmessage };
                message = getMessage("msg.format3"args);
            } else {
                Object[] args = { lineStrmessage };
                message = getMessage("msg.format2"args);
            }
        } else {
            Object[] args = { message };
            message = getMessage("msg.format1"args);
        }
        if (justWarning) {
            message = getMessage("msg.warning"message);
        }
        .println( + message);
        if (null != lineSource) {
            .println( + lineSource);
            .println( + buildIndicator(lineOffset));
        }
    }
    private String buildIndicator(int offset){
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < offset-1; i++)
            sb.append(".");
        sb.append("^");
        return sb.toString();
    }
    private final static String messagePrefix = "js: ";
    private boolean hasReportedErrorFlag;
    private boolean reportWarnings;
    private PrintStream err;
New to GrepCode? Check out our FAQ X