2929import org .labkey .api .assay .AssayService ;
3030import org .labkey .api .cache .CacheManager ;
3131import org .labkey .api .collections .CaseInsensitiveHashMap ;
32+ import org .labkey .api .collections .CollectionUtils ;
3233import org .labkey .api .data .Container ;
3334import org .labkey .api .data .ContainerManager ;
3435import org .labkey .api .data .RuntimeSQLException ;
5859import org .labkey .api .view .ViewContext ;
5960import org .labkey .laboratory .LaboratoryController ;
6061import org .labkey .laboratory .LaboratorySchema ;
62+ import org .labkey .vfs .FileLike ;
63+ import org .labkey .vfs .FileSystemLike ;
6164
6265import java .beans .Introspector ;
6366import 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 ;
0 commit comments