package com.intellij.flex.compiler; import flash.localization.LocalizationManager; import flex2.compiler.ILocalizableMessage; import flex2.compiler.Logger; public abstract class LoggerAdapter implements Logger { public static final String ERROR_LEVEL = "Error"; public static final String WARNING_LEVEL = "Warning"; public static final String INFO_LEVEL = "Info"; public static final String DEBUG_LEVEL = "Debug"; private int myErrorCount = 0; private int myWarningCount = 0; public abstract void log(final String level, final String path, final int line, final int column, final String message); public int errorCount() { return myErrorCount; } public int warningCount() { return myWarningCount; } public void logInfo(final String info) { log(INFO_LEVEL, null, -1, -1, info); } public void logDebug(final String debug) { log(DEBUG_LEVEL, null, -1, -1, debug); } public void logWarning(final String warning) { myWarningCount++; log(WARNING_LEVEL, null, -1, -1, warning); } public void logError(final String error) { myErrorCount++; log(ERROR_LEVEL, null, -1, -1, error); } public void logInfo(final String path, final String info) { log(INFO_LEVEL, path, -1, -1, info); } public void logDebug(final String path, final String debug) { log(DEBUG_LEVEL, path, -1, -1, debug); } public void logWarning(final String path, final String warning) { myWarningCount++; log(WARNING_LEVEL, path, -1, -1, warning); } public void logWarning(final String path, final String warning, final int errorCode) { myWarningCount++; log(WARNING_LEVEL, path, -1, -1, prependErrorCode(errorCode, warning)); } public void logError(final String path, final String error) { myErrorCount++; log(ERROR_LEVEL, path, -1, -1, error); } public void logError(final String path, final String error, final int errorCode) { myErrorCount++; log(ERROR_LEVEL, path, -1, -1, prependErrorCode(errorCode, error)); } public void logInfo(final String path, final int line, final String info) { log(INFO_LEVEL, path, line, -1, info + ", line: " + line); } public void logDebug(final String path, final int line, final String debug) { log(DEBUG_LEVEL, path, line, -1, debug); } public void logWarning(final String path, final int line, final String warning) { myWarningCount++; log(WARNING_LEVEL, path, line, -1, warning); } public void logWarning(final String path, final int line, final String warning, final int errorCode) { myWarningCount++; log(WARNING_LEVEL, path, line, -1, prependErrorCode(errorCode, warning)); } public void logError(final String path, final int line, final String error) { myErrorCount++; log(ERROR_LEVEL, path, line, -1, error); } public void logError(final String path, final int line, final String error, final int errorCode) { myErrorCount++; log(ERROR_LEVEL, path, line, -1, prependErrorCode(errorCode, error)); } public void logInfo(final String path, final int line, final int col, final String info) { log(INFO_LEVEL, path, line, col, info); } public void logDebug(final String path, final int line, final int col, final String debug) { log(DEBUG_LEVEL, path, line, col, debug); } public void logWarning(final String path, final int line, final int col, final String warning) { myWarningCount++; log(WARNING_LEVEL, path, line, col, warning); } public void logError(final String path, final int line, final int col, final String error) { myErrorCount++; log(ERROR_LEVEL, path, line, col, error); } public void logWarning(final String path, final int line, final int col, final String warning, final String source) { myWarningCount++; log(WARNING_LEVEL, path, line, col, appendSource(warning, source)); } public void logWarning(final String path, final int line, final int col, final String warning, final String source, final int errorCode) { myWarningCount++; log(WARNING_LEVEL, path, line, col, appendSource(prependErrorCode(errorCode, warning), source)); } public void logError(final String path, final int line, final int col, final String error, final String source) { myErrorCount++; log(ERROR_LEVEL, path, line, col, appendSource(error, source)); } public void logError(final String path, final int line, final int col, final String error, final String source, final int errorCode) { myErrorCount++; log(ERROR_LEVEL, path, line, col, appendSource(prependErrorCode(errorCode, error), source)); } public void log(final ILocalizableMessage m) { if (WARNING_LEVEL.equals(m.getLevel())) myWarningCount++; if (ERROR_LEVEL.equals(m.getLevel())) myErrorCount++; log(m.getLevel(), m.getPath(), m.getLine(), m.getColumn(), m.toString()); } public void log(final ILocalizableMessage m, final String source) { if (WARNING_LEVEL.equals(m.getLevel())) myWarningCount++; if (ERROR_LEVEL.equals(m.getLevel())) myErrorCount++; log(m.getLevel(), m.getPath(), m.getLine(), m.getColumn(), appendSource(m.toString(), source)); } public void needsCompilation(final String path, final String reason) { log(INFO_LEVEL, path, -1, -1, "Needs compilation, reason: " + reason); } public void includedFileUpdated(final String path) { log(INFO_LEVEL, path, -1, -1, "Included file updated"); } public void includedFileAffected(final String path) { log(INFO_LEVEL, path, -1, -1, "Included file affected"); } public void setLocalizationManager(final LocalizationManager mgr) { } private static String prependErrorCode(final int errorCode, final String message) { return "Error code: " + errorCode + ": " + message; } private static String appendSource(final String message, final String source) { // return message + ", source" + source; return message; // source code in compiler output gives only noise and no useful information } }