trace/tracebuilder/com.nokia.tracebuilder/src/com/nokia/tracebuilder/engine/rules/AutoAddFunctionParametersRule.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Wed, 23 Jun 2010 14:35:40 +0300
changeset 10 ed1c9f64298a
permissions -rw-r--r--
TraceBuilder 2.4.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
* Contributors:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
* Description:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
* Trace rule for automatically adding function parameters to a trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
*/
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
package com.nokia.tracebuilder.engine.rules;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
import java.util.ArrayList;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
import com.nokia.tracebuilder.engine.TraceBuilderErrorMessages;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
import com.nokia.tracebuilder.engine.TraceBuilderGlobals;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
import com.nokia.tracebuilder.engine.TraceBuilderErrorCodes.StringErrorParameters;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
import com.nokia.tracebuilder.engine.TraceBuilderErrorCodes.TraceBuilderErrorCode;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
import com.nokia.tracebuilder.engine.source.TraceParameterFormattingRule;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
import com.nokia.tracebuilder.model.Trace;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
import com.nokia.tracebuilder.model.TraceBuilderException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
import com.nokia.tracebuilder.model.TraceConstantTable;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
import com.nokia.tracebuilder.model.TraceObjectRuleCreateObject;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
import com.nokia.tracebuilder.model.TraceObjectRuleRemoveOnCreate;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
import com.nokia.tracebuilder.model.TraceParameter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
import com.nokia.tracebuilder.source.SourceConstants;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
import com.nokia.tracebuilder.source.SourceContext;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
import com.nokia.tracebuilder.source.SourceParameter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
import com.nokia.tracebuilder.source.SourceParserException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
import com.nokia.tracebuilder.source.SourceUtils;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
import com.nokia.tracebuilder.source.TypeMapping;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
 * Trace rule for automatically adding function parameters to a trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
