debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/LaunchCreationWizardInstance.java
author stechong
Wed, 20 Oct 2010 11:19:31 -0500
changeset 2165 2a7b5eccb0bc
parent 569 369485fbe634
permissions -rw-r--r--
Keeping PlatSim internal only.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
569
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     1
/*
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     3
* All rights reserved.
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     4
* This component and the accompanying materials are made available
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     6
* which accompanies this distribution, and is available
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     8
*
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
     9
* Initial Contributors:
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    11
*
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    12
* Contributors:
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    13
*
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    14
* Description: 
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    15
*
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    16
*/
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    17
package com.nokia.cdt.internal.debug.launch.wizard;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    18
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    19
import java.util.List;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    20
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    21
import org.eclipse.core.resources.IProject;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    22
import org.eclipse.core.runtime.IPath;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    23
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    24
/**
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    25
 * Created for purposes of dependency injection on the LaunchCreationWizard.
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    26
 * This instance allows for other factories to be substituted at runtime, for
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    27
 * purposes of injecting at runtime LaunchCreationWizard sub-classes created by
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    28
 * the automated tests
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    29
 * 
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    30
 */
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    31
public class LaunchCreationWizardInstance {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    32
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    33
	// The delegate factory
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    34
	ILaunchCreationWizardFactory factory;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    35
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    36
	static private LaunchCreationWizardInstance instance = null;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    37
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    38
	/**
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    39
	 * Returns the singleton
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    40
	 * @return
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    41
	 */
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    42
	public static LaunchCreationWizardInstance getInstance() {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    43
		if (instance == null) {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    44
			instance = new LaunchCreationWizardInstance();
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    45
		}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    46
		return instance;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    47
	}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    48
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    49
	private LaunchCreationWizardInstance() {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    50
		setDefault();
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    51
	}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    52
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    53
	/**
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    54
	 * Returns the LaunchCreationWizard generated by the factory.
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    55
	 */
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    56
	public LaunchCreationWizard create(IProject project, String configurationName, 
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    57
			List<IPath> mmps, List<IPath> exes, IPath defaultExecutable,  
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    58
			boolean isEmulation, boolean emulatorOnly, String mode) throws Exception {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    59
		return factory.create(project, configurationName, mmps, exes, defaultExecutable, isEmulation, emulatorOnly, mode);
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    60
	}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    61
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    62
	/**
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    63
	 * Sets the factory to the default product implementation.  Used by the default initializer and to clear a dependency previously set
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    64
	 */
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    65
	public void setDefault() {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    66
		set(new ILaunchCreationWizardFactory() {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    67
			
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    68
			public LaunchCreationWizard create(IProject project, String configurationName,
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    69
					List<IPath> mmps, List<IPath> exes, IPath defaultExecutable,
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    70
					boolean isEmulation, boolean emulatorOnly, String mode)
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    71
					throws Exception {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    72
				return new LaunchCreationWizard(project, configurationName, mmps, exes, defaultExecutable, isEmulation, emulatorOnly, mode);
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    73
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    74
			}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    75
		});
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    76
	}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    77
	
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    78
	/**
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    79
	 * Intended to be used by tests to inject a custom factory
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    80
	 */
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    81
	public void set(ILaunchCreationWizardFactory factory) {
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    82
		this.factory = factory;
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    83
	}
369485fbe634 merged from RCL_2_4
john.dean.3@nokia.com
parents:
diff changeset
    84
}