org.netbeans.modules.projectapi/1 1.9.22

org.netbeans.api.project
Class FileOwnerQuery

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

public class FileOwnerQuery
extends Object

Find the project which owns a file.

There is a default implementation of FileOwnerQueryImplementation which considers a file owned by the project corresponding to the nearest enclosing project directory or marked external owner, if such a directory exists. But other implementations can be registered to lookup as well.


Field Summary
static int EXTERNAL_ALGORITHM_TRANSIENT
          Simplest algorithm for marking external file owners, which just keeps a transient memory cache of this information.
 
Method Summary
static Project getOwner(FileObject file)
          Find the project, if any, which "owns" the given file.
static Project getOwner(URI uri)
          Find the project, if any, which "owns" the given URI.
static void markExternalOwner(FileObject root, Project owner, int algorithm)
          Mark an external folder or file as being owned by a particular project.
static void markExternalOwner(URI root, Project owner, int algorithm)
          Mark an external URI (folder or file) as being owned by a particular project.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXTERNAL_ALGORITHM_TRANSIENT

public static final int EXTERNAL_ALGORITHM_TRANSIENT
Simplest algorithm for marking external file owners, which just keeps a transient memory cache of this information. The external marking is only guaranteed to be good during this VM session for as long as the external file root is retained in memory as a FileObject. For this reason, a project which makes such a marking when it is created is obliged to hold a reference to the external file root for as long as the project itself is in memory, to ensure that it continues to work.

See Also:
Constant Field Values
Method Detail

getOwner

public static Project getOwner(FileObject file)
Find the project, if any, which "owns" the given file.

Parameters:
file - the file (generally on disk)
Returns:
a project which contains it, or null if there is no known project containing it

getOwner

public static Project getOwner(URI uri)
Find the project, if any, which "owns" the given URI.

Parameters:
uri - the uri to the file (generally on disk); must be absolute and not opaque
Returns:
a project which contains it, or null if there is no known project containing it
Throws:
IllegalArgumentException - if the URI is relative or opaque

markExternalOwner

public static void markExternalOwner(FileObject root,
                                     Project owner,
                                     int algorithm)
                              throws IllegalArgumentException
Mark an external folder or file as being owned by a particular project. After this call is made, for the duration appropriate to the selected algorithm, that folder or file and its ancestors will be considered owned by the project (if any) matching the named project directory, except in the case that a lower enclosing project directory can be found.

Typical usage would be to call this method for each external source root of a project (if any) as soon as the project is loaded, if a transient algorithm is selected, or only when the project is created, if a reliable persistent algorithm is selected.

Parameters:
root - a folder or a file which should be considered part of a project
owner - a project which should be considered to own that folder tree (any prior marked external owner is overridden), or null to cancel external ownership for this folder root
algorithm - an algorithm to use for retaining this information; currently may only be EXTERNAL_ALGORITHM_TRANSIENT
Throws:
IllegalArgumentException - if the root or owner is null, if an unsupported algorithm is requested, if the root is already a project directory, or if the root is already equal to or inside the owner's project directory (it may however be an ancestor)
See Also:
SourcesHelper

markExternalOwner

public static void markExternalOwner(URI root,
                                     Project owner,
                                     int algorithm)
                              throws IllegalArgumentException
Mark an external URI (folder or file) as being owned by a particular project. After this call is made, for the duration appropriate to the selected algorithm, that folder or file and its ancestors will be considered owned by the project (if any) matching the named project directory, except in the case that a lower enclosing project directory can be found.

Typical usage would be to call this method for each external source root of a project (if any) as soon as the project is loaded, if a transient algorithm is selected, or only when the project is created, if a reliable persistent algorithm is selected.

Parameters:
root - an URI of a folder or a file which should be considered part of a project
owner - a project which should be considered to own that folder tree (any prior marked external owner is overridden), or null to cancel external ownership for this folder root
algorithm - an algorithm to use for retaining this information; currently may only be EXTERNAL_ALGORITHM_TRANSIENT
Throws:
IllegalArgumentException - if the root or owner is null, if an unsupported algorithm is requested, if the root is already a project directory, or if the root is already equal to or inside the owner's project directory (it may however be an ancestor)
See Also:
SourcesHelper

org.netbeans.modules.projectapi/1 1.9.22

Built on July 11 2007.  |  Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.