tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineErrorMessages.java
branchRCL_3
changeset 20 ca8a1b6995f6
equal deleted inserted replaced
19:07b41fa8d1dd 20:ca8a1b6995f6
       
     1 /*
       
     2  * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:
       
    15  *
       
    16  * Error code to error message mapper
       
    17  *
       
    18  */
       
    19 package com.nokia.tracecompiler.engine;
       
    20 
       
    21 import java.io.File;
       
    22 
       
    23 import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.FileErrorParameters;
       
    24 import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.RangeErrorParameters;
       
    25 import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.StringErrorParameters;
       
    26 import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.TraceCompilerErrorCode;
       
    27 import com.nokia.tracecompiler.model.TraceCompilerErrorParameters;
       
    28 import com.nokia.tracecompiler.model.TraceCompilerException;
       
    29 import com.nokia.tracecompiler.source.SourceConstants;
       
    30 import com.nokia.tracecompiler.source.SourceUtils;
       
    31 
       
    32 /**
       
    33  * Error code to error message mapper
       
    34  * 
       
    35  */
       
    36 public final class TraceCompilerEngineErrorMessages {
       
    37 
       
    38 	/**
       
    39 	 * Maps an exception to error message
       
    40 	 * 
       
    41 	 * @param e
       
    42 	 *            the exception
       
    43 	 * @return the message
       
    44 	 */
       
    45 	public static String getErrorMessage(TraceCompilerException e) {
       
    46 		return TraceCompilerEngineErrorMessages.getErrorMessage(
       
    47 				(TraceCompilerErrorCode) e.getErrorCode(), e
       
    48 						.getErrorParameters());
       
    49 	}
       
    50 
       
    51 	/**
       
    52 	 * Maps error code to error message
       
    53 	 * 
       
    54 	 * @param error
       
    55 	 *            the error code
       
    56 	 * @param parameters
       
    57 	 *            the parameters of the error
       
    58 	 * @return the message
       
    59 	 */
       
    60 	public static String getErrorMessage(TraceCompilerErrorCode error,
       
    61 			TraceCompilerErrorParameters parameters) {
       
    62 		// CodForChk_Dis_LengthyFunc
       
    63 		// CodForChk_Dis_ComplexFunc
       
    64 		String s;
       
    65 		StringBuffer sb = new StringBuffer();
       
    66 		switch (error) {
       
    67 		case DUPLICATE_GROUP_ID:
       
    68 			sb.append(Messages
       
    69 					.getString("TraceCompilerErrorMessages.DuplicateGroupID")); //$NON-NLS-1$
       
    70 			break;
       
    71 		case DUPLICATE_GROUP_NAME:
       
    72 			sb.append(Messages
       
    73 					.getString("TraceCompilerErrorMessages.DuplicateGroupName")); //$NON-NLS-1$
       
    74 			break;
       
    75 		case DUPLICATE_TRACE_ID:
       
    76 			sb.append(Messages
       
    77 					.getString("TraceCompilerErrorMessages.DuplicateTraceID")); //$NON-NLS-1$
       
    78 			break;
       
    79 		case DUPLICATE_TRACE_NAME:
       
    80 			sb.append(Messages
       
    81 					.getString("TraceCompilerErrorMessages.DuplicateTraceName")); //$NON-NLS-1$
       
    82 			break;
       
    83 		case DUPLICATE_PARAMETER_ID:
       
    84 			s = Messages
       
    85 					.getString("TraceCompilerErrorMessages.DuplicateParameterID"); //$NON-NLS-1$
       
    86 			sb.append(s);
       
    87 			break;
       
    88 		case DUPLICATE_CONSTANT_VALUE:
       
    89 			s = Messages
       
    90 					.getString("TraceCompilerErrorMessages.DuplicateConstantValue"); //$NON-NLS-1$
       
    91 			sb.append(s);
       
    92 			break;
       
    93 		case DUPLICATE_CONSTANT_ID:
       
    94 			s = Messages
       
    95 					.getString("TraceCompilerErrorMessages.DuplicateConstantID"); //$NON-NLS-1$
       
    96 			sb.append(s);
       
    97 			break;
       
    98 		case DUPLICATE_CONSTANT_TABLE_NAME:
       
    99 			s = Messages
       
   100 					.getString("TraceCompilerErrorMessages.DuplicateConstantTableName"); //$NON-NLS-1$
       
   101 			sb.append(s);
       
   102 			break;
       
   103 		case DUPLICATE_CONSTANT_TABLE_ID:
       
   104 			s = Messages
       
   105 					.getString("TraceCompilerErrorMessages.DuplicateConstantTableID"); //$NON-NLS-1$
       
   106 			sb.append(s);
       
   107 			break;
       
   108 		case DUPLICATE_PARAMETER_NAME:
       
   109 			s = Messages
       
   110 					.getString("TraceCompilerErrorMessages.DuplicateParameterName"); //$NON-NLS-1$
       
   111 			sb.append(s);
       
   112 			break;
       
   113 		case INVALID_GROUP_ID:
       
   114 			createInvalidGroupIDMessage(parameters, sb);
       
   115 			break;
       
   116 		case INVALID_TRACE_ID:
       
   117 			createInvalidTraceIDMessage(parameters, sb);
       
   118 			break;
       
   119 		case INVALID_MODEL_PROPERTIES_FOR_EXPORT:
       
   120 			s = Messages
       
   121 					.getString("TraceCompilerErrorMessages.InvalidModelPropertiesForExport"); //$NON-NLS-1$
       
   122 			sb.append(s);
       
   123 			break;
       
   124 		case INVALID_MODEL_NAME:
       
   125 			sb.append(Messages
       
   126 					.getString("TraceCompilerErrorMessages.InvalidProjectName")); //$NON-NLS-1$
       
   127 			break;
       
   128 		case INVALID_GROUP_NAME:
       
   129 			sb.append(Messages
       
   130 					.getString("TraceCompilerErrorMessages.InvalidGroupName")); //$NON-NLS-1$
       
   131 			break;
       
   132 		case INVALID_TRACE_NAME:
       
   133 			sb.append(Messages
       
   134 					.getString("TraceCompilerErrorMessages.InvalidTraceName")); //$NON-NLS-1$
       
   135 			break;
       
   136 		case INVALID_PARAMETER_NAME:
       
   137 			s = Messages
       
   138 					.getString("TraceCompilerErrorMessages.InvalidParameterName"); //$NON-NLS-1$
       
   139 			sb.append(s);
       
   140 			break;
       
   141 		case EMPTY_PARAMETER_NAME:
       
   142 			sb.append(Messages
       
   143 					.getString("TraceCompilerErrorMessages.EmptyParameterName")); //$NON-NLS-1$
       
   144 			break;
       
   145 		case INVALID_CONSTANT_TABLE_NAME:
       
   146 			s = Messages
       
   147 					.getString("TraceCompilerErrorMessages.InvalidConstantTableName"); //$NON-NLS-1$
       
   148 			sb.append(s);
       
   149 			break;
       
   150 		case CONSTANT_TABLE_NOT_PART_OF_PROJECT:
       
   151 			s = Messages
       
   152 					.getString("TraceCompilerErrorMessages.ConstantTableNotPartOfProject"); //$NON-NLS-1$
       
   153 			sb.append(s);
       
   154 			break;
       
   155 		case INVALID_TRACE_DATA:
       
   156 			sb.append(Messages
       
   157 					.getString("TraceCompilerErrorMessages.InvalidTraceData")); //$NON-NLS-1$
       
   158 			break;
       
   159 		case INVALID_PARAMETER_TYPE:
       
   160 			createInvalidParameterTypeMessage(parameters, sb);
       
   161 			break;
       
   162 		case INVALID_CONSTANT_VALUE:
       
   163 			s = Messages
       
   164 					.getString("TraceCompilerErrorMessages.InvalidConstantValue"); //$NON-NLS-1$
       
   165 			sb.append(s);
       
   166 			break;
       
   167 		case SOURCE_NOT_EDITABLE:
       
   168 			s = Messages
       
   169 					.getString("TraceCompilerErrorMessages.SourceNotEditable"); //$NON-NLS-1$
       
   170 			sb.append(s);
       
   171 			break;
       
   172 		case INVALID_SOURCE_LOCATION:
       
   173 			s = Messages
       
   174 					.getString("TraceCompilerErrorMessages.InvalidSourceLocation"); //$NON-NLS-1$
       
   175 			sb.append(s);
       
   176 			break;
       
   177 		case UNREACHABLE_TRACE_LOCATION:
       
   178 			s = Messages
       
   179 					.getString("TraceCompilerErrorMessages.UnreachableTraceLocation"); //$NON-NLS-1$
       
   180 			sb.append(s);
       
   181 			break;
       
   182 		case INVALID_PROJECT_FILE:
       
   183 			sb.append(Messages
       
   184 					.getString("TraceCompilerErrorMessages.InvalidTraceFile")); //$NON-NLS-1$
       
   185 			break;
       
   186 		case FILE_NOT_FOUND:
       
   187 			createFileNotFoundMessage((FileErrorParameters) parameters, sb);
       
   188 			break;
       
   189 		case INVALID_PATH:
       
   190 			createInvalidPathMessage((FileErrorParameters) parameters, sb);
       
   191 			break;
       
   192 		case SOURCE_NOT_OPEN:
       
   193 			sb.append(Messages
       
   194 					.getString("TraceCompilerErrorMessages.SourceNotOpen")); //$NON-NLS-1$
       
   195 			break;
       
   196 		case CANNOT_OPEN_PROJECT_FILE:
       
   197 			s = Messages
       
   198 					.getString("TraceCompilerErrorMessages.CannotOpenProjectFile"); //$NON-NLS-1$
       
   199 			sb.append(s);
       
   200 			break;
       
   201 		case CANNOT_WRITE_PROJECT_FILE:
       
   202 			s = Messages
       
   203 					.getString("TraceCompilerErrorMessages.CannotWriteProjectFile"); //$NON-NLS-1$
       
   204 			sb.append(s);
       
   205 			break;
       
   206 		case PARAMETER_FORMAT_MISMATCH:
       
   207 			s = Messages
       
   208 					.getString("TraceCompilerErrorMessages.ParameterFormatMismatch"); //$NON-NLS-1$
       
   209 			sb.append(s);
       
   210 			break;
       
   211 		case GROUP_NOT_SELECTED:
       
   212 			sb.append(Messages
       
   213 					.getString("TraceCompilerErrorMessages.GroupNotSelected")); //$NON-NLS-1$
       
   214 			break;
       
   215 		case TRACE_NOT_SELECTED:
       
   216 			sb.append(Messages
       
   217 					.getString("TraceCompilerErrorMessages.TraceNotSelected")); //$NON-NLS-1$
       
   218 			break;
       
   219 		case CONSTANT_TABLE_NOT_SELECTED:
       
   220 			s = Messages
       
   221 					.getString("TraceCompilerErrorMessages.ConstantTableNotSelected"); //$NON-NLS-1$
       
   222 			sb.append(s);
       
   223 			break;
       
   224 		case LOCATION_NOT_SELECTED:
       
   225 			s = Messages
       
   226 					.getString("TraceCompilerErrorMessages.TraceLocationNotSelected"); //$NON-NLS-1$
       
   227 			sb.append(s);
       
   228 			break;
       
   229 		case CANNOT_DELETE_SELECTED_OBJECT:
       
   230 			s = Messages
       
   231 					.getString("TraceCompilerErrorMessages.CannotDeleteSelectedObject"); //$NON-NLS-1$
       
   232 			sb.append(s);
       
   233 			break;
       
   234 		case MODEL_NOT_READY:
       
   235 			s = Messages
       
   236 					.getString("TraceCompilerErrorMessages.TraceProjectNotOpen"); //$NON-NLS-1$
       
   237 			sb.append(s);
       
   238 			break;
       
   239 		case NO_TRACE_GROUPS:
       
   240 			sb.append(Messages
       
   241 					.getString("TraceCompilerErrorMessages.NoTraceGroups")); //$NON-NLS-1$
       
   242 			break;
       
   243 		case NOT_ENOUGH_PARAMETERS:
       
   244 			s = Messages
       
   245 					.getString("TraceCompilerErrorMessages.NotEnoughParameters"); //$NON-NLS-1$
       
   246 			sb.append(s);
       
   247 			break;
       
   248 		case PARAMETER_ADD_NOT_ALLOWED:
       
   249 			s = Messages
       
   250 					.getString("TraceCompilerErrorMessages.ParameterAddNotAllowed"); //$NON-NLS-1$
       
   251 			sb.append(s);
       
   252 			break;
       
   253 		case PARAMETER_REMOVE_NOT_ALLOWED:
       
   254 			s = Messages
       
   255 					.getString("TraceCompilerErrorMessages.ParameterRemoveNotAllowed"); //$NON-NLS-1$
       
   256 			sb.append(s);
       
   257 			break;
       
   258 		case PARAMETER_TEMPLATE_ALREADY_IN_USE:
       
   259 			s = Messages
       
   260 					.getString("TraceCompilerErrorMessages.ParameterTemplateInUse"); //$NON-NLS-1$
       
   261 			sb.append(s);
       
   262 			break;
       
   263 		case CONSTANT_TABLE_PARSE_FAILED:
       
   264 			s = Messages
       
   265 					.getString("TraceCompilerErrorMessages.ConstantTableParseFailed"); //$NON-NLS-1$
       
   266 			sb.append(s);
       
   267 			break;
       
   268 		case UNEXPECTED_EXCEPTION:
       
   269 			s = Messages
       
   270 					.getString("TraceCompilerErrorMessages.UnexpectedException"); //$NON-NLS-1$
       
   271 			sb.append(s);
       
   272 			break;
       
   273 		case TRACE_NAME_FORMAT_MISSING_FUNCTION:
       
   274 			s = Messages
       
   275 					.getString("TraceCompilerErrorMessages.NameFormatMissingFunction"); //$NON-NLS-1$
       
   276 			sb.append(s);
       
   277 			break;
       
   278 		case INVALID_TRACE_TEXT_FORMAT:
       
   279 			s = Messages
       
   280 					.getString("TraceCompilerErrorMessages.InvalidTraceTextFormat"); //$NON-NLS-1$
       
   281 			sb.append(s);
       
   282 			break;
       
   283 		case INVALID_TRACE_NAME_FORMAT:
       
   284 			s = Messages
       
   285 					.getString("TraceCompilerErrorMessages.InvalidTraceNameFormat"); //$NON-NLS-1$
       
   286 			sb.append(s);
       
   287 			break;
       
   288 		case NO_FUNCTIONS_TO_INSTRUMENT_WITH_TEMPLATE:
       
   289 			s = Messages
       
   290 					.getString("TraceCompilerErrorMessages.NoFunctionsToInstrumentPrefix"); //$NON-NLS-1$
       
   291 			sb.append(s);
       
   292 			sb.append(((StringErrorParameters) parameters).string);
       
   293 			s = Messages
       
   294 					.getString("TraceCompilerErrorMessages.NoFunctionsToInstrumentPostfix"); //$NON-NLS-1$
       
   295 			sb.append(s);
       
   296 			break;
       
   297 		case NO_FUNCTIONS_TO_INSTRUMENT:
       
   298 			s = Messages
       
   299 					.getString("TraceCompilerErrorMessages.NoFunctionsToInstrument"); //$NON-NLS-1$
       
   300 			sb.append(s);
       
   301 			break;
       
   302 		case MULTIPLE_ERRORS_IN_OPERATION:
       
   303 			s = Messages
       
   304 					.getString("TraceCompilerErrorMessages.MultipleErrorsInOperation"); //$NON-NLS-1$
       
   305 			sb.append(s);
       
   306 			break;
       
   307 		case NO_TRACES_TO_DELETE:
       
   308 			sb.append(Messages
       
   309 					.getString("TraceCompilerErrorMessages.NoTracesToDelete")); //$NON-NLS-1$
       
   310 			break;
       
   311 		case TRACE_DOES_NOT_EXIST:
       
   312 			s = Messages
       
   313 					.getString("TraceCompilerErrorMessages.TraceDoesNotExist"); //$NON-NLS-1$
       
   314 			sb.append(s);
       
   315 			break;
       
   316 		case TRACE_NEEDS_CONVERSION:
       
   317 			s = Messages
       
   318 					.getString("TraceCompilerErrorMessages.TraceNeedsConversionPrefix"); //$NON-NLS-1$
       
   319 			sb.append(s);
       
   320 			break;
       
   321 		case PARAMETER_COUNT_MISMATCH:
       
   322 			s = Messages
       
   323 					.getString("TraceCompilerErrorMessages.ParameterCountMismatch"); //$NON-NLS-1$
       
   324 			sb.append(s);
       
   325 			break;
       
   326 		case PARAMETER_COUNT_DOES_NOT_MATCH_API:
       
   327 			s = Messages
       
   328 					.getString("TraceCompilerErrorMessages.ParameterCountDoesNotMatchApi"); //$NON-NLS-1$
       
   329 			sb.append(s);
       
   330 			break;
       
   331 		case TRACE_HAS_NO_LOCATIONS:
       
   332 			s = Messages
       
   333 					.getString("TraceCompilerErrorMessages.TraceHasNoLocations"); //$NON-NLS-1$
       
   334 			sb.append(s);
       
   335 			break;
       
   336 		case TRACE_HAS_MULTIPLE_LOCATIONS:
       
   337 			s = Messages
       
   338 					.getString("TraceCompilerErrorMessages.TraceHasMultipleLocations"); //$NON-NLS-1$
       
   339 			sb.append(s);
       
   340 			break;
       
   341 		case LOCATION_PARSER_FAILED:
       
   342 			s = Messages
       
   343 					.getString("TraceCompilerErrorMessages.LocationCouldNotBeParsed"); //$NON-NLS-1$
       
   344 			sb.append(s);
       
   345 			break;
       
   346 		case NO_TRACES_TO_EXPORT:
       
   347 			s = Messages
       
   348 					.getString("TraceCompilerErrorMessages.NoTracesToExport"); //$NON-NLS-1$
       
   349 			sb.append(s);
       
   350 			break;
       
   351 		case CANNOT_OPEN_SOURCE_FILE:
       
   352 			s = Messages
       
   353 					.getString("TraceCompilerErrorMessages.CannotOpenSourceFile"); //$NON-NLS-1$
       
   354 			sb.append(s);
       
   355 			break;
       
   356 		case CANNOT_UPDATE_TRACE_INTO_SOURCE:
       
   357 			s = Messages
       
   358 					.getString("TraceCompilerErrorMessages.CannotUpdateTraceIntoSource"); //$NON-NLS-1$
       
   359 			sb.append(s);
       
   360 			break;
       
   361 		case PARAMETER_FORMAT_NOT_SUPPORTED:
       
   362 			createParameterFormatNotSupportedMessage(parameters, sb);
       
   363 			break;
       
   364 		case PARAMETER_FORMAT_NEEDS_EXT_MACRO:
       
   365 			createParameterFormatNotSupportedInMacroMessage(parameters, sb);
       
   366 			break;
       
   367 		case PARAMETER_FORMAT_NOT_SUPPORTED_IN_ARRAY:
       
   368 			createParameterFormatNotSupportedInArrayMessage(parameters, sb);
       
   369 			break;
       
   370 		case PARAMETER_FORMAT_UNNECESSARY_EXT_MACRO:
       
   371 			s = Messages
       
   372 					.getString("TraceCompilerErrorMessages.ParameterFormatUnnecessaryExtMacro"); //$NON-NLS-1$
       
   373 			sb.append(s);
       
   374 			break;
       
   375 		case PROPERTY_FILE_ELEMENT_NOT_SUPPORTED:
       
   376 			s = Messages
       
   377 					.getString("TraceCompilerErrorMessages.PropertyFileElementNotSupportedPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   378 			sb.append(s);
       
   379 			sb.append(((StringErrorParameters) parameters).string);
       
   380 			s = Messages
       
   381 					.getString("TraceCompilerErrorMessages.PropertyFileElementNotSupportedPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   382 			sb.append(s);
       
   383 			break;
       
   384 		case PROPERTY_FILE_ELEMENT_MISPLACED:
       
   385 			s = Messages
       
   386 					.getString("TraceCompilerErrorMessages.PropertyFileElementMisplacedPrefix"); //$NON-NLS-1$
       
   387 			sb.append(s);
       
   388 			sb.append(((StringErrorParameters) parameters).string);
       
   389 			s = Messages
       
   390 					.getString("TraceCompilerErrorMessages.PropertyFileElementMisplacedPostfix"); //$NON-NLS-1$
       
   391 			sb.append(s);
       
   392 			break;
       
   393 		case PROPERTY_FILE_ATTRIBUTE_INVALID:
       
   394 			s = Messages
       
   395 					.getString("TraceCompilerErrorMessages.PropertyFileAttributeInvalidPrefix"); //$NON-NLS-1$
       
   396 			sb.append(s);
       
   397 			sb.append(((StringErrorParameters) parameters).string);
       
   398 			s = Messages
       
   399 					.getString("TraceCompilerErrorMessages.PropertyFileAttributeInvalidPostfix"); //$NON-NLS-1$
       
   400 			sb.append(s);
       
   401 			break;
       
   402 		case INSERT_TRACE_DOES_NOT_WORK:
       
   403 			s = Messages
       
   404 					.getString("TraceCompilerErrorMessages.InsertTraceDoesNotWork"); //$NON-NLS-1$
       
   405 			sb.append(s);
       
   406 			break;
       
   407 		case NO_CONTEXT_FOR_LOCATION:
       
   408 			s = Messages
       
   409 					.getString("TraceCompilerErrorMessages.NoContextForLocation"); //$NON-NLS-1$
       
   410 			sb.append(s);
       
   411 			break;
       
   412 		case CANNOT_PARSE_FUNCTION_PARAMETERS:
       
   413 			s = Messages
       
   414 					.getString("TraceCompilerErrorMessages.CannotParseFunctionParameters"); //$NON-NLS-1$
       
   415 			sb.append(s);
       
   416 			break;
       
   417 		case INVALID_PARAMETER_NAME_IN_RETURN_VALUE:
       
   418 			s = Messages
       
   419 					.getString("TraceCompilerErrorMessages.InvalidParameterNameInReturnValue"); //$NON-NLS-1$
       
   420 			sb.append(s);
       
   421 			break;
       
   422 		case RUN_OUT_OF_GROUP_IDS:
       
   423 			sb.append(Messages
       
   424 					.getString("TraceCompilerErrorMessages.RunOutOfGroupIDs")); //$NON-NLS-1$
       
   425 			break;
       
   426 		case RUN_OUT_OF_TRACE_IDS:
       
   427 			sb.append(Messages
       
   428 					.getString("TraceCompilerErrorMessages.RunOutOfTraceIDs")); //$NON-NLS-1$
       
   429 			break;
       
   430 		case VAR_ARG_LIST_PARAMETER_FOUND:
       
   431 			sb.append(Messages
       
   432 					.getString("TraceCompilerErrorMessages.VarArgListParameterFound")); //$NON-NLS-1$
       
   433 			break;
       
   434 		case INVALID_USAGE_OF_TRACE_STATE_GROUP_NAME:
       
   435 			sb.append(Messages
       
   436 					.getString("TraceCompilerErrorMessages.InvalidUsageOfTraceStateGroupName")); //$NON-NLS-1$
       
   437 			break;
       
   438 		case INVALID_USAGE_OF_TRACE_PERFORMACE_GROUP_NAME:
       
   439 			sb.append(Messages
       
   440 					.getString("TraceCompilerErrorMessages.InvalidUsageOfTracePerformanceGroupName")); //$NON-NLS-1$
       
   441 			break;
       
   442 		default:
       
   443 			break;
       
   444 		}
       
   445 		return sb.toString();
       
   446 	}
       
   447 
       
   448 	/**
       
   449 	 * Creates invalid parameter type message
       
   450 	 * 
       
   451 	 * @param parameters
       
   452 	 *            the parameters
       
   453 	 * @param sb
       
   454 	 *            the message buffer
       
   455 	 */
       
   456 	private static void createInvalidParameterTypeMessage(
       
   457 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   458 		String s;
       
   459 		if (parameters instanceof StringErrorParameters) {
       
   460 			s = Messages
       
   461 					.getString("TraceCompilerErrorMessages.InvalidParameterTypePrefix"); //$NON-NLS-1$
       
   462 			sb.append(s);
       
   463 			sb.append(((StringErrorParameters) parameters).string);
       
   464 			String format = SourceUtils
       
   465 					.mapNormalTypeToFormat(((StringErrorParameters) parameters).string);
       
   466 			if (format != null) {
       
   467 				sb.append(" "); //$NON-NLS-1$
       
   468 				sb.append(format);
       
   469 			}
       
   470 			s = Messages
       
   471 					.getString("TraceCompilerErrorMessages.InvalidParameterTypePostfix"); //$NON-NLS-1$
       
   472 			sb.append(s);
       
   473 		} else {
       
   474 			s = Messages
       
   475 					.getString("TraceCompilerErrorMessages.InvalidParameterType"); //$NON-NLS-1$
       
   476 			sb.append(s);
       
   477 		}
       
   478 	}
       
   479 
       
   480 	/**
       
   481 	 * Creates parameter format not supported message
       
   482 	 * 
       
   483 	 * @param parameters
       
   484 	 *            the parameters
       
   485 	 * @param sb
       
   486 	 *            the message buffer
       
   487 	 */
       
   488 	private static void createParameterFormatNotSupportedMessage(
       
   489 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   490 		String s;
       
   491 		if (parameters instanceof StringErrorParameters) {
       
   492 			s = Messages
       
   493 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedPrefix"); //$NON-NLS-1$
       
   494 			sb.append(s);
       
   495 			sb.append(((StringErrorParameters) parameters).string);
       
   496 			s = Messages
       
   497 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedPostfix"); //$NON-NLS-1$
       
   498 			sb.append(s);
       
   499 		} else {
       
   500 			s = Messages
       
   501 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupported"); //$NON-NLS-1$
       
   502 			sb.append(s);
       
   503 		}
       
   504 	}
       
   505 
       
   506 	/**
       
   507 	 * Creates parameter not supported in macro message
       
   508 	 * 
       
   509 	 * @param parameters
       
   510 	 *            the parameters
       
   511 	 * @param sb
       
   512 	 *            the message buffer
       
   513 	 */
       
   514 	private static void createParameterFormatNotSupportedInMacroMessage(
       
   515 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   516 		String s;
       
   517 		if (parameters instanceof StringErrorParameters) {
       
   518 			s = Messages
       
   519 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacroPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   520 			sb.append(s);
       
   521 			sb.append(((StringErrorParameters) parameters).string);
       
   522 			s = Messages
       
   523 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacroPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   524 			sb.append(s);
       
   525 		} else {
       
   526 			s = Messages
       
   527 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInMacro"); //$NON-NLS-1$
       
   528 			sb.append(s);
       
   529 		}
       
   530 	}
       
   531 
       
   532 	/**
       
   533 	 * Creates parameter not supported in array message
       
   534 	 * 
       
   535 	 * @param parameters
       
   536 	 *            the parameters
       
   537 	 * @param sb
       
   538 	 *            the message buffer
       
   539 	 */
       
   540 	private static void createParameterFormatNotSupportedInArrayMessage(
       
   541 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   542 		String s;
       
   543 		if (parameters instanceof StringErrorParameters) {
       
   544 			s = Messages
       
   545 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArrayPrefix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   546 			sb.append(s);
       
   547 			sb.append(((StringErrorParameters) parameters).string);
       
   548 			s = Messages
       
   549 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArrayPostfix"); //$NON-NLS-1$ CodForChk_Dis_LengthyLine
       
   550 			sb.append(s);
       
   551 		} else {
       
   552 			s = Messages
       
   553 					.getString("TraceCompilerErrorMessages.ParameterFormatNotSupportedInArray"); //$NON-NLS-1$
       
   554 			sb.append(s);
       
   555 		}
       
   556 	}
       
   557 
       
   558 	/**
       
   559 	 * Creates invalid trace ID message
       
   560 	 * 
       
   561 	 * @param parameters
       
   562 	 *            the parameters
       
   563 	 * @param sb
       
   564 	 *            the message buffer
       
   565 	 */
       
   566 	private static void createInvalidTraceIDMessage(
       
   567 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   568 		String s;
       
   569 		if (parameters instanceof RangeErrorParameters) {
       
   570 			s = Messages
       
   571 					.getString("TraceCompilerErrorMessages.InvalidTraceIDStart"); //$NON-NLS-1$
       
   572 			sb.append(s);
       
   573 			s = Messages
       
   574 					.getString("TraceCompilerErrorMessages.InvalidTraceIDMiddle"); //$NON-NLS-1$
       
   575 			addRangeParameter((RangeErrorParameters) parameters, sb, s);
       
   576 			sb.append(Messages
       
   577 					.getString("TraceCompilerErrorMessages.InvalidTraceIDEnd")); //$NON-NLS-1$
       
   578 		} else {
       
   579 			sb.append(Messages
       
   580 					.getString("TraceCompilerErrorMessages.InvalidTraceID")); //$NON-NLS-1$
       
   581 		}
       
   582 	}
       
   583 
       
   584 	/**
       
   585 	 * Creates invalid group ID message
       
   586 	 * 
       
   587 	 * @param parameters
       
   588 	 *            the parameters
       
   589 	 * @param sb
       
   590 	 *            the message buffer
       
   591 	 */
       
   592 	private static void createInvalidGroupIDMessage(
       
   593 			TraceCompilerErrorParameters parameters, StringBuffer sb) {
       
   594 		String s;
       
   595 		if (parameters instanceof RangeErrorParameters) {
       
   596 			s = Messages
       
   597 					.getString("TraceCompilerErrorMessages.InvalidGroupIDStart"); //$NON-NLS-1$
       
   598 			sb.append(s);
       
   599 			s = Messages
       
   600 					.getString("TraceCompilerErrorMessages.InvalidGroupIDMiddle"); //$NON-NLS-1$
       
   601 			addRangeParameter((RangeErrorParameters) parameters, sb, s);
       
   602 			sb.append(Messages
       
   603 					.getString("TraceCompilerErrorMessages.InvalidGroupIDEnd")); //$NON-NLS-1$
       
   604 		} else {
       
   605 			sb.append(Messages
       
   606 					.getString("TraceCompilerErrorMessages.InvalidGroupID")); //$NON-NLS-1$
       
   607 		}
       
   608 	}
       
   609 
       
   610 	/**
       
   611 	 * Adds a range parameter to error buffer
       
   612 	 * 
       
   613 	 * @param parameters
       
   614 	 *            the range
       
   615 	 * @param sb
       
   616 	 *            the buffer
       
   617 	 * @param middleText
       
   618 	 *            the text between the range
       
   619 	 */
       
   620 	private static void addRangeParameter(RangeErrorParameters parameters,
       
   621 			StringBuffer sb, String middleText) {
       
   622 		if (parameters.isHex) {
       
   623 			sb.append(SourceConstants.HEX_PREFIX);
       
   624 			sb.append(Integer.toHexString(parameters.start));
       
   625 		} else {
       
   626 			sb.append(parameters.start);
       
   627 		}
       
   628 		sb.append(middleText);
       
   629 		if (parameters.isHex) {
       
   630 			sb.append(SourceConstants.HEX_PREFIX);
       
   631 			sb.append(Integer.toHexString(parameters.end));
       
   632 		} else {
       
   633 			sb.append(parameters.end);
       
   634 		}
       
   635 	}
       
   636 
       
   637 	/**
       
   638 	 * Creates "Invalid directory" message
       
   639 	 * 
       
   640 	 * @param parameters
       
   641 	 *            the message parameters
       
   642 	 * @param sb
       
   643 	 *            the string buffer where the message is stored
       
   644 	 */
       
   645 	private static void createInvalidPathMessage(
       
   646 			FileErrorParameters parameters, StringBuffer sb) {
       
   647 		String s;
       
   648 		if (parameters != null) {
       
   649 			s = Messages
       
   650 					.getString("TraceCompilerErrorMessages.InvalidDirectoryPrefix"); //$NON-NLS-1$
       
   651 			sb.append(s);
       
   652 			sb.append(convertPath(parameters.file));
       
   653 			s = Messages
       
   654 					.getString("TraceCompilerErrorMessages.InvalidDirectoryPostfix"); //$NON-NLS-1$
       
   655 			sb.append(s);
       
   656 		} else {
       
   657 			sb.append(Messages
       
   658 					.getString("TraceCompilerErrorMessages.InvalidDirectory")); //$NON-NLS-1$
       
   659 		}
       
   660 	}
       
   661 
       
   662 	/**
       
   663 	 * Creates "File not found" message
       
   664 	 * 
       
   665 	 * @param parameters
       
   666 	 *            the message parameters
       
   667 	 * @param sb
       
   668 	 *            the string buffer where the message is stored
       
   669 	 */
       
   670 	private static void createFileNotFoundMessage(
       
   671 			FileErrorParameters parameters, StringBuffer sb) {
       
   672 		String s;
       
   673 		if (parameters != null) {
       
   674 			s = Messages
       
   675 					.getString("TraceCompilerErrorMessages.FileDoesNotExistPrefix"); //$NON-NLS-1$
       
   676 			sb.append(s);
       
   677 			sb.append(convertPath(parameters.file));
       
   678 			s = Messages
       
   679 					.getString("TraceCompilerErrorMessages.FileDoesNotExistPostfix"); //$NON-NLS-1$
       
   680 			sb.append(s);
       
   681 		} else {
       
   682 			sb.append(Messages
       
   683 					.getString("TraceCompilerErrorMessages.FileDoesNotExist")); //$NON-NLS-1$
       
   684 		}
       
   685 	}
       
   686 
       
   687 	/**
       
   688 	 * Adds some spaces to path string to allow folding
       
   689 	 * 
       
   690 	 * @param path
       
   691 	 *            the path
       
   692 	 * @return the converted path
       
   693 	 */
       
   694 	public static String convertPath(String path) {
       
   695 		StringBuffer sb = new StringBuffer();
       
   696 		int strIndex = -1;
       
   697 		do {
       
   698 			strIndex++;
       
   699 			int lastIndex = strIndex;
       
   700 			strIndex = path.indexOf(File.separatorChar, strIndex);
       
   701 			if (strIndex != -1) {
       
   702 				String sub = path.substring(lastIndex, strIndex);
       
   703 				if (sub.length() > 0) {
       
   704 					sb.append(sub);
       
   705 					sb.append(' ');
       
   706 					sb.append(File.separatorChar);
       
   707 					sb.append(' ');
       
   708 				}
       
   709 			} else {
       
   710 				// If the data ends with file separator, lastIndex points to
       
   711 				// end-of-data. If not, the rest of the data is appended without
       
   712 				// further white spaces
       
   713 				if (lastIndex < path.length()) {
       
   714 					String sub = path.substring(lastIndex);
       
   715 					sb.append(sub);
       
   716 				}
       
   717 			}
       
   718 		} while (strIndex != -1);
       
   719 		return sb.toString();
       
   720 	}
       
   721 
       
   722 }