|
@@ -4,9 +4,13 @@ import org.alfresco.config.ConfigElement;
|
|
|
import org.alfresco.jlan.server.SrvSession;
|
|
|
import org.alfresco.jlan.server.core.DeviceContext;
|
|
|
import org.alfresco.jlan.server.core.DeviceContextException;
|
|
|
+import org.alfresco.jlan.server.filesys.DiskDeviceContext;
|
|
|
import org.alfresco.jlan.server.filesys.DiskInterface;
|
|
|
+import org.alfresco.jlan.server.filesys.FileAttribute;
|
|
|
+import org.alfresco.jlan.server.filesys.FileExistsException;
|
|
|
import org.alfresco.jlan.server.filesys.FileInfo;
|
|
|
import org.alfresco.jlan.server.filesys.FileOpenParams;
|
|
|
+import org.alfresco.jlan.server.filesys.FileSystem;
|
|
|
import org.alfresco.jlan.server.filesys.NetworkFile;
|
|
|
import org.alfresco.jlan.server.filesys.SearchContext;
|
|
|
import org.alfresco.jlan.server.filesys.TreeConnection;
|
|
@@ -15,19 +19,61 @@ import java.io.FileNotFoundException;
|
|
|
import java.io.IOException;
|
|
|
|
|
|
public class PseudoCIFSDiskDriver implements DiskInterface {
|
|
|
+ private static class PseudoNetworkFile extends NetworkFile {
|
|
|
+ public PseudoNetworkFile(String name){
|
|
|
+ super(name);
|
|
|
+ setFileSize(12);
|
|
|
+ setModifyDate(System.currentTimeMillis());
|
|
|
+ setCreationDate(System.currentTimeMillis());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void openFile(boolean createFlag) throws IOException {
|
|
|
+ setClosed(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int readFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void writeFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public long seekFile(long pos, int typ) throws IOException {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void flushFile() throws IOException {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void truncateFile(long siz) throws IOException {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void closeFile() throws IOException {
|
|
|
+ setClosed(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void closeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void createDirectory(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public NetworkFile createFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
|
|
|
- return null;
|
|
|
+ throw new FileExistsException();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -52,17 +98,27 @@ public class PseudoCIFSDiskDriver implements DiskInterface {
|
|
|
|
|
|
@Override
|
|
|
public FileInfo getFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
|
|
|
- return null;
|
|
|
+ FileInfo finfo = new FileInfo(s, 12, FileAttribute.ReadOnly);
|
|
|
+ long fdate = System.currentTimeMillis();
|
|
|
+ finfo.setModifyDateTime(fdate);
|
|
|
+ finfo.setAllocationSize((12 + 512L) & 0xFFFFFFFFFFFFFE00L);
|
|
|
+ finfo.setFileId(s.hashCode());
|
|
|
+
|
|
|
+ finfo.setCreationDateTime(fdate - 1000);
|
|
|
+ finfo.setChangeDateTime(fdate);
|
|
|
+ return finfo;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public boolean isReadOnly(SrvSession srvSession, DeviceContext deviceContext) throws IOException {
|
|
|
- return false;
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public NetworkFile openFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
|
|
|
- return null;
|
|
|
+ System.out.println(srvSession + " - " + treeConnection + " - " + fileOpenParams);
|
|
|
+ NetworkFile netFile = new PseudoNetworkFile("Test");
|
|
|
+ return netFile;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -87,7 +143,7 @@ public class PseudoCIFSDiskDriver implements DiskInterface {
|
|
|
|
|
|
@Override
|
|
|
public SearchContext startSearch(SrvSession srvSession, TreeConnection treeConnection, String s, int i) throws FileNotFoundException {
|
|
|
- return null;
|
|
|
+ throw new FileNotFoundException();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -102,7 +158,10 @@ public class PseudoCIFSDiskDriver implements DiskInterface {
|
|
|
|
|
|
@Override
|
|
|
public DeviceContext createContext(String s, ConfigElement configElement) throws DeviceContextException {
|
|
|
- return null;
|
|
|
+ DiskDeviceContext ctx = new DiskDeviceContext("/");
|
|
|
+ ctx.setFilesystemAttributes(FileSystem.CasePreservedNames + FileSystem.UnicodeOnDisk);
|
|
|
+ ctx.setAvailable(true);
|
|
|
+ return ctx;
|
|
|
}
|
|
|
|
|
|
@Override
|