trace/tracebuilder/com.nokia.tracebuilder/src/com/nokia/tracebuilder/engine/TraceBuilderGlobals.java
author Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
Tue, 24 Aug 2010 14:01:48 +0300
changeset 16 72f198be1c1d
parent 10 ed1c9f64298a
permissions -rw-r--r--
Crash Analyser Carbide Extension 1.4.0

/*
* Copyright (c) 2009-2010 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:
*
* Access point to the exported interfaces of Trace Builder engine
*
*/
package com.nokia.tracebuilder.engine;

import java.util.Iterator;
import com.nokia.tracebuilder.engine.source.SourceEngine;
import com.nokia.tracebuilder.model.TraceModel;
import com.nokia.tracebuilder.plugin.TraceBuilderPlugin;
import com.nokia.tracebuilder.project.GroupNameHandlerBase;

/**
 * Access point to the exported interfaces of Trace Builder engine
 * 
 */
public class TraceBuilderGlobals {

	/**
	 * Max trace ID
	 */
	public static final int MAX_TRACE_ID = 65535; // CodForChk_Dis_Magic

	/**
	 * Trace builder instance
	 */
	private static TraceBuilder instance;

	/**
	 * Constructor is hidden
	 */
	private TraceBuilderGlobals() {
	}

	/**
	 * Starts Trace Builder engine.
	 */
	public static void start() {
		if (instance == null) {
			instance = new TraceBuilder();
			instance.start();
		}
	}

	/**
	 * Shuts down the TraceBuilder instance
	 */
	public static void shutdown() {
		if (instance != null) {
			instance.shutdown();
			instance = null;
		}
	}

	/**
	 * Gets the configuration interface. The configuration interface is not
	 * available until view has been registered.
	 * 
	 * @return the configuration
	 */
	public static TraceBuilderConfiguration getConfiguration() {
		return instance.getConfiguration();
	}

	/**
	 * Gets the trace model
	 * 
	 * @return the model
	 */
	public static TraceModel getTraceModel() {
		return instance.getModel();
	}

	/**
	 * Gets the source engine
	 * 
	 * @return the source engine
	 */
	public static SourceEngine getSourceEngine() {
		return instance.getSourceEngine();
	}

	/**
	 * Gets the trace builder interface
	 * 
	 * @return trace builder
	 */
	public static TraceBuilderInterface getTraceBuilder() {
		return instance.getTraceBuilder();
	}

	/**
	 * Gets the dialogs interface
	 * 
	 * @return the dialogs interface
	 */
	public static TraceBuilderDialogs getDialogs() {
		return instance.getDialogs();
	}

	/**
	 * Gets the events interface
	 * 
	 * @return the events interface
	 */
	public static TraceBuilderEvents getEvents() {
		return instance.getEvents();
	}

	/**
	 * Called by a plug-in to register itself
	 * 
	 * @param plugin
	 *            the plugin to be registered
	 */
	public static void registerPlugin(TraceBuilderPlugin plugin) {
		instance.registerPlugin(plugin);
	}

	/**
	 * Called by a plug-in to unregister itself
	 * 
	 * @param plugin
	 *            the plugin to be unregistered
	 */
	public static void unregisterPlugin(TraceBuilderPlugin plugin) {
		if (instance != null) {
			instance.unregisterPlugin(plugin);
		}
	}

	/**
	 * Called by the view plug-in to register the view
	 * 
	 * @param view
	 *            the view
	 */
	public static void setView(TraceBuilderView view) {
		instance.setView(view);
	}

	/**
	 * Is view registered
	 * 
	 * @return true if view is registered false if view is not registered
	 */
	public static boolean isViewRegistered() {
		return instance.isViewRegistered();
	}

	/**
	 * Runs an asynchronous operation. Asynchronous operations are not available
	 * until view has been registered
	 * 
	 * @param runner
	 *            the operation to run
	 */
	public static void runAsyncOperation(Runnable runner) {
		instance.runAsyncOperation(runner);
	}

	/**
	 * Gets the source context manager
	 * 
	 * @return the context manager
	 */
	public static SourceContextManager getSourceContextManager() {
		return instance.getSourceContextManager();
	}

	/**
	 * Returns the actions interface. The actions interface is not available
	 * until view has been registered
	 * 
	 * @return the factory
	 */
	public static TraceBuilderActions getActions() {
		return instance.getActions();
	}

