Skip to content

Commit 3f50b39

Browse files
Continue adopting FileLike instead of File or Path (#1069)
1 parent 6b54ac0 commit 3f50b39

7 files changed

Lines changed: 35 additions & 37 deletions

File tree

ehr/src/org/labkey/ehr/pipeline/GeneticCalculationsImportTask.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import org.labkey.vfs.FileLike;
6161

6262
import java.io.BufferedReader;
63-
import java.io.File;
6463
import java.io.IOException;
6564
import java.io.LineNumberReader;
6665
import java.sql.PreparedStatement;
@@ -152,8 +151,8 @@ public RecordedActionSet run() throws PipelineJobException
152151
PipelineJob job = getJob();
153152
FileAnalysisJobSupport support = (FileAnalysisJobSupport) job;
154153

155-
processInbreeding(job.getContainer(), job.getUser(), support.getAnalysisDirectoryFileLike(), job.getLogger());
156-
processKinship(job.getContainer(), job.getUser(), support.getAnalysisDirectoryFileLike(), job.getLogger(), job);
154+
processInbreeding(job.getContainer(), job.getUser(), support.getAnalysisDirectory(), job.getLogger());
155+
processKinship(job.getContainer(), job.getUser(), support.getAnalysisDirectory(), job.getLogger(), job);
157156

158157
if (GeneticCalculationsJob.isKinshipValidation())
159158
{

ehr/src/org/labkey/ehr/pipeline/GeneticCalculationsInitTask.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.labkey.api.util.FileType;
3535
import org.labkey.api.util.PageFlowUtil;
3636
import org.labkey.api.writer.PrintWriters;
37+
import org.labkey.vfs.FileLike;
3738
import org.springframework.jdbc.BadSqlGrammarException;
3839

3940
import java.io.File;
@@ -135,9 +136,9 @@ public RecordedActionSet run() throws PipelineJobException
135136
}
136137
TableSelector ts = new TableSelector(pedTable, PageFlowUtil.set("Id", "Dam", "Sire", "Gender", "Species"), null, new Sort("Species, Id"));
137138

138-
File outputFile = new File(support.getAnalysisDirectory(), GeneticCalculationsImportTask.PEDIGREE_FILE);
139+
FileLike outputFile = support.getAnalysisDirectory().resolveChild(GeneticCalculationsImportTask.PEDIGREE_FILE);
139140

140-
try (CSVWriter writer = new CSVWriter(PrintWriters.getPrintWriter(outputFile), '\t', CSVWriter.DEFAULT_QUOTE_CHARACTER))
141+
try (CSVWriter writer = new CSVWriter(PrintWriters.getPrintWriter(outputFile.openOutputStream()), '\t', CSVWriter.DEFAULT_QUOTE_CHARACTER))
141142
{
142143
long count = ts.getRowCount();
143144
if (count > 0)

ehr/src/org/labkey/ehr/pipeline/GeneticCalculationsRTask.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.labkey.api.resource.Resource;
3636
import org.labkey.api.util.FileType;
3737
import org.labkey.ehr.EHRModule;
38+
import org.labkey.vfs.FileLike;
3839

3940
import java.io.File;
4041
import java.util.ArrayList;
@@ -120,7 +121,7 @@ public RecordedAction runScript(String scriptName, String outputFileName, String
120121
String exePath = getRPath();
121122

122123
String scriptPath = getScriptPath(scriptName);
123-
File tsvFile = new File(support.getAnalysisDirectory(), GeneticCalculationsImportTask.PEDIGREE_FILE);
124+
FileLike tsvFile = support.getAnalysisDirectory().resolveChild(GeneticCalculationsImportTask.PEDIGREE_FILE);
124125
if (!tsvFile.exists())
125126
throw new PipelineJobException("Unable to find TSV file at location: " + tsvFile.getPath());
126127

@@ -132,13 +133,13 @@ public RecordedAction runScript(String scriptName, String outputFileName, String
132133
args.add("--no-restore"); // don't restore saved objects
133134
args.add(scriptPath);
134135
args.add("-f");
135-
args.add(tsvFile.getPath());
136+
args.add(tsvFile.toNioPathForRead().toFile().getPath());
136137

137138
getJob().getLogger().info("Using working directory of: " + support.getAnalysisDirectory().getPath());
138139
ProcessBuilder pb = new ProcessBuilder(args);
139140
job.runSubProcess(pb, support.getAnalysisDirectory());
140141

141-
File output = new File(support.getAnalysisDirectory(), outputFileName);
142+
FileLike output = support.getAnalysisDirectory().resolveChild(outputFileName);
142143
if (!output.exists())
143144
throw new PipelineJobException("Unable to find file: " + output.getPath());
144145

ehr_billing/api-src/org/labkey/api/ehr_billing/pipeline/BillingPipelineJobSupport.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ public interface BillingPipelineJobSupport
3131

3232
String getName();
3333

34-
File getAnalysisDir();
35-
3634
/*
3735
* Returns Pair of previous matching billing run's objectId and rowId
3836
* */

ehr_billing/src/org/labkey/ehr_billing/EHR_BillingController.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
import org.labkey.api.security.permissions.ReadPermission;
4848
import org.labkey.api.security.permissions.UpdatePermission;
4949
import org.labkey.api.util.GUID;
50+
import org.labkey.api.util.HtmlString;
51+
import org.labkey.api.util.HtmlStringBuilder;
5052
import org.labkey.api.util.Pair;
5153
import org.labkey.api.util.URLHelper;
5254
import org.labkey.api.view.ActionURL;
@@ -57,11 +59,12 @@
5759
import org.labkey.api.view.WebPartView;
5860
import org.labkey.ehr_billing.pipeline.BillingPipelineForm;
5961
import org.labkey.ehr_billing.pipeline.BillingPipelineJob;
62+
import org.labkey.vfs.FileLike;
6063
import org.springframework.validation.BindException;
6164
import org.springframework.validation.Errors;
6265
import org.springframework.web.servlet.ModelAndView;
6366

64-
import java.io.File;
67+
import java.io.IOException;
6568
import java.util.Date;
6669
import java.util.HashMap;
6770
import java.util.List;
@@ -113,12 +116,12 @@ public ApiResponse execute(BillingPipelineForm form, BindException errors)
113116
}
114117

115118
PipeRoot pipelineRoot = PipelineService.get().findPipelineRoot(getContainer());
116-
File analysisDir = BillingPipelineJob.createAnalysisDir(pipelineRoot, form.getProtocolName());
119+
FileLike analysisDir = BillingPipelineJob.createAnalysisDir(pipelineRoot, form.getProtocolName());
117120
PipelineService.get().queueJob(new BillingPipelineJob(getContainer(), getUser(), getViewContext().getActionURL(), pipelineRoot, analysisDir, form));
118121

119122
resultProperties.put("success", true);
120123
}
121-
catch (PipelineValidationException | PipelineJobException e)
124+
catch (PipelineValidationException | PipelineJobException | IOException e)
122125
{
123126
errors.reject(ERROR_MSG, e.getMessage());
124127
return null;
@@ -146,15 +149,16 @@ public ModelAndView getConfirmView(QueryForm form, BindException errors) throws
146149
{
147150
Set<String> ids = DataRegionSelection.getSelected(form.getViewContext(), true);
148151

149-
StringBuilder msg = new StringBuilder("You have selected " + ids.size() + " billing runs to delete. This will also delete: <p>");
150-
for (String m : EHR_BillingManager.get().deleteBillingRuns(getUser(),getContainer(), ids, true))
152+
HtmlStringBuilder msg = HtmlStringBuilder.of("You have selected ").append(ids.size()).append(" billing runs to delete. This will also delete: ");
153+
msg.startTag("p");
154+
for (HtmlString m : EHR_BillingManager.get().deleteBillingRuns(getUser(),getContainer(), ids, true))
151155
{
152-
msg.append(m).append("<br>");
156+
msg.append(m).append(msg.startTag("br"));
153157
}
154158

155-
msg.append("<p>Are you sure you want to do this?");
159+
msg.startTag("p").append("Are you sure you want to do this?");
156160

157-
return new HtmlView(msg.toString());
161+
return new HtmlView(msg.getHtmlString());
158162
}
159163

160164
@Override

ehr_billing/src/org/labkey/ehr_billing/EHR_BillingManager.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.labkey.api.query.QueryUpdateServiceException;
3737
import org.labkey.api.security.User;
3838
import org.labkey.api.data.RuntimeSQLException;
39+
import org.labkey.api.util.HtmlString;
3940

4041
import java.sql.SQLException;
4142
import java.util.ArrayList;
@@ -60,7 +61,7 @@ public static EHR_BillingManager get()
6061
return _instance;
6162
}
6263

63-
public List<String> deleteBillingRuns(User user, Container container, Collection<String> pks, boolean testOnly) throws QueryUpdateServiceException, BatchValidationException, InvalidKeyException
64+
public List<HtmlString> deleteBillingRuns(User user, Container container, Collection<String> pks, boolean testOnly) throws QueryUpdateServiceException, BatchValidationException, InvalidKeyException
6465
{
6566
TableInfo invoice = EHR_BillingSchema.getInstance().getSchema().getTable(EHR_BillingSchema.TABLE_INVOICE);
6667
TableInfo invoiceRuns = QueryService.get().getUserSchema(user, container,EHR_BillingSchema.NAME).getTable(EHR_BillingSchema.TABLE_INVOICE_RUNS);
@@ -75,17 +76,17 @@ public List<String> deleteBillingRuns(User user, Container container, Collection
7576
SimpleFilter miscChargesFilter = new SimpleFilter(FieldKey.fromString("invoiceId"), pks, CompareType.IN);
7677

7778
//perform the work
78-
List<String> ret = new ArrayList<>();
79+
List<HtmlString> ret = new ArrayList<>();
7980
if (testOnly)
8081
{
8182
TableSelector tsInvItems = new TableSelector(invoicedItems, invoiceIdFilter, null);
82-
ret.add(tsInvItems.getRowCount() + " records from invoiced items");
83+
ret.add(HtmlString.of(tsInvItems.getRowCount() + " records from invoiced items"));
8384

8485
TableSelector tsInvoice = new TableSelector(invoice, invoiceRunIdFilter, null);
85-
ret.add(tsInvoice.getRowCount() + " records from invoice");
86+
ret.add(HtmlString.of(tsInvoice.getRowCount() + " records from invoice"));
8687

8788
TableSelector tsMiscCharges2 = new TableSelector(miscCharges, miscChargesFilter, null);
88-
ret.add(tsMiscCharges2.getRowCount() + " invoice records from misc charges will be removed from the deleted invoice, which means they will be picked up by the next billing period. They are not deleted.");
89+
ret.add(HtmlString.of(tsMiscCharges2.getRowCount() + " invoice records from misc charges will be removed from the deleted invoice, which means they will be picked up by the next billing period. They are not deleted."));
8990
}
9091
else
9192
{

ehr_billing/src/org/labkey/ehr_billing/pipeline/BillingPipelineJob.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@
3030
import org.labkey.api.util.Pair;
3131
import org.labkey.api.view.ActionURL;
3232
import org.labkey.api.view.ViewBackgroundInfo;
33+
import org.labkey.vfs.FileLike;
3334

3435
import java.io.File;
36+
import java.io.IOException;
3537
import java.util.Calendar;
3638
import java.util.Date;
3739

@@ -41,31 +43,29 @@
4143
*/
4244
public class BillingPipelineJob extends PipelineJob implements BillingPipelineJobSupport
4345
{
44-
private File _analysisDir;
4546
private BillingPipelineForm _form;
4647

4748
// For serialization
4849
protected BillingPipelineJob() {}
4950

50-
public BillingPipelineJob(Container c, User user, ActionURL url, PipeRoot pipeRoot, File analysisDir, BillingPipelineForm form)
51+
public BillingPipelineJob(Container c, User user, ActionURL url, PipeRoot pipeRoot, FileLike analysisDir, BillingPipelineForm form)
5152
{
5253
super(null, new ViewBackgroundInfo(c, user, url), pipeRoot);
5354

54-
_analysisDir = analysisDir;
55-
setLogFile(new File(analysisDir, FileUtil.makeFileNameWithTimestamp("billingPipeline", "log")));
55+
setLogFile(analysisDir.resolveChild(FileUtil.makeFileNameWithTimestamp("billingPipeline", "log")));
5656
_form = form;
5757
}
5858

59-
public static File createAnalysisDir(PipeRoot pipeRoot, String name)
59+
public static FileLike createAnalysisDir(PipeRoot pipeRoot, String name) throws IOException
6060
{
6161
String trialName = FileUtil.makeLegalName(name);
62-
File analysisDir = new File(pipeRoot.getRootPath(), trialName);
62+
FileLike analysisDir = pipeRoot.getRootFileLike().resolveChild(trialName);
6363
int suffix = 0;
6464
while (analysisDir.exists())
6565
{
6666
suffix++;
6767
trialName = FileUtil.makeLegalName(name) + "." + suffix;
68-
analysisDir = new File(pipeRoot.getRootPath(), trialName);
68+
analysisDir = pipeRoot.getRootFileLike().resolveChild(trialName);
6969
}
7070

7171
analysisDir.mkdirs();
@@ -86,7 +86,7 @@ public ActionURL getStatusHref()
8686
}
8787

8888
@Override
89-
public TaskPipeline getTaskPipeline()
89+
public TaskPipeline<?> getTaskPipeline()
9090
{
9191
return PipelineJobService.get().getTaskPipeline(new TaskId(BillingPipelineJob.class));
9292
}
@@ -115,12 +115,6 @@ public String getName()
115115
return _form.getProtocolName();
116116
}
117117

118-
@Override
119-
public File getAnalysisDir()
120-
{
121-
return _analysisDir;
122-
}
123-
124118
@Override
125119
public Pair<String,String> getPreviousInvoice()
126120
{

0 commit comments

Comments
 (0)