Skip to content

Commit 18c629c

Browse files
Merge pull request #219 from LabKey/fb_filesystemlike
FileSystemLike
2 parents d19bff6 + cb0d18f commit 18c629c

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

laboratory/src/org/labkey/laboratory/LaboratoryController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import org.labkey.api.view.template.ClientDependency;
9090
import org.labkey.laboratory.assay.AssayHelper;
9191
import org.labkey.laboratory.query.WorkbookModel;
92+
import org.labkey.vfs.FileLike;
9293
import org.springframework.validation.BindException;
9394
import org.springframework.validation.Errors;
9495
import org.springframework.web.servlet.ModelAndView;
@@ -620,8 +621,8 @@ protected File getTargetFile(String filename) throws IOException
620621

621622
try
622623
{
623-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
624-
return AssayFileWriter.findUniqueFileName(filename, targetDirectory);
624+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(getContainer());
625+
return AssayFileWriter.findUniqueFileName(filename, targetDirectory).toNioPathForWrite().toFile();
625626
}
626627
catch (ExperimentException e)
627628
{

laboratory/src/org/labkey/laboratory/LaboratoryServiceImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import org.labkey.laboratory.assay.AssayHelper;
5757
import org.labkey.laboratory.query.DefaultAssayCustomizer;
5858
import org.labkey.laboratory.query.LaboratoryTableCustomizer;
59+
import org.labkey.vfs.FileLike;
5960

6061
import java.io.File;
6162
import java.lang.reflect.InvocationTargetException;
@@ -197,10 +198,10 @@ public Pair<ExpExperiment, ExpRun> saveAssayBatch(List<Map<String, Object>> resu
197198

198199
try
199200
{
200-
File targetDirectory = AssayFileWriter.ensureUploadDirectory(ctx.getContainer());
201-
File file = AssayFileWriter.findUniqueFileName(basename, targetDirectory);
201+
FileLike targetDirectory = AssayFileWriter.ensureUploadDirectory(ctx.getContainer());
202+
FileLike file = AssayFileWriter.findUniqueFileName(basename, targetDirectory);
202203

203-
return this.saveAssayBatch(results, json, file, ctx, provider, protocol);
204+
return this.saveAssayBatch(results, json, file.toNioPathForRead().toFile(), ctx, provider, protocol);
204205
}
205206
catch (ExperimentException e)
206207
{

laboratory/src/org/labkey/laboratory/assay/AssayHelper.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.labkey.api.assay.AssayService;
3030
import org.labkey.api.cache.CacheManager;
3131
import org.labkey.api.collections.CaseInsensitiveHashMap;
32+
import org.labkey.api.collections.CollectionUtils;
3233
import org.labkey.api.data.Container;
3334
import org.labkey.api.data.ContainerManager;
3435
import org.labkey.api.data.RuntimeSQLException;
@@ -58,6 +59,8 @@
5859
import org.labkey.api.view.ViewContext;
5960
import org.labkey.laboratory.LaboratoryController;
6061
import org.labkey.laboratory.LaboratorySchema;
62+
import org.labkey.vfs.FileLike;
63+
import org.labkey.vfs.FileSystemLike;
6164

6265
import java.beans.Introspector;
6366
import java.io.File;
@@ -88,9 +91,8 @@ public static AssayHelper get()
8891
return _instance;
8992
}
9093

91-
public Map<String, File> saveResultsFile(List<Map<String, Object>> results, JSONObject json, File file, AssayProvider provider, ExpProtocol protocol) throws ExperimentException, ValidationException
94+
public Map<String, FileLike> saveResultsFile(List<Map<String, Object>> results, JSONObject json, File file, AssayProvider provider, ExpProtocol protocol) throws ExperimentException, ValidationException
9295
{
93-
Map<String, File> files = new HashMap<String, File>();
9496
//TODO: consider adding as input??
9597
//files.put("RawInput", file);
9698

@@ -111,8 +113,8 @@ public Map<String, File> saveResultsFile(List<Map<String, Object>> results, JSON
111113
throw new ExperimentException(e.getMessage());
112114
}
113115

114-
files.put(AssayDataCollector.PRIMARY_FILE, newFile);
115-
116+
Map<String, FileLike> files = CollectionUtils.enforceValueClass(new HashMap<>(),FileLike.class);
117+
files.put(AssayDataCollector.PRIMARY_FILE, FileSystemLike.wrapFile(newFile));
116118
return files;
117119
}
118120

@@ -209,7 +211,7 @@ public Pair<ExpExperiment, ExpRun> saveAssayBatch(List<Map<String, Object>> resu
209211
});
210212
}
211213