	/**
	 * Returns the view
	 * 
	 * @return the view
	 */
	public static TraceBuilderView getView() {
		return instance.getView();
	}

	/**
	 * Set current software component index
	 * 
	 * @param currentSoftwareComponentIndex
	 *            Current component index
	 */
	public static void setCurrentSoftwareComponentIndex(
			int currentSoftwareComponentIndex) {
		instance
				.setCurrentSoftwareComponentIndex(currentSoftwareComponentIndex);
	}

	/**
	 * Get current software component Id
	 * 
	 * @return the software component Id as string
	 */
	public static String getCurrentSoftwareComponentId() {
		String softwareComponentId = instance.getCurrentSoftwareComponentId();
		return softwareComponentId;
	}

	/**
	 * Get current software component name
	 * 
	 * @return the current software component name as string
	 */
	public static String getCurrentSoftwareComponentName() {
		String softwareComponentName = instance
				.getCurrentSoftwareComponentName();
		return softwareComponentName;
	}

	/**
	 * Add software component
	 * 
	 * @param softwareComponentId
	 *            software component Id
	 * @param softwareComponentName
	 *            software component name
	 * @param mmpPath
	 *            software component's mmp path
	 */
	public static void addSoftwareComponent(String softwareComponentId,
			String softwareComponentName, String mmpPath) {
		instance.addSoftwareComponent(softwareComponentId,
				softwareComponentName, mmpPath);
	}

	/**
	 * Clear software components
	 */
	public static void clearSoftwareComponents() {
		instance.clearSoftwareComponents();
	}

	/**
	 * Gets the software components
	 * 
	 * @return the software components iterator
	 */
	public static Iterator<SoftwareComponent> getSoftwareComponents() {
		Iterator<SoftwareComponent> softwareComponentIterator = instance
				.getSoftwareComponents();
		return softwareComponentIterator;
	}

	/**
	 * Get current software component's MMP path
	 * 
	 * @return the current software component's MMP path
	 */
	public static String getCurrentSoftwareComponentMMPPath() {
		String mmpPath = instance.getCurrentSoftwareComponentMMPPath();
		return mmpPath;
	}

	/**
	 * Get current software component index
	 * 
	 * @return current software component index
	 */
	public static int getCurrentSoftwareComponentIndex() {
		int index = instance.getCurrentSoftwareComponentIndex();
		return index;
	}

	/**
	 * Get previous software component name
	 * 
	 * @return previous software component name
	 */
	public static String getPreviousSoftwareComponentName() {
		String componentName = instance.getPreviousSoftwareComponentName();
		return componentName;
	}

	/**
	 * Get project path
	 * 
	 * @return project path
	 */
	public static String getProjectPath() {
		String projetcPath = instance.getProjectPath();
		return projetcPath;
	}

	/**
	 * Set project path
	 * 
	 * @param path
	 *            the path
	 */
	public static void setProjectPath(String path) {
		instance.setProjectPath(path);
	}

	/**
	 * Gets the name for the trace header file based on given source
	 * 
	 * @param sourceFile
	 *            the source file name
	 * @return the header file name
	 */
	public static String getHeaderFileName(String sourceFile) {
		String retval = instance.getHeaderFileName(sourceFile);
		return retval;
	}

	/**
	 * Set project monitor
	 * 
	 * @param projectMonitor
	 *            the project monitor
	 */
	public static void setProjectMonitor(TraceProjectMonitorInterface projectMonitor) {
		instance.setProjectMonitor(projectMonitor);
	}

	/**
	 * Get location converter
	 * 
	 * @return the location converter
	 */
	public static TraceLocationConverter getLocationConverter() {
		return instance.getLocationConverter();
	}

	/**
	 * Get location map
	 * 
	 * @return the location map
	 */
	public static TraceLocationMap getLocationMap() {
		return instance.getLocationMap();
	}
	
	/**
	 * Get group name handler
	 * 
	 * @return the group name handler
	 */
	public static GroupNameHandlerBase getGroupNameHandler() {
		return instance.getGroupNameHandler();
	}
	
	/**
	 * Set group name handler
	 * 
	 */
	public static void setGroupNameHandler(GroupNameHandlerBase groupNameHandler) {
		instance.setGroupNameHandler(groupNameHandler);
	}
}