diff -r a151135b0cf9 -r aa2539c91954 tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/TraceCompilerModelListener.java --- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/TraceCompilerModelListener.java Wed Sep 29 17:45:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: - * - * Model extension listener for console UI - * - */ -package com.nokia.tracecompiler; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; - -import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorMessages; -import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals; -import com.nokia.tracecompiler.engine.TraceLocation; -import com.nokia.tracecompiler.engine.TraceLocationList; -import com.nokia.tracecompiler.engine.TraceLocationListListener; -import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.TraceCompilerErrorCode; -import com.nokia.tracecompiler.model.TraceModelExtension; -import com.nokia.tracecompiler.model.TraceModelExtensionListener; -import com.nokia.tracecompiler.model.TraceModelListener; -import com.nokia.tracecompiler.model.TraceObject; -import com.nokia.tracecompiler.model.TraceProcessingListener; -import com.nokia.tracecompiler.source.SourceConstants; -import com.nokia.tracecompiler.source.SourceLocationListener; - -/** - * Model extension listener for TraceCompiler UI - * - */ -final class TraceCompilerModelListener implements TraceModelListener, - TraceModelExtensionListener, TraceLocationListListener, - SourceLocationListener, TraceProcessingListener { - - /** - * List of errors for a source - */ - private ArrayList errorList = new ArrayList(); - - /** - * Name of the file being processed - */ - private String currentFileName; - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelListener# - * objectAdded(com.nokia.tracecompiler.model.TraceObject, - * com.nokia.tracecompiler.model.TraceObject) - */ - public void objectAdded(TraceObject owner, TraceObject object) { - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelListener# - * objectCreationComplete(com.nokia.tracecompiler.model.TraceObject) - */ - public void objectCreationComplete(TraceObject object) { - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelListener# - * objectRemoved(com.nokia.tracecompiler.model.TraceObject, - * com.nokia.tracecompiler.model.TraceObject) - */ - public void objectRemoved(TraceObject owner, TraceObject object) { - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelListener# - * propertyUpdated(com.nokia.tracecompiler.model.TraceObject, int) - */ - public void propertyUpdated(TraceObject object, int property) { - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelExtensionListener# - * extensionAdded(com.nokia.tracecompiler.model.TraceObject, - * com.nokia.tracecompiler.model.TraceModelExtension) - */ - public void extensionAdded(TraceObject object, TraceModelExtension extension) { - if (extension instanceof TraceLocationList) { - ((TraceLocationList) extension).addLocationListListener(this); - } - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceModelExtensionListener# - * extensionRemoved(com.nokia.tracecompiler.model.TraceObject, - * com.nokia.tracecompiler.model.TraceModelExtension) - */ - public void extensionRemoved(TraceObject object, - TraceModelExtension extension) { - if (extension instanceof TraceLocationList) { - ((TraceLocationList) extension).removeLocationListListener(this); - } - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.source.TraceLocationListListener# - * locationAdded(com.nokia.tracecompiler.engine.TraceLocation) - */ - public void locationAdded(TraceLocation location) { - location.addLocationListener(this); - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.source.TraceLocationListListener# - * locationRemoved(com.nokia.tracecompiler.engine.TraceLocation) - */ - public void locationRemoved(TraceLocation location) { - location.removeLocationListener(this); - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.source.SourceLocationListener# - * locationValidityChanged(com.nokia.tracecompiler.engine.TraceLocation) - */ - public void locationValidityChanged(TraceLocation location) { - String fileName = location.getFileName(); - if (currentFileName != null) { - if (!fileName.equals(currentFileName)) { - currentFileName = fileName; - printLocationErrors(); - } - } else { - currentFileName = fileName; - } - TraceCompilerErrorCode code = location.getValidityCode(); - if (code != TraceCompilerErrorCode.OK - && code != TraceCompilerErrorCode.TRACE_DOES_NOT_EXIST) { - if (!errorList.contains(location)) { - errorList.add(location); - location.reference(); - } - } else { - if (errorList.remove(location)) { - location.dereference(); - } - } - } - - /** - * Prints the errors from the error list - */ - void printLocationErrors() { - Collections.sort(errorList, new Comparator() { - - /** - * Sorts the array by line number - * - * @param o1 - * location 1 - * @param o2 - * location 2 - * @return the result - */ - public int compare(TraceLocation o1, TraceLocation o2) { - int line1 = o1.getLineNumber(); - int line2 = o2.getLineNumber(); - return line1 > line2 ? 1 : line1 == line2 ? 0 : -1; - } - - }); - for (TraceLocation location : errorList) { - printLocationError(location); - } - errorList.clear(); - } - - /** - * Prints a location error - * - * @param location - * the location - */ - private void printLocationError(TraceLocation location) { - TraceCompilerEngineGlobals.getEvents().postErrorMessage( - location.getFileName() - + Messages.getString("TraceCompilerModelListener.lineNumberPrefix") //$NON-NLS-1$ - + location.getLineNumber() - + SourceConstants.COLON - + SourceConstants.SPACE - + TraceCompilerEngineErrorMessages.getErrorMessage( - location.getValidityCode(), location - .getValidityParameters()), null, true); - } - - /** - * get list of cumulated erros. - * - * @return list of TaceLocaion - */ - public ArrayList getErrors() { - return errorList; - } - - /* - * (non-Javadoc) - * - * @see - * com.nokia.tracecompiler.model.TraceProcessingListener#processingComplete - * (boolean) - */ - public void processingComplete(boolean changed) { - printLocationErrors(); - } - - /* - * (non-Javadoc) - * - * @see - * com.nokia.tracecompiler.model.TraceProcessingListener#processingStarted() - */ - public void processingStarted() { - } -} \ No newline at end of file