org.netbeans.modules.projectapi/1 1.28.1

org.netbeans.api.project
Interface Project

All Superinterfaces:
Lookup.Provider

public interface Project
extends Lookup.Provider

Represents one IDE project in memory.

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 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.

See Also:
NetBeans 4.0 Project & Build System How-To

Method Summary
 Lookup getLookup()
          Get any optional abilities of this project.
 FileObject getProjectDirectory()
          Gets an associated directory where the project metadata and possibly sources live.
 

Method Detail

getProjectDirectory

FileObject getProjectDirectory()
Gets an associated directory where the project metadata and possibly sources live. In the case of a typical Ant project, this is the top directory, not the project metadata subdirectory.

Returns:
a directory

getLookup

Lookup getLookup()
Get any optional abilities of this project.

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:

  1. ProjectInformation
  2. LogicalViewProvider
  3. CustomizerProvider
  4. Sources
  5. ActionProvider
  6. SubprojectProvider
  7. AuxiliaryConfiguration
  8. AuxiliaryProperties
  9. CacheDirectoryProvider

You might also have e.g.:

  1. ProjectConfigurationProvider
  2. FileBuiltQueryImplementation
  3. SharabilityQueryImplementation
  4. FileEncodingQueryImplementation
  5. ProjectOpenedHook
  6. RecommendedTemplates
  7. PrivilegedTemplates
  8. ClassPathProvider
  9. SourceForBinaryQueryImplementation
  10. SourceLevelQueryImplementation
  11. JavadocForBinaryQueryImplementation
  12. AccessibilityQueryImplementation
  13. MultipleRootsUnitTestForSourceQueryImplementation
  14. ProjectXmlSavedHook
  15. AntArtifactProvider
  16. SearchInfo
  17. BinaryForSourceQueryImplementation
  18. AntBuildExtender
  19. CreateFromTemplateAttributesProvider

Typical implementation:

 private final Lookup lookup = Lookups.fixed(new Object[] {
     new MyAbility1(this),
     // ...
 });
 public Lookup getLookup() {
     return lookup;
 }
 

Specified by:
getLookup in interface Lookup.Provider
Returns:
a set of abilities

org.netbeans.modules.projectapi/1 1.28.1

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