cdt/cdt_6_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/IProjectExecutablesProvider.java
author stechong
Thu, 25 Feb 2010 23:36:03 -0600
changeset 137 f800d58f08b0
parent 135 6f8730b7758d
permissions -rw-r--r--
Better fix for Bug 10689.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     1
/*******************************************************************************
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia and others.
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     7
 *
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     8
 * Contributors:
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
     9
 * Nokia - Initial API and implementation
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    10
 *******************************************************************************/
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    11
package org.eclipse.cdt.debug.core.executables;
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    12
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    13
import java.util.List;
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    14
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    15
import org.eclipse.core.resources.IProject;
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    16
import org.eclipse.core.runtime.IProgressMonitor;
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    17
import org.eclipse.core.runtime.IStatus;
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    18
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    19
/**
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    20
 * IProjectExecutablesProvider supplies a list of executables for a project
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    21
 * to the Executables Manager.
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    22
 * 
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    23
 * @author Warren Paul
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    24
 * 
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    25
 */
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    26
public interface IProjectExecutablesProvider {
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    27
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    28
	/**
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    29
	 * Get the list of project natures that should be present in projects that
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    30
	 * this provider will get the list of executables for.  Since there could
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    31
	 * be any number of executable providers, the one that matches the given
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    32
	 * project natures the closest will be chosen.
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    33
	 * @return the list of project nature id's
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    34
	 */
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    35
	List<String> getProjectNatures();	
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    36
	
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    37
	/**
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    38
	 * Get the list of executables for the given project
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    39
	 * @param project the project to get the executables for
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    40
	 * @param monitor progress monitor
137
f800d58f08b0 Better fix for Bug 10689.
stechong
parents: 135
diff changeset
    41
	 * @return the list of executables (which may be empty)
45
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    42
	 */
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    43
	List<Executable> getExecutables(IProject project, IProgressMonitor monitor);
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    44
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    45
	/**
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    46
	 * Remove the given executable.  Note that the project can be obtained from Executable.
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    47
	 * @param executable the executable to remove
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    48
	 * @param monitor progress monitor
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    49
	 * @return the status of the remove operation
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    50
	 */
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    51
	IStatus removeExecutable(Executable executable, IProgressMonitor monitor);
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    52
70f756c14af3 merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
diff changeset
    53
}