212-
Map<String, File> uploadedFiles = saveResultsFile(results, json, file, provider, protocol);
214+
Map<String, FileLike> uploadedFiles = saveResultsFile(results, json, file, provider, protocol);
213215

214216
//TODO: see AssayRunAsyncContext
215217
AssayRunUploadContext uploadContext = new RunUploadContext<>(protocol, provider, name, comments, runProperties, batchProperties, ctx, uploadedFiles);
@@ -243,10 +245,10 @@ private File getUniqueOutputName(File input, String extension)
243245
File parent = input.getParentFile();
244246
String basename = FileUtil.getBaseName(input);
245247
int suffix = 1;
246-
File newFile = new File(parent, basename + "." + extension);
248+
File newFile = FileUtil.appendName(parent, basename + "." + extension);
247249
while (newFile.exists())
248250
{
249-
newFile = new File(parent, basename + "-" + suffix + "." + extension);
251+
newFile = FileUtil.appendName(parent, basename + "-" + suffix + "." + extension);
250252
suffix++;
251253
}
252254
return newFile;

laboratory/src/org/labkey/laboratory/assay/RunUploadContext.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.labkey.api.assay.AssayRunUploadContext;
2323
import org.labkey.api.assay.AssayService;
2424
import org.labkey.api.collections.CaseInsensitiveHashMap;
25+
import org.labkey.api.collections.CollectionUtils;
2526
import org.labkey.api.data.Container;
2627
import org.labkey.api.exp.ExperimentException;
2728
import org.labkey.api.exp.api.ExpProtocol;
@@ -32,8 +33,8 @@
3233
import org.labkey.api.security.User;
3334
import org.labkey.api.view.ActionURL;
3435
import org.labkey.api.view.ViewContext;
36+
import org.labkey.vfs.FileLike;
3537

36-
import java.io.File;
3738
import java.util.Collections;
3839
import java.util.HashMap;
3940
import java.util.Map;
@@ -53,9 +54,9 @@ public class RunUploadContext<ProviderType extends AssayProvider> implements Ass
5354
private final ViewContext _ctx;
5455

5556
private TransformResult _transformResult;
56-
private final Map<String, File> _uploadedData;
57+
private final Map<String, FileLike> _uploadedData;
5758

58-
public RunUploadContext(ExpProtocol protocol, ProviderType providerType, String name, String comments, Map<String, String> runProperties, Map<String, String> batchProperties, ViewContext ctx, Map<String, File> uploadedData)
59+
public RunUploadContext(ExpProtocol protocol, ProviderType providerType, String name, String comments, Map<String, String> runProperties, Map<String, String> batchProperties, ViewContext ctx, Map<String, FileLike> uploadedData)
5960
{
6061
_protocol = protocol;
6162
_providerType = providerType;
@@ -64,7 +65,8 @@ public RunUploadContext(ExpProtocol protocol, ProviderType providerType, String
6465
_runProperties = new CaseInsensitiveHashMap<>(runProperties);
6566
_batchProperties = new CaseInsensitiveHashMap<>(batchProperties);
6667
_ctx = ctx;
67-
_uploadedData = uploadedData;
68+
_uploadedData = CollectionUtils.checkValueClass(uploadedData, FileLike.class);
69+
CollectionUtils.checkValueClass(_uploadedData, FileLike.class);
6870
}
6971

7072
@Override
@@ -154,7 +156,7 @@ public ActionURL getActionURL()
154156

155157
@Override
156158
@NotNull
157-
public Map<String, File> getUploadedData() throws ExperimentException
159+
public Map<String, FileLike> getUploadedData() throws ExperimentException
158160
{
159161
return _uploadedData;
160162
}

0 commit comments

Comments
 (0)