tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/project/FormattingUtils.java
branchRCL_3
changeset 20 ca8a1b6995f6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/project/FormattingUtils.java	Tue Aug 31 16:45:49 2010 +0300
@@ -0,0 +1,122 @@
+/*
+* 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:
+*
+* Utilities for trace formatting
+*
+*/
+package com.nokia.tracecompiler.project;
+
+//import java.util.*;
+import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals;
+import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.TraceCompilerErrorCode;
+import com.nokia.tracecompiler.model.TraceCompilerException;
+import com.nokia.tracecompiler.model.TraceGroup;
+import com.nokia.tracecompiler.model.TraceModel;
+
+
+/**
+ * Utilities for trace formatting
+ * 
+ */
+public final class FormattingUtils {
+
+	/**
+	 * Separator for prefix
+	 */
+	private static final String PREFIX_SEPARATOR = ": "; //$NON-NLS-1$
+
+	/**
+	 * Gets a group ID based on group name
+	 * 
+	 * @param model
+	 *            the trace model
+	 * @param name
+	 *            the group name
+	 * @return the group ID
+	 * @throws TraceCompilerException
+	 */
+	public static int getGroupID(TraceModel model, String name)
+			throws TraceCompilerException {
+
+		// First check that is group one of the default groups
+		int retval = GroupNames.getIdByName(name);
+		// If group was not one of the default groups then get next group Id from model
+		if (retval == 0) {
+			retval = model.getNextGroupID();
+			if (retval < GroupNames.USER_GROUP_ID_FIRST) {
+				retval = GroupNames.USER_GROUP_ID_FIRST;
+			}
+			else if(retval > GroupNames.USER_GROUP_ID_LAST){
+				String msg = "You have exceeded the number of Group IDs you have allocated."; //$NON-NLS-1$
+				TraceCompilerEngineGlobals.getEvents().postErrorMessage(msg, null, true);
+				throw new TraceCompilerException(
+						TraceCompilerErrorCode.RUN_OUT_OF_GROUP_IDS);		
+			}
+		}
+		return retval;
+	}
+
+	/**
+	 * Gets the default component prefix
+	 * 
+	 * @param model
+	 *            the model
+	 * @return the prefix
+	 */
+	public static String getDefaultComponentPrefix(TraceModel model) {
+		return model.getName() + PREFIX_SEPARATOR;
+	}
+
+	/**
+	 * Gets the default component suffix
+	 * 
+	 * @param model
+	 *            the model
+	 * @return the suffix
+	 */
+	public static String getDefaultComponentSuffix(TraceModel model) {
+		return ""; //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the default group prefix
+	 * 
+	 * @param group
+	 *            the group
+	 * @return the prefix
+	 */
+	public static String getDefaultGroupPrefix(TraceGroup group) {
+		String name = group.getName();
+		if (name.startsWith(GroupNames.DEFAULT_GROUP_PREFIX)) {
+			int start = GroupNames.DEFAULT_GROUP_PREFIX.length();
+			// First character retains case, others are converted to lower case
+			name = name.charAt(start) + name.substring(start + 1).toLowerCase();
+		}
+		name += PREFIX_SEPARATOR;
+		return name;
+	}
+
+	/**
+	 * Gets the default group suffix
+	 * 
+	 * @param group
+	 *            the group
+	 * @return the suffix
+	 */
+	public static String getDefaultGroupSuffix(TraceGroup group) {
+		return ""; //$NON-NLS-1$
+	}
+
+}