/** * SlingBeans - NetBeans Sling plugin * https://github.com/jkan997/SlingBeans * Licensed under Apache 2.0 license * http://www.apache.org/licenses/LICENSE-2.0 */ package org.jkan997.slingbeans.nbservices; import java.net.URL; import org.jkan997.slingbeans.slingfs.FileObject; import org.jkan997.slingbeans.slingfs.FileSystem; import org.jkan997.slingbeans.slingfs.FileSystemFactory; import org.openide.filesystems.URLMapper; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** * * @author jkan997 */ @ServiceProvider(service = SlingFsFactory.class) public class SlingFsFactory extends URLMapper { private FileSystemFactory fsFactory; private String defaultFileSystemId = null; public static SlingFsFactory lookup() { Lookup lookup = Lookup.getDefault(); SlingFsFactory res = lookup.lookup(SlingFsFactory.class); return res; } public SlingFsFactory() { fsFactory = FileSystemFactory.getInstance(); } public FileSystem getDefaultFileSystem(){ if (defaultFileSystemId!=null){ return getFileSystem(defaultFileSystemId); } return null; } public String getDefualtFileSystemId(){ return defaultFileSystemId; } public void setDefualtFileSystemId(String fsId){ defaultFileSystemId=fsId; } @Override public URL getURL(org.openide.filesystems.FileObject fo, int type) { return fsFactory.getURL(fo, type); } @Override public FileObject[] getFileObjects(URL url) { return fsFactory.getFileObjects(url); } public void registerFileSystem(FileSystem fileSystem) { fsFactory.unregisterAllFilesystems(); fsFactory.registerFileSystem(fileSystem); } public FileSystem getFileSystem(String fsId) { return fsFactory.getFileSystem(fsId); } public void unregisterAll() { fsFactory.unregisterAllFilesystems(); this.defaultFileSystemId=null; } }