(function() {
  var CheckstyleReporter, JsLintReporter;

  JsLintReporter = require('./jslint');

  module.exports = CheckstyleReporter = (function() {
    function CheckstyleReporter(errorReport, options) {
      this.errorReport = errorReport;
      if (options == null) {
        options = {};
      }
    }

    CheckstyleReporter.prototype.print = function(message) {
      return console.log(message);
    };

    CheckstyleReporter.prototype.escape = JsLintReporter.prototype.escape;

    CheckstyleReporter.prototype.publish = function() {
      var context, e, errors, i, len, level, path, ref, ref1;
      this.print("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
      this.print("<checkstyle version=\"4.3\">");
      ref = this.errorReport.paths;
      for (path in ref) {
        errors = ref[path];
        if (errors.length) {
          this.print("<file name=\"" + path + "\">");
          for (i = 0, len = errors.length; i < len; i++) {
            e = errors[i];
            level = e.level;
            if (level === 'warn') {
              level = 'warning';
            }
            context = (ref1 = e.context) != null ? ref1 : "";
            this.print("<error line=\"" + e.lineNumber + "\"\n    severity=\"" + (this.escape(level)) + "\"\n    message=\"" + (this.escape(e.message + '; context: ' + context)) + "\"\n    source=\"coffeelint\"/>");
          }
          this.print("</file>");
        }
      }
      return this.print("</checkstyle>");
    };

    return CheckstyleReporter;

  })();

}).call(this);
