1 /******************************************************************************* 2 * Copyright (c) 2006, 2007 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.debug.core; 12 13 import java.util.List; 14 import java.util.Set; 15 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; 18 19 /** 20 * A proxy to an {@link ILaunchConfigurationDelegate}. Represents a 21 * launch delegate contributed to the <code>org.eclipse.debug.core.launchDelegates</code> 22 * extension point. 23 * <p> 24 * This interface is NOT to be implemented by clients 25 * </p> 26 * @since 3.3 27 */ 28 public interface ILaunchDelegate { 29 30 /** 31 * Returns this delegate's unique identifier. 32 * 33 * @return launch delegate identifier 34 */ 35 public String getId(); 36 37 /** 38 * Returns a human readable name for this launch delegate 39 * or <code>null</code> if none. 40 * 41 * @return name or <code>null</code> 42 */ 43 public String getName(); 44 45 /** 46 * Returns a description of this launch delegate, or 47 * <code>null</code> if none. 48 * 49 * @return description or <code>null</code> 50 */ 51 public String getDescription(); 52 53 /** 54 * Returns the name of the plug-in that contributed this delegate. 55 * 56 * @return contributor name 57 */ 58 public String getContributorName(); 59 60 /** 61 * Returns the underlying launch configuration. 62 * Causes the delegate to be instantiated. 63 * 64 * @return launch configuration delegate 65 * @exception CoreException if unable to instantiate the delegate 66 */ 67 public ILaunchConfigurationDelegate getDelegate() throws CoreException; 68 69 /** 70 * Returns the complete set of launch modes supported by this delegate as a list of sets. 71 * Each set contains one of more launch mode identifiers. When a set contains more than 72 * one launch mode, it indicates that a mixed launch mode is supported. 73 * If no modes are available an empty list is returned. 74 * 75 * @return the complete set of launch modes this delegate supports 76 */ 77 public List getModes(); 78 79 /** 80 * Returns the id of the plug-in that contributed this launch delegate. 81 * 82 * @return the id of the plug-in that contributed this launch delegate 83 */ 84 public String getPluginIdentifier(); 85 86 /** 87 * Returns the specified perspective id for the given mode set, or null if one is not provided 88 * @param modes the set of modes to get the perspective id 89 * @return the perspective id associated with the given mode set, or <code>null</code> if none provided 90 */ 91 public String getPerspectiveId(Set modes); 92 93 } 94