tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/rules/RuleUtils.java
--- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/rules/RuleUtils.java Wed Sep 29 17:45:35 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
- * Copyright (c) 2009 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:
- *
- * Utility functions for rules package
- *
- */
-package com.nokia.tracecompiler.engine.rules;
-
-import java.util.Iterator;
-import java.util.List;
-
-import com.nokia.tracecompiler.engine.TraceCompilerEngineConfiguration;
-import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals;
-import com.nokia.tracecompiler.model.Trace;
-import com.nokia.tracecompiler.model.TraceCompilerException;
-import com.nokia.tracecompiler.model.TraceConstantTable;
-import com.nokia.tracecompiler.model.TraceModel;
-import com.nokia.tracecompiler.model.TraceModelExtension;
-import com.nokia.tracecompiler.model.TraceObjectUtils;
-import com.nokia.tracecompiler.model.TraceParameter;
-import com.nokia.tracecompiler.source.ParsedType;
-import com.nokia.tracecompiler.source.SourceContext;
-import com.nokia.tracecompiler.source.SourceParserException;
-import com.nokia.tracecompiler.source.SourceReturn;
-import com.nokia.tracecompiler.source.TypeMapping;
-
-/**
- * Utility functions for rules package
- *
- */
-public final class RuleUtils {
-
- /**
- * Entry-exit template
- */
- public static final int TYPE_ENTRY_EXIT = 0; // CodForChk_Dis_Magic
-
- /**
- * Start-stop event template
- */
- public static final int TYPE_PERF_EVENT = 1; // CodForChk_Dis_Magic
-
- /**
- * State trace template
- */
- public static final int TYPE_STATE_TRACE = 2; // CodForChk_Dis_Magic
-
- /**
- * Trace name format base
- */
- static final String NAME_FORMAT_BASE = "{$CN}_{$FN}"; //$NON-NLS-1$
-
- /**
- * Trace text format base
- */
- static final String TEXT_FORMAT_BASE = "{$cn}::{$fn}"; //$NON-NLS-1$
-
- /**
- * Template titles
- */
- private static final String[] ENTRY_TEMPLATE_TITLES = {
- Messages.getString("RuleUtils.FunctionEntryTitle"), //$NON-NLS-1$
- Messages.getString("RuleUtils.PerformanceEventTitle"), //$NON-NLS-1$
- Messages.getString("RuleUtils.StateTraceTitle"), //$NON-NLS-1$
- };
-
- /**
- * Entry name prefixes
- */
- public static final String[] ENTRY_NAME_PREFIXES = { "", //$NON-NLS-1$
- "EVENT_", //$NON-NLS-1$
- "STATE_" //$NON-NLS-1$
- };
-
- /**
- * Entry name suffixes
- */
- public static final String[] ENTRY_NAME_SUFFIXES = { "_ENTRY", //$NON-NLS-1$
- "_START", //$NON-NLS-1$
- "" //$NON-NLS-1$
- };
-
- /**
- * Exit name prefixes
- */
- private static final String[] EXIT_NAME_PREFIXES = { "", //$NON-NLS-1$
- "EVENT_", //$NON-NLS-1$
- "" //$NON-NLS-1$
- };
-
- /**
- * Exit name suffixes
- */
- public static final String[] EXIT_NAME_SUFFIXES = { "_EXIT", //$NON-NLS-1$
- "_STOP", //$NON-NLS-1$
- "" //$NON-NLS-1$
- };
-
- /**
- * Gets an entry template title
- *
- * @param type
- * the template type
- * @return the template title
- */
- static String getEntryTemplateTitle(int type) {
- return ENTRY_TEMPLATE_TITLES[type];
- }
-
- /**
- * Creates exit name from entry name
- *
- * @param entryName
- * the entry name
- * @param type
- * the type of entry
- * @return the exit name
- */
- static String createExitName(String entryName, int type) {
- // Strips the duplicate modifier from the name
- entryName = TraceObjectUtils.removeDuplicateModifier(entryName);
- StringBuffer sb = new StringBuffer();
- if (entryName.startsWith(ENTRY_NAME_PREFIXES[type])) {
- entryName = entryName.substring(ENTRY_NAME_PREFIXES[type].length());
- }
- if (entryName.endsWith(ENTRY_NAME_SUFFIXES[type])) {
- entryName = entryName.substring(0, entryName.length()
- - ENTRY_NAME_SUFFIXES[type].length());
- }
- sb.append(EXIT_NAME_PREFIXES[type]);
- sb.append(entryName);
- sb.append(EXIT_NAME_SUFFIXES[type]);
- return sb.toString();
- }
-
- /**
- * Creates an entry trace name format from type
- *
- * @param type
- * the trace format type
- * @return the trace name format
- */
- public static String createEntryTraceNameFormat(int type) {
- StringBuffer sb = new StringBuffer();
- if (type == TYPE_PERF_EVENT || type == TYPE_STATE_TRACE) {
- sb.append(NAME_FORMAT_BASE);
- } else {
- sb.append(ENTRY_NAME_PREFIXES[type]);
- sb.append(NAME_FORMAT_BASE);
- sb.append(ENTRY_NAME_SUFFIXES[type]);
- }
- return sb.toString();
- }
-
- /**
- * Creates an exit trace name format based on type
- *
- * @param type
- * the format type
- * @return the trace name format
- */
- public static String createExitTraceNameFormat(int type) {
- StringBuffer sb = new StringBuffer();
- sb.append(EXIT_NAME_PREFIXES[type]);
- sb.append(NAME_FORMAT_BASE);
- sb.append(EXIT_NAME_SUFFIXES[type]);
- return sb.toString();
- }
-
- /**
- * Gets the return statements from current context from the context manager.
- *
- * @param returnStatements
- * the list where the return statements are stored
- */
- static void getCurrentContextReturns(List<SourceReturn> returnStatements) {
- SourceContext context = TraceCompilerEngineGlobals.getSourceContextManager()
- .getContext();
- if (context != null) {
- try {
- context.parseReturnValues(returnStatements);
- } catch (SourceParserException e) {
- String msg = Messages
- .getString("RuleUtils.FailedToParseReturnValues"); //$NON-NLS-1$
- String cname = context.getClassName();
- String source;
- if (cname != null) {
- source = cname + "::" + context.getFunctionName(); //$NON-NLS-1$;
- } else {
- source = context.getFunctionName();
- }
- TraceCompilerEngineGlobals.getEvents().postErrorMessage(msg, source,
- true);
- }
- } else {
- if (TraceCompilerEngineConfiguration.ASSERTIONS_ENABLED) {
- TraceCompilerEngineGlobals.getEvents().postAssertionFailed(
- "Function return not in function", null); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Checks if the function is static. Currently this is just dummy, checking
- * that the class name exists and the function name is not New / NewL /
- * NewLC
- *
- * @param context
- * the context to be checked
- * @return true if static, false if not
- */
- static boolean isStaticFunction(SourceContext context) {
- boolean retval;
- if (context.getClassName() == null) {
- retval = true;
- } else {
- String fname = context.getFunctionName();
- if (fname.equals("New") //$NON-NLS-1$
- || fname.equals("NewL") //$NON-NLS-1$
- || fname.equals("NewLC") //$NON-NLS-1$
- ) {
- retval = true;
- } else {
- retval = false;
- }
- }
- return retval;
- }
-
- /**
- * Locates a constant table based on type definition parsed from source
- *
- * @param model
- * the trace model
- * @param type
- * the parameter type
- * @return the constant table or null if not found
- */
- static TraceConstantTable findConstantTableByType(TraceModel model,
- ParsedType type) {
- Iterator<TraceConstantTable> tables = model.getConstantTables();
- TraceConstantTable foundTable = null;
- while (tables.hasNext() && foundTable == null) {
- TraceConstantTable table = tables.next();
- if (type.typeEquals(table.getName())) {
- foundTable = table;
- }
- }
- return foundTable;
- }
-
- /**
- * Creates a parameter based on TypeMapping definition
- *
- * @param owner
- * the parameter owner
- * @param name
- * the parameter name
- * @param type
- * the type mapping
- * @return the parameter
- * @throws TraceCompilerException
- * if parameter cannot be created
- */
- static TraceParameter createParameterFromType(Trace owner, String name,
- TypeMapping type) throws TraceCompilerException {
- int id = owner.getNextParameterID();
- owner.getModel().getVerifier().checkTraceParameterProperties(owner,
- null, id, name, type.type);
- TraceModelExtension[] extensions = null;
- if (type.needsCasting || type.valueToPointer
- || type.type.equals(TraceParameter.TIME)) {
- extensions = new TraceModelExtension[1];
- extensions[0] = new ParameterTypeMappingRule(type);
- }
- TraceParameter parameter = owner.getModel().getFactory()
- .createTraceParameter(owner, id, name, type.type, extensions);
- return parameter;
- }
-
- /**
- * Creates a parameter object from constant table
- *
- * @param owner
- * the parameter owner
- * @param name
- * the name for the parameter
- * @param table
- * the constant table
- * @return the parameter
- * @throws TraceCompilerException
- * if parameter cannot be created
- */
- static TraceParameter createParameterFromConstantTable(Trace owner,
- String name, TraceConstantTable table) throws TraceCompilerException {
- int id = owner.getNextParameterID();
- owner.getModel().getVerifier().checkTraceParameterProperties(owner,
- null, id, name, table.getType());
- // Constant tables need a cast to constant table type
- TypeMapping type = new TypeMapping(table.getType());
- type.needsCasting = true;
- TraceModelExtension[] extensions = new TraceModelExtension[1];
- extensions[0] = new ParameterTypeMappingRule(type);
- return owner.getModel().getFactory().createTraceParameter(owner, id,
- name, table.getName(), extensions);
- }
-
-}