element, and specify project
attributes and drivers for handling operations such build and run.
An instance of each project driver associated with the project type will be added to an IProject on construction.
Additional IProjectDriver implementations may be added to an IProject
by services running in Workshop.
Each IProject has a root directory.
Some project types may require that the project's root directory is directly
inside the IWorkspace root directory. Other project types support root directories
located outside the application directory. Some project types may support additional source
root directories.
The system Preferences node is used to persist project-level settings
the IWorkspace's .work file. User or machine-specific project-level settings are
persisted with the user Preferences node.
-
All Superinterfaces
-
ICookieSupport, IDriverSupport, IPreferencesSupport, IPropertySupport
EVENT_ClassPathModified
public static final String EVENT_ClassPathModified
- Notification that a binary on the classpath has changed.
KEY_DISABLE_COMPILER_REBUILD
public static final String KEY_DISABLE_COMPILER_REBUILD
- Cookie key to allow internal code to override default rebuild behavior. This value should not be used
by external consumers.
PROP_ClassPath
public static final String PROP_ClassPath
- String array of classpath members. This property should never be set directly.
Calling IProject.updateClassPath() will cause the classpath to be recalculated using the
project's IBuildDriver.
PROP_Closed
public static final String PROP_Closed
PROP_compilerReloading
public static final String PROP_compilerReloading
PROP_packageCacheAvailable
public static final String PROP_packageCacheAvailable
- Will be set to false during package cache reload. Set to true when reload is complete.
PROP_sourceLoaded
public static final String PROP_sourceLoaded
PROP_SourcePath
public static final String PROP_SourcePath
- String array of project source directories. This property is set and maintained by the project's IBuildDriver.
PROP_ValidRuntime
public static final String PROP_ValidRuntime
RUNNABLE_AS_WEB_APP
public static final String RUNNABLE_AS_WEB_APP
SUPPORTS_WEB_APP
public static final String SUPPORTS_WEB_APP
getBooleanProperty(String) Method
public boolean getBooleanProperty(String propName)
Returns the named property as a boolean value.
False will be returned if the property is not set.
Parameters
-
propName
- String property name
Returns
- boolean property value.
getCacheRoot() Method
public IFile getCacheRoot()
Returns a cache location unique to the project under the application directory.
This directory will not be deleted when the application is closed.
This directroy will be deleted if the project is removed from the application.
Returns
- IFile cache root directory.
getClassLoader() Method
public ClassLoader getClassLoader()
Gets a classloader using the project's current classpath.
Unlike a URLClassLoader, the returned classloader will not keep files open and
prevent a referenced jarfile from being overwritten by the user.
Returns
- ClassLoader
getClassLoader(IFile[], boolean, boolean) Method
public ClassLoader getClassLoader(IFile[] jarFiles,
boolean includeProject,
boolean includeIde)
Gets a classloader that searches through a set of specified jarfiles,
the user's project classpath, and/or the IDE application classpath.
Unlike a URLClassLoader, the returned classloader will not keep files open and
prevent a referenced jarfile from being overwritten by the user.
Parameters
-
jarFiles
- An array of jars and/or directories that will be
searched, in the order given. May be null, which is equivalent to
an empty array.
-
includeProject
- True if the classpath for the project should
be searched.
-
includeIde
- True if the IDE core and extension classpath
should be searched.
Returns
- ClassLoader
getClassPath() Method
public String getClassPath()
Returns search path of directories and zip/jar files.
Paths in this string will be delimited with an os-specific
path separator character.
Returns
- String search path for project classes and resources.
getClassPathArray() Method
public String[] getClassPathArray()
Returns search path of directories and zip/jar files.
Returns
- String array of project search paths.
getDirectory() Method
public IFile getDirectory()
Returns the root directory of this project
getFile() Method
DEPRECATED use getDirectory
public File getFile()
getIFile() Method
DEPRECATED use getDirectory
public IFile getIFile()
getName() Method
public String getName()
Returns the name of this Project
getPath() Method
DEPRECATED use getDirectory
public String getPath()
getProjectInfo() Method
public IProjectInfo getProjectInfo()
Get this project's type information.
Returns
- IProjectInfo, will never be null.
getRelativePath(URI) Method
public String getRelativePath(URI uri)
Returns a relative path from this project to the given URI.
getSourcePath() Method
public String getSourcePath()
Returns source root directories for this project.
Paths in this string will be delimited with an os-specific
path separator character.
Returns
- String source paths
getSourcePathArray() Method
public String[] getSourcePathArray()
Returns source root directories for this project.
Returns
- String array of source paths.
getType() Method
DEPRECATED use getProjectInfo().getTypeId()
public String getType()
getWorkspace() Method
public IWorkspace getWorkspace()
Gets the workspace this project is a member of.
Returns
- IWorkspace that contains this project.
hasValidRuntime() Method
public boolean hasValidRuntime()
Can we attempt to compile this project?
Use PROP_ValidRuntime to listen to changes
invalidFolderCheck(URI, String) Method
public String invalidFolderCheck(URI uriParent,
String sName)
Checks the given name to see if it is a valid folder for this project.
The URI will be checked to see if the folder is under a project source
directory. If it is, then the name must be a valid java identifier
and not be a compiler restricted name.
Parameters
-
uriParent
- A uri in the current project where the folder would be created.
-
sName
- The folder name that should be examined for validity. This should
not contain any path information (i.e. separators).
Returns
- String value indicating the error message that should be shown to the user. The return value
null means either that the folder name is valid, or that the given parent URI is not in this project.
isClosed() Method
DEPRECATED Listen for Application.PROP_OpenProjects to fire, and search for your project in the list. Not there == closed.
public boolean isClosed()
isInProject(URI) Method
public boolean isInProject(URI uri)
Returns true if the uri passed in is under this project root.
isSourceLoaded() Method
public boolean isSourceLoaded()
Returns whether Workshop has completed source loading.
Returns
- boolean, true if source loading is complete, false if loading is in progress.
systemNodeForPackage(String) Method
public Preferences systemNodeForPackage(String key)
Get the preference subtree in the project system preferences that corresponds to the given package name.
Parameters
-
key
- String package name.
Returns
- Preference node associated with the given package name. If no such node exists,
an empty one is created and returned.
updateClassPath() Method
public void updateClassPath()
Recalculates the project classpath.
Classpath change events will be fired if the classpath has
changed.
userNodeForPackage(String) Method
public Preferences userNodeForPackage(String key)
Get the preference subtree in the user project preferences that corresponds to the given package name.
Parameters
-
key
- String package name.
Returns
- Preference node associated with the given package name. If no such node exists,
an empty one is created and returned.