org.netbeans.modules.projectapi/1 1.36.1

org.netbeans.api.project
Class ProjectUtils

java.lang.Object
  extended by org.netbeans.api.project.ProjectUtils

public class ProjectUtils
extends Object

Utility methods to get information about Projects.


Method Summary
static AuxiliaryConfiguration getAuxiliaryConfiguration(Project project)
          Find a way of storing extra configuration in a project.
static FileObject getCacheDirectory(Project project, Class<?> owner)
          Gets a directory in which modules may store arbitrary extra unversioned files associated with a project.
static ProjectInformation getInformation(Project p)
          Get basic information about a project.
static Preferences getPreferences(Project project, Class clazz, boolean shared)
          Return Preferences for the given project and given module.
static Sources getSources(Project p)
          Get a list of sources for a project.
static boolean hasSubprojectCycles(Project master, Project candidate)
          Check whether a project has, or might have, cycles in its subproject graph.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInformation

public static ProjectInformation getInformation(Project p)
Get basic information about a project. If the project has a ProjectInformation instance in its lookup, that is used. Otherwise, a basic dummy implementation is returned.

Parameters:
p - a project
Returns:
some information about it
See Also:
Project.getLookup()

getSources

public static Sources getSources(Project p)
Get a list of sources for a project. If the project has a Sources instance in its lookup, that is used. Otherwise, a basic implementation is returned using GenericSources.genericOnly(org.netbeans.api.project.Project).

Parameters:
p - a project
Returns:
a list of sources for it
See Also:
Project.getLookup()

hasSubprojectCycles

public static boolean hasSubprojectCycles(Project master,
                                          Project candidate)
Check whether a project has, or might have, cycles in its subproject graph.

If the candidate parameter is null, this simply checks whether the master project's current directed graph of (transitive) subprojects contains any cycles. If the candidate is also passed, this checks whether the master project's subproject graph would contain cycles if the candidate were added as a (direct) subproject of the master project.

All cycles are reported even if they do not contain the master project.

If the master project already contains the candidate as a (direct) subproject, the effect is as if the candidate were null.

Projects with no SubprojectProvider are considered to have no subprojects, just as if the provider returned an empty set.

Acquires read access.

Project types which let the user somehow configure subprojects in the GUI (perhaps indirectly, e.g. via a classpath) should use this call to check for possible cycles before adding new subprojects.

Parameters:
master - a project to root the subproject graph from
candidate - a potential direct subproject of the master project, or null
Returns:
true if the master project currently has a cycle somewhere in its subproject graph, regardless of the candidate parameter, or if the candidate is not null and the master project does not currently have a cycle but would have one if the candidate were added as a subproject
See Also:
Issue #43845

getPreferences

public static Preferences getPreferences(Project project,
                                         Class clazz,
                                         boolean shared)
Return Preferences for the given project and given module.

The preferences are stored in the project using either AuxiliaryConfiguration or AuxiliaryProperties.

Parameters:
project - project for which preferences should be returned
clazz - module specification as in NbPreferences.forModule(java.lang.Class)
shared - whether the returned settings should be shared
Returns:
Preferences for the given project
Since:
1.16

getAuxiliaryConfiguration

public static AuxiliaryConfiguration getAuxiliaryConfiguration(Project project)
Find a way of storing extra configuration in a project. If the project's lookup does not provide an instance, a fallback implementation is used.

The current fallback implementation uses file attributes for "nonsharable" configuration, and a specially named file in the project directory for "sharable" configuration. For compatibility purposes (in case a project adds an AuxiliaryConfiguration instance to its lookup where before it had none), the fallback storage is read (but not written) even if there is an instance in project lookup.

Parameters:
project - a project
Returns:
an auxiliary configuration handle
Since:
org.netbeans.modules.projectapi/1 1.17

getCacheDirectory

public static FileObject getCacheDirectory(Project project,
                                           Class<?> owner)
                                    throws IOException
Gets a directory in which modules may store arbitrary extra unversioned files associated with a project. These could be caches of information found in sources, logs or snapshots from activities associated with developing the project, etc.

If the project supplies a CacheDirectoryProvider, that will be used for the parent directory. Otherwise an unspecified storage area will be used.

Parameters:
project - a project
owner - a class from the calling module (each module or package will get its own space)
Returns:
a directory available for storing miscellaneous files
Throws:
IOException - if no such directory could be created
Since:
org.netbeans.modules.projectapi/1 1.26

org.netbeans.modules.projectapi/1 1.36.1

Built on December 5 2011.  |  Portions Copyright 1997-2011 Sun Microsystems, Inc. All rights reserved.