|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.projectapi; import java.io.IOException; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.util.Collections; import java.util.Map; import java.util.WeakHashMap; import org.netbeans.api.project.Project; import org.netbeans.api.project.ProjectManager; import org.netbeans.spi.project.FileOwnerQueryImplementation; import org.openide.ErrorManager; import org.openide.filesystems.FileObject; import org.openide.filesystems.URLMapper; import org.openide.filesystems.FileUtil; import org.openide.util.Utilities; /** * Finds a project by searching the directory tree. * @author Jesse Glick */ public class SimpleFileOwnerQueryImplementation implements FileOwnerQueryImplementation { /** Do nothing */ public SimpleFileOwnerQueryImplementation() {} public Project getOwner(URI fileURI) { // Try to find a FileObject for it. URI test = fileURI; FileObject file; do { file = uri2FileObject(test); test = goUp(test); } while (file == null && test != null); if (file == null) { return null; } return getOwner(file); } public Project getOwner(FileObject f) { if (f.isData()) { f = f.getParent(); } while (f != null) { Project p; try { p = ProjectManager.getDefault().findProject(f); } catch (IOException e) { // There is a project here, but we cannot load it... ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e); return null; } if (p != null) { return p; } FileObject externalOwner = (FileObject)externalOwners.get(f); if (externalOwner != null) { try { // Note: will be null if there is no such project. return ProjectManager.getDefault().findProject(externalOwner); } catch (IOException e) { // There is a project there, but we cannot load it... ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e); return null; } } f = f.getParent(); } return null; } /** * Map from external source roots to the owning project directories. */ private static final Map/* |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.