1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 package org.codehaus.mojo.javascript.compress;
43
44 import org.mozilla.javascript.ErrorReporter;
45 import org.mozilla.javascript.EvaluatorException;
46
47 public class ErrorReporter4Mojo implements ErrorReporter {
48
49 private String defaultFilename_;
50 private boolean acceptWarn_;
51 private JSCompressorLogger log_;
52 private int warningCnt_;
53 private int errorCnt_;
54
55 public ErrorReporter4Mojo(JSCompressorLogger log, boolean jswarn) {
56 log_ = log;
57 acceptWarn_ = jswarn;
58 }
59
60 public JSCompressorLogger getLogger()
61 {
62 return log_;
63 }
64
65 public void setDefaultFileName(String v) {
66 if (v.length() == 0) {
67 v = null;
68 }
69 defaultFilename_ = v;
70 }
71
72 public int getErrorCnt() {
73 return errorCnt_;
74 }
75
76 public int getWarningCnt() {
77 return warningCnt_;
78 }
79
80 public void error(String message, String sourceName, int line, String lineSource, int lineOffset) {
81 String fullMessage = newMessage(message, sourceName, line, lineSource, lineOffset);
82 log_.error(fullMessage);
83 errorCnt_++;
84 }
85
86 public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource, int lineOffset) {
87 error(message, sourceName, line, lineSource, lineOffset);
88 throw new EvaluatorException(message, sourceName, line, lineSource, lineOffset);
89 }
90
91 public void warning(String message, String sourceName, int line, String lineSource, int lineOffset) {
92 if( message.indexOf("is declared but is apparently never used.") != -1
93 || message.indexOf("Try to use a single 'var' statement per scope.") != -1) return;
94
95 if (acceptWarn_) {
96 String fullMessage = newMessage(message, sourceName, line, lineSource, lineOffset);
97 log_.warn(fullMessage);
98 warningCnt_++;
99 }
100 }
101
102 private String newMessage(String message, String sourceName, int line, String lineSource, int lineOffset) {
103 StringBuilder back = new StringBuilder();
104 if ((sourceName == null) || (sourceName.length() == 0)) {
105 sourceName = defaultFilename_;
106 }
107 if (sourceName != null) {
108 back.append(sourceName)
109 .append(":line ")
110 .append(line)
111 .append(":column ")
112 .append(lineOffset)
113 .append(':')
114 ;
115 }
116 if ((message != null) && (message.length() != 0)) {
117 back.append(message);
118 } else {
119 back.append("unknown error");
120 }
121 if ((lineSource != null) && (lineSource.length() != 0)) {
122 back.append("\n\t")
123 .append(lineSource)
124 ;
125 }
126 return back.toString();
127 }
128
129 }