Modifier and Type | Method and Description |
---|---|
ProjectConfiguration |
getActiveConfiguration(Project p)
Returns the active configuration for the given project.
|
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 Set<Project> |
getContainedProjects(Project root,
boolean recursive)
Utility method for access to
ProjectContainerProvider , a less vague variant of the SubprojectProvider for code
that wants to access projects that the current project serves as container for. |
static Set<Project> |
getDependencyProjects(Project root,
boolean recursive)
Utility method for access to
DependencyProjectProvider , a less vague variant of the SubprojectProvider for code
that wants to access project's dependencies that are also projects. |
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.
|
static Project |
parentOf(Project project)
Utility method for
ParentProjectProvider . |
static Project |
rootOf(Project project)
Utility method for
RootProjectProvider . |
<C extends ProjectConfiguration> |
setActiveConfiguration(Project p,
C cfg)
Sets the active configuration to a project.
|
public ProjectConfiguration getActiveConfiguration(@NonNull Project p)
null
,
if the project does not support configurations at all.p
- the projectnull
if configurations are not supported.public <C extends ProjectConfiguration> boolean setActiveConfiguration(@NonNull Project p, @NonNull C cfg) throws IOException
ProjectUtils.getActiveConfiguration(org.netbeans.api.project.Project)
from the same project. The method
returns false
, if the configuration could not be set: if the project does not support configurations
at all, or the project failed to switch the configurations. Since the active configuration setting is persisted,
the method throws IOException
if the setting save fails.C
- configuration typep
- the projectcfg
- configuration or null
for default configuration.IOException
- when the selected configuration cannot be persisted.public static ProjectInformation getInformation(@NonNull Project p)
ProjectInformation
instance in its lookup,
that is used. Otherwise, a basic dummy implementation is returned.p
- a projectProject.getLookup()
public static Sources getSources(@NonNull Project p)
Sources
instance in its lookup,
that is used. Otherwise, a basic implementation is returned
using GenericSources.genericOnly(org.netbeans.api.project.Project)
.p
- a projectProject.getLookup()
public static boolean hasSubprojectCycles(Project master, Project candidate)
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.
master
- a project to root the subproject graph fromcandidate
- a potential direct subproject of the master project, or nullpublic static Set<Project> getDependencyProjects(@NonNull Project root, boolean recursive)
DependencyProjectProvider
, a less vague variant of the SubprojectProvider
for code
that wants to access project's dependencies that are also projects. Even when recursive, will only use DependencyProjectProvider on other projects.
Unlike some java level API this doesn't distinguish between compile, runtime, test level dependencies.root
- project where to start calculating dependenciesrecursive
- true if entire dependency tree should be calculated,
some project implementation can return just direct dependency projects that themselves have dependency projects.
Please note that false value does NOT guarantee that only direct dependency projects will be returned.DependencyProjectProvider
in it's lookup, or a set with projects, ordering not mandatedpublic static Set<Project> getContainedProjects(@NonNull Project root, boolean recursive)
ProjectContainerProvider
, a less vague variant of the SubprojectProvider
for code
that wants to access projects that the current project serves as container for. Eg. in case of Maven based projects it means projects referenced by <modules>
pom.xml section.
Even when recursive, will only use ProjectContainerProvider on other projects.root
- project where to start calculating contained projectsrecursive
- true if entire container tree should be calculated,
some project implementation can return just direct subprojects that themselves contain projects.
Please note that false value does NOT guarantee that only direct projects will be returned.ProjectContainerProvider
in it's lookup, or a set with projects, ordering not mandatedpublic static Project parentOf(@NonNull Project project)
ParentProjectProvider
. If the given project
support ParentProjectProvider
this method will return the immediate
parent of that project or null
if that can not be determined
or the project has no parent. This method also returns null
if the given project has no ParentProjectProvider
support.project
- a suspected child projectnull
.public static Project rootOf(@NonNull Project project)
RootProjectProvider
. If the given project
support RootProjectProvider
this method will return its farthest
parent.If the given project itself is root the it returns that. If the
the farthest parent cannot be determined the given project is considered
to be a root project and will be returned.project
- a suspected child projectthis
.public static Preferences getPreferences(@NonNull Project project, @NonNull Class clazz, boolean shared)
Preferences
for the given project and given module.
The preferences are stored in the project using either AuxiliaryConfiguration
or AuxiliaryProperties
.
project
- project for which preferences should be returnedclazz
- module specification as in NbPreferences.forModule(java.lang.Class)
shared
- whether the returned settings should be sharedPreferences
for the given projectpublic static AuxiliaryConfiguration getAuxiliaryConfiguration(@NonNull Project project)
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.
project
- a projectpublic static FileObject getCacheDirectory(@NonNull Project project, @NonNull Class<?> owner) throws IOException
If the project supplies a CacheDirectoryProvider
, that will be used
for the parent directory. Otherwise an unspecified storage area will be used.
project
- a projectowner
- a class from the calling module (each module or package will get its own space)IOException
- if no such directory could be created