public interface Project extends Lookup.Provider
Never cast a project instance to any subtype.
(Nor call Object.getClass() on the Project instance.)
The project
manager is free to wrap any project in an unspecified proxy for its own
purposes. For extensibility, use Project.getLookup().
Note that this API is primarily of interest to project type provider modules, and to infrastructure and generic GUI. Most other modules providing tools or services should not need to explicitly model projects, and should not be using this API much or at all.
| Modifier and Type | Method and Description |
|---|---|
Lookup |
getLookup()
Get any optional abilities of this project.
|
FileObject |
getProjectDirectory()
Gets an associated directory where the project metadata and possibly sources live.
|
FileObject getProjectDirectory()
Lookup getLookup()
If you are providing a project, there are a number of interfaces
which you should consider implementing and including in lookup, some of which
are described below. If you are using a project from another module,
there are some cases where you will want to ask a project for a particular
object in lookup (e.g. ExtensibleMetadataProvider) but in most
cases you should not; in the case of queries, always call the static query
API helper method, rather than looking for the query implementation objects
yourself. In the case of ProjectInformation and Sources,
use ProjectUtils rather than directly searching the project lookup.
The following abilities are recommended:
ProjectInformationLogicalViewProviderCustomizerProviderSourcesActionProviderSubprojectProviderAuxiliaryConfigurationAuxiliaryPropertiesCacheDirectoryProviderYou might also have e.g.:
ProjectConfigurationProviderFileBuiltQueryImplementationSharabilityQueryImplementationFileEncodingQueryImplementationProjectOpenedHookRecommendedTemplatesPrivilegedTemplatesClassPathProviderSourceForBinaryQueryImplementationSourceLevelQueryImplementation2JavadocForBinaryQueryImplementationAccessibilityQueryImplementationMultipleRootsUnitTestForSourceQueryImplementationProjectXmlSavedHookAntArtifactProviderSearchInfoBinaryForSourceQueryImplementationAntBuildExtenderCreateFromTemplateAttributesProviderTypical implementation:
private final Lookup lookup = Lookups.fixed(new Object[] {
new MyAbility1(this),
// ...
});
public Lookup getLookup() {
return lookup;
}
getLookup in interface Lookup.Provider