KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > spi > project > SubprojectProvider


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.spi.project;
21
22 import java.util.Set JavaDoc;
23 import javax.swing.event.ChangeListener JavaDoc;
24 import org.netbeans.api.project.Project;
25
26 /**
27  * Optional ability of projects which may have a list of "subprojects".
28  * The exact interpretation of this term is at the discretion of the project,
29  * but typically subprojects would be "built" as part of this project or somehow
30  * used in it as dependencies; or they may just be contained or agglomerated in
31  * it somehow.
32  * @see Project#getLookup
33  * @see <a HREF="@org-netbeans-modules-project-ant@/org/netbeans/spi/project/support/ant/ReferenceHelper.html#createSubprojectProvider()"><code>ReferenceHelper.createSubprojectProvider</code></a>
34  * @author Jesse Glick
35  */

36 public interface SubprojectProvider {
37     
38     /**
39      * Get a set of projects which this project can be considered to depend upon somehow.
40      * This information is likely to be used only for UI purposes.
41      * Only direct subprojects need be listed, not all recursive subprojects.
42      * There may be no direct or indirect cycles in the project dependency graph
43      * but it may be a DAG, i.e. two projects may both depend on the same subproject.
44      * @return an immutable and unchanging set of {@link Project}s
45      * @see org.netbeans.api.project.ProjectUtils#hasSubprojectCycles
46      */

47     Set JavaDoc<? extends Project> getSubprojects();
48     
49     /**
50      * Add a listener to changes in the set of subprojects.
51      * @param listener a listener to add
52      */

53     void addChangeListener(ChangeListener JavaDoc listener);
54     
55     /**
56      * Remove a listener to changes in the set of subprojects.
57      * @param listener a listener to remove
58      */

59     void removeChangeListener(ChangeListener JavaDoc listener);
60     
61 }
62
Popular Tags