1 /******************************************************************************* 2 * Copyright (c) 2000, 2008 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.debug.core.sourcelookup; 15 16 17 18 /** 19 * A source container type represents a kind of container of source code. For 20 * example, a source container type may be a project or a directory. A specific 21 * project or directory is represented by an instance of a source container 22 * type, which is called a source container (<code>ISourceContainer</code>). 23 * <p> 24 * A source container type is contributed via the 25 * <code>sourceContainerTypes</code> extension point, providing a delegate to 26 * the work specific to the contributed type. Following is an example 27 * contribution. 28 * </p> 29 * 30 * <pre> 31 * <extension point="org.eclipse.debug.core.sourceContainerTypes"> 32 * <sourceContainerType 33 * name="Project" 34 * class="org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType" 35 * id="org.eclipse.debug.core.containerType.project" 36 * description="A project in the workspace"> 37 * </sourceContainerType> 38 * </extension> 39 * </pre> 40 * <p> 41 * Clients contributing a source container type implement 42 * {@link org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate}. 43 * </p> 44 * 45 * @see org.eclipse.debug.core.sourcelookup.ISourceContainer 46 * @see org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate 47 * @since 3.0 48 * @noimplement This interface is not intended to be implemented by clients. 49 * @noextend This interface is not intended to be extended by clients. 50 */ 51 public interface ISourceContainerType extends ISourceContainerTypeDelegate { 52 53 /** 54 * Returns the name of this source container type that can be used for 55 * presentation purposes. For example, <code>Working Set</code> or 56 * <code>Project</code>. The value returned is 57 * identical to the name specified in plugin.xml by the <code>name</code> 58 * attribute. 59 * 60 * @return the name of this source container type 61 */ getName()62 String getName(); 63 64 /** 65 * Returns the unique identifier associated with this source container type. 66 * The value returned is identical to the identifier specified in plugin.xml by 67 * the <code>id</code> attribute. 68 * 69 * @return the unique identifier associated with this source container type 70 */ getId()71 String getId(); 72 73 /** 74 * Returns a short description of this source container type that can be used 75 * for presentation purposes, or <code>null</code> if none. 76 * 77 * @return a short description of this source container type, or <code>null</code> 78 */ getDescription()79 String getDescription(); 80 81 } 82