View Javadoc

1   package net_alchim31_maven_yuicompressor;
2   
3   import org.apache.maven.plugin.logging.Log;
4   import org.mozilla.javascript.ErrorReporter;
5   import org.mozilla.javascript.EvaluatorException;
6   
7   public class ErrorReporter4Mojo implements ErrorReporter {
8   
9       private String defaultFilename_;
10      private boolean acceptWarn_;
11      private Log log_;
12      private int warningCnt_;
13      private int errorCnt_;
14  
15      public ErrorReporter4Mojo(Log log, boolean jswarn) {
16          log_ = log;
17          acceptWarn_ = jswarn;
18      }
19  
20      public void setDefaultFileName(String v) {
21          if (v.length() == 0) {
22              v = null;
23          }
24          defaultFilename_ = v;
25      }
26  
27      public int getErrorCnt() {
28          return errorCnt_;
29      }
30  
31      public int getWarningCnt() {
32          return warningCnt_;
33      }
34  
35      public void error(String message, String sourceName, int line, String lineSource, int lineOffset) {
36          String fullMessage = newMessage(message, sourceName, line, lineSource, lineOffset);
37          log_.error(fullMessage);
38          errorCnt_++;
39      }
40  
41      public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource, int lineOffset) {
42          error(message, sourceName, line, lineSource, lineOffset);
43          throw new EvaluatorException(message, sourceName, line, lineSource, lineOffset);
44      }
45  
46      public void warning(String message, String sourceName, int line, String lineSource, int lineOffset) {
47          if (acceptWarn_) {
48              String fullMessage = newMessage(message, sourceName, line, lineSource, lineOffset);
49              log_.warn(fullMessage);
50              warningCnt_++;
51          }
52      }
53  
54      private String newMessage(String message, String sourceName, int line, String lineSource, int lineOffset) {
55          StringBuilder back = new StringBuilder();
56          if ((sourceName == null) || (sourceName.length() == 0)) {
57              sourceName = defaultFilename_;
58          }
59          if (sourceName != null) {
60              back.append(sourceName)
61                  .append(":line ")
62                  .append(line)
63                  .append(":column ")
64                  .append(lineOffset)
65                  .append(':')
66                  ;
67          }
68          if ((message != null) && (message.length() != 0)) {
69              back.append(message);
70          } else {
71              back.append("unknown error");
72          }
73          if ((lineSource != null) && (lineSource.length() != 0)) {
74              back.append("\n\t")
75                  .append(lineSource)
76                  ;
77          }
78          return back.toString();
79      }
80  
81  }