public final class AutoAddFunctionParametersRule extends RuleBase implements
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
		TraceObjectRuleCreateObject, TraceObjectRuleRemoveOnCreate {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
	 * Warning about value-to-pointer conversion
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
	private static final String VALUE_TO_POINTER_WARNING = Messages
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
			.getString("AutoAddFunctionParametersRule.UnrecognizedTypeWarning"); //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
	 * @see
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
	 * com.nokia.tracebuilder.model.TraceObjectRuleCreateObject#createObject()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
	public void createObject() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
		SourceContext context = TraceBuilderGlobals.getSourceContextManager()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
				.getContext();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
		Trace trace = (Trace) getOwner();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
		if (context != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
			boolean valid = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
			ArrayList<SourceParameter> list = tokenizeParameters(context);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
			if (list != null && list.size() > 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
				trace.getModel().startProcessing();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
				try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
					createParameters(trace, list);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
				} finally {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
					trace.getModel().processingComplete();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
				// At least one parameter must be parsed from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
				valid = trace.getParameterCount() > 0;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
				valid = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
			if (!valid) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
				String msg = TraceBuilderErrorMessages.getErrorMessage(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
						TraceBuilderErrorCode.CANNOT_PARSE_FUNCTION_PARAMETERS,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
						null);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
				TraceBuilderGlobals.getEvents().postWarningMessage(msg, trace);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
				// Removes the complex rule -> Function is not generated and
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
				// source does not compile
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
				trace.removeExtensions(ComplexHeaderRule.class);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
			String msg = TraceBuilderErrorMessages.getErrorMessage(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
					TraceBuilderErrorCode.NO_CONTEXT_FOR_LOCATION, null);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
			TraceBuilderGlobals.getEvents().postErrorMessage(msg, null, true);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
			// Removes the complex rule -> Function is not generated and
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
			// source does not compile
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
			trace.removeExtensions(ComplexHeaderRule.class);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
	 * Creates the parameters to the trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
	 * @param owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
	 *            the trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   103
	 * @param list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   104
	 *            the parameter list parsed from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   105
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   106
	private void createParameters(Trace owner, ArrayList<SourceParameter> list) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   107
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   108
		// If any of the parameters is "...", clear the whole parameter list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   109
		for (SourceParameter param : list) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   110
			String type = param.getType();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   111
			if (type != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   112
					&& type.equals(SourceConstants.VARIABLE_ARG_LIST_INDICATOR)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   113
				list.clear();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   114
				
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   115
				String msg = TraceBuilderErrorMessages.getErrorMessage(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   116
						TraceBuilderErrorCode.VAR_ARG_LIST_PARAMETER_FOUND,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   117
						null);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   118
				TraceBuilderGlobals.getEvents().postWarningMessage(msg, owner);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   119
				break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   120
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   121
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   122
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   123
		StringBuilder str = new StringBuilder();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   124
		for (SourceParameter param : list) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   125
			TraceParameter parameter = createParameter(owner, param);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   126
			if (parameter != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   127
				str.append(SourceConstants.PARAMETER_SEPARATOR);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   128
				TraceParameterFormattingRule rule = parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   129
						.getExtension(TraceParameterFormattingRule.class);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   130
				if (rule != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   131
					str.append(rule.mapNameToSource(param.getName()));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   132
				} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   133
					str.append(param.getName());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   134
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   135
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   136
			// The location will be referenced by event handlers if
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   137
			// they need it. Otherwise it will be removed from the
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   138
			// source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   139
			param.getSourceLocation().dereference();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   140
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   141
		// The header extension is stored in case of complex function entry
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   142
		// trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   143
		EntryTraceRule entryRule = owner.getExtension(EntryTraceRule.class);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   144
		ComplexHeaderRuleImpl complex = owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   145
				.getExtension(ComplexHeaderRuleImpl.class);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   146
		if (entryRule != null && complex != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   147
			complex.setTraceIDDefineExtension(str.toString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   148
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   149
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   150
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   151
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   152
	 * Processes the parameters of given source context
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   153
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   154
	 * @param context
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   155
	 *            the context
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   156
	 * @return list of parameters
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   157
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   158
	private ArrayList<SourceParameter> tokenizeParameters(SourceContext context) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   159
		ArrayList<SourceParameter> list = new ArrayList<SourceParameter>();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   160
		try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   161
			context.parseParameters(list);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   162
		} catch (SourceParserException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   163
			TraceBuilderGlobals.getEvents().postError(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   164
					new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   165
							TraceBuilderErrorCode.UNEXPECTED_EXCEPTION, e));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   166
			list = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   167
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   168
		return list;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   169
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   170
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   171
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   172
	 * Creates a TraceParameter based on parameter parsed from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   173
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   174
	 * @param owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   175
	 *            the owning trace object
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   176
	 * @param param
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   177
	 *            the parameter found from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   178
	 * @return the parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   179
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   180
	private TraceParameter createParameter(Trace owner, SourceParameter param) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   181
		TraceConstantTable foundTable = RuleUtils.findConstantTableByType(owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   182
				.getModel(), param);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   183
		TraceParameter parameter = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   184
		if (foundTable == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   185
			TypeMapping type = SourceUtils.mapSymbianTypeToParameterType(param);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   186
			if (type != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   187
				if (!type.isVoid()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   188
					parameter = createParameter(owner, param, type);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   189
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   190
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   191
				StringErrorParameters params = new StringErrorParameters();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   192
				params.string = param.getType();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   193
				TraceBuilderGlobals.getEvents().postError(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   194
						new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   195
								TraceBuilderErrorCode.INVALID_PARAMETER_TYPE,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   196
								params, param.getSourceLocation()));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   197
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   198
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   199
			parameter = createParameter(owner, param, foundTable);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   200
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   201
		return parameter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   202
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   203
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   204
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   205
	 * Processes a non-void parameter type that was not associated with a
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   206
	 * constant table
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   207
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   208
	 * @param owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   209
	 *            the owner for the parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   210
	 * @param param
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   211
	 *            the parameter found from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   212
	 * @param type
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   213
	 *            the parameter type as parsed by source package
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   214
	 * @return the parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   215
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   216
	private TraceParameter createParameter(Trace owner, SourceParameter param,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   217
			TypeMapping type) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   218
		String name = param.getName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   219
		TraceParameter retval = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   220
		if (name != null && name.length() != 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   221
			try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   222
				retval = RuleUtils.createParameterFromType(owner, name, type);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   223
				if (retval != null && type.valueToPointer) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   224
					// Posts a warning about value-to-pointer conversion
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   225
					TraceBuilderGlobals.getEvents()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   226
							.postWarningMessage(VALUE_TO_POINTER_WARNING,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   227
									param.getSourceLocation());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   228
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   229
			} catch (TraceBuilderException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   230
				// Changes the source of the error to the location that failed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   231
				TraceBuilderGlobals.getEvents().postError(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   232
						new TraceBuilderException(e.getErrorCode(), e
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   233
								.getErrorParameters(), param
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   234
								.getSourceLocation()));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   235
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   236
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   237
		return retval;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   238
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   239
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   240
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   241
	 * Processes a non-void parameter type that was associated with a constant
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   242
	 * table
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   243
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   244
	 * @param owner
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   245
	 *            the owner for the parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   246
	 * @param param
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   247
	 *            the parameter found from source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   248
	 * @param table
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   249
	 *            the constant table the parameter was associated to
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   250
	 * @return the parameter
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   251
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   252
	private TraceParameter createParameter(Trace owner, SourceParameter param,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   253
			TraceConstantTable table) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   254
		String name = param.getName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   255
		TraceParameter retval = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   256
		if (name != null && name.length() != 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   257
			try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   258
				retval = RuleUtils.createParameterFromConstantTable(owner,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   259
						name, table);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   260
			} catch (TraceBuilderException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   261
				// Changes the source of the error to the location that failed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   262
				TraceBuilderGlobals.getEvents().postError(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   263
						new TraceBuilderException(e.getErrorCode(), e
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   264
								.getErrorParameters(), param
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   265
								.getSourceLocation()));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   266
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   267
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   268
		return retval;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   269
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   270
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   271
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   272
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   273
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   274
	 * @see
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   275
	 * com.nokia.tracebuilder.model.TraceObjectRuleRemoveOnCreate#canBeRemoved()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   276
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   277
	public boolean canBeRemoved() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   278
		// This is not copied to exit trace -> Can be removed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   279
		return true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   280
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   281
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   282
}