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  * &lt;extension point=&quot;org.eclipse.debug.core.sourceContainerTypes&quot;&gt;
32  * 	&lt;sourceContainerType
33  * 		name=&quot;Project&quot;
34  * 		class=&quot;org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType&quot;
35  * 		id=&quot;org.eclipse.debug.core.containerType.project&quot;
36  * 		description=&quot;A project in the workspace&quot;&gt;
37  * 	&lt;/sourceContainerType&gt;
38  * &lt;/extension&gt;
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