tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineErrorMessages.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineErrorMessages.java Fri Oct 08 14:56:39 2010 +0300
@@ -0,0 +1,722 @@
+/*
+ * Copyright (c) 2008 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:
+ *
+ * Error code to error message mapper
+ *
+ */
+package com.nokia.tracecompiler.engine;
+
+import java.io.File;
+
+import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.FileErrorParameters;
+import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.RangeErrorParameters;
+import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.StringErrorParameters;
+import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.TraceCompilerErrorCode;
+import com.nokia.tracecompiler.model.TraceCompilerErrorParameters;
+import com.nokia.tracecompiler.model.TraceCompilerException;
+import com.nokia.tracecompiler.source.SourceConstants;
+import com.nokia.tracecompiler.source.SourceUtils;
+
+/**
+ * Error code to error message mapper
+ *
+ */
+public final class TraceCompilerEngineErrorMessages {
+
+ /**
+ * Maps an exception to error message
+ *
+ * @param e
+ * the exception
+ * @return the message
+ */
+ public static String getErrorMessage(TraceCompilerException e) {
+ return TraceCompilerEngineErrorMessages.getErrorMessage(
+ (TraceCompilerErrorCode) e.getErrorCode(), e
+ .getErrorParameters());
+ }
+
+ /**
+ * Maps error code to error message
+ *
+ * @param error
+ * the error code
+ * @param parameters
+ * the parameters of the error
+ * @return the message
+ */
+ public static String getErrorMessage(TraceCompilerErrorCode error,
+ TraceCompilerErrorParameters parameters) {
+ // CodForChk_Dis_LengthyFunc
+ // CodForChk_Dis_ComplexFunc
+ String s;
+ StringBuffer sb = new StringBuffer();
+ switch (error) {
+ case DUPLICATE_GROUP_ID:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.DuplicateGroupID")); //$NON-NLS-1$
+ break;
+ case DUPLICATE_GROUP_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.DuplicateGroupName")); //$NON-NLS-1$
+ break;
+ case DUPLICATE_TRACE_ID:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.DuplicateTraceID")); //$NON-NLS-1$
+ break;
+ case DUPLICATE_TRACE_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.DuplicateTraceName")); //$NON-NLS-1$
+ break;
+ case DUPLICATE_PARAMETER_ID:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateParameterID"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case DUPLICATE_CONSTANT_VALUE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateConstantValue"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case DUPLICATE_CONSTANT_ID:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateConstantID"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case DUPLICATE_CONSTANT_TABLE_NAME:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateConstantTableName"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case DUPLICATE_CONSTANT_TABLE_ID:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateConstantTableID"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case DUPLICATE_PARAMETER_NAME:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.DuplicateParameterName"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_GROUP_ID:
+ createInvalidGroupIDMessage(parameters, sb);
+ break;
+ case INVALID_TRACE_ID:
+ createInvalidTraceIDMessage(parameters, sb);
+ break;
+ case INVALID_MODEL_PROPERTIES_FOR_EXPORT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidModelPropertiesForExport"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_MODEL_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidProjectName")); //$NON-NLS-1$
+ break;
+ case INVALID_GROUP_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidGroupName")); //$NON-NLS-1$
+ break;
+ case INVALID_TRACE_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceName")); //$NON-NLS-1$
+ break;
+ case INVALID_PARAMETER_NAME:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidParameterName"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case EMPTY_PARAMETER_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.EmptyParameterName")); //$NON-NLS-1$
+ break;
+ case INVALID_CONSTANT_TABLE_NAME:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidConstantTableName"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CONSTANT_TABLE_NOT_PART_OF_PROJECT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ConstantTableNotPartOfProject"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_TRACE_DATA:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceData")); //$NON-NLS-1$
+ break;
+ case INVALID_PARAMETER_TYPE:
+ createInvalidParameterTypeMessage(parameters, sb);
+ break;
+ case INVALID_CONSTANT_VALUE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidConstantValue"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case SOURCE_NOT_EDITABLE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.SourceNotEditable"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_SOURCE_LOCATION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidSourceLocation"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case UNREACHABLE_TRACE_LOCATION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.UnreachableTraceLocation"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_PROJECT_FILE:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceFile")); //$NON-NLS-1$
+ break;
+ case FILE_NOT_FOUND:
+ createFileNotFoundMessage((FileErrorParameters) parameters, sb);
+ break;
+ case INVALID_PATH:
+ createInvalidPathMessage((FileErrorParameters) parameters, sb);
+ break;
+ case SOURCE_NOT_OPEN:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.SourceNotOpen")); //$NON-NLS-1$
+ break;
+ case CANNOT_OPEN_PROJECT_FILE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotOpenProjectFile"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CANNOT_WRITE_PROJECT_FILE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotWriteProjectFile"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_FORMAT_MISMATCH:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatMismatch"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case GROUP_NOT_SELECTED:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.GroupNotSelected")); //$NON-NLS-1$
+ break;
+ case TRACE_NOT_SELECTED:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.TraceNotSelected")); //$NON-NLS-1$
+ break;
+ case CONSTANT_TABLE_NOT_SELECTED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ConstantTableNotSelected"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case LOCATION_NOT_SELECTED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceLocationNotSelected"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CANNOT_DELETE_SELECTED_OBJECT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotDeleteSelectedObject"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case MODEL_NOT_READY:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceProjectNotOpen"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_TRACE_GROUPS:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.NoTraceGroups")); //$NON-NLS-1$
+ break;
+ case NOT_ENOUGH_PARAMETERS:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NotEnoughParameters"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_ADD_NOT_ALLOWED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterAddNotAllowed"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_REMOVE_NOT_ALLOWED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterRemoveNotAllowed"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_TEMPLATE_ALREADY_IN_USE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterTemplateInUse"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CONSTANT_TABLE_PARSE_FAILED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ConstantTableParseFailed"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case UNEXPECTED_EXCEPTION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.UnexpectedException"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case TRACE_NAME_FORMAT_MISSING_FUNCTION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NameFormatMissingFunction"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_TRACE_TEXT_FORMAT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceTextFormat"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_TRACE_NAME_FORMAT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceNameFormat"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_FUNCTIONS_TO_INSTRUMENT_WITH_TEMPLATE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NoFunctionsToInstrumentPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NoFunctionsToInstrumentPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_FUNCTIONS_TO_INSTRUMENT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NoFunctionsToInstrument"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case MULTIPLE_ERRORS_IN_OPERATION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.MultipleErrorsInOperation"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_TRACES_TO_DELETE:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.NoTracesToDelete")); //$NON-NLS-1$
+ break;
+ case TRACE_DOES_NOT_EXIST:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceDoesNotExist"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case TRACE_NEEDS_CONVERSION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceNeedsConversionPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_COUNT_MISMATCH:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterCountMismatch"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_COUNT_DOES_NOT_MATCH_API:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterCountDoesNotMatchApi"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case TRACE_HAS_NO_LOCATIONS:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceHasNoLocations"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case TRACE_HAS_MULTIPLE_LOCATIONS:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.TraceHasMultipleLocations"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case LOCATION_PARSER_FAILED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.LocationCouldNotBeParsed"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_TRACES_TO_EXPORT:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NoTracesToExport"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CANNOT_OPEN_SOURCE_FILE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotOpenSourceFile"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CANNOT_UPDATE_TRACE_INTO_SOURCE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotUpdateTraceIntoSource"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PARAMETER_FORMAT_NOT_SUPPORTED:
+ createParameterFormatNotSupportedMessage(parameters, sb);
+ break;
+ case PARAMETER_FORMAT_NEEDS_EXT_MACRO:
+ createParameterFormatNotSupportedInMacroMessage(parameters, sb);
+ break;
+ case PARAMETER_FORMAT_NOT_SUPPORTED_IN_ARRAY:
+ createParameterFormatNotSupportedInArrayMessage(parameters, sb);
+ break;
+ case PARAMETER_FORMAT_UNNECESSARY_EXT_MACRO:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatUnnecessaryExtMacro"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PROPERTY_FILE_ELEMENT_NOT_SUPPORTED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileElementNotSupportedPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileElementNotSupportedPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ break;
+ case PROPERTY_FILE_ELEMENT_MISPLACED:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileElementMisplacedPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileElementMisplacedPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case PROPERTY_FILE_ATTRIBUTE_INVALID:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileAttributeInvalidPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.PropertyFileAttributeInvalidPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INSERT_TRACE_DOES_NOT_WORK:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InsertTraceDoesNotWork"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case NO_CONTEXT_FOR_LOCATION:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.NoContextForLocation"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case CANNOT_PARSE_FUNCTION_PARAMETERS:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.CannotParseFunctionParameters"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case INVALID_PARAMETER_NAME_IN_RETURN_VALUE:
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidParameterNameInReturnValue"); //$NON-NLS-1$
+ sb.append(s);
+ break;
+ case RUN_OUT_OF_GROUP_IDS:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.RunOutOfGroupIDs")); //$NON-NLS-1$
+ break;
+ case RUN_OUT_OF_TRACE_IDS:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.RunOutOfTraceIDs")); //$NON-NLS-1$
+ break;
+ case VAR_ARG_LIST_PARAMETER_FOUND:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.VarArgListParameterFound")); //$NON-NLS-1$
+ break;
+ case INVALID_USAGE_OF_TRACE_STATE_GROUP_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidUsageOfTraceStateGroupName")); //$NON-NLS-1$
+ break;
+ case INVALID_USAGE_OF_TRACE_PERFORMACE_GROUP_NAME:
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidUsageOfTracePerformanceGroupName")); //$NON-NLS-1$
+ break;
+ default:
+ break;
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Creates invalid parameter type message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createInvalidParameterTypeMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof StringErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidParameterTypePrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ String format = SourceUtils
+ .mapNormalTypeToFormat(((StringErrorParameters) parameters).string);
+ if (format != null) {
+ sb.append(" "); //$NON-NLS-1$
+ sb.append(format);
+ }
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidParameterTypePostfix"); //$NON-NLS-1$
+ sb.append(s);
+ } else {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidParameterType"); //$NON-NLS-1$
+ sb.append(s);
+ }
+ }
+
+ /**
+ * Creates parameter format not supported message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createParameterFormatNotSupportedMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof StringErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ } else {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupported"); //$NON-NLS-1$
+ sb.append(s);
+ }
+ }
+
+ /**
+ * Creates parameter not supported in macro message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createParameterFormatNotSupportedInMacroMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof StringErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacroPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacroPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ } else {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacro"); //$NON-NLS-1$
+ sb.append(s);
+ }
+ }
+
+ /**
+ * Creates parameter not supported in array message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createParameterFormatNotSupportedInArrayMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof StringErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArrayPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ sb.append(((StringErrorParameters) parameters).string);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArrayPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
+ sb.append(s);
+ } else {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArray"); //$NON-NLS-1$
+ sb.append(s);
+ }
+ }
+
+ /**
+ * Creates invalid trace ID message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createInvalidTraceIDMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof RangeErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceIDStart"); //$NON-NLS-1$
+ sb.append(s);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceIDMiddle"); //$NON-NLS-1$
+ addRangeParameter((RangeErrorParameters) parameters, sb, s);
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceIDEnd")); //$NON-NLS-1$
+ } else {
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidTraceID")); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Creates invalid group ID message
+ *
+ * @param parameters
+ * the parameters
+ * @param sb
+ * the message buffer
+ */
+ private static void createInvalidGroupIDMessage(
+ TraceCompilerErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters instanceof RangeErrorParameters) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidGroupIDStart"); //$NON-NLS-1$
+ sb.append(s);
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidGroupIDMiddle"); //$NON-NLS-1$
+ addRangeParameter((RangeErrorParameters) parameters, sb, s);
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidGroupIDEnd")); //$NON-NLS-1$
+ } else {
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidGroupID")); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Adds a range parameter to error buffer
+ *
+ * @param parameters
+ * the range
+ * @param sb
+ * the buffer
+ * @param middleText
+ * the text between the range
+ */
+ private static void addRangeParameter(RangeErrorParameters parameters,
+ StringBuffer sb, String middleText) {
+ if (parameters.isHex) {
+ sb.append(SourceConstants.HEX_PREFIX);
+ sb.append(Integer.toHexString(parameters.start));
+ } else {
+ sb.append(parameters.start);
+ }
+ sb.append(middleText);
+ if (parameters.isHex) {
+ sb.append(SourceConstants.HEX_PREFIX);
+ sb.append(Integer.toHexString(parameters.end));
+ } else {
+ sb.append(parameters.end);
+ }
+ }
+
+ /**
+ * Creates "Invalid directory" message
+ *
+ * @param parameters
+ * the message parameters
+ * @param sb
+ * the string buffer where the message is stored
+ */
+ private static void createInvalidPathMessage(
+ FileErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters != null) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidDirectoryPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(convertPath(parameters.file));
+ s = Messages
+ .getString("TraceCompilerErrorMessages.InvalidDirectoryPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ } else {
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.InvalidDirectory")); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Creates "File not found" message
+ *
+ * @param parameters
+ * the message parameters
+ * @param sb
+ * the string buffer where the message is stored
+ */
+ private static void createFileNotFoundMessage(
+ FileErrorParameters parameters, StringBuffer sb) {
+ String s;
+ if (parameters != null) {
+ s = Messages
+ .getString("TraceCompilerErrorMessages.FileDoesNotExistPrefix"); //$NON-NLS-1$
+ sb.append(s);
+ sb.append(convertPath(parameters.file));
+ s = Messages
+ .getString("TraceCompilerErrorMessages.FileDoesNotExistPostfix"); //$NON-NLS-1$
+ sb.append(s);
+ } else {
+ sb.append(Messages
+ .getString("TraceCompilerErrorMessages.FileDoesNotExist")); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * Adds some spaces to path string to allow folding
+ *
+ * @param path
+ * the path
+ * @return the converted path
+ */
+ public static String convertPath(String path) {
+ StringBuffer sb = new StringBuffer();
+ int strIndex = -1;
+ do {
+ strIndex++;
+ int lastIndex = strIndex;
+ strIndex = path.indexOf(File.separatorChar, strIndex);
+ if (strIndex != -1) {
+ String sub = path.substring(lastIndex, strIndex);
+ if (sub.length() > 0) {
+ sb.append(sub);
+ sb.append(' ');
+ sb.append(File.separatorChar);
+ sb.append(' ');
+ }
+ } else {
+ // If the data ends with file separator, lastIndex points to
+ // end-of-data. If not, the rest of the data is appended without
+ // further white spaces
+ if (lastIndex < path.length()) {
+ String sub = path.substring(lastIndex);
+ sb.append(sub);
+ }
+ }
+ } while (strIndex != -1);
+ return sb.toString();
+ }
+
+}