tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/project/FormattingUtils.java
author hgs
Fri, 08 Oct 2010 14:56:39 +0300
changeset 56 aa2539c91954
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
* Utilities for trace formatting
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
package com.nokia.tracecompiler.project;
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
//import java.util.*;
hgs
parents:
diff changeset
    22
import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals;
hgs
parents:
diff changeset
    23
import com.nokia.tracecompiler.engine.TraceCompilerEngineErrorCodes.TraceCompilerErrorCode;
hgs
parents:
diff changeset
    24
import com.nokia.tracecompiler.model.TraceCompilerException;
hgs
parents:
diff changeset
    25
import com.nokia.tracecompiler.model.TraceGroup;
hgs
parents:
diff changeset
    26
import com.nokia.tracecompiler.model.TraceModel;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
/**
hgs
parents:
diff changeset
    30
 * Utilities for trace formatting
hgs
parents:
diff changeset
    31
 * 
hgs
parents:
diff changeset
    32
 */
hgs
parents:
diff changeset
    33
public final class FormattingUtils {
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
	/**
hgs
parents:
diff changeset
    36
	 * Separator for prefix
hgs
parents:
diff changeset
    37
	 */
hgs
parents:
diff changeset
    38
	private static final String PREFIX_SEPARATOR = ": "; //$NON-NLS-1$
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
	/**
hgs
parents:
diff changeset
    41
	 * Gets a group ID based on group name
hgs
parents:
diff changeset
    42
	 * 
hgs
parents:
diff changeset
    43
	 * @param model
hgs
parents:
diff changeset
    44
	 *            the trace model
hgs
parents:
diff changeset
    45
	 * @param name
hgs
parents:
diff changeset
    46
	 *            the group name
hgs
parents:
diff changeset
    47
	 * @return the group ID
hgs
parents:
diff changeset
    48
	 * @throws TraceCompilerException
hgs
parents:
diff changeset
    49
	 */
hgs
parents:
diff changeset
    50
	public static int getGroupID(TraceModel model, String name)
hgs
parents:
diff changeset
    51
			throws TraceCompilerException {
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
		// First check that is group one of the default groups
hgs
parents:
diff changeset
    54
		int retval = GroupNames.getIdByName(name);
hgs
parents:
diff changeset
    55
		// If group was not one of the default groups then get next group Id from model
hgs
parents:
diff changeset
    56
		if (retval == 0) {
hgs
parents:
diff changeset
    57
			retval = model.getNextGroupID();
hgs
parents:
diff changeset
    58
			if (retval < GroupNames.USER_GROUP_ID_FIRST) {
hgs
parents:
diff changeset
    59
				retval = GroupNames.USER_GROUP_ID_FIRST;
hgs
parents:
diff changeset
    60
			}
hgs
parents:
diff changeset
    61
			else if(retval > GroupNames.USER_GROUP_ID_LAST){
hgs
parents:
diff changeset
    62
				String msg = "You have exceeded the number of Group IDs you have allocated."; //$NON-NLS-1$
hgs
parents:
diff changeset
    63
				TraceCompilerEngineGlobals.getEvents().postErrorMessage(msg, null, true);
hgs
parents:
diff changeset
    64
				throw new TraceCompilerException(
hgs
parents:
diff changeset
    65
						TraceCompilerErrorCode.RUN_OUT_OF_GROUP_IDS);		
hgs
parents:
diff changeset
    66
			}
hgs
parents:
diff changeset
    67
		}
hgs
parents:
diff changeset
    68
		return retval;
hgs
parents:
diff changeset
    69
	}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
	/**
hgs
parents:
diff changeset
    72
	 * Gets the default component prefix
hgs
parents:
diff changeset
    73
	 * 
hgs
parents:
diff changeset
    74
	 * @param model
hgs
parents:
diff changeset
    75
	 *            the model
hgs
parents:
diff changeset
    76
	 * @return the prefix
hgs
parents:
diff changeset
    77
	 */
hgs
parents:
diff changeset
    78
	public static String getDefaultComponentPrefix(TraceModel model) {
hgs
parents:
diff changeset
    79
		return model.getName() + PREFIX_SEPARATOR;
hgs
parents:
diff changeset
    80
	}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
	/**
hgs
parents:
diff changeset
    83
	 * Gets the default component suffix
hgs
parents:
diff changeset
    84
	 * 
hgs
parents:
diff changeset
    85
	 * @param model
hgs
parents:
diff changeset
    86
	 *            the model
hgs
parents:
diff changeset
    87
	 * @return the suffix
hgs
parents:
diff changeset
    88
	 */
hgs
parents:
diff changeset
    89
	public static String getDefaultComponentSuffix(TraceModel model) {
hgs
parents:
diff changeset
    90
		return ""; //$NON-NLS-1$
hgs
parents:
diff changeset
    91
	}
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
	/**
hgs
parents:
diff changeset
    94
	 * Gets the default group prefix
hgs
parents:
diff changeset
    95
	 * 
hgs
parents:
diff changeset
    96
	 * @param group
hgs
parents:
diff changeset
    97
	 *            the group
hgs
parents:
diff changeset
    98
	 * @return the prefix
hgs
parents:
diff changeset
    99
	 */
hgs
parents:
diff changeset
   100
	public static String getDefaultGroupPrefix(TraceGroup group) {
hgs
parents:
diff changeset
   101
		String name = group.getName();
hgs
parents:
diff changeset
   102
		if (name.startsWith(GroupNames.DEFAULT_GROUP_PREFIX)) {
hgs
parents:
diff changeset
   103
			int start = GroupNames.DEFAULT_GROUP_PREFIX.length();
hgs
parents:
diff changeset
   104
			// First character retains case, others are converted to lower case
hgs
parents:
diff changeset
   105
			name = name.charAt(start) + name.substring(start + 1).toLowerCase();
hgs
parents:
diff changeset
   106
		}
hgs
parents:
diff changeset
   107
		name += PREFIX_SEPARATOR;
hgs
parents:
diff changeset
   108
		return name;
hgs
parents:
diff changeset
   109
	}
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
	/**
hgs
parents:
diff changeset
   112
	 * Gets the default group suffix
hgs
parents:
diff changeset
   113
	 * 
hgs
parents:
diff changeset
   114
	 * @param group
hgs
parents:
diff changeset
   115
	 *            the group
hgs
parents:
diff changeset
   116
	 * @return the suffix
hgs
parents:
diff changeset
   117
	 */
hgs
parents:
diff changeset
   118
	public static String getDefaultGroupSuffix(TraceGroup group) {
hgs
parents:
diff changeset
   119
		return ""; //$NON-NLS-1$
hgs
parents:
diff changeset
   120
	}
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
}