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 }