|
From: <fd...@us...> - 2008-02-05 22:56:14
|
Revision: 3762
http://jnode.svn.sourceforge.net/jnode/?rev=3762&view=rev
Author: fduminy
Date: 2008-02-05 14:56:13 -0800 (Tue, 05 Feb 2008)
Log Message:
-----------
added getType() method to FileSystem interface
Modified Paths:
--------------
trunk/fs/src/fs/org/jnode/fs/FileSystem.java
trunk/fs/src/fs/org/jnode/fs/ext2/Ext2FileSystem.java
trunk/fs/src/fs/org/jnode/fs/fat/FatFileSystem.java
trunk/fs/src/fs/org/jnode/fs/ftpfs/FTPFileSystem.java
trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusFileSystem.java
trunk/fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystem.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystem.java
trunk/fs/src/fs/org/jnode/fs/jifs/JIFileSystem.java
trunk/fs/src/fs/org/jnode/fs/nfs/nfs2/NFS2FileSystem.java
trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFileSystem.java
trunk/fs/src/fs/org/jnode/fs/ramfs/RAMFileSystem.java
Modified: trunk/fs/src/fs/org/jnode/fs/FileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/FileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/FileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -30,6 +30,8 @@
*/
public interface FileSystem<T extends FSEntry> {
+ public FileSystemType<? extends FileSystem<T>> getType();
+
/**
* Gets the device this FS driver operates on.
*/
Modified: trunk/fs/src/fs/org/jnode/fs/ext2/Ext2FileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ext2/Ext2FileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/ext2/Ext2FileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -37,6 +37,7 @@
import org.jnode.fs.ext2.cache.Block;
import org.jnode.fs.ext2.cache.BlockCache;
import org.jnode.fs.ext2.cache.INodeCache;
+import org.jnode.fs.smbfs.SMBFileSystemType;
import org.jnode.fs.spi.AbstractFileSystem;
/**
@@ -84,6 +85,10 @@
//superblockLock = new Object();
}
+ final public Ext2FileSystemType getType() {
+ return Ext2FileSystemType.getInstance();
+ }
+
public void read() throws FileSystemException {
ByteBuffer data;
Modified: trunk/fs/src/fs/org/jnode/fs/fat/FatFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/fat/FatFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/fat/FatFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -90,6 +90,10 @@
}
}
+ final public FatFileSystemType getType() {
+ return FatFileSystemType.getInstance();
+ }
+
/**
* Flush all changed structures to the device.
*
Modified: trunk/fs/src/fs/org/jnode/fs/ftpfs/FTPFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ftpfs/FTPFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/ftpfs/FTPFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -26,24 +26,29 @@
import org.jnode.driver.Device;
import java.io.IOException;
+import java.text.ParseException;
import java.util.Date;
import java.security.PrivilegedAction;
import java.security.AccessController;
import com.enterprisedt.net.ftp.FTPClient;
+import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPFile;
/**
* @author Levente S\u00e1ntha
*/
-public class FTPFileSystem extends FTPClient implements FileSystem<FTPFSDirectory> {
+public class FTPFileSystem implements FileSystem<FTPFSDirectory> {
private FTPFSDevice device;
private FTPFSDirectory root;
private boolean closed;
private Thread thread;
+ final private FTPClient client;
+
public FTPFileSystem(final FTPFSDevice device) {
+ this.client = new FTPClient();
this.device = device;
device.addListener(new DeviceListener() {
public void deviceStarted(Device device) {
@@ -60,13 +65,13 @@
});
try{
- setRemoteHost(device.getHost());
- setTimeout(300000);
+ client.setRemoteHost(device.getHost());
+ client.setTimeout(300000);
AccessController.doPrivileged(
new PrivilegedAction(){
public Object run() {
try{
- connect();
+ client.connect();
return null;
}catch(Exception e){
throw new RuntimeException(e);
@@ -74,7 +79,7 @@
}
});
- login(device.getUser(),device.getPassword());
+ client.login(device.getUser(),device.getPassword());
thread = new Thread(new Runnable(){
public void run() {
try{
@@ -103,8 +108,12 @@
}
+ final public FTPFileSystemType getType() {
+ return FTPFileSystemType.getInstance();
+ }
+
private synchronized void nop() throws Exception{
- dir(root.path());
+ client.dir(root.path());
}
@@ -119,7 +128,7 @@
try {
closed = true;
thread = null;
- quit();
+ client.quit();
} catch(Exception e){
throw new IOException("Close error");
}
@@ -169,4 +178,16 @@
// TODO implement me
return 0;
}
+
+ FTPFile[] dirDetails(String path) throws IOException, FTPException, ParseException {
+ return client.dirDetails(path);
+ }
+
+ void chdir(String path) throws IOException, FTPException {
+ client.chdir(path);
+ }
+
+ byte[] get(String name) throws IOException, FTPException {
+ return client.get(name);
+ }
}
Modified: trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -19,13 +19,17 @@
private final Logger log = Logger.getLogger(getClass());
private Superblock sb;
-
+
private Catalog catalog;
public HfsPlusFileSystem(Device device, boolean readOnly) throws FileSystemException {
super(device, readOnly);
}
+ final public HfsPlusFileSystemType getType() {
+ return HfsPlusFileSystemType.getInstance();
+ }
+
public void read() throws FileSystemException {
sb = new Superblock(this);
log.debug("Superblock informations :\n" + sb.toString());
@@ -57,7 +61,7 @@
public long getFreeSpace() {
return sb.getFreeBlocks() * sb.getBlockSize();
}
-
+
public long getTotalSpace() {
return sb.getTotalBlocks() * sb.getBlockSize();
}
Modified: trunk/fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/iso9660/ISO9660FileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -56,6 +56,10 @@
}
}
+ final public ISO9660FileSystemType getType() {
+ return ISO9660FileSystemType.getInstance();
+ }
+
/**
* @see org.jnode.fs.FileSystem#getRootEntry()
*/
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -29,6 +29,7 @@
import org.jnode.fs.FSEntry;
import org.jnode.fs.FSFile;
import org.jnode.fs.FileSystemException;
+import org.jnode.fs.iso9660.ISO9660FileSystemType;
import org.jnode.fs.spi.AbstractFileSystem;
/**
@@ -54,6 +55,10 @@
rootEntry = FSTreeBuilder.build(this, jarFile, cache);
}
+ final public JarFileSystemType getType() {
+ return JarFileSystemType.getInstance();
+ }
+
public JarFile getJarFile()
{
return jarFile;
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -18,6 +18,7 @@
import org.jnode.fs.FSDirectory;
import org.jnode.fs.FSFile;
import org.jnode.fs.FileSystemException;
+import org.jnode.fs.ext2.Ext2FileSystemType;
import org.jnode.fs.spi.AbstractFileSystem;
@@ -55,6 +56,9 @@
this ( device, "ISO_8859_1", readOnly );
}
+ final public FatFileSystemType getType() {
+ return FatFileSystemType.getInstance();
+ }
public int getClusterSize() {
return fat.getClusterSize();
Modified: trunk/fs/src/fs/org/jnode/fs/jifs/JIFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jifs/JIFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/jifs/JIFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -30,6 +30,7 @@
import org.jnode.fs.FileSystem;
import org.jnode.fs.FileSystemException;
import org.jnode.fs.jifs.directories.JIFSDrootDir;
+import org.jnode.fs.nfs.nfs2.NFS2FileSystemType;
/**
* @author Andreas H\u00e4nel
@@ -55,6 +56,10 @@
//}
}
+ final public JIFileSystemType getType() {
+ return JIFileSystemType.getInstance();
+ }
+
/**
* Is the filesystem mounted in readonly mode ?
*/
Modified: trunk/fs/src/fs/org/jnode/fs/nfs/nfs2/NFS2FileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/nfs/nfs2/NFS2FileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/nfs/nfs2/NFS2FileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -116,11 +116,15 @@
}
+ final public NFS2FileSystemType getType() {
+ return NFS2FileSystemType.getInstance();
+ }
+
/**
* Close this filesystem. After a close, all invocations of method of this
* filesystem or objects created by this filesystem will throw an
* IOException.
- *
+ *
* @throws java.io.IOException
*/
public void close() throws IOException {
Modified: trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/ntfs/NTFSFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -56,6 +56,10 @@
}
}
+ final public NTFSFileSystemType getType() {
+ return NTFSFileSystemType.getInstance();
+ }
+
/**
* @see org.jnode.fs.FileSystem#getRootEntry()
*/
Modified: trunk/fs/src/fs/org/jnode/fs/ramfs/RAMFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ramfs/RAMFileSystem.java 2008-02-05 22:54:57 UTC (rev 3761)
+++ trunk/fs/src/fs/org/jnode/fs/ramfs/RAMFileSystem.java 2008-02-05 22:56:13 UTC (rev 3762)
@@ -6,6 +6,7 @@
import org.jnode.fs.FSEntry;
import org.jnode.fs.FileSystem;
import org.jnode.fs.FileSystemException;
+import org.jnode.fs.smbfs.SMBFileSystemType;
/**
* A Filesystem implementation in the system RAM.
@@ -41,6 +42,10 @@
root = new RAMDirectory(this, null, "");
}
+ final public RAMFileSystemType getType() {
+ return RAMFileSystemType.getInstance();
+ }
+
/**
* (non-Javadoc)
* @see org.jnode.fs.FileSystem#getDevice()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|