From a61fb696226dfc72c0102ee6b7c9e16e177cd29a Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 9 May 2026 11:28:45 -0700 Subject: [PATCH 1/2] Auto-refactor lint cleanup SequencedCollections: get(0) -> getFirst(), etc Add missing @NotNull/@Nullable Simplify test assertions Map operation simplification Remove redundant throws clause Switch to parameterized log message C-style array -> Java-style array declaration Delete overridden methods identical to parent Switch statement -> enhanced switch statement Remove redundant imports --- .../org/labkey/elisa/ElisaDataHandler.java | 3 +- .../elisa/HighThroughputImportHelper.java | 13 +-- .../org/labkey/elisa/ManualImportHelper.java | 1 - .../actions/ElisaUploadWizardAction.java | 6 +- .../elispot/AbstractElispotDataHandler.java | 2 +- .../labkey/elispot/ElispotAssayProvider.java | 8 +- .../org/labkey/elispot/ElispotController.java | 2 +- .../labkey/elispot/ElispotDataHandler.java | 5 +- .../org/labkey/elispot/ElispotManager.java | 2 +- .../labkey/elispot/ElispotProtocolSchema.java | 4 +- .../elispot/ElispotUploadWizardAction.java | 18 ++-- .../pipeline/BackgroundSubtractionJob.java | 6 +- flow/enginesrc/org/labkey/flow/Main.java | 10 +- .../flow/analysis/chart/DensityPlot.java | 3 +- .../labkey/flow/analysis/chart/HistPlot.java | 2 +- .../labkey/flow/analysis/model/Analysis.java | 2 +- .../analysis/model/CompensationMatrix.java | 1 - .../labkey/flow/analysis/model/FCSHeader.java | 8 +- .../analysis/model/FlowJo10_0_6Workspace.java | 2 +- .../flow/analysis/model/FlowJoWorkspace.java | 40 +++---- .../org/labkey/flow/analysis/model/Gate.java | 4 +- .../flow/analysis/model/MacWorkspace.java | 4 +- .../flow/analysis/model/PC75Workspace.java | 4 +- .../flow/analysis/model/PCWorkspace.java | 2 +- .../flow/analysis/model/SampleIdMap.java | 2 +- .../flow/analysis/model/SampleInfoBase.java | 2 +- .../labkey/flow/analysis/model/Workspace.java | 6 +- .../labkey/flow/analysis/web/FCSAnalyzer.java | 9 +- .../labkey/flow/analysis/web/PlotTests.java | 2 +- .../flow/analysis/web/ScriptAnalyzer.java | 4 +- .../flow/persist/AnalysisSerializer.java | 2 +- .../org/labkey/flow/persist/AttributeSet.java | 8 +- .../flow/controllers/BaseFlowController.java | 2 +- .../flow/controllers/WorkspaceData.java | 2 +- .../CompensationCalculationPage.java | 2 +- .../editscript/EditScriptForm.java | 8 +- .../AnalysisScriptController.java | 6 +- .../executescript/ChooseRunsView.java | 10 +- .../executescript/SamplesConfirmGridView.java | 2 +- .../importAnalysisReviewSamples.jsp | 2 +- .../org/labkey/flow/controllers/reports.jsp | 6 +- .../flow/controllers/run/RunController.java | 2 +- .../flow/controllers/well/EditWellForm.java | 6 +- .../flow/controllers/well/WellController.java | 6 +- .../flow/controllers/well/chooseGraph.jsp | 2 +- .../labkey/flow/controllers/well/editWell.jsp | 4 +- .../org/labkey/flow/data/FlowDataObject.java | 9 +- flow/src/org/labkey/flow/data/FlowObject.java | 3 +- .../org/labkey/flow/data/FlowProtocol.java | 36 +++---- flow/src/org/labkey/flow/data/FlowRun.java | 18 ++-- .../labkey/flow/persist/AttributeCache.java | 6 +- .../flow/persist/AttributeSetHelper.java | 1 - .../org/labkey/flow/persist/FlowManager.java | 22 ++-- .../labkey/flow/query/FlowPropertySet.java | 6 +- .../src/org/labkey/flow/query/FlowSchema.java | 12 +-- .../flow/reports/PositivityFlowReport.java | 2 +- .../flow/script/FCSDirectoryFileFilter.java | 4 +- .../org/labkey/flow/script/FlowAnalyzer.java | 2 +- .../org/labkey/flow/script/KeywordsJob.java | 1 - .../src/org/labkey/flow/script/ScriptJob.java | 2 +- flow/src/org/labkey/flow/util/SampleUtil.java | 2 +- .../AbstractLuminexControlUpdateService.java | 2 +- .../luminex/LuminexAnalyteDomainKind.java | 1 - .../labkey/luminex/LuminexDataDomainKind.java | 1 - .../labkey/luminex/LuminexDataHandler.java | 21 ++-- .../luminex/LuminexExclusionPipelineJob.java | 22 ++-- .../org/labkey/luminex/LuminexManager.java | 45 ++++---- .../src/org/labkey/luminex/LuminexModule.java | 8 -- .../luminex/LuminexRunAsyncContext.java | 20 ++-- .../luminex/LuminexSaveExclusionsForm.java | 2 +- .../labkey/luminex/LuminexUpgradeCode.java | 10 +- .../luminex/LuminexUploadWizardAction.java | 23 ++-- .../org/labkey/luminex/model/LuminexWell.java | 3 +- .../luminex/model/LuminexWellGroup.java | 11 +- .../luminex/query/AbstractExclusionTable.java | 4 +- .../query/NegativeBeadDisplayColumnGroup.java | 1 - .../luminex/query/WellExclusionTable.java | 2 +- .../test/tests/luminex/LuminexEC50Test.java | 5 +- .../tests/luminex/LuminexGuideSetTest.java | 8 +- .../luminex/LuminexMultipleCurvesTest.java | 18 +--- .../tests/luminex/LuminexPositivityTest.java | 12 +-- .../test/tests/luminex/LuminexTest.java | 3 +- .../matrix/AbstractMatrixRunCreator.java | 2 +- .../labkey/microarray/MicroarrayManager.java | 18 ++-- .../matrix/ExpressionMatrixDataHandler.java | 8 +- .../ms2/BibliospecSpectrumRenderer.java | 2 +- ms2/src/org/labkey/ms2/CumulativeTimer.java | 7 +- ms2/src/org/labkey/ms2/DeltaScanColumn.java | 2 +- ms2/src/org/labkey/ms2/Hydrophobicity3.java | 35 +++--- ms2/src/org/labkey/ms2/MS2Controller.java | 2 +- ms2/src/org/labkey/ms2/MS2Importer.java | 22 ++-- ms2/src/org/labkey/ms2/MS2Manager.java | 4 +- ms2/src/org/labkey/ms2/MS2Peptide.java | 8 +- ms2/src/org/labkey/ms2/MS2Run.java | 2 +- ms2/src/org/labkey/ms2/MascotDatImporter.java | 4 +- .../ms2/PepXmlExperimentDataHandler.java | 2 +- ms2/src/org/labkey/ms2/PeptideImporter.java | 8 +- ms2/src/org/labkey/ms2/PeptideManager.java | 5 +- .../labkey/ms2/ProteinCoverageMapBuilder.java | 2 +- .../org/labkey/ms2/ProteinGroupProteins.java | 2 +- .../ProteinProphetExperimentDataHandler.java | 2 +- .../labkey/ms2/ProteinProphetImporter.java | 20 ++-- ms2/src/org/labkey/ms2/SpectrumImporter.java | 6 +- .../org/labkey/ms2/compare/CompareQuery.java | 4 +- .../ms2/peptideview/AbstractMS2RunView.java | 5 +- .../ms2/pipeline/MS2ImportPipelineJob.java | 1 - .../ms2/pipeline/MS2SearchJobSupport.java | 2 - .../ms2/pipeline/QuantitationAlgorithm.java | 2 - .../org/labkey/ms2/pipeline/Sqt2PinTask.java | 1 - .../pipeline/comet/CometSearchProtocol.java | 4 +- .../ms2/pipeline/mascot/MascotClientImpl.java | 71 +++++-------- .../mascot/MascotImportPipelineJob.java | 10 +- .../labkey/ms2/pipeline/phenyx/PhenyxRun.java | 3 +- .../AbstractMultipleValueParamsValidator.java | 6 +- .../sequest/BooleanParamsValidator.java | 10 +- .../pipeline/sequest/ListParamsValidator.java | 12 +-- .../MultipleDoubleParamsValidator.java | 2 +- .../MultipleIntegerParamsValidator.java | 2 +- .../sequest/NaturalNumberParamsValidator.java | 20 ++-- .../NonNegativeIntegerParamsValidator.java | 18 ++-- .../PositiveDoubleParamsValidator.java | 18 ++-- .../sequest/RealNumberParamsValidator.java | 4 +- .../sequest/SequestParamsBuilder.java | 2 +- .../sequest/SequestSearchProtocol.java | 4 +- .../pipeline/sequest/SequestSearchTask.java | 15 ++- .../sequest/ThermoSequestParamsBuilder.java | 100 +++++++++--------- .../tandem/XTandemSearchProtocol.java | 1 - .../pipeline/tandem/XTandemSearchTask.java | 2 - .../labkey/ms2/protein/tools/GoHelpers.java | 18 ++-- .../query/CompareProteinProphetTableInfo.java | 2 +- ms2/src/org/labkey/ms2/query/MS2Schema.java | 6 +- .../PeptideAggregrationDisplayColumn.java | 5 +- .../labkey/ms2/query/PeptidesTableInfo.java | 2 +- .../ms2/query/ProteinGroupTableInfo.java | 2 +- .../ms2/query/QueryAACoverageColumn.java | 2 - ms2/src/org/labkey/ms2/reader/MS2Loader.java | 1 - .../org/labkey/ms2/reader/MS2XmlLoader.java | 2 - .../labkey/ms2/reader/MascotDatLoader.java | 20 ++-- .../org/labkey/ms2/reader/PepXmlLoader.java | 7 +- .../ms2/reader/PeptideProphetSummary.java | 6 +- .../labkey/ms2/reader/Q3AnalysisSummary.java | 2 +- ms2/src/org/labkey/ms2/reader/Rounder.java | 4 +- .../labkey/ms2/reader/SensitivitySummary.java | 4 +- .../ms2/reader/SequentialMzxmlIterator.java | 2 +- ms2/src/org/labkey/ms2/showPeptide.jsp | 9 +- .../org/systemsbiology/jrap/MSXMLParser.java | 4 +- .../systemsbiology/jrap/SAX2IndexHandler.java | 4 +- .../systemsbiology/jrap/SAX2ScanHandler.java | 4 +- .../jrap/SAX2ScanHeaderHandler.java | 4 +- .../org/labkey/test/tests/ms2/LibraTest.java | 7 -- .../org/labkey/test/tests/ms2/MS2Test.java | 2 +- .../org/labkey/test/tests/ms2/MascotTest.java | 2 +- .../org/labkey/nab/NabAssayController.java | 2 +- nab/src/org/labkey/nab/NabAssayRun.java | 4 +- nab/src/org/labkey/nab/NabDataHandler.java | 4 +- nab/src/org/labkey/nab/NabManager.java | 2 +- .../org/labkey/nab/NabUploadWizardAction.java | 4 +- .../labkey/nab/NabVirusPropertyHelper.java | 2 +- .../labkey/nab/SinglePlateNabAssayRun.java | 4 +- .../labkey/nab/SinglePlateNabDataHandler.java | 8 +- .../CrossPlateDilutionNabAssayRun.java | 2 +- .../HighThroughputNabDataHandler.java | 4 +- ...nglePlateDilutionSamplePropertyHelper.java | 1 - .../labkey/nab/query/NabVirusDomainKind.java | 1 - .../labkey/api/protein/CoverageProtein.java | 6 +- .../CustomAnnotationSetManager.java | 4 +- .../protein/annotation/ProtSprotOrgMap.java | 4 +- .../protein/annotation/XMLProteinHandler.java | 6 +- .../api/protein/fasta/FastaDbLoader.java | 24 ++--- .../api/protein/fasta/FastaProtein.java | 2 +- .../org/labkey/api/protein/go/GoLoader.java | 4 +- .../protein/organism/GuessOrgByParsing.java | 4 +- .../uniprot/CharactersParseActions.java | 2 +- .../api/protein/uniprot/ParserTree.java | 2 +- .../labkey/api/protein/uniprot/uniprot.java | 38 +++---- .../uniprot_entry_dbReference_property.java | 2 +- .../uniprot_entry_feature_location_begin.java | 2 +- .../uniprot_entry_feature_location_end.java | 2 +- .../uniprot/uniprot_entry_organism_name.java | 8 +- .../labkey/protein/ProteinServiceImpl.java | 10 +- .../protein/view/proteinCoverageMap.jsp | 4 +- .../signaldata/SignalDataController.java | 2 +- .../labkey/signaldata/SignalDataModule.java | 7 -- .../signaldata/SignalDataUpgradeCode.java | 2 +- .../signaldata/SignalDataUploadPage.java | 1 - .../viability/ViabilityAssayDataHandler.java | 22 ++-- .../viability/ViabilityAssayProvider.java | 1 - .../ViabilityAssayRunUploadForm.java | 2 +- .../viability/ViabilityAssaySchema.java | 2 +- .../ViabilityAssayUploadWizardAction.java | 8 +- .../labkey/viability/ViabilityManager.java | 10 +- .../ViabilitySpecimenChangeListener.java | 8 +- 192 files changed, 635 insertions(+), 790 deletions(-) diff --git a/elisa/src/org/labkey/elisa/ElisaDataHandler.java b/elisa/src/org/labkey/elisa/ElisaDataHandler.java index ce09a0bdbb..c8a320ecca 100644 --- a/elisa/src/org/labkey/elisa/ElisaDataHandler.java +++ b/elisa/src/org/labkey/elisa/ElisaDataHandler.java @@ -61,7 +61,6 @@ import org.labkey.elisa.query.ElisaManager; import org.labkey.vfs.FileLike; -import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -349,7 +348,7 @@ private CurveFit calculateStandardCurve(ExpRun run, Plate plate, @Nullable Si regression.addData(concentration, mean); } else - LOG.info("Unable to find a standard concentration for the replicate well group : " + key); + LOG.info("Unable to find a standard concentration for the replicate well group : {}", key); } if (!points.isEmpty()) diff --git a/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java b/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java index 4e0011056d..3a5ea1d3a9 100644 --- a/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java +++ b/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java @@ -80,7 +80,7 @@ private void ensureData() throws ExperimentException } } else - LOG.warn("No well location and plate name for row : " + row); + LOG.warn("No well location and plate name for row : {}", row); } } catch (IOException e) @@ -140,7 +140,7 @@ public Set getPlates() } @Override - public Map getAnalyteToPlate(String plateName) throws ExperimentException + public Map getAnalyteToPlate(String plateName) { Map analyteToPlate = new IntHashMap<>(); for (Map.Entry entry : _plateMap.get(plateName).getDataMap().entrySet()) @@ -152,7 +152,7 @@ public Map getAnalyteToPlate(String plateName) throws Experiment } @Override - public Map getStandardConcentrations(String plateName, int analyteNum) throws ExperimentException + public Map getStandardConcentrations(String plateName, int analyteNum) { return _plateMap.get(plateName).getStdConcentrations(analyteNum); } @@ -190,10 +190,7 @@ public AnalytePlate(String plateName, Plate plateTemplate) public Map getStdConcentrations(int analyteNum) { - if (_stdConcentrations.containsKey(analyteNum)) - return _stdConcentrations.get(analyteNum); - else - return Collections.emptyMap(); + return _stdConcentrations.getOrDefault(analyteNum, Collections.emptyMap()); } public Map getDataMap() @@ -224,7 +221,7 @@ public void setRawSignal(Position position, Integer spot, Integer signal) throws { if (position != null && spot != null && signal != null) { - double[][] data = _dataMap.computeIfAbsent(spot, s -> new double[_plateTemplate.getRows()][_plateTemplate.getColumns()]); + double[][] data = _dataMap.computeIfAbsent(spot, _ -> new double[_plateTemplate.getRows()][_plateTemplate.getColumns()]); if (position.getRow() >= _plateTemplate.getRows() || position.getColumn()-1 >= _plateTemplate.getColumns()) { diff --git a/elisa/src/org/labkey/elisa/ManualImportHelper.java b/elisa/src/org/labkey/elisa/ManualImportHelper.java index ba093dfe0a..6a5c16c75b 100644 --- a/elisa/src/org/labkey/elisa/ManualImportHelper.java +++ b/elisa/src/org/labkey/elisa/ManualImportHelper.java @@ -22,7 +22,6 @@ import org.labkey.elisa.plate.BioTekPlateReader; import org.labkey.vfs.FileLike; -import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java index f4712535f4..d70b968482 100644 --- a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java +++ b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java @@ -48,7 +48,7 @@ import org.springframework.web.servlet.ModelAndView; import jakarta.servlet.ServletException; -import java.sql.SQLException; + import java.util.Collections; import java.util.Map; @@ -93,7 +93,7 @@ public void validateStep(ElisaRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws ServletException, ExperimentException { form.setSampleProperties(_postedSampleProperties); for (Map.Entry> entry : _postedSampleProperties.entrySet()) @@ -227,7 +227,7 @@ public void validateStep(ElisaRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ElisaRunUploadForm form, BindException errors) { try { diff --git a/elispotassay/src/org/labkey/elispot/AbstractElispotDataHandler.java b/elispotassay/src/org/labkey/elispot/AbstractElispotDataHandler.java index cadabfd5ff..fbb558f58f 100644 --- a/elispotassay/src/org/labkey/elispot/AbstractElispotDataHandler.java +++ b/elispotassay/src/org/labkey/elispot/AbstractElispotDataHandler.java @@ -107,7 +107,7 @@ protected void importData(ExpRun run, DataIteratorBuilder dataRows) throws Exper int rowPos = ConvertHelper.convert(row.get(WELL_ROW_PROPERTY), Integer.class); int colPos = ConvertHelper.convert(row.get(WELL_COLUMN_PROPERTY), Integer.class); - String dataRowLsid = ElispotDataHandler.getDataRowLsid(runData.get(0).getLSID(), rowPos, colPos).toString(); + String dataRowLsid = ElispotDataHandler.getDataRowLsid(runData.getFirst().getLSID(), rowPos, colPos).toString(); Map runDataFields = new HashMap<>(); runDataFields.put("ObjectUri", dataRowLsid); diff --git a/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java b/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java index d831885d61..15e0614bab 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java +++ b/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java @@ -21,7 +21,6 @@ import org.labkey.api.assay.plate.AbstractPlateBasedAssayProvider; import org.labkey.api.data.Container; import org.labkey.api.data.PropertyStorageSpec; -import org.labkey.api.exp.Lsid; import org.labkey.api.exp.ObjectProperty; import org.labkey.api.exp.PropertyType; import org.labkey.api.exp.api.ExpData; @@ -321,12 +320,7 @@ protected Pair> createRunDomain(Container c, U protected Map> getRequiredDomainProperties() { Map> domainMap = super.getRequiredDomainProperties(); - Set runProperties = domainMap.get(ExpProtocol.ASSAY_DOMAIN_RUN); - if (runProperties == null) - { - runProperties = new HashSet<>(); - domainMap.put(ExpProtocol.ASSAY_DOMAIN_RUN, runProperties); - } + Set runProperties = domainMap.computeIfAbsent(ExpProtocol.ASSAY_DOMAIN_RUN, _ -> new HashSet<>()); runProperties.add(BACKGROUND_WELL_PROPERTY_NAME); runProperties.add(READER_PROPERTY_NAME); diff --git a/elispotassay/src/org/labkey/elispot/ElispotController.java b/elispotassay/src/org/labkey/elispot/ElispotController.java index 3c357b789e..f0218aa8bb 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotController.java +++ b/elispotassay/src/org/labkey/elispot/ElispotController.java @@ -225,7 +225,7 @@ private List createWellInfoList(ExpRun run, ExpProtocol protocol, Abst { Position position = template.getPosition(row, col); - Lsid dataRowLsid = ElispotDataHandler.getDataRowLsid(data.get(0).getLSID(), position); + Lsid dataRowLsid = ElispotDataHandler.getDataRowLsid(data.getFirst().getLSID(), position); for (RunDataRow dataRow : ElispotManager.get().getRunDataRows(dataRowLsid.toString(), run.getContainer())) { WellInfo wellInfo = new WellInfo(dataRow, position); diff --git a/elispotassay/src/org/labkey/elispot/ElispotDataHandler.java b/elispotassay/src/org/labkey/elispot/ElispotDataHandler.java index e5a06a3b84..417f3fbc92 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotDataHandler.java +++ b/elispotassay/src/org/labkey/elispot/ElispotDataHandler.java @@ -59,7 +59,6 @@ import org.labkey.elispot.plate.PlateInfo; import org.labkey.vfs.FileLike; -import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -272,7 +271,7 @@ public static void populateAntigenDataProperties(ExpRun run, Plate plate, PlateR if (data.size() != 1) throw new ExperimentException("Elispot should only upload a single file per run."); - String dataLsid = data.get(0).getLSID(); + String dataLsid = data.getFirst().getLSID(); // for each antigen well group, we want to flatten that information to the well level for (WellGroup group : plate.getWellGroups(WellGroup.Type.ANTIGEN)) @@ -332,7 +331,7 @@ public static void populateAntigenRunProperties(ExpRun run, Plate plate, PlateRe if (data.size() != 1) throw new ExperimentException("Elispot should only upload a single file per run."); - String dataLsid = data.get(0).getLSID(); + String dataLsid = data.getFirst().getLSID(); // calculate antigen statistics on a per sample basis Map materialMap = new HashMap<>(); diff --git a/elispotassay/src/org/labkey/elispot/ElispotManager.java b/elispotassay/src/org/labkey/elispot/ElispotManager.java index 7d329e0843..44058eea8e 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotManager.java +++ b/elispotassay/src/org/labkey/elispot/ElispotManager.java @@ -116,7 +116,7 @@ private RunDataRow getRunDataRow(Filter filter) { List runDataRows = new TableSelector(getTableInfoElispotRunData(), filter, null).getArrayList(RunDataRow.class); if (!runDataRows.isEmpty()) - return runDataRows.get(0); + return runDataRows.getFirst(); return null; } diff --git a/elispotassay/src/org/labkey/elispot/ElispotProtocolSchema.java b/elispotassay/src/org/labkey/elispot/ElispotProtocolSchema.java index 0be369c89d..9e233eccc7 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotProtocolSchema.java +++ b/elispotassay/src/org/labkey/elispot/ElispotProtocolSchema.java @@ -16,8 +16,8 @@ package org.labkey.elispot; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import org.labkey.api.data.ActionButton; import org.labkey.api.data.ButtonBar; import org.labkey.api.data.Container; @@ -162,7 +162,7 @@ protected void populateButtonBar(DataView view, ButtonBar bar) } @Override - public QueryView createView(ViewContext context, QuerySettings settings, BindException errors) + public @NotNull QueryView createView(ViewContext context, QuerySettings settings, BindException errors) { String name = settings.getQueryName(); if (null != name && name.equalsIgnoreCase(ANTIGEN_STATS_TABLE_NAME)) diff --git a/elispotassay/src/org/labkey/elispot/ElispotUploadWizardAction.java b/elispotassay/src/org/labkey/elispot/ElispotUploadWizardAction.java index 0ebabad481..611247ec61 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotUploadWizardAction.java +++ b/elispotassay/src/org/labkey/elispot/ElispotUploadWizardAction.java @@ -55,7 +55,7 @@ import org.springframework.web.servlet.ModelAndView; import jakarta.servlet.ServletException; -import java.sql.SQLException; + import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -327,7 +327,7 @@ public void validateStep(ElispotRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, ExperimentException { form.setSampleProperties(_postedSampleProperties); for (Map.Entry> entry : _postedSampleProperties.entrySet()) @@ -352,7 +352,7 @@ public boolean executeStep(ElispotRunUploadForm form, BindException errors) thro } @Override - public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getRunPropertiesView(form, !form.isResetDefaultValues(), false, errors); @@ -392,7 +392,7 @@ public void validateStep(ElispotRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, ExperimentException { form.setAntigenProperties(_postedAntigenProperties); @@ -413,7 +413,7 @@ public boolean executeStep(ElispotRunUploadForm form, BindException errors) thro } @Override - public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ExperimentException { String detectionMethod = form.getProvider().getSelectedDetectionMethod(form.getContainer(), form.getProtocol()); boolean isLastStep = (detectionMethod == null || detectionMethod.equals(ElispotAssayProvider.DetectionMethodType.COLORIMETRIC.getLabel())); @@ -459,7 +459,7 @@ public void validateStep(ElispotRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ElispotRunUploadForm form, BindException errors) throws ServletException, ExperimentException { PlateSamplePropertyHelper helper = form.getProvider().getSamplePropertyHelper(form, getSelectedParticipantVisitResolverType(form.getProvider(), form)); @@ -479,7 +479,7 @@ public boolean executeStep(ElispotRunUploadForm form, BindException errors) thro } @Override - public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ElispotRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getAnalyteView(form, true, errors); @@ -508,7 +508,7 @@ protected ExpRun finishPost(ElispotRunUploadForm form, BindException errors) throw new ExperimentException("Elispot should only upload a single file per run."); Plate template = provider.getPlate(form.getContainer(), form.getProtocol()); - Map plates = Collections.EMPTY_MAP; + Map plates = Collections.emptyMap(); PlateReader reader = null; // populate property name to value map @@ -519,7 +519,7 @@ protected ExpRun finishPost(ElispotRunUploadForm form, BindException errors) if (runPropMap.containsKey(ElispotAssayProvider.READER_PROPERTY_NAME)) { reader = provider.getPlateReader(runPropMap.get(ElispotAssayProvider.READER_PROPERTY_NAME)); - plates = ElispotDataHandler.initializePlates(form.getProtocol(), data.get(0).getFileLike(), template, reader); + plates = ElispotDataHandler.initializePlates(form.getProtocol(), data.getFirst().getFileLike(), template, reader); } boolean subtractBackground = NumberUtils.toInt(runPropMap.get(ElispotAssayProvider.BACKGROUND_WELL_PROPERTY_NAME), 0) > 0; diff --git a/elispotassay/src/org/labkey/elispot/pipeline/BackgroundSubtractionJob.java b/elispotassay/src/org/labkey/elispot/pipeline/BackgroundSubtractionJob.java index b0845c7f4e..ef9045da31 100644 --- a/elispotassay/src/org/labkey/elispot/pipeline/BackgroundSubtractionJob.java +++ b/elispotassay/src/org/labkey/elispot/pipeline/BackgroundSubtractionJob.java @@ -122,7 +122,7 @@ public void run() if (plate != null) { - String dataLsid = data.get(0).getLSID(); + String dataLsid = data.getFirst().getLSID(); Map propMap = new HashMap<>(); Domain antigenDomain = AbstractAssayProvider.getDomainByPrefix(run.getProtocol(), ElispotAssayProvider.ASSAY_DOMAIN_ANTIGEN_WELLGROUP, false); @@ -132,7 +132,7 @@ public void run() // populate the property maps with cells per well and antigen name information (to simulate data upload) for (WellGroup group : plate.getWellGroups(WellGroup.Type.ANTIGEN)) { - Position groupPos = group.getPositions().get(0); + Position groupPos = group.getPositions().getFirst(); Lsid dataRowLsid = ElispotDataHandler.getDataRowLsid(dataLsid, groupPos); RunDataRow runDataRow = ElispotManager.get().getRunDataRow(dataRowLsid.toString(), run.getContainer()); if (null != runDataRow && null != cellWellProp && null != antigenNameProp) @@ -185,7 +185,7 @@ private Plate initializePlate(PlateBasedAssayProvider provider, ExpRun run, Plat if (reader != null) { - FileLike dataFile = data.get(0).getFileLike(); + FileLike dataFile = data.getFirst().getFileLike(); if (dataFile.exists()) { diff --git a/flow/enginesrc/org/labkey/flow/Main.java b/flow/enginesrc/org/labkey/flow/Main.java index 7258035a43..f56cad90d8 100644 --- a/flow/enginesrc/org/labkey/flow/Main.java +++ b/flow/enginesrc/org/labkey/flow/Main.java @@ -162,15 +162,11 @@ private static void executeListSamples(File workspaceFile, Set g for (Workspace.SampleInfo sample : workspace.getSamplesComplete()) { Analysis analysis = workspace.getSampleAnalysis(sample); - List samples = analysisToSamples.get(analysis); - if (samples == null) - analysisToSamples.put(analysis, samples = new ArrayList<>()); + List samples = analysisToSamples.computeIfAbsent(analysis, _ -> new ArrayList<>()); samples.add(sample); - List dups = sampleLabels.get(sample.getLabel()); - if (dups == null) - sampleLabels.put(sample.getLabel(), dups = new ArrayList<>()); + List dups = sampleLabels.computeIfAbsent(sample.getLabel(), _ -> new ArrayList<>()); dups.add(sample); } @@ -225,7 +221,7 @@ private static void executeListSamples(File workspaceFile, Set g { Analysis analysis = entry.getKey(); List samples = entry.getValue(); - String header = String.format(" %s: ", samples.get(0)); + String header = String.format(" %s: ", samples.getFirst()); String indent = StringUtils.repeat(" ", header.length()); System.out.print(header); printWrapped(System.out, indent, samples); diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java index 4029734811..af3da676ec 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java @@ -29,7 +29,6 @@ import org.labkey.flow.analysis.model.Polygon; import java.awt.*; -import java.util.Iterator; import java.util.List; import java.util.ArrayList; @@ -119,7 +118,7 @@ protected void drawLine(Graphics2D g2, Rectangle2D dataArea, double x1, double y xValues.sort(Double::compareTo); // now draw the segments - double x = xValues.get(0); + double x = xValues.getFirst(); double y = m*x + b; int prevX = (int)getDomainAxis().valueToJava2D(x, dataArea, RectangleEdge.BOTTOM); int prevY = (int)getRangeAxis().valueToJava2D(y, dataArea, RectangleEdge.LEFT); diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java b/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java index 2ba546ac4f..11aa7cff20 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java @@ -116,7 +116,7 @@ public boolean render(Graphics2D g2, Rectangle2D dataArea, int series, PlotRende if (_gates.size() == 1) { - Range gate = _gates.get(0); + Range gate = _gates.getFirst(); int min = (int) getDomainAxis().valueToJava2D(gate.getLowerBound(), dataArea, getDomainAxisEdge()); int max = (int) getDomainAxis().valueToJava2D(gate.getUpperBound(), dataArea, getDomainAxisEdge()); g2.drawLine(min, (int) dataArea.getMinY(), min + 1, (int) dataArea.getMaxY()); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java b/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java index 61d4d3f087..7a2440cbac 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java @@ -156,7 +156,7 @@ private void materializeGraphs(Set graphs, Population population, Sub { if (population.getGates().size() == 1) { - Gate gate = population.getGates().get(0); + Gate gate = population.getGates().getFirst(); if (gate instanceof PolygonGate poly) { GraphSpec graph = new GraphSpec(parent, poly.getXAxis(), poly.getYAxis()); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java b/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java index 75dbfac05b..fe59d9926f 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java @@ -18,7 +18,6 @@ import Jama.Matrix; import org.apache.commons.lang3.StringUtils; -import org.apache.xerces.impl.Constants; import org.junit.Assert; import org.junit.Test; import org.labkey.api.util.DateUtil; diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java b/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java index 96420c4c3a..99042f024b 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java @@ -492,19 +492,19 @@ protected void load(InputStream is) throws IOException if (strValue.isEmpty()) strValue = null; if (keywords.containsKey(strKey)) - LOG.warn("Duplicate key '" + strKey + "'"); + LOG.warn("Duplicate key '{}'", strKey); keywords.put(strKey, strValue); ichStart = ichEnd; } } if (dataOffset == 0) - try {dataOffset = Integer.parseInt(keywords.get("$BEGINDATA"));}catch(Exception x){} + try {dataOffset = Integer.parseInt(keywords.get("$BEGINDATA"));}catch(Exception _){} if (dataLast == 0) - try {dataLast = Integer.parseInt(keywords.get("$ENDDATA"));}catch(Exception x){} + try {dataLast = Integer.parseInt(keywords.get("$ENDDATA"));}catch(Exception _){} if (dataOffset != 0) is.skip(dataOffset - cbRead); - try {_parameterCount = Integer.parseInt(keywords.get("$PAR"));}catch(Exception x){} + try {_parameterCount = Integer.parseInt(keywords.get("$PAR"));}catch(Exception _){} } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJo10_0_6Workspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJo10_0_6Workspace.java index 825ba76a0a..3449a3b362 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJo10_0_6Workspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJo10_0_6Workspace.java @@ -124,7 +124,7 @@ private Gate readRectangleGate(RectangleGateType xRectangleGate) if (axes.size() == 1) { - return new IntervalGate(axes.get(0), lstMin.get(0), lstMax.get(0)); + return new IntervalGate(axes.getFirst(), lstMin.getFirst(), lstMax.getFirst()); } else if (axes.size() == 2) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java index 4b083245e1..1d18c10b92 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java @@ -828,7 +828,7 @@ private void assertPC(Workspace workspace, String version) Analysis analysis = workspace.getSampleAnalysis(sampleInfo); Population cd3cd4 = workspace.findPopulation(analysis, SubsetSpec.fromUnescapedString("Viable/Lymphocytes/CD3+CD4+")); assertEquals(1, cd3cd4.getGates().size()); - PolygonGate cd3cd4gate = (PolygonGate)cd3cd4.getGates().get(0); + PolygonGate cd3cd4gate = (PolygonGate)cd3cd4.getGates().getFirst(); assertEquals("PE-A", cd3cd4gate.getXAxis()); assertEquals("APC-A", cd3cd4gate.getYAxis()); assertEquals(8, cd3cd4gate.getPolygon().len); @@ -979,10 +979,10 @@ private boolean isVersionGreaterThan10_0_7(String version) @Test public void testVersionMethod() { - assertEquals(true, isVersionGreaterThan10_0_7("10.2")); - assertEquals(true, isVersionGreaterThan10_0_7("10.0.8")); - assertEquals(false, isVersionGreaterThan10_0_7("10.0.7")); - assertEquals(false, isVersionGreaterThan10_0_7("7.2.5")); + assertTrue(isVersionGreaterThan10_0_7("10.2")); + assertTrue(isVersionGreaterThan10_0_7("10.0.8")); + assertFalse(isVersionGreaterThan10_0_7("10.0.7")); + assertFalse(isVersionGreaterThan10_0_7("7.2.5")); } private void assertAdvanced(Workspace workspace, String version, boolean mac) @@ -1027,7 +1027,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) else { assertEquals(StringUtils.join(workspace.getWarnings(), "\n"), 1, workspace.getWarnings().size()); - assertTrue(workspace.getWarnings().get(0).contains("Mode statistic not yet supported")); + assertTrue(workspace.getWarnings().getFirst().contains("Mode statistic not yet supported")); } String windowsSampleId = "2"; @@ -1044,7 +1044,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) Analysis analysis = workspace.getSampleAnalysis(sample); assertEquals(20, analysis.getPopulations().size()); Population A = workspace.findPopulation(analysis, SubsetSpec.fromParts("A")); - PolygonGate Agate = (PolygonGate)A.getGates().get(0); + PolygonGate Agate = (PolygonGate)A.getGates().getFirst(); assertEquals("Fluor", Agate.getXAxis()); assertEquals("PhyEry", Agate.getYAxis()); if (mac) @@ -1063,7 +1063,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) } Population AandnotB = workspace.findPopulation(analysis, SubsetSpec.fromParts("A and not B")); - AndGate AandnotBgate = (AndGate)AandnotB.getGates().get(0); + AndGate AandnotBgate = (AndGate)AandnotB.getGates().getFirst(); assertEquals("A", ((SubsetRef)AandnotBgate.getGates().get(0)).getRef().toString()); if (mac) { @@ -1077,7 +1077,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) } Population bifurcateCD8plus = workspace.findPopulation(analysis, SubsetSpec.fromParts("bifurcate CD8+")); - IntervalGate bifurcateCD8plusGate = (IntervalGate)bifurcateCD8plus.getGates().get(0); + IntervalGate bifurcateCD8plusGate = (IntervalGate)bifurcateCD8plus.getGates().getFirst(); assertEquals("PhyEry", bifurcateCD8plusGate.getXAxis()); if (mac) { @@ -1102,7 +1102,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) // Not gate that references an ellipse gate Population notCD4CD8ellipse = workspace.findPopulation(analysis, SubsetSpec.fromParts("not CD4, CD8 ellipse")); - NotGate notCD4CD8ellipseGate = (NotGate)notCD4CD8ellipse.getGates().get(0); + NotGate notCD4CD8ellipseGate = (NotGate)notCD4CD8ellipse.getGates().getFirst(); SubsetRef CD4CD8ellipseRef = (SubsetRef)notCD4CD8ellipseGate.getGate(); assertEquals("CD4, CD8 ellipse", CD4CD8ellipseRef.getRef().toString()); @@ -1116,7 +1116,7 @@ else if ("10.4.2".equals(version) || "10.8".equals(version)) // I labeled the mac quadrant gates backwards String Q1name = mac ? "Q1: CD8-, CD4+" : "Q1: CD4- , CD8+"; Population Q1 = workspace.findPopulation(analysis, SubsetSpec.fromParts(Q1name)); - PolygonGate Q1gate = (PolygonGate)Q1.getGates().get(0); + PolygonGate Q1gate = (PolygonGate)Q1.getGates().getFirst(); //assertEquals(...); AttributeSet results = workspace.getSampleAnalysisResults(sample); @@ -1285,7 +1285,7 @@ public void loadSubsets() throws Exception aliases.add(alias.toString()); assertEquals(1, aliases.size()); - String alias = aliases.get(0); + String alias = aliases.getFirst(); assertEquals("({A & co: fun}&!(B|{C (awesome)})):Count", alias); } @@ -1309,7 +1309,7 @@ public void loadSubsets() throws Exception aliases.add(alias.toString()); assertEquals(1, aliases.size()); - String alias = aliases.get(0); + String alias = aliases.getFirst(); // Alias as it will appear in the database assertEquals("B/Z;|;!:Freq_Of_Parent", alias); @@ -1326,7 +1326,7 @@ public void loadSubsets() throws Exception aliases.add(alias.toString()); assertEquals(1, aliases.size()); - String alias = aliases.get(0); + String alias = aliases.getFirst(); // Alias is escaped because it contains illegal characters in the expression. assertEquals("B/({Y{foo\\}}&({Z;|;!}|!{X (x&x)})):Count", alias); } @@ -1347,18 +1347,18 @@ public void loadBooleanSubPopulations() throws Exception // And gate named "A&B" Population AandB = analysis.getPopulation(PopulationName.fromString("A&B")); assertEquals(1, AandB.getGates().size()); - assertTrue(AandB.getGates().get(0) instanceof AndGate); + assertTrue(AandB.getGates().getFirst() instanceof AndGate); - AndGate AandBgate = (AndGate)AandB.getGates().get(0); + AndGate AandBgate = (AndGate)AandB.getGates().getFirst(); assertEquals(SubsetSpec.fromParts("A"), ((SubsetRef)AandBgate.getGates().get(0)).getRef()); assertEquals(SubsetSpec.fromParts("B"), ((SubsetRef)AandBgate.getGates().get(1)).getRef()); // Or gate named "C|D" Population CorD = AandB.getPopulation(PopulationName.fromString("C|D")); assertEquals(1, CorD.getGates().size()); - assertTrue(CorD.getGates().get(0) instanceof OrGate); + assertTrue(CorD.getGates().getFirst() instanceof OrGate); - OrGate CorDgate = (OrGate)CorD.getGates().get(0); + OrGate CorDgate = (OrGate)CorD.getGates().getFirst(); assertEquals(SubsetSpec.fromParts("A&B", "C"), ((SubsetRef)CorDgate.getGates().get(0)).getRef()); assertEquals(SubsetSpec.fromParts("A&B", "D"), ((SubsetRef)CorDgate.getGates().get(1)).getRef()); @@ -1397,10 +1397,10 @@ public void loadBooleanSubPopulations2() throws Exception Population trucount_neg = analysis.getPopulation(PopulationName.fromString("trucount beads-")); assertEquals(1, trucount_neg.getGates().size()); - assertTrue(trucount_neg.getGates().get(0) instanceof NotGate); + assertTrue(trucount_neg.getGates().getFirst() instanceof NotGate); Population cd45_less_debris = trucount_neg.getPopulation(PopulationName.fromString("CD45+, less debris")); - assertTrue(cd45_less_debris.getGates().get(0) instanceof PolygonGate); + assertTrue(cd45_less_debris.getGates().getFirst() instanceof PolygonGate); // Check count stats of the boolean populations. AttributeSet results = sampleInfo.getAnalysisResults(); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java b/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java index 6ca7c43761..041b333a8c 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java @@ -111,8 +111,8 @@ static public Gate readGate(Element element) if (gates.size() == 1) { PopulationName name = PopulationName.fromString(element.getAttribute("name")); - gates.get(0).setName(name); - return gates.get(0); + gates.getFirst().setName(name); + return gates.getFirst(); } return null; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java index 5fe39667bd..f8b09a6269 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java @@ -150,8 +150,8 @@ protected Gate createBooleanGate(final SubsetExpression expr) protected Gate readBoolean(SubsetSpec parentSubset, String name, Element elBooleanGate) { String specification = elBooleanGate.getAttribute("specification"); - Element elGatePaths = getElementsByTagName(elBooleanGate, "GatePaths").get(0); - Element elStringArray = getElementsByTagName(elGatePaths, "StringArray").get(0); + Element elGatePaths = getElementsByTagName(elBooleanGate, "GatePaths").getFirst(); + Element elStringArray = getElementsByTagName(elGatePaths, "StringArray").getFirst(); List nlStrings = getElementsByTagName(elStringArray, "String"); int count = 0; diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java index 6da90a8094..9031dd1df3 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java @@ -103,7 +103,7 @@ private Gate readRectangleGate(RectangleGateType xRectangleGate) if (axes.size() == 1) { - return new IntervalGate(axes.get(0), lstMin.get(0), lstMax.get(0)); + return new IntervalGate(axes.getFirst(), lstMin.getFirst(), lstMax.getFirst()); } else if (axes.size() == 2) { @@ -137,7 +137,7 @@ protected Gate readGate(Element elGate, SubsetSpec subset, Analysis analysis, St return null; } - Element elChild = elChildren.get(0); + Element elChild = elChildren.getFirst(); boolean invert = inverted(elChild); Gate gate = readGate(elGate); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java index 7ddb18ce25..ad8c89f5c3 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java @@ -217,7 +217,7 @@ protected Population readBoolean(Element elBoolNode, SubsetSpec parentSubset, An else if ("OrNode".equals(tagName)) gate = new OrGate(gates); else if ("NotNode".equals(tagName)) - gate = new NotGate(gates.get(0)); + gate = new NotGate(gates.getFirst()); if (gate != null) ret.addGate(gate); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java b/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java index 61b2c7b4bd..2cfbc2e5ac 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java @@ -42,7 +42,7 @@ public static SampleIdMap emptyMap() return new SampleIdMap<>() { @Override - public void put(String id, String name, Object value) + public void put(@NotNull String id, @NotNull String name, @NotNull Object value) { throw new UnsupportedOperationException(); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java b/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java index ffa26c5861..767e081d96 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java @@ -53,7 +53,7 @@ public boolean isDeleted() } @Override - public String getSampleId() + public @NotNull String getSampleId() { return _sampleId; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java index c62c705f79..753e9e819f 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java @@ -16,8 +16,8 @@ package org.labkey.flow.analysis.model; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import org.labkey.flow.analysis.web.SubsetExpression; import org.labkey.flow.analysis.web.SubsetSpec; import org.labkey.flow.persist.AttributeSet; @@ -193,7 +193,7 @@ public void write(byte[] bytes) } @Override - public void write(byte[] bytes, int off, int l) + public void write(byte @NotNull [] bytes, int off, int l) { len[0] += l; } @@ -595,7 +595,7 @@ public CompensationMatrix getCompensationMatrix() } if (_compensationMatrices.size() == 1) { - return _compensationMatrices.get(0); + return _compensationMatrices.getFirst(); } if (_compensationMatrices.size() < id) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java b/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java index 0e77948662..b24c0de159 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java @@ -264,12 +264,7 @@ private List calculateStatistics(Map subsetMap, try { Subset subset = getSubset(subsetMap, group, statisticSpecification.getSubset()); - Map statsMap = subsetStatsMap.get(statisticSpecification.getSubset()); - if (statsMap == null) - { - statsMap = new HashMap<>(); - subsetStatsMap.put(statisticSpecification.getSubset(), statsMap); - } + Map statsMap = subsetStatsMap.computeIfAbsent(statisticSpecification.getSubset(), _ -> new HashMap<>()); result.value = StatisticSpec.calculate(subset, statisticSpecification, statsMap); } catch (Throwable t) @@ -398,7 +393,7 @@ protected SubsetSpec _getSubsetAlias(PopulationSet populationSet, SubsetSpec sub boolean found = false; if (population.getGates() != null && population.getGates().size() == 1) { - Gate gate = population.getGates().get(0); + Gate gate = population.getGates().getFirst(); SubsetExpression expr = expressionFromGate(gate); if (expr != null) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/PlotTests.java b/flow/enginesrc/org/labkey/flow/analysis/web/PlotTests.java index 9ab2b06e63..4567744e44 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/PlotTests.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/PlotTests.java @@ -94,7 +94,7 @@ private Map generatePlots(File outDir, Workspace workspace, F throw new RuntimeException("Found duplicate samples for '" + fcsFile.getName() + "'"); if (samples.isEmpty()) throw new RuntimeException("No sample found for '" + fcsFile.getName() + "'"); - Workspace.SampleInfo sample = samples.get(0); + Workspace.SampleInfo sample = samples.getFirst(); Analysis analysis = workspace.getSampleAnalysis(sample); CompensationMatrix comp = sample.getCompensationMatrix(); diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java b/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java index 32da912b4e..d4182c7034 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java @@ -121,7 +121,7 @@ public static Population makePopulation(Map gates, PopulationDef p ret.addGate(Gate.readGate((Element) gateElement.getDomNode())); if (ret.getGates().size() == 1) { - ret.getGates().get(0).setName(ret.getName()); + ret.getGates().getFirst().setName(ret.getName()); } } else @@ -422,7 +422,7 @@ else if (sampleId != null) if (samples.size() > 1) throw new RuntimeException("Found duplicate samples for '" + sampleId + "'"); if (!samples.isEmpty()) - sample = samples.get(0); + sample = samples.getFirst(); } if (sample == null) throw new RuntimeException("Cannot find sample '" + sampleId + "'"); diff --git a/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java b/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java index d3dabd672b..118f8a6501 100644 --- a/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java +++ b/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java @@ -1686,7 +1686,7 @@ public void testRead() throws Exception List attrsList = results.getByName("119043.fcs"); assertEquals("Expected only one attribute set for 119043.fcs", 1, attrsList.size()); - AttributeSet attrs = attrsList.get(0); + AttributeSet attrs = attrsList.getFirst(); assertEquals("Expected 117 statistics for 119043.fcs", 117, attrs.getStatisticNames().size()); assertEquals("Expected 12 statistics for 119043.fcs", 13, attrs.getGraphNames().size()); } diff --git a/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java b/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java index d8bb7c8c23..e187bba34f 100644 --- a/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java +++ b/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java @@ -248,7 +248,7 @@ public void setKeyword(@NotNull String keyword, @Nullable String value) String existing = _keywordNames.put(keyword, keyword); if (existing != null && !existing.equals(keyword)) - LOG.warn("Duplicate keyword '" + existing + "' and '" + keyword + "'"); + LOG.warn("Duplicate keyword '{}' and '{}'", existing, keyword); _keywords.put(keyword, value); } @@ -265,7 +265,7 @@ public void addKeywordAlias(String spec, String alias) if (_keywordAliases == null) _keywordAliases = new CaseInsensitiveTreeMap<>(); - Set aliases = _keywordAliases.computeIfAbsent(spec, k -> new LinkedHashSet<>()); + Set aliases = _keywordAliases.computeIfAbsent(spec, _ -> new LinkedHashSet<>()); aliases.add(alias); } @@ -301,7 +301,7 @@ public void setStatistic(StatisticSpec stat, double value) { StatisticSpec existing = _statisticNames.put(stat.toString(), stat); if (existing != null && !existing.toString().equals(stat.toString())) - LOG.warn("Duplicate statistic '" + existing + "' and '" + stat + "'"); + LOG.warn("Duplicate statistic '{}' and '{}'", existing, stat); _statistics.put(stat, value); } } @@ -343,7 +343,7 @@ public void setGraph(GraphSpec graph, byte[] data) GraphSpec existing = _graphNames.put(graph.toString(), graph); if (existing != null && !existing.toString().equals(graph.toString())) - LOG.warn("Duplicate graph '" + existing + "' and '" + graph + "'"); + LOG.warn("Duplicate graph '{}' and '{}'", existing, graph); _graphs.put(graph, data); } diff --git a/flow/src/org/labkey/flow/controllers/BaseFlowController.java b/flow/src/org/labkey/flow/controllers/BaseFlowController.java index 99acebae8b..601a847ca8 100644 --- a/flow/src/org/labkey/flow/controllers/BaseFlowController.java +++ b/flow/src/org/labkey/flow/controllers/BaseFlowController.java @@ -112,7 +112,7 @@ public void addFlowNavTrail(PageConfig page, NavTree root, @Nullable FlowObject< ArrayList children = new ArrayList<>(); while (object != null) { - children.add(0, new NavTree(object.getLabel(), object.urlShow())); + children.addFirst(new NavTree(object.getLabel(), object.urlShow())); object = object.getParent(); } diff --git a/flow/src/org/labkey/flow/controllers/WorkspaceData.java b/flow/src/org/labkey/flow/controllers/WorkspaceData.java index 5108717e32..69999a0324 100644 --- a/flow/src/org/labkey/flow/controllers/WorkspaceData.java +++ b/flow/src/org/labkey/flow/controllers/WorkspaceData.java @@ -282,7 +282,7 @@ private void validateStatAndGraphCasing(Container c, Errors errors, boolean isCa } if (!subsetMismatches.isEmpty() && !parameterMismatches.isEmpty()) - _log.debug("Mismatch counts while parsing workspace: " + _object.getName() + "\n" + subsetMismatches + "\n" + parameterMismatches); + _log.debug("Mismatch counts while parsing workspace: {}\n{}\n{}", _object.getName(), subsetMismatches, parameterMismatches); addCaseSensitiveWarnings(errors, messages, isCaseSensitive); } diff --git a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java index 1d060513cf..8f894bddfb 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java +++ b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java @@ -166,7 +166,7 @@ public Map>> getKeywordValueSampleMap(Workspace { if (entry.getValue().size() != 1) continue; - List subsets = sampleSubsetMap.get(entry.getValue().get(0)); + List subsets = sampleSubsetMap.get(entry.getValue().getFirst()); valueSampleMap.put(entry.getKey(), subsets); } if (!valueSampleMap.isEmpty()) diff --git a/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java b/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java index 1c31f7bd9b..d1a8755207 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java +++ b/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java @@ -118,7 +118,7 @@ public void reset() { analysisDocument = flowObject.getAnalysisScriptDocument(); } - catch (Exception e) + catch (Exception _) { } @@ -198,10 +198,10 @@ public FlowCompensationMatrix getCompensationMatrix() } try { - List matrices = FlowCompensationMatrix.getCompensationMatrices(getContainer()); + List matrices = FlowCompensationMatrix.getCompensationMatrices(getContainer()); if (matrices.isEmpty()) return null; - _comp = (FlowCompensationMatrix) matrices.get(0); + _comp = matrices.getFirst(); } catch (Throwable t) { @@ -268,7 +268,7 @@ else if (previous.length() < entry.getValue().length()) } catch(FileNotFoundException e) { - _log.warn("Error opening file " + wells[i].getFCSURI(), e); + _log.warn("Error opening file {}", wells[i].getFCSURI(), e); } } catch(Exception e) diff --git a/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java b/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java index 801a8a39d2..aefcde8c25 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java +++ b/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java @@ -766,7 +766,7 @@ private FileLike getRunPathRoot(List keywordDirs, SampleIdMap null; + default -> super.urlFor(action); + }; } } diff --git a/flow/src/org/labkey/flow/controllers/executescript/SamplesConfirmGridView.java b/flow/src/org/labkey/flow/controllers/executescript/SamplesConfirmGridView.java index 721db1ee33..6549fa2b42 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/SamplesConfirmGridView.java +++ b/flow/src/org/labkey/flow/controllers/executescript/SamplesConfirmGridView.java @@ -125,7 +125,7 @@ public SamplesConfirmGridView(User user, Container container, Collection } else { - LOG.warn("Ignoring duplicate columns for FieldKey '" + fieldKey + "', got: '" + col.getName() + "' and '" + columns.get(fieldKey).getName() + "'"); + LOG.warn("Ignoring duplicate columns for FieldKey '{}', got: '{}' and '{}'", fieldKey, col.getName(), columns.get(fieldKey).getName()); } } // these are "fake" columns (set fake aliases) diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp index 0d50b1ac2e..302c7e171d 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp @@ -102,7 +102,7 @@ <% diff --git a/flow/src/org/labkey/flow/controllers/reports.jsp b/flow/src/org/labkey/flow/controllers/reports.jsp index 32371b109e..b6953202e2 100644 --- a/flow/src/org/labkey/flow/controllers/reports.jsp +++ b/flow/src/org/labkey/flow/controllers/reports.jsp @@ -53,9 +53,7 @@ ReportDescriptor d = r.getDescriptor(); String type = d.getReportType(); - List rs = reportsByType.get(type); - if (rs == null) - reportsByType.put(type, rs = new ArrayList<>(reports.size())); + List rs = reportsByType.computeIfAbsent(type, _ -> new ArrayList<>(reports.size())); rs.add(r); } @@ -74,7 +72,7 @@ table.reports td { continue; %> - <%=h(rs.get(0).getTypeDescription())%> + <%=h(rs.getFirst().getTypeDescription())%> <% for (FlowReport r : rs) diff --git a/flow/src/org/labkey/flow/controllers/run/RunController.java b/flow/src/org/labkey/flow/controllers/run/RunController.java index eeaaab8f44..9ff233db2e 100644 --- a/flow/src/org/labkey/flow/controllers/run/RunController.java +++ b/flow/src/org/labkey/flow/controllers/run/RunController.java @@ -521,7 +521,7 @@ public boolean handlePost(ExportAnalysisForm form, BindException errors) throws String zipName = "ExportedRuns"; if (_runs.size() == 1) { - FlowRun run = _runs.get(0); + FlowRun run = _runs.getFirst(); zipName = getBaseName(run.getName()); } diff --git a/flow/src/org/labkey/flow/controllers/well/EditWellForm.java b/flow/src/org/labkey/flow/controllers/well/EditWellForm.java index 1be6d2d3a1..cc0f808e36 100644 --- a/flow/src/org/labkey/flow/controllers/well/EditWellForm.java +++ b/flow/src/org/labkey/flow/controllers/well/EditWellForm.java @@ -81,11 +81,11 @@ public void setWells(List wells, boolean isBulkEdit) { if (ff_comment == null) { - ff_comment = wells.get(0).getComment(); + ff_comment = wells.getFirst().getComment(); } if (ff_name == null) { - ff_name = wells.get(0).getName(); + ff_name = wells.getFirst().getName(); } } } @@ -95,7 +95,7 @@ private void setFormKeywords(List wells) { if (ff_keywordName == null) { - Map.Entry[] entries = wells.get(0).getKeywords().entrySet().toArray(new Map.Entry[0]); + Map.Entry[] entries = wells.getFirst().getKeywords().entrySet().toArray(new Map.Entry[0]); ff_keywordName = new String[entries.length]; ff_keywordValue = new String[entries.length]; ff_keywordError = new String[entries.length]; diff --git a/flow/src/org/labkey/flow/controllers/well/WellController.java b/flow/src/org/labkey/flow/controllers/well/WellController.java index a76cb82093..e462d7fc13 100644 --- a/flow/src/org/labkey/flow/controllers/well/WellController.java +++ b/flow/src/org/labkey/flow/controllers/well/WellController.java @@ -158,7 +158,7 @@ protected List getWells(boolean isBulkEdit) protected String[] getKeywordIntersection(List wells, boolean filterHiddenKeywords) { - Set intersection = new HashSet<>(wells.get(0).getKeywords().keySet()); + Set intersection = new HashSet<>(wells.getFirst().getKeywords().keySet()); for (FlowWell well : wells) { @@ -351,7 +351,7 @@ public ActionURL getSuccessURL(EditWellForm form) { return new ActionURL(form.editWellReturnUrl); } - return form.getWells().get(0).urlFor(ShowWellAction.class); + return form.getWells().getFirst().urlFor(ShowWellAction.class); } @Override @@ -366,7 +366,7 @@ public void addNavTrail(NavTree root) } FlowWell well = null; if (_wells != null && !_wells.isEmpty()) - well = _wells.get(0); + well = _wells.getFirst(); String label = null != well ? "Edit " + well.getLabel() : "Well not found"; addFlowNavTrail(getPageConfig(), root, well, label); } diff --git a/flow/src/org/labkey/flow/controllers/well/chooseGraph.jsp b/flow/src/org/labkey/flow/controllers/well/chooseGraph.jsp index 3a7b8ca812..55c0ecef13 100644 --- a/flow/src/org/labkey/flow/controllers/well/chooseGraph.jsp +++ b/flow/src/org/labkey/flow/controllers/well/chooseGraph.jsp @@ -109,7 +109,7 @@ } if (!steps.isEmpty() && !steps.contains(step)) { - step = steps.get(0); + step = steps.getFirst(); } %>
diff --git a/flow/src/org/labkey/flow/controllers/well/editWell.jsp b/flow/src/org/labkey/flow/controllers/well/editWell.jsp index e4898866de..7500d910a1 100644 --- a/flow/src/org/labkey/flow/controllers/well/editWell.jsp +++ b/flow/src/org/labkey/flow/controllers/well/editWell.jsp @@ -26,7 +26,7 @@ <%@ taglib prefix="labkey" uri="http://www.labkey.org/taglib" %> <% EditWellForm form = (EditWellForm) __form; - FlowWell well = form.getWells().get(0); + FlowWell well = form.getWells().getFirst(); List wells = form.getWells();%> <%-- NOTE: form.reportValiditiy not supported on all browsers (cough, IE and old Firefox): https://caniuse.com/#search=reportValidity --%> @@ -76,7 +76,7 @@ Well Name: - + Comment: diff --git a/flow/src/org/labkey/flow/data/FlowDataObject.java b/flow/src/org/labkey/flow/data/FlowDataObject.java index 9d721a07f0..52cdd6ca12 100644 --- a/flow/src/org/labkey/flow/data/FlowDataObject.java +++ b/flow/src/org/labkey/flow/data/FlowDataObject.java @@ -36,7 +36,6 @@ import java.net.URI; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -202,12 +201,6 @@ public FlowObject getParent() return getRun(); } - @Override - public String getOwnerObjectLSID() - { - return getLSID(); - } - static public String generateDataLSID(Container container, FlowDataType type) { return ExperimentService.get().generateGuidLSID(container, type); @@ -242,7 +235,7 @@ static public boolean sameExperiment(List objs) { if (objs.size() < 2) return true; - String lsidCompare = objs.get(0).getExperimentLSID(); + String lsidCompare = objs.getFirst().getExperimentLSID(); for (int i = 1; i < objs.size(); i ++) { if (!Objects.equals(lsidCompare, objs.get(i).getExperimentLSID())) diff --git a/flow/src/org/labkey/flow/data/FlowObject.java b/flow/src/org/labkey/flow/data/FlowObject.java index bad0023055..2f0904def8 100644 --- a/flow/src/org/labkey/flow/data/FlowObject.java +++ b/flow/src/org/labkey/flow/data/FlowObject.java @@ -17,6 +17,7 @@ package org.labkey.flow.data; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; import org.labkey.api.data.DataRegion; @@ -270,7 +271,7 @@ public Container getContainerObject() } @Override - public int compareTo(Object o) + public int compareTo(@NotNull Object o) { if (!(o instanceof FlowObject)) return 0; diff --git a/flow/src/org/labkey/flow/data/FlowProtocol.java b/flow/src/org/labkey/flow/data/FlowProtocol.java index cd6e07d933..c30e86f50b 100644 --- a/flow/src/org/labkey/flow/data/FlowProtocol.java +++ b/flow/src/org/labkey/flow/data/FlowProtocol.java @@ -375,7 +375,7 @@ public Map getSampleMap(User user) if (lookupColumn != null) selectedColumns.add(lookupColumn); else - _log.warn("Flow sample join property '" + propertyName + "' not found on SampleType"); + _log.warn("Flow sample join property '{}' not found on SampleType", propertyName); } Map materialMap = new LongHashMap<>(); @@ -428,17 +428,17 @@ public List getSamples(ExpSampleType sampleType, User use public int updateSampleIds(User user) { - _log.info("updateSampleIds: protocol=" + this.getName() + ", folder=" + this.getContainerPath()); + _log.info("updateSampleIds: protocol={}, folder={}", this.getName(), this.getContainerPath()); ExperimentService svc = ExperimentService.get(); Map joinFields = getSampleTypeJoinFields(); - _log.debug("joinFields: " + joinFields); + _log.debug("joinFields: {}", joinFields); Map sampleMap = getSampleMap(user); - _log.debug("sampleMap=" + sampleMap.size()); + _log.debug("sampleMap={}", sampleMap.size()); ExpSampleType st = getSampleType(); - _log.debug("sampleType=" + (st == null ? "" : st.getName()) + ", lsid=" + (st == null ? "" : st.getLSID())); + _log.debug("sampleType={}, lsid={}", st == null ? "" : st.getName(), st == null ? "" : st.getLSID()); FlowSchema schema = new FlowSchema(user, getContainer()); TableInfo fcsFilesTable = schema.getTable("FCSFiles"); @@ -477,7 +477,7 @@ public int updateSampleIds(User user) { Long fcsFileId = colRowId.getLongValue(rs); ExpData fcsFile = fcsFileMap.get(fcsFileId); - _log.debug("-- fcsFileId=" + fcsFileId + ", fcsFile=" + fcsFile); + _log.debug("-- fcsFileId={}, fcsFile={}", fcsFileId, fcsFile); if (fcsFile == null) continue; fcsFileCount++; @@ -492,12 +492,12 @@ public int updateSampleIds(User user) } key.addValue(value); } - _log.debug(" sampleKey=" + key); + _log.debug(" sampleKey={}", key); ExpMaterial sample = sampleMap.get(key); Long newSampleId = sample == null ? null : sample.getRowId(); Object oldSampleId = colSampleId.getValue(rs); - _log.debug(" newSampleId=" + newSampleId + ", oldSampleId=" + oldSampleId); + _log.debug(" newSampleId={}, oldSampleId={}", newSampleId, oldSampleId); if (Objects.equals(newSampleId, oldSampleId)) { unchanged++; @@ -511,7 +511,7 @@ public int updateSampleIds(User user) _log.debug(" orphaned FCSFile"); continue; } - _log.debug(" protocol app=" + app.getName()); + _log.debug(" protocol app={}", app.getName()); boolean changed = false; boolean found = false; @@ -519,7 +519,7 @@ public int updateSampleIds(User user) { if (material.getCpasType() == null || !Objects.equals(material.getCpasType(), st.getLSID())) { - _log.debug(" sample's sampletype isn't ours: " + material.getCpasType()); + _log.debug(" sample's sampletype isn't ours: {}", material.getCpasType()); continue; } if (sample != null) @@ -532,7 +532,7 @@ public int updateSampleIds(User user) break; } } - _log.debug(" found previously linked sample no longer needed, remove = " + material.getName()); + _log.debug(" found previously linked sample no longer needed, remove = {}", material.getName()); app.removeMaterialInput(user, material); changed = true; } @@ -553,7 +553,7 @@ public int updateSampleIds(User user) if (!fcsFileRuns.isEmpty()) { - _log.info(fcsFileRuns.size() + " runs changed, syncing edges"); + _log.info("{} runs changed, syncing edges", fcsFileRuns.size()); ExperimentService.get().syncRunEdges(fcsFileRuns); } @@ -572,7 +572,7 @@ public int updateSampleIds(User user) throw new RuntimeSQLException(e); } - _log.debug("fcsFileCount=" + fcsFileCount + ", sampleCount=" + sampleMap.size() + ", linked=" + linked + ", unchanged=" + unchanged); + _log.debug("fcsFileCount={}, sampleCount={}, linked={}, unchanged={}", fcsFileCount, sampleMap.size(), linked, unchanged); return linked; } @@ -639,7 +639,7 @@ public FCSFilesGroupedBySample getFCSFilesGroupedBySample(User user, Container c sampleIds.add(sampleRowId); if (fcsFileRowId != null) { - var fcsFiles = samplesToFcsFiles.computeIfAbsent(sampleRowId, k -> new ArrayList<>()); + var fcsFiles = samplesToFcsFiles.computeIfAbsent(sampleRowId, _ -> new ArrayList<>()); fcsFiles.add(fcsFileRowId); linkedFcsFileCount++; } @@ -815,7 +815,7 @@ public void updateFCSAnalysisName(User user) throws Exception while (rs.next()) { int rowid = ((Number) colRowId.getValue(rs)).intValue(); - FlowObject obj = FlowDataObject.fromRowId(rowid); + FlowObject obj = FlowDataObject.fromRowId(rowid); if (obj instanceof FlowFCSAnalysis) { ExpData data = ((FlowFCSAnalysis) obj).getData(); @@ -956,7 +956,7 @@ public String getProtocolSettingsDescription() StringBuilder ret = new StringBuilder("Protocol Settings ("); if (parts.size() ==1) { - ret.append(parts.get(0)); + ret.append(parts.getFirst()); } else { @@ -1013,7 +1013,7 @@ public void testSampleJoin() throws Exception assertNotNull(runs); assertEquals(1, runs.size()); - FlowRun run = runs.get(0); + FlowRun run = runs.getFirst(); long runId = run.getRunId(); FlowFCSFile[] fcsFiles = run.getFCSFiles(); assertEquals(2, fcsFiles.length); @@ -1080,7 +1080,7 @@ public void testSampleJoin() throws Exception { List samples = file.getSamples(); assertEquals(1, samples.size()); - ExpMaterial sample = samples.get(0); + ExpMaterial sample = samples.getFirst(); String WELL_ID = file.getKeyword("WELL ID"); String wellId = (String)sample.getProperty(wellIdProp); diff --git a/flow/src/org/labkey/flow/data/FlowRun.java b/flow/src/org/labkey/flow/data/FlowRun.java index 4c6ebe929e..469d82ca6b 100644 --- a/flow/src/org/labkey/flow/data/FlowRun.java +++ b/flow/src/org/labkey/flow/data/FlowRun.java @@ -174,12 +174,12 @@ public FlowCompensationMatrix getCompensationMatrix() List outputs = getExperimentRun().getOutputDatas(FlowDataType.CompensationMatrix); if (!outputs.isEmpty()) { - return new FlowCompensationMatrix(outputs.get(0)); + return new FlowCompensationMatrix(outputs.getFirst()); } List datas = getExperimentRun().getInputDatas(InputRole.CompensationMatrix.toString(), ExpProtocol.ApplicationType.ExperimentRun); if (datas.isEmpty()) return null; - return new FlowCompensationMatrix(datas.get(0)); + return new FlowCompensationMatrix(datas.getFirst()); } public long getRunId() @@ -237,7 +237,7 @@ private long getScriptId() List datas = getExperimentRun().getInputDatas(InputRole.AnalysisScript.toString(), ExpProtocol.ApplicationType.ExperimentRun); if (datas.isEmpty()) return 0; - return datas.get(0).getRowId(); + return datas.getFirst().getRowId(); } public FlowScript getScript() @@ -245,7 +245,7 @@ public FlowScript getScript() List datas = getExperimentRun().getInputDatas(InputRole.AnalysisScript.toString(), ExpProtocol.ApplicationType.ExperimentRun); if (datas.isEmpty()) return null; - return (FlowScript) FlowDataObject.fromData(datas.get(0)); + return (FlowScript) FlowDataObject.fromData(datas.getFirst()); } public String getPath() @@ -280,7 +280,7 @@ public FlowWorkspace getWorkspace() List datas = getExperimentRun().getInputDatas(InputRole.Workspace.toString(), ExpProtocol.ApplicationType.ExperimentRun); if (datas.isEmpty()) return null; - return (FlowWorkspace) FlowDataObject.fromData(datas.get(0)); + return (FlowWorkspace) FlowDataObject.fromData(datas.getFirst()); } public ActionURL getDownloadWorkspaceURL() @@ -317,12 +317,6 @@ public QueryRowReference getQueryRowReference() return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.Runs.name(), FieldKey.fromParts("RowId"), getRunId()); } - @Override - public String getLabel() - { - return getName(); - } - @Override public FlowObject getParent() { @@ -335,7 +329,7 @@ public FlowExperiment getExperiment() if (experiments.isEmpty()) return null; - return new FlowExperiment(experiments.get(0)); + return new FlowExperiment(experiments.getFirst()); } static public List getRunsForContainer(Container container, FlowProtocolStep step) diff --git a/flow/src/org/labkey/flow/persist/AttributeCache.java b/flow/src/org/labkey/flow/persist/AttributeCache.java index fa9e1a7857..1fdd93784a 100644 --- a/flow/src/org/labkey/flow/persist/AttributeCache.java +++ b/flow/src/org/labkey/flow/persist/AttributeCache.java @@ -58,7 +58,7 @@ abstract public class AttributeCache, E extends Attribut @Override public Attributes load(@NotNull String containerId, @Nullable Object argument) { - LOG.debug("Loading " + _type + " by containerId: " + containerId); + LOG.debug("Loading {} by containerId: {}", _type, containerId); Collection entries = FlowManager.get().getAttributeEntries(containerId, _type); ArrayList list = new ArrayList<>(entries.size()); for (FlowEntry entry : entries) @@ -98,7 +98,7 @@ private Attributes(String containerId, Collection all) Z existing = byName.putIfAbsent(entry.getName(), entry); if (existing != null) - LOG.warn("Duplicate entry '" + existing.getName() + "' (id=" + existing.getRowId() + ", aliasId=" + existing.getAliasedId() + ") and '" + entry.getName() + "' (id=" + entry.getRowId() + ", aliasId=" + entry.getAliasedId() + ")"); + LOG.warn("Duplicate entry '{}' (id={}, aliasId={}) and '{}' (id={}, aliasId={})", existing.getName(), existing.getRowId(), existing.getAliasedId(), entry.getName(), entry.getRowId(), entry.getAliasedId()); if (entry.getAliasedId() != null) aliases.put(entry.getAliasedId(), entry.getRowId()); @@ -412,7 +412,7 @@ public void uncacheNow(@Nullable Container c) private void _uncacheNow(@Nullable Container c) { - LOG.debug("Uncache " + _type.name() + ": " + (c == null ? "entire world" : "container='" + c.getName() + "', id='" + c.getId() + "'")); + LOG.debug("Uncache {}: {}", _type.name(), c == null ? "entire world" : "container='" + c.getName() + "', id='" + c.getId() + "'"); if (c == null) { _cache.clear(); diff --git a/flow/src/org/labkey/flow/persist/AttributeSetHelper.java b/flow/src/org/labkey/flow/persist/AttributeSetHelper.java index 511d139df7..88ad6183e9 100644 --- a/flow/src/org/labkey/flow/persist/AttributeSetHelper.java +++ b/flow/src/org/labkey/flow/persist/AttributeSetHelper.java @@ -37,7 +37,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; diff --git a/flow/src/org/labkey/flow/persist/FlowManager.java b/flow/src/org/labkey/flow/persist/FlowManager.java index 522c1cee0f..5481ef5aa8 100644 --- a/flow/src/org/labkey/flow/persist/FlowManager.java +++ b/flow/src/org/labkey/flow/persist/FlowManager.java @@ -384,12 +384,12 @@ private int ensureAttributeName(@NotNull Container container, @Nullable String s if (!caseSensitive) { // Use the first attribute, sorted by case - int rowId = others.get(0)._rowId; + int rowId = others.getFirst()._rowId; // If more than one attribute matches, check that all are pointing to the same preferred attribute if (others.size() > 1) { - int preferredId = others.get(0)._aliasId; + int preferredId = others.getFirst()._aliasId; if (others.stream().anyMatch(item -> item._aliasId != preferredId)) throw new FlowCasingMismatchException("Can't create " + type + " with same casing as other " + type + "s when there is more than one preferred attribute.", sampleLabel, type, others, attr); } @@ -1292,7 +1292,7 @@ public Map getUsageMetrics() merge(allMetrics, containerMetrics); } - _log.debug("Collected flow usage metrics:\n" + allMetrics); + _log.debug("Collected flow usage metrics:\n{}", allMetrics); return allMetrics; }); } @@ -1341,7 +1341,7 @@ else if (value instanceof Map) // Get usage metrics in a single container public Map getUsageMetrics(User user, Container c, boolean includeAttributeCounts) { - _log.debug("Collecting metrics in '" + c.getPath() + "'"); + _log.debug("Collecting metrics in '{}'", c.getPath()); Map metrics = new LinkedHashMap<>(); FlowSchema schema = new FlowSchema(user, c); @@ -1393,7 +1393,7 @@ public Map getUsageMetrics(User user, Container c, boolean inclu metrics.put("graph", getAttributeMetrics(AttributeType.graph)); } - _log.debug("Collected metrics in '" + c.getPath() + "':\n" + metrics); + _log.debug("Collected metrics in '{}':\n{}", c.getPath(), metrics); return metrics; } @@ -1419,7 +1419,7 @@ public int getSampleCount(Container c, User user, ExpSampleType st) public int getTempTableCount() { return new SqlSelector(DbScope.getLabKeyScope(), "SELECT COUNT(*) FROM information_schema.tables \n" + - "WHERE TABLE_SCHEMA = 'temp' and (table_name LIKE 'ffo%' or table_name LIKE 'fbg%')").getArrayList(Integer.class).get(0); + "WHERE TABLE_SCHEMA = 'temp' and (table_name LIKE 'ffo%' or table_name LIKE 'fbg%')").getArrayList(Integer.class).getFirst(); } public Map getAttributeMetrics(AttributeType attributeType) @@ -1460,7 +1460,7 @@ public int getFCSFileCount(User user, Container container) Map> agg = new TableSelector(table, columns, filter, null).getAggregates(aggregates); //TODO: multiple aggregates - Aggregate.Result result = agg.get(aggregates.get(0).getColumnName()).get(0); + Aggregate.Result result = agg.get(aggregates.getFirst().getColumnName()).getFirst(); if (result != null && result.getValue() instanceof Number n) return n.intValue(); @@ -1478,7 +1478,7 @@ public int getFCSFileOnlyRunsCount(User user, Container container) List aggregates = Collections.singletonList(new Aggregate(FieldKey.fromParts("RowId"), Aggregate.BaseType.COUNT)); List columns = Collections.singletonList(table.getColumn("RowId")); Map> agg = new TableSelector(table, columns, filter, null).getAggregates(aggregates); - Aggregate.Result result = agg.get("RowId").get(0); + Aggregate.Result result = agg.get("RowId").getFirst(); if (result != null && result.getValue() instanceof Number) return ((Number)result.getValue()).intValue(); @@ -1680,7 +1680,7 @@ public void updateStatistics(int currentRow) { } String dateStr = (String) row.get("datetime"); if (dateStr == null) { - _log.info("Skipping update for row; no datetime keywords for row: " + row); + _log.info("Skipping update for row; no datetime keywords for row: {}", row); return; } @@ -1693,11 +1693,11 @@ public void updateStatistics(int currentRow) { } { if (!d.equals(currentDate)) { - _log.warn("Current date value '" + currentDate + "' does not match parsed date '" + d + "' for row: " + row); + _log.warn("Current date value '{}' does not match parsed date '{}' for row: {}", currentDate, d, row); } else { - _log.debug("Skipping update for row; current date value matches the parsed date '" + d + "' for row: " + row); + _log.debug("Skipping update for row; current date value matches the parsed date '{}' for row: {}", d, row); } } else diff --git a/flow/src/org/labkey/flow/query/FlowPropertySet.java b/flow/src/org/labkey/flow/query/FlowPropertySet.java index 9adb01a758..7df7416160 100644 --- a/flow/src/org/labkey/flow/query/FlowPropertySet.java +++ b/flow/src/org/labkey/flow/query/FlowPropertySet.java @@ -72,8 +72,7 @@ static protected Map getSubsetNameAncestorMap(Collection SubsetSpec.commonAncestor(spec, spec2)); } else { @@ -153,7 +152,7 @@ public SubsetSpec simplifySubset(SubsetSpec subset) catch (Exception e) { assert false : "Error with subset '" + subset + "' and ancestor '" + commonAncestor + "'"; - _log.error("Error with subset '" + subset + "' and ancestor '" + commonAncestor + "'", e); + _log.error("Error with subset '{}' and ancestor '{}'", subset, commonAncestor, e); return subset; } } @@ -219,7 +218,6 @@ public void testSimplifySubset() { var subset1 = SubsetSpec.fromParts(StringUtils.split("Trucount beads-/CD45+, less debris/Singlets/CD45+/CD14-/CD3+ T/CD4+ T/CD127low-,CD25+ (Treg)",'/')); var subset2 = SubsetSpec.fromParts(StringUtils.split("trucount beads-/CD45+, less debris/Singlets/CD45+/CD14-/CD3+ T/CD4+ T/CD127low-,CD25+ (Treg)",'/')); - SubsetSpec simplify1, simplify2; // this tests that we do not hit the assert in the catch block in simplifySubset() FlowPropertySet fps = new FlowPropertySet(JunitUtil.getTestContainer()); diff --git a/flow/src/org/labkey/flow/query/FlowSchema.java b/flow/src/org/labkey/flow/query/FlowSchema.java index d992ef997e..46f11dbb67 100644 --- a/flow/src/org/labkey/flow/query/FlowSchema.java +++ b/flow/src/org/labkey/flow/query/FlowSchema.java @@ -18,8 +18,8 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.assay.AssayProtocolSchema; import org.labkey.api.assay.AssayProvider; @@ -360,7 +360,7 @@ public void addParams(ActionURL url) } @Override - public @NotNull QueryView createView(ViewContext context, QuerySettings settings, BindException errors) + public @NotNull QueryView createView(ViewContext context, @NotNull QuerySettings settings, BindException errors) { return new FlowQueryView(new FlowSchema(context, this), (FlowQuerySettings) settings, errors); } @@ -1418,7 +1418,7 @@ public DeferredFCSFileVisibleColumns(ExpDataTable table, ColumnInfo colKeyword) } @Override - public Iterator iterator() + public @NotNull Iterator iterator() { List ret = QueryService.get().getDefaultVisibleColumns(_table.getColumns()); TableInfo lookup = _colKeyword.getFk().getLookupTableInfo(); @@ -1450,7 +1450,7 @@ public DeferredFCSAnalysisVisibleColumns(ExpDataTable table, FlowProtocol protoc } @Override - public Iterator iterator() + public @NotNull Iterator iterator() { Collection ret = new LinkedHashSet<>(); ret.addAll(QueryService.get().getDefaultVisibleColumns(_table.getColumns())); @@ -1750,7 +1750,7 @@ public static final FieldKey rewriteAsOriginalFCSFile(FieldKey fieldKey) { List parts = fieldKey.getParts(); int insertAt = 0; - if (parts.get(0).equals(FCSFILE_FIELDKEY.getName())) + if (parts.getFirst().equals(FCSFILE_FIELDKEY.getName())) insertAt = 1; parts.add(insertAt, ORIGINAL_FCSFILE_FIELDKEY.getName()); return FieldKey.fromParts(parts); @@ -2090,7 +2090,7 @@ SQLFragment generateBackgroundJuctionSql() for (FilterInfo f : ics.getBackgroundFilter()) { Object value = f.getValue(); - if (value instanceof String strValue && f.getField().getParts().get(0).equalsIgnoreCase("Statistic")) + if (value instanceof String strValue && f.getField().getParts().getFirst().equalsIgnoreCase("Statistic")) value = Double.parseDouble(strValue); filter.addCondition(bgMap.get(f.getField()), value, f.getOp()); } diff --git a/flow/src/org/labkey/flow/reports/PositivityFlowReport.java b/flow/src/org/labkey/flow/reports/PositivityFlowReport.java index 0ea120ff95..ce1e1d09c0 100644 --- a/flow/src/org/labkey/flow/reports/PositivityFlowReport.java +++ b/flow/src/org/labkey/flow/reports/PositivityFlowReport.java @@ -157,7 +157,7 @@ protected List getFilters() // Filter out any wells with no background statistic List filters = super.getFilters(); - filters.add(0, new Filter(getSubset() + ":Count", "background", null, CompareType.NONBLANK.getPreferredUrlKey())); + filters.addFirst(new Filter(getSubset() + ":Count", "background", null, CompareType.NONBLANK.getPreferredUrlKey())); return filters; } diff --git a/flow/src/org/labkey/flow/script/FCSDirectoryFileFilter.java b/flow/src/org/labkey/flow/script/FCSDirectoryFileFilter.java index dc50fdc2f6..b15e7a42de 100644 --- a/flow/src/org/labkey/flow/script/FCSDirectoryFileFilter.java +++ b/flow/src/org/labkey/flow/script/FCSDirectoryFileFilter.java @@ -40,12 +40,12 @@ public boolean accept(File dir) { if (!dir.isDirectory()) { - LOG.debug("FCSDirectoryFileFilter : rejecting file because it is not a directory: " + dir.getPath()); + LOG.debug("FCSDirectoryFileFilter : rejecting file because it is not a directory: {}", dir.getPath()); return false; } File[] fcsFiles = dir.listFiles((FileFilter) FCS.FCSFILTER); - LOG.debug("FCSDirectoryFileFilter : found " + (fcsFiles != null ? fcsFiles.length : 0) + " fcs files in : " + dir.getPath()); + LOG.debug("FCSDirectoryFileFilter : found {} fcs files in : {}", fcsFiles != null ? fcsFiles.length : 0, dir.getPath()); return null != fcsFiles && 0 != fcsFiles.length; } } diff --git a/flow/src/org/labkey/flow/script/FlowAnalyzer.java b/flow/src/org/labkey/flow/script/FlowAnalyzer.java index 0767979be5..af10da2ee2 100644 --- a/flow/src/org/labkey/flow/script/FlowAnalyzer.java +++ b/flow/src/org/labkey/flow/script/FlowAnalyzer.java @@ -76,7 +76,7 @@ static public FCSAnalyzer.GraphResult generateGraph(FlowWell well, FlowScript sc group = new Analysis(); } CompensationMatrix matrix = comp == null ? null : comp.getCompensationMatrix(); - return FCSAnalyzer.get().generateGraphs(getFCSUri(well), matrix, group, Collections.singletonList(graph)).get(0); + return FCSAnalyzer.get().generateGraphs(getFCSUri(well), matrix, group, Collections.singletonList(graph)).getFirst(); } static public Map getParameters(FlowWell well) throws Exception diff --git a/flow/src/org/labkey/flow/script/KeywordsJob.java b/flow/src/org/labkey/flow/script/KeywordsJob.java index 310c6a8f1e..4f2e396ccf 100644 --- a/flow/src/org/labkey/flow/script/KeywordsJob.java +++ b/flow/src/org/labkey/flow/script/KeywordsJob.java @@ -30,7 +30,6 @@ import org.labkey.flow.data.FlowScript; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/flow/src/org/labkey/flow/script/ScriptJob.java b/flow/src/org/labkey/flow/script/ScriptJob.java index b9fa52286f..b8904172ff 100644 --- a/flow/src/org/labkey/flow/script/ScriptJob.java +++ b/flow/src/org/labkey/flow/script/ScriptJob.java @@ -393,7 +393,7 @@ public void importRuns(ExperimentArchiveDocument xardoc, FileLike root, FileLike } catch (Throwable t) { - _log.debug("Xar file contents:\n" + xardoc); + _log.debug("Xar file contents:\n{}", xardoc); error("Error loading XAR", t); throw UnexpectedException.wrap(t); } diff --git a/flow/src/org/labkey/flow/util/SampleUtil.java b/flow/src/org/labkey/flow/util/SampleUtil.java index d9828732d1..74afdc1ff0 100644 --- a/flow/src/org/labkey/flow/util/SampleUtil.java +++ b/flow/src/org/labkey/flow/util/SampleUtil.java @@ -160,7 +160,7 @@ public static Map>> resolveSamp } if (maxMatches >= MIN_MATCHES && candidates[maxMatches].size() == 1) - perfectMatch = candidates[maxMatches].get(0); + perfectMatch = candidates[maxMatches].getFirst(); for (int i = candidates.length-1; i >= 0; i--) partialMatches.addAll(candidates[i]); diff --git a/luminex/src/org/labkey/luminex/AbstractLuminexControlUpdateService.java b/luminex/src/org/labkey/luminex/AbstractLuminexControlUpdateService.java index f31098f819..332d678457 100644 --- a/luminex/src/org/labkey/luminex/AbstractLuminexControlUpdateService.java +++ b/luminex/src/org/labkey/luminex/AbstractLuminexControlUpdateService.java @@ -118,7 +118,7 @@ protected Type update(User user, Container container, Type bean, Pair commands) StringBuilder sb = new StringBuilder(); if (commands.size() > 1) { - sb.append("MULTIPLE " + getDescription(commands.get(0)).toLowerCase() + "s"); + sb.append("MULTIPLE " + getDescription(commands.getFirst()).toLowerCase() + "s"); } else if (commands.size() == 1) { - LuminexSingleExclusionCommand command = commands.get(0); + LuminexSingleExclusionCommand command = commands.getFirst(); sb.append(command.getCommand().toUpperCase()). append(" "). append(getDescription(command).toLowerCase()). @@ -174,7 +174,7 @@ public String getInfo(List commands) String info = "MULTIPLE " + getDescription(null).toLowerCase() + "s"; if (commands.size() == 1) { - LuminexSingleExclusionCommand command = commands.get(0); + LuminexSingleExclusionCommand command = commands.getFirst(); info = command.getCommand().toUpperCase() + " " + getDescription(command).toLowerCase() + " (Description: " + command.getDescription() + ", Dilution: " + command.getDilution() + ")"; } @@ -209,7 +209,7 @@ public String getInfo(List commands) String info = "MULTIPLE " + getDescription(null).toLowerCase() + "s"; if (commands.size() == 1) { - LuminexSingleExclusionCommand command = commands.get(0); + LuminexSingleExclusionCommand command = commands.getFirst(); info = command.getCommand().toUpperCase() + " " + getDescription(command).toLowerCase() + " (Description: " + command.getDescription() + ")"; } @@ -242,7 +242,7 @@ public String getInfo(List commands) String info = getDescription(null).toLowerCase(); if (commands.size() == 1) { - info = commands.get(0).getCommand().toUpperCase() + " " + info; + info = commands.getFirst().getCommand().toUpperCase() + " " + info; } return info; } @@ -606,38 +606,39 @@ public void createExclusions(User user, Container c, Collection + { results = qus.insertRows(user, c, rows, errors, options, additionalContext); - logVerb = " inserted into "; - break; - case "update": + yield " inserted into "; + } + case "update" -> + { results = qus.updateRows(user, c, rows, keys, errors, options, additionalContext); - logVerb = " updated in "; - break; - case "delete": + yield " updated in "; + } + case "delete" -> + { results = qus.deleteRows(user, c, keys, options, additionalContext); - logVerb = " deleted from "; - break; - default: - throw new IllegalArgumentException("Invalid command type: " + command.getCommand()); - } + yield " deleted from "; + } + default -> throw new IllegalArgumentException("Invalid command type: " + command.getCommand()); + }; - logger.info(StringUtilsLabKey.pluralize(results.size(), "record") + logVerb + tableInfo.getName()); + logger.info("{}{}{}", StringUtilsLabKey.pluralize(results.size(), "record"), logVerb, tableInfo.getName()); if (errors.hasErrors()) { throw errors; } - logger.info("Finished " + command.getCommand() + " " + exclusionType.getDescription(command).toLowerCase()); + logger.info("Finished {} {}", command.getCommand(), exclusionType.getDescription(command).toLowerCase()); } } } diff --git a/luminex/src/org/labkey/luminex/LuminexModule.java b/luminex/src/org/labkey/luminex/LuminexModule.java index 6b2f3bd60a..6beb95ab77 100644 --- a/luminex/src/org/labkey/luminex/LuminexModule.java +++ b/luminex/src/org/labkey/luminex/LuminexModule.java @@ -22,7 +22,6 @@ import org.labkey.api.assay.AssayFlagHandler; import org.labkey.api.assay.AssayQCFlagColumn; import org.labkey.api.assay.AssayService; -import org.labkey.api.data.Container; import org.labkey.api.data.UpgradeCode; import org.labkey.api.exp.api.ExperimentService; import org.labkey.api.exp.property.PropertyService; @@ -69,13 +68,6 @@ public boolean hasScripts() return true; } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } - @Override public void doStartup(ModuleContext moduleContext) { diff --git a/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java b/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java index 1b85d5e2a4..423bd430b4 100644 --- a/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java +++ b/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java @@ -85,7 +85,7 @@ public void logProperties(Logger logger) logger.info("----- Start Analyte Properties -----"); for(Map.Entry> entry : _analyteColumnPropertiesByName.entrySet()) { - logger.info("\tProperties for " + entry.getKey() + ":"); + logger.info("\tProperties for {}:", entry.getKey()); for(Map.Entry props : entry.getValue().entrySet()) { if(props.getValue() == null) @@ -93,7 +93,7 @@ public void logProperties(Logger logger) else valueText = props.getValue(); - logger.info("\t\t*"+props.getKey() + ": " + valueText); + logger.info("\t\t*{}: {}", props.getKey(), valueText); } //Currenlty this should only have the positivity thresholds in it, but it might have more later. @@ -104,7 +104,7 @@ public void logProperties(Logger logger) else valueText = props.getValue(); - logger.info("\t\t*"+props.getKey() + ": " + valueText); + logger.info("\t\t*{}: {}", props.getKey(), valueText); } Object[] titrationByAnalyteArray = _titrationsByAnalyte.get(entry.getKey()).toArray(); @@ -113,7 +113,7 @@ public void logProperties(Logger logger) logger.info("\t\tUses Titrations:"); for (Object aTitrationByAnalyteArray : titrationByAnalyteArray) { - logger.info("\t\t\t*" + aTitrationByAnalyteArray); + logger.info("\t\t\t*{}", aTitrationByAnalyteArray); } } } @@ -121,15 +121,15 @@ public void logProperties(Logger logger) logger.info("----- Start Well Role Properties -----"); for(Titration titration : _titrations) { - logger.info("\tProperties for " + titration.getName()); - logger.info("\t\t*Standard: " + titration.isStandard()); - logger.info("\t\t*QC Control: " + titration.isQcControl()); - logger.info("\t\t*Unknown: " + titration.isUnknown()); - logger.info("\t\t*Other Control: " + titration.isOtherControl()); + logger.info("\tProperties for {}", titration.getName()); + logger.info("\t\t*Standard: {}", titration.isStandard()); + logger.info("\t\t*QC Control: {}", titration.isQcControl()); + logger.info("\t\t*Unknown: {}", titration.isUnknown()); + logger.info("\t\t*Other Control: {}", titration.isOtherControl()); } for (SinglePointControl singlePointControl : _singlePointControls) { - logger.info("\tProperties for " + singlePointControl.getName()); + logger.info("\tProperties for {}", singlePointControl.getName()); logger.info("\t\t*Single Point Control: true"); } logger.info("----- Stop Well Role Properties -----"); diff --git a/luminex/src/org/labkey/luminex/LuminexSaveExclusionsForm.java b/luminex/src/org/labkey/luminex/LuminexSaveExclusionsForm.java index 0d93c4ed43..b0a4e60913 100644 --- a/luminex/src/org/labkey/luminex/LuminexSaveExclusionsForm.java +++ b/luminex/src/org/labkey/luminex/LuminexSaveExclusionsForm.java @@ -184,7 +184,7 @@ public void testValidation() form.validate(errors); allErrors = errors.getAllErrors(); assertEquals("Expected 1 form validation error", 1, allErrors.size()); - assertEquals("Invalid command provided for exclusion: InvalidCommand", allErrors.get(0).getDefaultMessage()); + assertEquals("Invalid command provided for exclusion: InvalidCommand", allErrors.getFirst().getDefaultMessage()); command.setCommand("insert"); errors = new NullSafeBindException(form, "form"); diff --git a/luminex/src/org/labkey/luminex/LuminexUpgradeCode.java b/luminex/src/org/labkey/luminex/LuminexUpgradeCode.java index 5d44838d72..2e31bb2918 100644 --- a/luminex/src/org/labkey/luminex/LuminexUpgradeCode.java +++ b/luminex/src/org/labkey/luminex/LuminexUpgradeCode.java @@ -89,16 +89,16 @@ AND NOT EXISTS (SELECT 1 FROM luminex.datarow dr_true ExpRun expRun = ExperimentService.get().getExpRun(runid); if (expRun == null) { - LOG.warn("Could not find run for runid: " + runid + ", skipping missing summary row check for Luminex dataId: " + dataId + ", analyteId: " + analyteId + ", type: " + type); + LOG.warn("Could not find run for runid: {}, skipping missing summary row check for Luminex dataId: {}, analyteId: {}, type: {}", runid, dataId, analyteId, type); return; } - LOG.info("Missing summary row for Luminex dataId: " + dataId + ", analyteId: " + analyteId + ", type: " + type + " in run: " + expRun.getName() + " (" + expRun.getRowId() + ")"); + LOG.info("Missing summary row for Luminex dataId: {}, analyteId: {}, type: {} in run: {} ({})", dataId, analyteId, type, expRun.getName(), expRun.getRowId()); // currently only inserting summary rows for Background (type = B) data rows if (!"B".equals(type)) { - LOG.warn("...not inserting missing summary row for Luminex dataId: " + dataId + ", analyteId: " + analyteId + ", type: " + type + " because type is not 'B' (Background)"); + LOG.warn("...not inserting missing summary row for Luminex dataId: {}, analyteId: {}, type: {} because type is not 'B' (Background)", dataId, analyteId, type); return; } @@ -207,11 +207,11 @@ record WellGroupKey(long dataId, int analyteId, String type, String standard) {} OntologyManager.insertTabDelimited(tableInfo, expRun.getContainer(), user, helper, MapDataIterator.of(List.of(row)).getDataIterator(new DataIteratorContext()), true, LOG, null); String comment = "Inserted missing summary row for Luminex runId: " + runid + ", dataId: " + dataId + ", analyteId: " + analyteId + ", type: " + type + ", standard: " + groupKey.standard; ExperimentService.get().auditRunEvent(user, protocol, expRun, null, "LuminexUpgradeCode.checkForMissingSummaryRows: " + comment, null); - LOG.info("..." + comment); + LOG.info("...{}", comment); } catch (BatchValidationException e) { - LOG.warn("...failed to insert missing summary row for Luminex dataId: " + dataId + ", analyteId: " + analyteId + ", type: " + type + ", standard: " + groupKey.standard, e); + LOG.warn("...failed to insert missing summary row for Luminex dataId: {}, analyteId: {}, type: {}, standard: {}", dataId, analyteId, type, groupKey.standard, e); } } }); diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index f529fdbc71..c29c883ef5 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -77,7 +77,6 @@ import java.io.IOException; import java.io.Writer; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -338,7 +337,7 @@ else if (analyteDefaultValue != null) // add the titration if there is a default value and it was selected as a standard else if (defVal != null) { - if (defVal.toLowerCase().equals("true")) + if (defVal.equalsIgnoreCase("true")) standardTitrations.add(titrationEntry.getValue()); } // otherwise add the titration if the well role is of type standard @@ -434,7 +433,7 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellNameAndId(titrationEntry.getValue().getName())); // DOM ids and JS function names can't have spaces - String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); + String groupName = PageConfig.makeIdFromName(getColumns().getFirst().getFormFieldName(ctx)); String id = groupName + "CheckBox"; TD( @@ -460,17 +459,17 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) public void writeCopyableJavaScript(RenderContext ctx, Writer out) throws IOException { // DOM ids and JS function names can't have spaces - String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); + String groupName = PageConfig.makeIdFromName(getColumns().getFirst().getFormFieldName(ctx)); out.write("function " + groupName + "Updated() {\n"); out.write(" if (document.getElementById('" + groupName + "CheckBox') != null && document.getElementById('" + groupName + "CheckBox').checked) {\n"); - out.write(" var v = document.getElementsByName('" + getColumns().get(0).getFormFieldName(ctx) + "')[0].checked;\n"); + out.write(" var v = document.getElementsByName('" + getColumns().getFirst().getFormFieldName(ctx) + "')[0].checked;\n"); for (int i = 1; i < getColumns().size(); i++) { out.write(" document.getElementsByName('" + getColumns().get(i).getFormFieldName(ctx) + "')[0].checked = v;\n"); } out.write(" }\n"); out.write("}\n"); - out.write("var e = document.getElementsByName('" + getColumns().get(0).getFormFieldName(ctx) + "')[0];\n"); + out.write("var e = document.getElementsByName('" + getColumns().getFirst().getFormFieldName(ctx) + "')[0];\n"); out.write("e['onchange']=" + groupName + "Updated;\n"); out.write("e['onkeyup']=" + groupName + "Updated;\n"); out.write("\n"); @@ -664,7 +663,7 @@ private boolean setInitialTitrationInput(boolean errorReshow, String propName, S { // return true if 1. errorReshow and previously checked, 2. has a default value that was checked, or 3. titration type matches return (errorReshow && getViewContext().getRequest().getParameter(propName).equals("true")) - || (!errorReshow && defVal != null && defVal.toLowerCase().equals("true")) + || (!errorReshow && defVal != null && defVal.equalsIgnoreCase("true")) || (!errorReshow && defVal == null && typeMatch); } @@ -672,7 +671,7 @@ private boolean setInitialSinglePointControlInput(boolean errorReshow, String pr { // return true if 1. errorReshow and previously checked, 2. has a default value that was checked return (errorReshow && getViewContext().getRequest().getParameter(propName).equals("true")) - || (!errorReshow && defVal != null && defVal.toLowerCase().equals("true")); + || (!errorReshow && defVal != null && defVal.equalsIgnoreCase("true")); } private String[] getAnalyteNames(LuminexRunUploadForm form) throws ExperimentException @@ -719,7 +718,7 @@ public static String getTitrationColumnCellNameAndId(String titrationName) protected class LuminexRunStepHandler extends RunStepHandler { @Override - public boolean executeStep(LuminexRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(LuminexRunUploadForm form, BindException errors) throws ServletException { try { @@ -739,7 +738,7 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro } @Override - public ModelAndView getNextStep(LuminexRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(LuminexRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getRunPropertiesView(form, !form.isResetDefaultValues(), false, errors); @@ -775,7 +774,7 @@ public void validateStep(LuminexRunUploadForm form, Errors errors) } @Override - public boolean executeStep(LuminexRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(LuminexRunUploadForm form, BindException errors) { try (DbScope.Transaction transaction = LuminexProtocolSchema.getSchema().getScope().ensureTransaction()) { @@ -880,7 +879,7 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro } @Override - public ModelAndView getNextStep(LuminexRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(LuminexRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getAnalytesView(form.getAnalyteNames(), form, true, errors); diff --git a/luminex/src/org/labkey/luminex/model/LuminexWell.java b/luminex/src/org/labkey/luminex/model/LuminexWell.java index ab43c0767e..1f8695c838 100644 --- a/luminex/src/org/labkey/luminex/model/LuminexWell.java +++ b/luminex/src/org/labkey/luminex/model/LuminexWell.java @@ -15,6 +15,7 @@ */ package org.labkey.luminex.model; +import org.jetbrains.annotations.NotNull; import org.labkey.api.assay.plate.Plate; import org.labkey.api.assay.plate.WellData; @@ -118,7 +119,7 @@ public LuminexDataRow getDataRow() } @Override - public int compareTo(LuminexWell w) + public int compareTo(@NotNull LuminexWell w) { if (getDose() == null && w.getDose() == null) { diff --git a/luminex/src/org/labkey/luminex/model/LuminexWellGroup.java b/luminex/src/org/labkey/luminex/model/LuminexWellGroup.java index 8e82c149c8..5353bf16c6 100644 --- a/luminex/src/org/labkey/luminex/model/LuminexWellGroup.java +++ b/luminex/src/org/labkey/luminex/model/LuminexWellGroup.java @@ -69,12 +69,7 @@ public List getWellData(boolean combineReplicates) continue; LuminexReplicate replicate = new LuminexReplicate(well); - List wells = allReplicates.get(replicate); - if (wells == null) - { - wells = new ArrayList<>(); - allReplicates.put(replicate, wells); - } + List wells = allReplicates.computeIfAbsent(replicate, _ -> new ArrayList<>()); wells.add(well); } @@ -205,7 +200,7 @@ public Integer getRowId() @Override public String getName() { - return _wells.get(0)._dataRow.getDescription(); + return _wells.getFirst()._dataRow.getDescription(); } @Override @@ -235,7 +230,7 @@ public Object getProperty(String name) @Override public Container getContainer() { - return _wells.get(0)._dataRow.getContainer(); + return _wells.getFirst()._dataRow.getContainer(); } @Override diff --git a/luminex/src/org/labkey/luminex/query/AbstractExclusionTable.java b/luminex/src/org/labkey/luminex/query/AbstractExclusionTable.java index 10e2c32fe3..efd865f3c5 100644 --- a/luminex/src/org/labkey/luminex/query/AbstractExclusionTable.java +++ b/luminex/src/org/labkey/luminex/query/AbstractExclusionTable.java @@ -62,7 +62,7 @@ protected AbstractExclusionTable(TableInfo realTable, LuminexProtocolSchema sche wrapAllColumns(true); assert getRealTable().getPkColumnNames().size() == 1; - var analytesColumn = wrapColumn("Analytes", getRealTable().getColumn(getRealTable().getPkColumnNames().get(0))); + var analytesColumn = wrapColumn("Analytes", getRealTable().getColumn(getRealTable().getPkColumnNames().getFirst())); analytesColumn.setKeyField(false); analytesColumn.setUserEditable(true); analytesColumn.setReadOnly(false); @@ -147,7 +147,7 @@ protected Set getAnalyteIds(Map rowMap) protected Integer getPKValue(Map rowMap) { - return convertToInteger(rowMap.get(getQueryTable().getPkColumnNames().get(0))); + return convertToInteger(rowMap.get(getQueryTable().getPkColumnNames().getFirst())); } @Override diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index c3b45f83e5..9f210e63a2 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -15,7 +15,6 @@ */ package org.labkey.luminex.query; -import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.DisplayColumn; import org.labkey.api.data.DisplayColumnGroup; import org.labkey.api.data.RenderContext; diff --git a/luminex/src/org/labkey/luminex/query/WellExclusionTable.java b/luminex/src/org/labkey/luminex/query/WellExclusionTable.java index f105adcc63..f5024a7452 100644 --- a/luminex/src/org/labkey/luminex/query/WellExclusionTable.java +++ b/luminex/src/org/labkey/luminex/query/WellExclusionTable.java @@ -144,7 +144,7 @@ public Object getDisplayValue(RenderContext ctx) List defaultCols = new ArrayList<>(getDefaultVisibleColumns()); defaultCols.remove(FieldKey.fromParts("ModifiedBy")); defaultCols.remove(FieldKey.fromParts("Modified")); - defaultCols.add(0, FieldKey.fromParts("DataId", "Run")); + defaultCols.addFirst(FieldKey.fromParts("DataId", "Run")); setDefaultVisibleColumns(defaultCols); } diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java index d833687760..4ac0de2641 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java @@ -27,6 +27,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @Category({Daily.class, Assays.class}) @@ -100,7 +101,7 @@ else if(formula.get(i).equals(trapezoidal)) assertEquals(" ", ec50.get(i)); //auc=populated (for all non-blank analytes) if (!analyte.get(i).startsWith("Blank")) - assertTrue( "AUC was unpopulated for row " + i, !auc.get(i).isEmpty()); + assertFalse("AUC was unpopulated for row " + i, auc.get(i).isEmpty()); } } @@ -114,7 +115,7 @@ else if(formula.get(i).equals(trapezoidal)) table.setFilter("CurveType", "Equals", "Four Parameter"); assertEquals("Expected one Four Parameter curve fit failure flag", 1, table.getDataRowCount()); List values = table.getColumnDataAsText("Analyte"); - assertTrue("Unexpected analyte for Four Parameter curve fit failure", values.size() == 1 && values.get(0).equals("ENV6")); + assertTrue("Unexpected analyte for Four Parameter curve fit failure", values.size() == 1 && values.getFirst().equals("ENV6")); table.clearFilter("CurveType"); // expect no 5PL curve fits diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index 829fff395d..597d07e46a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -23,7 +23,6 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; -import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.util.DataRegionTable; @@ -40,6 +39,7 @@ import java.util.Map; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.labkey.test.util.PermissionsHelper.EDITOR_ROLE; import static org.labkey.test.util.PermissionsHelper.READER_ROLE; @@ -257,8 +257,8 @@ private void applyNetworkProtocolFilter() // check that only 1 run is now present assertEquals("Initial grid row count not as expected", 1, table.getDataRowCount()); assertEquals("Initial plot data point count not as expected", 1, Locator.findElements(getDriver(), Locator.tagWithClass("a", "point")).size()); - assertEquals("Filtered grid row value not as expected", "NETWORK3", table.getColumnDataAsText("Titration/Run/Batch/Network").get(0)); - assertEquals("Filtered grid row value not as expected", "PROTOCOL3", table.getColumnDataAsText("Titration/Run/Batch/CustomProtocol").get(0)); + assertEquals("Filtered grid row value not as expected", "NETWORK3", table.getColumnDataAsText("Titration/Run/Batch/Network").getFirst()); + assertEquals("Filtered grid row value not as expected", "PROTOCOL3", table.getColumnDataAsText("Titration/Run/Batch/CustomProtocol").getFirst()); // Clear the filter and check that all rows reappear table.clearAllFilters(); @@ -479,7 +479,7 @@ private void verifyQCFlagUpdatesAfterWellChange() clickAndWait(Locator.linkContainingText("view runs")); drt = new DataRegionTable("Runs", getDriver()); drt.goToView("QC Flags View"); - assertTrue(!drt.getDataAsText(1, "QC Flags").contains("EC50-4")); + assertFalse(drt.getDataAsText(1, "QC Flags").contains("EC50-4")); //4. For GS Analyte B, apply the non-current guide set to plate 5a // - QC Flags added for EC50 and HMFI diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java index 5e227d3125..1b2d861586 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java @@ -315,20 +315,12 @@ private enum WellRole {STANDARD,QC_CONTROL,OTHER_CONTROL} private Locator getWellRoleCheckboxLoc(String description, WellRole role) { - Locator loc = null; - switch(role) + return switch (role) { - case STANDARD: - loc = Locator.checkboxByName("_titrationRole_standard_"+ description); - break; - case QC_CONTROL: - loc = Locator.checkboxByName("_titrationRole_qccontrol_"+ description); - break; - case OTHER_CONTROL: - loc = Locator.checkboxByName("_titrationRole_othercontrol_"+description); - break; - } - return loc; + case STANDARD -> Locator.checkboxByName("_titrationRole_standard_" + description); + case QC_CONTROL -> Locator.checkboxByName("_titrationRole_qccontrol_" + description); + case OTHER_CONTROL -> Locator.checkboxByName("_titrationRole_othercontrol_" + description); + }; } private Set getAllWellRoleLocForDesc(String description) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java index 6a05b042f0..523693f5aa 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java @@ -161,7 +161,7 @@ private void testDefaultAnalyteProperties() createNewAssayRun(TEST_ASSAY_LUM, RUN_ID_BASE + " Threshold Default Test"); checkCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE12, true); - verifyAnalytePosThresholdValue(_analyteNames.get(0), 98); + verifyAnalytePosThresholdValue(_analyteNames.getFirst(), 98); clickButton("Cancel"); } @@ -185,9 +185,9 @@ private void testBaselineVisitDataFromPreviousRun() setNegativeControlParams(true, false); uploadPositivityFile(TEST_ASSAY_LUM, RUN_ID_BASE + " Baseline Visit Previous Run Error", TEST_ASSAY_LUM_FILE12, "1", "3", false, false); assertTextPresent( - "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.get(0) + ", Participant=123400001, Visit=1.", - "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.get(0) + ", Participant=123400002, Visit=1.", - "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.get(0) + ", Participant=123400003, Visit=1."); + "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.getFirst() + ", Participant=123400001, Visit=1.", + "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.getFirst() + ", Participant=123400002, Visit=1.", + "Error: Baseline visit data found in more than one prevoiusly uploaded run: Analyte=" + _analyteNames.getFirst() + ", Participant=123400003, Visit=1."); clickButton("Cancel"); // delete all but one run of data so we have the expected number of previous baseline visits rows @@ -204,7 +204,7 @@ private void testBaselineVisitDataFromPreviousRun() // now we exclude the analytes in the remaining run to test that version of the baseline visit query waitAndClickAndWait(Locator.linkWithText(runToKeep)); - excludeAnalyteForRun(_analyteNames.get(0), true, ""); + excludeAnalyteForRun(_analyteNames.getFirst(), true, ""); verifyExclusionPipelineJobComplete(2, "INSERT analyte exclusion", runToKeep, ""); setPositivityThresholdParams(100, 99); @@ -213,7 +213,7 @@ private void testBaselineVisitDataFromPreviousRun() checkPositivityValues("negative", 0, new String[0], drt); clickAndWait(Locator.linkWithText("view runs")); waitAndClickAndWait(Locator.linkWithText(runToKeep)); - excludeAnalyteForRun(_analyteNames.get(0), false, ""); + excludeAnalyteForRun(_analyteNames.getFirst(), false, ""); _extHelper.waitForExtDialog("Warning"); _extHelper.clickExtButton("Warning", "Yes", 0); verifyExclusionPipelineJobComplete(3, "DELETE analyte exclusion", runToKeep, ""); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index d0d1285d8a..43992a0601 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -19,7 +19,6 @@ import org.apache.commons.lang3.StringUtils; import org.junit.BeforeClass; import org.labkey.api.query.QueryKey; -import org.labkey.api.util.FileUtil; import org.labkey.remoteapi.CommandException; import org.labkey.remoteapi.Connection; import org.labkey.remoteapi.assay.GetProtocolCommand; @@ -683,7 +682,7 @@ protected void verifyQCFlags(String assayName, String analyteName, String[] expe _customizeViewsHelper.saveCustomView(); //verify expected values in column - List var = new DataRegionTable("Runs", getDriver()).getFullColumnValues("QC Flags").get(0); + List var = new DataRegionTable("Runs", getDriver()).getFullColumnValues("QC Flags").getFirst(); String[] flags = var.toArray(new String[0]); for (int i=0; i con * @return The set id only if it needs to be saved back to the "set" property; otherwise null. */ //TODO: may not need this - public abstract Integer ensureSet(@NotNull AssayRunUploadContext context, @Nullable File runPath, @NotNull String idNameOrFilePath) throws ValidationException, ExperimentException; + public abstract Integer ensureSet(@NotNull AssayRunUploadContext context, @Nullable File runPath, @NotNull String idNameOrFilePath) throws ValidationException; private Map.Entry findSetProperty(Map runProps) { diff --git a/microarray/src/org/labkey/microarray/MicroarrayManager.java b/microarray/src/org/labkey/microarray/MicroarrayManager.java index 08b0fbbb0d..7003d1a8fe 100644 --- a/microarray/src/org/labkey/microarray/MicroarrayManager.java +++ b/microarray/src/org/labkey/microarray/MicroarrayManager.java @@ -148,7 +148,7 @@ private Integer insertFeatureAnnotationSet(User user, Container container, Strin row.put("Container", container); List> results = featureSetUpdateService.insertRows(user, container, Collections.singletonList(row), errors, null, null); - return asInteger(results.get(0).get("RowId")); + return asInteger(results.getFirst().get("RowId")); } return null; @@ -206,7 +206,7 @@ public Integer getFeatureAnnotationSet(Container c, User user, String featureSet List rowIds = featureAnnotationSelector.getArrayList(Integer.class); // TODO: Order results by container depth if (!rowIds.isEmpty()) - return rowIds.get(0); + return rowIds.getFirst(); return null; } @@ -228,7 +228,7 @@ public Integer getFeatureAnnotationSet(Container c, User user, int id) List rowIds = featureAnnotationSelector.getArrayList(Integer.class); // TODO: Order results by container depth if (!rowIds.isEmpty()) - return rowIds.get(0); + return rowIds.getFirst(); return null; } @@ -253,7 +253,7 @@ public Integer ensureFeatureAnnotationSet(@Nullable Logger logger, @NotNull Cont Integer resolvedId = MicroarrayManager.get().getFeatureAnnotationSet(c, user, id); if (resolvedId != null) { - logger.info("Resolved featureSet by id: " + resolvedId); + logger.info("Resolved featureSet by id: {}", resolvedId); return resolvedId; } } @@ -266,7 +266,7 @@ public Integer ensureFeatureAnnotationSet(@Nullable Logger logger, @NotNull Cont Integer id = MicroarrayManager.get().getFeatureAnnotationSet(c, user, featureSet); if (id != null) { - logger.info("Resolved featureSet by name: " + featureSet + " -> " + id); + logger.info("Resolved featureSet by name: {} -> {}", featureSet, id); return id; } @@ -280,7 +280,7 @@ public Integer ensureFeatureAnnotationSet(@Nullable Logger logger, @NotNull Cont Integer existingSet = getFeatureAnnotationSet(c, user, baseName); if (existingSet != null) { - logger.info("Found existing feature annotation set by name: " + baseName); + logger.info("Found existing feature annotation set by name: {}", baseName); return existingSet; } @@ -306,7 +306,7 @@ public Integer ensureFeatureAnnotationSet(@Nullable Logger logger, @NotNull Cont throw new ExperimentException("Expression matrix file '" + featureSet + "' has no rows"); tx.commit(); - logger.info("Created new feature annotation set '" + baseName + "' in current container"); + logger.info("Created new feature annotation set '{}' in current container", baseName); return newSetId; } @@ -334,7 +334,7 @@ private static File getPipelineFile(@NotNull Logger logger, @NotNull Container c File file = root.resolvePath(runPath + File.separator + featureSet); if (file != null && file.canRead()) { - logger.info("Resolved featureSet as file relative to runDir: " + root.relativePath(file)); + logger.info("Resolved featureSet as file relative to runDir: {}", root.relativePath(file)); return file; } } @@ -344,7 +344,7 @@ private static File getPipelineFile(@NotNull Logger logger, @NotNull Container c File file = root.resolvePath(featureSet); if (file != null && file.canRead()) { - logger.info("Resolved featureSet as file relative to pipeline root: " + root.relativePath(file)); + logger.info("Resolved featureSet as file relative to pipeline root: {}", root.relativePath(file)); return file; } diff --git a/microarray/src/org/labkey/microarray/matrix/ExpressionMatrixDataHandler.java b/microarray/src/org/labkey/microarray/matrix/ExpressionMatrixDataHandler.java index 7fc716cbf7..f1da6888f1 100644 --- a/microarray/src/org/labkey/microarray/matrix/ExpressionMatrixDataHandler.java +++ b/microarray/src/org/labkey/microarray/matrix/ExpressionMatrixDataHandler.java @@ -45,13 +45,11 @@ import org.labkey.microarray.query.MicroarrayUserSchema; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,7 +84,7 @@ public void importFile(@NotNull ExpData data, @NotNull FileLike dataFile, @NotNu { if (!dataFile.exists()) { - log.warn("Could not find file " + dataFile + " on disk for data with LSID " + data.getLSID()); + log.warn("Could not find file {} on disk for data with LSID {}", dataFile, data.getLSID()); return; } ExpRun expRun = data.getRun(); @@ -224,12 +222,12 @@ public void insertMatrixData(Container c, User user, if (++rowCount % 1000 == 0) { - LOG.info("Imported " + rowCount + " rows..."); + LOG.info("Imported {} rows...", rowCount); } } statement.executeBatch(); - LOG.info("Imported " + rowCount + " rows."); + LOG.info("Imported {} rows.", rowCount); } catch (SQLException e) { diff --git a/ms2/src/org/labkey/ms2/BibliospecSpectrumRenderer.java b/ms2/src/org/labkey/ms2/BibliospecSpectrumRenderer.java index 0a9da6ded8..5201e3cd21 100644 --- a/ms2/src/org/labkey/ms2/BibliospecSpectrumRenderer.java +++ b/ms2/src/org/labkey/ms2/BibliospecSpectrumRenderer.java @@ -273,7 +273,7 @@ public void render(SpectrumIterator iter) throws IOException if (spectraCount > 0) { - LOG.warn("Unable to find " + spectraCount + " when building Bibliospec library for run"); + LOG.warn("Unable to find {} when building Bibliospec library for run", spectraCount); } // Create the indices on the end after all the inserts are done diff --git a/ms2/src/org/labkey/ms2/CumulativeTimer.java b/ms2/src/org/labkey/ms2/CumulativeTimer.java index 98e95366c7..acc8891cfa 100644 --- a/ms2/src/org/labkey/ms2/CumulativeTimer.java +++ b/ms2/src/org/labkey/ms2/CumulativeTimer.java @@ -94,7 +94,7 @@ protected void logElapsedTime(long elapsedTimeNano, String action) double seconds = (double)elapsedTimeNano / 1000000000; double minutes = seconds / 60; - _log.debug(Formats.f2.format(seconds) + " seconds " + ((minutes > 1) ? ("(" + Formats.f2.format(seconds / 60) + " minutes) ") : "") + "to " + action); + _log.debug("{} seconds {}to {}", Formats.f2.format(seconds), (minutes > 1) ? ("(" + Formats.f2.format(seconds / 60) + " minutes) ") : "", action); } private class Task @@ -112,7 +112,7 @@ private Task(TimerTask tt, String extraDescription) private void start() { _startTime = System.nanoTime(); - _log.info("Starting to " + getDescription()); + _log.info("Starting to {}", getDescription()); } private void end() @@ -121,9 +121,8 @@ private void end() synchronized(_cumulativeTime) { - Long cumulative = _cumulativeTime.get(_tt); - _cumulativeTime.put(_tt, (null == cumulative ? elapsed : cumulative.longValue() + elapsed)); + _cumulativeTime.compute(_tt, (_, cumulative) -> (null == cumulative ? elapsed : cumulative.longValue() + elapsed)); } logElapsedTime(elapsed, getDescription()); diff --git a/ms2/src/org/labkey/ms2/DeltaScanColumn.java b/ms2/src/org/labkey/ms2/DeltaScanColumn.java index e388f9561a..dccb3e0046 100644 --- a/ms2/src/org/labkey/ms2/DeltaScanColumn.java +++ b/ms2/src/org/labkey/ms2/DeltaScanColumn.java @@ -149,7 +149,7 @@ private Map runRegression(MS2Fraction fraction) if (allLegalValues(b0, b1, r2, sigma)) { - _log.debug("b0=" + b0 + " b1=" + b1 + " r2=" + r2 + " sigma=" + sigma); + _log.debug("b0={} b1={} r2={} sigma={}", b0, b1, r2, sigma); map.put("HydroB0", b0); map.put("HydroB1", b1); diff --git a/ms2/src/org/labkey/ms2/Hydrophobicity3.java b/ms2/src/org/labkey/ms2/Hydrophobicity3.java index 95b75b286e..c956c31c50 100644 --- a/ms2/src/org/labkey/ms2/Hydrophobicity3.java +++ b/ms2/src/org/labkey/ms2/Hydrophobicity3.java @@ -140,7 +140,7 @@ private static final class Isoparams { } static { - Isoparams ISOPARAMS[] = { + Isoparams[] ISOPARAMS = { new Isoparams( 3.8 , 4.0 , 0.880 ), new Isoparams( 4.0 , 4.2 , 0.900 ), new Isoparams( 4.2 , 4.4 , 0.920 ), @@ -742,16 +742,17 @@ private static double length_scale(int sqlen){ } private static int eMap(char aa) { - switch(aa) { - case 'K': return 0; - case 'R': return 1; - case 'H': return 2; - case 'D': return 3; - case 'E': return 4; - case 'C': return 5; - case 'Y': return 6; - default: return -1; - } + return switch (aa) + { + case 'K' -> 0; + case 'R' -> 1; + case 'H' -> 2; + case 'D' -> 3; + case 'E' -> 4; + case 'C' -> 5; + case 'Y' -> 6; + default -> -1; + }; } // ============================================================ @@ -777,7 +778,7 @@ private static double electric(String sq){ double pk1; double step1; - int aaCNT[] = {0,0,0,0,0,0,0}; + int[] aaCNT = {0,0,0,0,0,0,0}; // Translator's Note: this is commented out in the perl source // if (NOELECTRIC == 1) { return 1.0; } @@ -826,7 +827,7 @@ private static double electric(String sq){ // ============================================================ // compute R - v 2,3 algorithms - private static double CalcR(double pH, double PK0, double PK1, int CNTref[]){ + private static double CalcR(double pH, double PK0, double PK1, int[] CNTref){ double cr0 = _partial_charge( PK0, pH ) // n terminus + CNTref[eMap('K')] * _partial_charge( AAPARAMS.get('K').PK, pH ) // lys @@ -1087,7 +1088,7 @@ private static double[] heli2Calc(String sq){ // void heli2Calc(char *sq, double *hisc, double *gsc) // - double ret[] = new double[2]; + double[] ret = new double[2]; String pass1; String sqCopy; String prechop; @@ -1194,9 +1195,9 @@ private static double helicity2(String sq){ String Bksq; int i; Bksq = new String(new StringBuffer(sq).reverse()); - double fhg[] = heli2Calc(sq); + double[] fhg = heli2Calc(sq); FwHiscor = fhg[HISC]; FwGscor = fhg[GSC]; - double rhg[] = heli2Calc(Bksq); + double[] rhg = heli2Calc(Bksq); BkHiscor = rhg[HISC]; BkGscor = rhg[GSC]; if (BkGscor>FwGscor) { h2FwBk = BkHiscor; } @@ -1235,7 +1236,7 @@ private static double helectric(String sq){ return 0; } - public static void main(String argv[]) { + public static void main(String[] argv) { // BasicConfigurator.configure(); String pep; diff --git a/ms2/src/org/labkey/ms2/MS2Controller.java b/ms2/src/org/labkey/ms2/MS2Controller.java index da0aab5fa7..2006e83761 100644 --- a/ms2/src/org/labkey/ms2/MS2Controller.java +++ b/ms2/src/org/labkey/ms2/MS2Controller.java @@ -1464,7 +1464,7 @@ public ModelAndView getView(ProteinDisambiguationForm form, BindException errors if (sequences.size() == 1) { ActionURL proteinUrl = targetURL.clone(); - proteinUrl.addParameter(PeptideFilteringFormElements.targetSeqIds, proteins.get(0).getSeqId()); + proteinUrl.addParameter(PeptideFilteringFormElements.targetSeqIds, proteins.getFirst().getSeqId()); throw new RedirectException(proteinUrl); } diff --git a/ms2/src/org/labkey/ms2/MS2Importer.java b/ms2/src/org/labkey/ms2/MS2Importer.java index e6549ae63e..a1e478cf64 100644 --- a/ms2/src/org/labkey/ms2/MS2Importer.java +++ b/ms2/src/org/labkey/ms2/MS2Importer.java @@ -164,12 +164,12 @@ protected RunInfo prepareRun(boolean restart) } else { - _log.info("Restarting import from " + _fileName); + _log.info("Restarting import from {}", _fileName); } } else { - _log.info("Starting import from " + _fileName); + _log.info("Starting import from {}", _fileName); _runId = createRun(); } } @@ -188,7 +188,7 @@ protected MS2Run upload(RunInfo info) throws IOException, XMLStreamException // Skip if run was already fully imported if (info.isAlreadyImported() && run != null && run.getStatusId() == MS2Importer.STATUS_SUCCESS) { - _log.info(_fileName + " has already been imported so it does not need to be imported again"); + _log.info("{} has already been imported so it does not need to be imported again", _fileName); return run; } @@ -318,9 +318,9 @@ protected int createFraction(User user, Container c, int runId, String path, Fil // Old Comet runs won't have an mzXmlFile if (null != file && isMzXmlFile(file)) { - _log.info("Starting to parse " + file + " to get scan counts"); + _log.info("Starting to parse {} to get scan counts", file); int totalScans = loadScanCounts(file, fraction); - _log.info("Finished parsing to get scan counts. Total: " + totalScans + ", MS1: " + fraction.getMS1ScanCount() + ", MS2: " + fraction.getMS2ScanCount() + ", MS3: " + fraction.getMS3ScanCount() + ", MS4:" + fraction.getMS4ScanCount()); + _log.info("Finished parsing to get scan counts. Total: {}, MS1: {}, MS2: {}, MS3: {}, MS4:{}", totalScans, fraction.getMS1ScanCount(), fraction.getMS2ScanCount(), fraction.getMS3ScanCount(), fraction.getMS4ScanCount()); fraction.setMzXmlURL(FileUtil.resolveFile(FileUtil.getAbsoluteCaseSensitiveFile(file.toNioPathForRead().toFile())).toPath().toUri().toString()); @@ -597,28 +597,28 @@ protected void updatePeptideColumns(MS2Progress progress) for (int fastaId : run.getFastaIds()) { int rowCount = executor.execute(_updateSeqIdSql, fraction.getFraction(), fastaId); - _log.info("Set SeqId values for " + rowCount + " peptides" + (fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount)) + " based on exact protein name match for FASTA id " + fastaId); + _log.info("Set SeqId values for {} peptides{} based on exact protein name match for FASTA id {}", rowCount, fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount), fastaId); } for (int fastaId : run.getFastaIds()) { assert 3 == StringUtils.countMatches(_updateSwissProtSeqIdSql,"?"); int rowCount = executor.execute(_updateSwissProtSeqIdSql, fastaId, fastaId, fraction.getFraction()); - _log.info("Set SeqId values for " + rowCount + " peptides" + (fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount)) + " based on protein identifier match from SwissProt database for FASTA id " + fastaId); + _log.info("Set SeqId values for {} peptides{} based on protein identifier match from SwissProt database for FASTA id {}", rowCount, fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount), fastaId); } for (int fastaId : run.getFastaIds()) { assert 3 == StringUtils.countMatches(_updateSeqIdEndOfLookupStringSql, "?"); int rowCount = executor.execute(_updateSeqIdEndOfLookupStringSql, fraction.getFraction(), fastaId, fraction.getFraction()); - _log.info("Set SeqId values for " + rowCount + " peptides" + (fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount)) + " based on trailing FASTA header line for FASTA id " + fastaId); + _log.info("Set SeqId values for {} peptides{} based on trailing FASTA header line for FASTA id {}", rowCount, fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount), fastaId); } for (int fastaId : run.getFastaIds()) { assert 2 == StringUtils.countMatches(_updateSpPrefixSeqIdSql, "?"); int rowCount = executor.execute(_updateSpPrefixSeqIdSql, fraction.getFraction(), fastaId); - _log.info("Set SeqId values for " + rowCount + " peptides" + (fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount)) + " based on 'sp|' prefix name match for FASTA id " + fastaId); + _log.info("Set SeqId values for {} peptides{} based on 'sp|' prefix name match for FASTA id {}", rowCount, fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount), fastaId); } // Disabled because this is a very slow query, and seldom adds enough new matches to be worth the hours it takes @@ -641,7 +641,7 @@ protected void updatePeptideColumns(MS2Progress progress) SQLFragment sqlf = new SQLFragment(_updateSequencePositionSql); sqlf.set(sqlf.getParams().size()-1,fraction.getFraction()); int rowCount = executor.execute(sqlf); - _log.info("Set SequencePosition values for " + rowCount + " peptides" + (fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount))); + _log.info("Set SequencePosition values for {} peptides{}", rowCount, fractionCount == 1 ? "" : (" for fraction " + ++i + " of " + fractionCount)); } } @@ -856,7 +856,7 @@ private void updateIfChanged() if (null != percent) { - _log.info("Importing MS/MS results is " + percent + "% complete"); + _log.info("Importing MS/MS results is {}% complete", percent); updateRunStatus("Importing is " + percent + "% complete"); } } diff --git a/ms2/src/org/labkey/ms2/MS2Manager.java b/ms2/src/org/labkey/ms2/MS2Manager.java index d4156c24ad..985a7f98dd 100644 --- a/ms2/src/org/labkey/ms2/MS2Manager.java +++ b/ms2/src/org/labkey/ms2/MS2Manager.java @@ -544,7 +544,7 @@ private static MS2Run[] getRuns(String whereClause, Object... params) } else { - LOG.debug("MS2RunType \"" + type + "\" not found"); + LOG.debug("MS2RunType \"{}\" not found", type); return null; } } @@ -1056,7 +1056,7 @@ private static void logRowIndexError(String error) String url = ctx.getActionURL().getLocalURIString(); String referrer = StringUtils.trimToEmpty(ctx.getRequest().getHeader("referer")); String userAgent = StringUtils.trimToEmpty(ctx.getRequest().getHeader("User-Agent")); - LOG.warn(error + "(url=" + url + ", referrer=" + referrer + ", browser=" + userAgent + ")"); + LOG.warn("{}(url={}, referrer={}, browser={})", error, url, referrer, userAgent); } diff --git a/ms2/src/org/labkey/ms2/MS2Peptide.java b/ms2/src/org/labkey/ms2/MS2Peptide.java index 87719e3495..1d2c26c6fc 100644 --- a/ms2/src/org/labkey/ms2/MS2Peptide.java +++ b/ms2/src/org/labkey/ms2/MS2Peptide.java @@ -161,7 +161,7 @@ private void fragment(MassType massType) _aa = aaList.toArray(new String[_aaCount]); // Compute mass of each amino acid (including modifications) - double aaMass[] = new double[_aaCount]; + double[] aaMass = new double[_aaCount]; for (int i = 0; i < _aaCount; i++) { @@ -175,7 +175,7 @@ private void fragment(MassType massType) if (null != massDiff) aaMass[i] += massDiff; else - _log.error("Unknown modification: " + aa); + _log.error("Unknown modification: {}", aa); } } @@ -198,8 +198,8 @@ private void fragment(MassType massType) _y.put(massType, y); // Compute b+ and y+ ions - double bTotal[] = new double[_ionCount]; - double yTotal[] = new double[_ionCount]; + double[] bTotal = new double[_ionCount]; + double[] yTotal = new double[_ionCount]; for (int i = 0; i < _ionCount; i++) { diff --git a/ms2/src/org/labkey/ms2/MS2Run.java b/ms2/src/org/labkey/ms2/MS2Run.java index e6e5cb6657..cfd54fe06b 100644 --- a/ms2/src/org/labkey/ms2/MS2Run.java +++ b/ms2/src/org/labkey/ms2/MS2Run.java @@ -183,7 +183,7 @@ public static MS2Run getRunFromTypeString(String type, String version) MS2RunType runType = MS2RunType.lookupType(type, version); if (runType == null) { - _log.error("Unrecognized run type: " + type); + _log.error("Unrecognized run type: {}", type); return null; } diff --git a/ms2/src/org/labkey/ms2/MascotDatImporter.java b/ms2/src/org/labkey/ms2/MascotDatImporter.java index e56f4824a5..9174a24645 100644 --- a/ms2/src/org/labkey/ms2/MascotDatImporter.java +++ b/ms2/src/org/labkey/ms2/MascotDatImporter.java @@ -160,7 +160,7 @@ public void importRun(MS2Progress progress) throws IOException, XMLStreamExcepti private void writePeptides(Map peptides, boolean decoys) throws SQLException { - _log.info("Writing data for " + peptides.size() + " " + (decoys ? "decoy " : "") + "peptides"); + _log.info("Writing data for {} {}peptides", peptides.size(), decoys ? "decoy " : ""); int complete = 0; int index = 0; for (MascotDatLoader.DatPeptide peptide : peptides.values()) @@ -182,7 +182,7 @@ private void writePeptides(Map peptides, bo int newComplete = (int)(((float)index / (float)peptides.size()) * 100.0); if (newComplete != complete) { - _log.info("Writing MS/MS" + (decoys ? " decoy" : "") + " results is " + newComplete + "% complete"); + _log.info("Writing MS/MS{} results is {}% complete", decoys ? " decoy" : "", newComplete); complete = newComplete; } } diff --git a/ms2/src/org/labkey/ms2/PepXmlExperimentDataHandler.java b/ms2/src/org/labkey/ms2/PepXmlExperimentDataHandler.java index 1e82ef129e..a3f09faabd 100644 --- a/ms2/src/org/labkey/ms2/PepXmlExperimentDataHandler.java +++ b/ms2/src/org/labkey/ms2/PepXmlExperimentDataHandler.java @@ -65,7 +65,7 @@ public void importFile(@NotNull ExpData data, @NotNull FileLike dataFileLike, @N File dataFile = FileSystemLike.toFile(dataFileLike); if (!shouldImport(data, context)) { - log.info("Skipping import of file " + dataFile); + log.info("Skipping import of file {}", dataFile); return; } diff --git a/ms2/src/org/labkey/ms2/PeptideImporter.java b/ms2/src/org/labkey/ms2/PeptideImporter.java index 4119af4e9d..b980d806b0 100644 --- a/ms2/src/org/labkey/ms2/PeptideImporter.java +++ b/ms2/src/org/labkey/ms2/PeptideImporter.java @@ -166,7 +166,7 @@ public void writeRunInfo(MS2Loader.PeptideFraction fraction, MS2Progress progres } else { - _log.warn("Could not find FASTA " + dbName); + _log.warn("Could not find FASTA {}", dbName); } } @@ -372,7 +372,7 @@ public void write(MS2Loader.Peptide peptide, PeptideProphetSummary peptideProphe } catch (SQLException e) { - _log.error("Failed to insert prophet info for scan " + peptide.getScan() + " with charge " + peptide.getCharge() + " from " + _gzFileName); + _log.error("Failed to insert prophet info for scan {} with charge {} from {}", peptide.getScan(), peptide.getCharge(), _gzFileName); throw e; } } @@ -394,7 +394,7 @@ public void write(MS2Loader.Peptide peptide, PeptideProphetSummary peptideProphe } catch (SQLException e) { - _log.error("Failed to insert quantitation info for scan " + peptide.getScan() + " with charge " + peptide.getCharge() + " from " + _gzFileName); + _log.error("Failed to insert quantitation info for scan {} with charge {} from {}", peptide.getScan(), peptide.getCharge(), _gzFileName); throw e; } } @@ -410,7 +410,7 @@ public void write(MS2Loader.Peptide peptide, PeptideProphetSummary peptideProphe } catch (SQLException e) { - _log.error("Failed to insert scan " + peptide.getScan() + " with charge " + peptide.getCharge() + " from " + _gzFileName); + _log.error("Failed to insert scan {} with charge {} from {}", peptide.getScan(), peptide.getCharge(), _gzFileName); throw e; } diff --git a/ms2/src/org/labkey/ms2/PeptideManager.java b/ms2/src/org/labkey/ms2/PeptideManager.java index 267584f508..70811aad43 100644 --- a/ms2/src/org/labkey/ms2/PeptideManager.java +++ b/ms2/src/org/labkey/ms2/PeptideManager.java @@ -1,7 +1,6 @@ package org.labkey.ms2; import org.apache.commons.beanutils.ConversionException; -import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; @@ -94,7 +93,7 @@ public static SimpleFilter getPeptideFilter(ActionURL currentUrl, List r // 1) verify that no search-engine-specific scores are used in the filter OR // 2) ignore filters that don't apply to a particular run, and provide a warning OR // 3) allowing picking one filter per run type - return getPeptideFilter(currentUrl, mask, user, runs.get(0)); + return getPeptideFilter(currentUrl, mask, user, runs.getFirst()); } public static SimpleFilter getPeptideFilter(ActionURL currentUrl, int mask, User user, MS2Run... runs) @@ -218,7 +217,7 @@ public static List getProteinsContainingPeptide(MS2Peptide peptide, int List proteins = new SqlSelector(ProteinSchema.getSchema(), sql).getArrayList(Protein.class); if (proteins.isEmpty()) - LOG.warn("getProteinsContainingPeptide: Could not find peptide " + peptide + " in FASTA files " + Arrays.asList(fastaIds)); + LOG.warn("getProteinsContainingPeptide: Could not find peptide {} in FASTA files {}", peptide, Arrays.asList(fastaIds)); return proteins; } diff --git a/ms2/src/org/labkey/ms2/ProteinCoverageMapBuilder.java b/ms2/src/org/labkey/ms2/ProteinCoverageMapBuilder.java index 90ad936c89..cb8d21a1c2 100644 --- a/ms2/src/org/labkey/ms2/ProteinCoverageMapBuilder.java +++ b/ms2/src/org/labkey/ms2/ProteinCoverageMapBuilder.java @@ -245,7 +245,7 @@ public void testProteinCoverageMapExport() exportHtml = pcm2.getProteinExportHtml(); assertTrue("Unexpected peptide filter text", exportHtml.contains("Peptide Filter:   (SeqId = -1) AND (Scan <> 100) AND (PeptideProphet >= 0.9)")); - assertTrue("Unexpected total peptide count text", !exportHtml.contains("peptides matching sequence")); + assertFalse("Unexpected total peptide count text", exportHtml.contains("peptides matching sequence")); assertTrue("Unexpected total peptide count text", exportHtml.contains("7 Total qualifying peptides in run")); assertTrue("Unexpected distinct peptide count text", exportHtml.contains("4 Distinct qualifying peptides in run")); diff --git a/ms2/src/org/labkey/ms2/ProteinGroupProteins.java b/ms2/src/org/labkey/ms2/ProteinGroupProteins.java index fcf74fa8b3..e2ae9efc5f 100644 --- a/ms2/src/org/labkey/ms2/ProteinGroupProteins.java +++ b/ms2/src/org/labkey/ms2/ProteinGroupProteins.java @@ -89,7 +89,7 @@ private Map> calculateSummaries(ResultSet rs, Stri if (_runs != null && !_runs.isEmpty()) { whereClause.append(" AND ppf.Run IN ("); - whereClause.append(_runs.get(0).getRun()); + whereClause.append(_runs.getFirst().getRun()); for (int i = 1; i < _runs.size(); i++) { whereClause.append(", "); diff --git a/ms2/src/org/labkey/ms2/ProteinProphetExperimentDataHandler.java b/ms2/src/org/labkey/ms2/ProteinProphetExperimentDataHandler.java index a3158fc238..82d49ad769 100644 --- a/ms2/src/org/labkey/ms2/ProteinProphetExperimentDataHandler.java +++ b/ms2/src/org/labkey/ms2/ProteinProphetExperimentDataHandler.java @@ -51,7 +51,7 @@ public void importFile(@NotNull ExpData data, @NotNull FileLike dataFile, @NotNu { if (context.getJob() != null && "false".equalsIgnoreCase(context.getJob().getParameters().get(IMPORT_PROPHET_RESULTS))) { - log.info("Skipping import of file " + dataFile); + log.info("Skipping import of file {}", dataFile); return; } diff --git a/ms2/src/org/labkey/ms2/ProteinProphetImporter.java b/ms2/src/org/labkey/ms2/ProteinProphetImporter.java index 9048ed78c7..4ddfcb5bf6 100644 --- a/ms2/src/org/labkey/ms2/ProteinProphetImporter.java +++ b/ms2/src/org/labkey/ms2/ProteinProphetImporter.java @@ -85,7 +85,7 @@ public ProteinProphetImporter(FileLike f, String experimentRunLSID, XarContext c public MS2Run importFile(ViewBackgroundInfo info, Logger log) throws SQLException, XMLStreamException, IOException, ExperimentException { long startTime = System.currentTimeMillis(); - log.info("Starting to load ProteinProphet file " + _file.getPath()); + log.info("Starting to load ProteinProphet file {}", _file.getPath()); if (!NetworkDrive.exists(_file)) { @@ -204,7 +204,7 @@ public MS2Run importFile(ViewBackgroundInfo info, Logger log) throws SQLExceptio } if (proteinGroupIndex % 10000 == 0) { - log.info("Loaded " + proteinGroupIndex + " protein groups..."); + log.info("Loaded {} protein groups...", proteinGroupIndex); } } @@ -228,7 +228,7 @@ public MS2Run importFile(ViewBackgroundInfo info, Logger log) throws SQLExceptio mergePeptideStmt = connection.prepareStatement(mergePeptideSQL); mergePeptideStmt.setLong(1, run.getRun()); mergePeptideStmt.executeUpdate(); - log.info("Finished with moving data into ms2.PeptidesMemberships after " + (System.currentTimeMillis() - insertStartTime) + " ms"); + log.info("Finished with moving data into ms2.PeptidesMemberships after {} ms", System.currentTimeMillis() - insertStartTime); insertStartTime = System.currentTimeMillis(); log.info("Starting to move data into ms2.ProteinGroupMemberships"); @@ -256,14 +256,14 @@ public MS2Run importFile(ViewBackgroundInfo info, Logger log) throws SQLExceptio mergeProteinStmt.setInt(index++, fastaId); } mergeProteinStmt.executeUpdate(); - log.info("Finished with moving data into ms2.ProteinGroupMemberships after " + (System.currentTimeMillis() - insertStartTime) + " ms"); + log.info("Finished with moving data into ms2.ProteinGroupMemberships after {} ms", System.currentTimeMillis() - insertStartTime); file.setUploadCompleted(true); Table.update(info.getUser(), MS2Manager.getTableInfoProteinProphetFiles(), file, file.getRowId()); success = true; - log.info("ProteinProphet file import finished successfully, " + proteinGroupIndex + " protein groups loaded"); + log.info("ProteinProphet file import finished successfully, {} protein groups loaded", proteinGroupIndex); } finally { @@ -307,11 +307,11 @@ public MS2Run importFile(ViewBackgroundInfo info, Logger log) throws SQLExceptio if (!success) { - log.error("Failed when importing group " + proteinGroupIndex); + log.error("Failed when importing group {}", proteinGroupIndex); } } long endTime = System.currentTimeMillis(); - log.info("ProteinProphet import took " + ((endTime - startTime) / 1000) + " seconds."); + log.info("ProteinProphet import took {} seconds.", (endTime - startTime) / 1000); return run; } @@ -322,12 +322,12 @@ private MS2Run findExistingRun(Logger logger, Container c) { if (ppFile.isUploadCompleted()) { - logger.info(_file.getPath() + " had already been uploaded successfully, not uploading again."); + logger.info("{} had already been uploaded successfully, not uploading again.", _file.getPath()); return MS2Manager.getRun(ppFile.getRun()); } else { - logger.info(_file.getPath() + " had already been partially uploaded, deleting the existing data."); + logger.info("{} had already been partially uploaded, deleting the existing data.", _file.getPath()); MS2Manager.purgeProteinProphetFile(ppFile.getRowId()); } } @@ -388,7 +388,7 @@ private MS2Run importRun(ViewBackgroundInfo info, Logger log) throws IOException } } - log.info("Resolved referenced PepXML file to " + pepXMLFile.getPath()); + log.info("Resolved referenced PepXML file to {}", pepXMLFile.getPath()); MS2Run run = MS2Manager.addRun(info, log, FileSystemLike.wrapFile(pepXMLFile), false, _context); if (_experimentRunLSID != null && run.getExperimentRunLSID() == null) { diff --git a/ms2/src/org/labkey/ms2/SpectrumImporter.java b/ms2/src/org/labkey/ms2/SpectrumImporter.java index f4da421b1a..c85311b7df 100644 --- a/ms2/src/org/labkey/ms2/SpectrumImporter.java +++ b/ms2/src/org/labkey/ms2/SpectrumImporter.java @@ -79,7 +79,7 @@ protected SpectrumImporter(FileLike gzFile, String dtaFileNamePrefix, FileLike m else { if (null == mzXmlFile) - _log.warn("Spectra were not imported: " + gzFile + " could not be opened and no mzXML file name was specified."); + _log.warn("Spectra were not imported: {} could not be opened and no mzXML file name was specified.", gzFile); else { _file = mzXmlFile; @@ -93,7 +93,7 @@ protected SpectrumImporter(FileLike gzFile, String dtaFileNamePrefix, FileLike m } catch (IOException x) { - _log.warn("Spectra were not imported: " + x); // Note: x.getMessage() has just the file name + _log.warn("Spectra were not imported: {}", String.valueOf(x)); // Note: x.getMessage() has just the file name } catch (XMLStreamException x) { @@ -204,7 +204,7 @@ private void importSpectra() if (!_scans.isEmpty()) { - _log.warn("Could not find spectra for " + _scans.size() + " scans."); + _log.warn("Could not find spectra for {} scans.", _scans.size()); } } catch (IOException | SQLException e) diff --git a/ms2/src/org/labkey/ms2/compare/CompareQuery.java b/ms2/src/org/labkey/ms2/compare/CompareQuery.java index 4e215d97d5..bc9c6eadc9 100644 --- a/ms2/src/org/labkey/ms2/compare/CompareQuery.java +++ b/ms2/src/org/labkey/ms2/compare/CompareQuery.java @@ -203,7 +203,7 @@ protected void selectColumns() addColumn("RunCount"); appendNewLine(); - String firstColumnName = _gridColumns.get(0).getLabel(); + String firstColumnName = _gridColumns.getFirst().getLabel(); // Limit "pattern" to first 63 bits otherwise we'll overflow a BIGINT int patternRunCount = Math.min(_runs.size(), 63); @@ -268,7 +268,7 @@ protected void selectRows(BindException errors) addWhereClauses(filter); - String firstType = _runs.get(0).getType(); + String firstType = _runs.getFirst().getType(); boolean sameType = true; for (MS2Run run : _runs) { diff --git a/ms2/src/org/labkey/ms2/peptideview/AbstractMS2RunView.java b/ms2/src/org/labkey/ms2/peptideview/AbstractMS2RunView.java index 9ba3198166..d166f7f1c1 100644 --- a/ms2/src/org/labkey/ms2/peptideview/AbstractMS2RunView.java +++ b/ms2/src/org/labkey/ms2/peptideview/AbstractMS2RunView.java @@ -70,7 +70,6 @@ import org.labkey.ms2.protein.tools.GoHelpers; import java.io.IOException; -import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -104,7 +103,7 @@ public AbstractMS2QueryView createGridView(MS2Controller.RunForm form) public abstract AbstractMS2QueryView createGridView(boolean expanded, boolean forExport); - public abstract GridView getPeptideViewForProteinGrouping(String proteinGroupingId, String columns) throws SQLException; + public abstract GridView getPeptideViewForProteinGrouping(String proteinGroupingId, String columns); public abstract void addSQLSummaries(SimpleFilter peptideFilter, List> sqlSummaries); @@ -477,7 +476,7 @@ protected List getAMTFileHeader() for (MS2Modification mod : mods) { - if (mod != mods.get(0)) + if (mod != mods.getFirst()) header.append(';'); header.append(mod.getAminoAcid()); if (mod.getVariable()) diff --git a/ms2/src/org/labkey/ms2/pipeline/MS2ImportPipelineJob.java b/ms2/src/org/labkey/ms2/pipeline/MS2ImportPipelineJob.java index 9d74d8f09d..b554c8c78c 100644 --- a/ms2/src/org/labkey/ms2/pipeline/MS2ImportPipelineJob.java +++ b/ms2/src/org/labkey/ms2/pipeline/MS2ImportPipelineJob.java @@ -34,7 +34,6 @@ import org.labkey.vfs.FileLike; import javax.xml.stream.XMLStreamException; -import java.io.File; import java.io.IOException; /** diff --git a/ms2/src/org/labkey/ms2/pipeline/MS2SearchJobSupport.java b/ms2/src/org/labkey/ms2/pipeline/MS2SearchJobSupport.java index 74fc89449b..2674e39d1c 100644 --- a/ms2/src/org/labkey/ms2/pipeline/MS2SearchJobSupport.java +++ b/ms2/src/org/labkey/ms2/pipeline/MS2SearchJobSupport.java @@ -17,8 +17,6 @@ import org.labkey.vfs.FileLike; -import java.io.File; - /** * Interface for support required from the PipelineJob to run a search task, * beyond the base PipelineJob methods. diff --git a/ms2/src/org/labkey/ms2/pipeline/QuantitationAlgorithm.java b/ms2/src/org/labkey/ms2/pipeline/QuantitationAlgorithm.java index bf6e94aa24..fbb7f810e4 100644 --- a/ms2/src/org/labkey/ms2/pipeline/QuantitationAlgorithm.java +++ b/ms2/src/org/labkey/ms2/pipeline/QuantitationAlgorithm.java @@ -24,10 +24,8 @@ import org.labkey.api.util.Pair; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/ms2/src/org/labkey/ms2/pipeline/Sqt2PinTask.java b/ms2/src/org/labkey/ms2/pipeline/Sqt2PinTask.java index 7ad059f332..93f36b7111 100644 --- a/ms2/src/org/labkey/ms2/pipeline/Sqt2PinTask.java +++ b/ms2/src/org/labkey/ms2/pipeline/Sqt2PinTask.java @@ -33,7 +33,6 @@ import org.labkey.api.writer.PrintWriters; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; diff --git a/ms2/src/org/labkey/ms2/pipeline/comet/CometSearchProtocol.java b/ms2/src/org/labkey/ms2/pipeline/comet/CometSearchProtocol.java index 2984382323..2f0b25d80d 100644 --- a/ms2/src/org/labkey/ms2/pipeline/comet/CometSearchProtocol.java +++ b/ms2/src/org/labkey/ms2/pipeline/comet/CometSearchProtocol.java @@ -62,9 +62,9 @@ public void validate(PipeRoot root) throws PipelineValidationException if(dbNames.isEmpty()) throw new IllegalArgumentException("A sequence database must be selected."); - FileLike fileSequenceDB = getDirSeqRoot().resolveFile(Path.parse(dbNames.get(0))); + FileLike fileSequenceDB = getDirSeqRoot().resolveFile(Path.parse(dbNames.getFirst())); if (!fileSequenceDB.exists()) - throw new IllegalArgumentException("Sequence database '" + dbNames.get(0) + "' is not found in local FASTA root."); + throw new IllegalArgumentException("Sequence database '" + dbNames.getFirst() + "' is not found in local FASTA root."); super.validate(root); } diff --git a/ms2/src/org/labkey/ms2/pipeline/mascot/MascotClientImpl.java b/ms2/src/org/labkey/ms2/pipeline/mascot/MascotClientImpl.java index a98ec0951d..2cfec9f5cd 100644 --- a/ms2/src/org/labkey/ms2/pipeline/mascot/MascotClientImpl.java +++ b/ms2/src/org/labkey/ms2/pipeline/mascot/MascotClientImpl.java @@ -158,7 +158,7 @@ public boolean setProxyURL (String proxyURL) } catch (MalformedURLException x) { - getLogger().info("request(proxyURL="+proxyURL+")", x); + getLogger().info("request(proxyURL={})", proxyURL, x); } } if (succeeded) @@ -315,7 +315,7 @@ else if (2 == _lastWorkingSet } catch (MalformedURLException x) { - getLogger().error("connect("+_url+","+_userAccount+","+_userPassword+","+_proxyURL+")", x); + getLogger().error("connect({},{},{},{})", _url, _userAccount, _userPassword, _proxyURL, x); //Fail to parse Mascot Server URL errorCode = 1; errorString = "Failed to parse Mascot Server URL"; @@ -389,7 +389,7 @@ public void downloadDB(String localDB, String db, String release, String hash, l writer.write(result, nPos2 + 1, numChunkSize); offset += numChunkSize; - getLogger().info("Downloaded " + offset + " bytes."); + getLogger().info("Downloaded {} bytes.", offset); } else @@ -461,7 +461,7 @@ public String downloadDBChunk(String db, String release, long offset, String has } catch (IOException e) { - getLogger().warn("Encounter exception after reading " + sb.length() + " byte(s)", e); + getLogger().warn("Encounter exception after reading {} byte(s)", sb.length(), e); } return sb.toString(); @@ -587,7 +587,7 @@ public String getMascotVersion() { } catch (IOException | InterruptedException e) { - getLogger().warn("Failed to get Mascot server information via '" + mascotRequestURL + "'", e); + getLogger().warn("Failed to get Mascot server information via '{}'", mascotRequestURL, e); } result = result.replaceAll("[\r\n]"," "); @@ -670,13 +670,12 @@ protected String getTaskStatus (String sessionID, String taskID) String errorValue = results.getProperty("error", "-1"); if (!"0".equals(errorValue)) { // fall thru', return the full HTTP Content as we need the full text for diagnosis - getLogger().info("Mascot search task status error: (" + results.getProperty("error", "-1") + ") " + - results.getProperty("errorstring", "")); + getLogger().info("Mascot search task status error: ({}) {}", results.getProperty("error", "-1"), results.getProperty("errorstring", "")); if ("-1".equals(errorValue)) { - getLogger().info("Full Mascot response: (" + results.getProperty("HTTPContent", "") + ")"); + getLogger().info("Full Mascot response: ({})", results.getProperty("HTTPContent", "")); } else { String mascotErrorMessage = getMascotErrorMessage(Integer.parseInt(errorValue)); - getLogger().info("Mascot message: (" + mascotErrorMessage + ")"); + getLogger().info("Mascot message: ({})", mascotErrorMessage); } } } else @@ -686,7 +685,7 @@ protected String getTaskStatus (String sessionID, String taskID) //TODO: wch - do we want to dump this, how frequent will this be? String lcStatus = statusString.toLowerCase(); if (!lcStatus.startsWith("complete\n") && !lcStatus.startsWith("complete\r\n")) { - getLogger().info("Mascot response: (" + results.getProperty("HTTPContent", "") + ")"); + getLogger().info("Mascot response: ({})", results.getProperty("HTTPContent", "")); } } @@ -810,7 +809,7 @@ public int search (String paramFile, String queryFile, String resultFile) getLogger().info("Fail to start Mascot session"); return 2; } else { - getLogger().info("Mascot session#"+mascotSessionId+" started."); + getLogger().info("Mascot session#{} started.", mascotSessionId); } int returnCode = 0; @@ -834,7 +833,7 @@ public int search (String paramFile, String queryFile, String resultFile) returnCode = 5; break; } else { - getLogger().info("Mascot search task#"+taskID+" created with '"+actionString+"'."); + getLogger().info("Mascot search task#{} created with '{}'.", taskID, actionString); } // submit job to mascot server @@ -866,7 +865,7 @@ public int search (String paramFile, String queryFile, String resultFile) secSinceSameStatus += delayAfterSubmitSec; if (!searchStatus.equals(prevSearchStatus) || secSinceSameStatus >= delayBetweenSameStatus) { - getLogger().info("Mascot search status: " + searchStatus); + getLogger().info("Mascot search status: {}", searchStatus); secSinceSameStatus = 0; } prevSearchStatus = searchStatus; @@ -876,7 +875,7 @@ public int search (String paramFile, String queryFile, String resultFile) if (numOfNegativeError>=maxNegativeErrorTry) { break; } - getLogger().info(searchStatus+", will retry.."); + getLogger().info("{}, will retry..", searchStatus); } else if (searchStatus.toLowerCase().contains("complete") || searchStatus.toLowerCase().contains("error=")) { @@ -937,18 +936,16 @@ private ParamParser getInputParameters(File parametersFile) { ParamParser.Error err = parser.getErrors()[0]; if (err.getLine() == 0) - getLogger().error("Failed parsing Mascot input xml '" + parametersFile.getPath() + "'.\n" + - err.getMessage()); + getLogger().error("Failed parsing Mascot input xml '{}'.\n{}", parametersFile.getPath(), err.getMessage()); else - getLogger().error("Failed parsing Mascot input xml '" + parametersFile.getPath() + "'.\n" + - "Line " + err.getLine() + ": " + err.getMessage()); + getLogger().error("Failed parsing Mascot input xml '{}'.\nLine {}: {}", parametersFile.getPath(), err.getLine(), err.getMessage()); return null; } return parser; } catch (IOException eio) { - getLogger().error("Failed to read Mascot input xml '" + parametersFile.getPath() + "'."); + getLogger().error("Failed to read Mascot input xml '{}'.", parametersFile.getPath()); return null; } } @@ -971,7 +968,7 @@ protected boolean submitFile (String sessionID, String taskID, ParamParser parser = getInputParameters(queryParamFile); if (null == parser) { - getLogger().error("I'm sorry, I could not parse the parameter file '" + paramFile + "'."); + getLogger().error("I'm sorry, I could not parse the parameter file '{}'.", paramFile); return false; } @@ -1110,7 +1107,7 @@ protected boolean submitFile (String sessionID, String taskID, parts.forEach(builder::addTextBody); File queryFile = new File(analysisFile); - getLogger().info("Submitting query file, size="+queryFile.length()); + getLogger().info("Submitting query file, size={}", queryFile.length()); builder.addPart("FILE", new FileBody(queryFile)); post.setEntity(builder.build()); @@ -1156,33 +1153,25 @@ protected boolean submitFile (String sessionID, String taskID, } if (!uploadFinished) { - getLogger().error("Failed to get response from Mascot query '" + mascotRequestURL + "' for " + - queryFile.getPath() + " with parameters " + queryParamFile.getPath() + " on attempt#" + - (attempt + 1) + ".\n" + "Mascot output: " + sb); + getLogger().error("Failed to get response from Mascot query '{}' for {} with parameters {} on attempt#{}.\nMascot output: {}", mascotRequestURL, queryFile.getPath(), queryParamFile.getPath(), attempt + 1, sb); } } catch (IOException err) { - getLogger().error("Failed to get response from Mascot query '" + mascotRequestURL + "' for " + - queryFile.getPath() + " with parameters " + queryParamFile.getPath() + " on attempt#" + - (attempt + 1) + ".\n", err); + getLogger().error("Failed to get response from Mascot query '{}' for {} with parameters {} on attempt#{}.\n", mascotRequestURL, queryFile.getPath(), queryParamFile.getPath(), attempt + 1, err); } return uploadFinished; } catch (IOException err) { - getLogger().error("Failed to submit Mascot query '" + mascotRequestURL + "' for " + - queryFile.getPath() + " with parameters " + queryParamFile.getPath() + " on attempt#" + - (attempt + 1) + ".\n", err); + getLogger().error("Failed to submit Mascot query '{}' for {} with parameters {} on attempt#{}.\n", mascotRequestURL, queryFile.getPath(), queryParamFile.getPath(), attempt + 1, err); attempt = maxAttempt; } attempt++; } // We ran out of retries! - getLogger().error("Failed to submit Mascot query '" + mascotRequestURL + "' for " + - queryFile.getPath() + " with parameters " + queryParamFile.getPath() + "." + - " Tried " + maxAttempt + " times."); + getLogger().error("Failed to submit Mascot query '{}' for {} with parameters {}. Tried " + maxAttempt + " times.", mascotRequestURL, queryFile.getPath(), queryParamFile.getPath()); } catch (IOException e) { @@ -1231,7 +1220,7 @@ protected boolean getResultFile (String sessionID, String taskID, String resultF { // a read or write error occurred ioError = true; - getLogger().error("getResultFile(result="+resultFile+",session="+sessionID+",taskid="+taskID+")", e); + getLogger().error("getResultFile(result={},session={},taskid={})", resultFile, sessionID, taskID, e); } finally { @@ -1242,7 +1231,7 @@ protected boolean getResultFile (String sessionID, String taskID, String resultF } } - getLogger().info("Downloaded "+lByteRead+" bytes of result file."); + getLogger().info("Downloaded {} bytes of result file.", lByteRead); if (ioError) return false; @@ -1266,10 +1255,10 @@ protected boolean getResultFile (String sessionID, String taskID, String resultF { } - firstLine=contentLines.get(0); + firstLine=contentLines.getFirst(); if (!firstLine.startsWith("MIME-Version:")) { getLogger().info("First line of Mascot result file does not start with 'MIME-Version:'... will remove file"); - getLogger().info("First "+contentLines.size()+" line(s)\n"+ StringUtils.join(contentLines.iterator(),"\n")); + getLogger().info("First {} line(s)\n{}", contentLines.size(), StringUtils.join(contentLines.iterator(), "\n")); outFile.delete(); return false; } @@ -1424,9 +1413,7 @@ private InputStream getRequestResultStream (Properties parameters) String password = parameters.getProperty("password",""); if (!password.isEmpty()) mascotRequestURL = mascotRequestURL.replace(password, "***"); - getLogger().warn("Exception "+x.getClass()+" connect("+_url+","+parameters.getProperty("username","")+"," - +(!parameters.getProperty("password", "").isEmpty() ? "***" : "") - +","+_proxyURL+")="+mascotRequestURL, x); + getLogger().warn("Exception {} connect({},{},{},{})={}", x.getClass(), _url, parameters.getProperty("username", ""), !parameters.getProperty("password", "").isEmpty() ? "***" : "", _proxyURL, mascotRequestURL, x); //Fail to parse Mascot Server URL errorCode = 1; } @@ -1435,9 +1422,7 @@ private InputStream getRequestResultStream (Properties parameters) String password = parameters.getProperty("password",""); if (!password.isEmpty()) mascotRequestURL = mascotRequestURL.replace(password, "***"); - getLogger().warn("Exception "+x.getClass()+" on connect("+_url+","+parameters.getProperty("username","")+"," - +(!parameters.getProperty("password", "").isEmpty() ? "***" : "") - +","+_proxyURL+")="+mascotRequestURL, x); + getLogger().warn("Exception {} on connect({},{},{},{})={}", x.getClass(), _url, parameters.getProperty("username", ""), !parameters.getProperty("password", "").isEmpty() ? "***" : "", _proxyURL, mascotRequestURL, x); //Fail to interact with Mascot Server errorCode = 2; } diff --git a/ms2/src/org/labkey/ms2/pipeline/mascot/MascotImportPipelineJob.java b/ms2/src/org/labkey/ms2/pipeline/mascot/MascotImportPipelineJob.java index 1107593cb8..d04dfee23a 100644 --- a/ms2/src/org/labkey/ms2/pipeline/mascot/MascotImportPipelineJob.java +++ b/ms2/src/org/labkey/ms2/pipeline/mascot/MascotImportPipelineJob.java @@ -68,7 +68,7 @@ public void run() { if (!dirWork.exists() && !FileUtil.mkdir(dirWork)) { - getLogger().error("Failed create working folder "+dirWork+"."); + getLogger().error("Failed create working folder {}.", dirWork); return; } @@ -78,7 +78,7 @@ public void run() } catch (IOException x) { - getLogger().error("Failed to move Mascot result file to working folder as "+workFile, x); + getLogger().error("Failed to move Mascot result file to working folder as {}", workFile, x); return; } @@ -89,12 +89,12 @@ public void run() if (!workFile.delete()) { - getLogger().error("Failed to delete " + workFile); + getLogger().error("Failed to delete {}", workFile); return; } else if (!dirWork.delete()) { - getLogger().error("Failed to delete " + dirWork); + getLogger().error("Failed to delete {}", dirWork); return; } else @@ -122,7 +122,7 @@ else if (!dirWork.delete()) } catch (IOException e) { - getLogger().error("Failed to delete " + workFile, e); + getLogger().error("Failed to delete {}", workFile, e); } } } diff --git a/ms2/src/org/labkey/ms2/pipeline/phenyx/PhenyxRun.java b/ms2/src/org/labkey/ms2/pipeline/phenyx/PhenyxRun.java index fe79689035..fd73606a44 100644 --- a/ms2/src/org/labkey/ms2/pipeline/phenyx/PhenyxRun.java +++ b/ms2/src/org/labkey/ms2/pipeline/phenyx/PhenyxRun.java @@ -31,8 +31,7 @@ public class PhenyxRun extends MS2Run @Override public void adjustScores(Map map) { - if (null == map.get("bogus")) - map.put("bogus", "87"); // TODO: Get rid of this + map.putIfAbsent("bogus", "87"); // TODO: Get rid of this } @Override diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/AbstractMultipleValueParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/AbstractMultipleValueParamsValidator.java index 56c9db033f..ffec0311fa 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/AbstractMultipleValueParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/AbstractMultipleValueParamsValidator.java @@ -41,12 +41,12 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null) { - return "\"" + spp.getInputXmlLabels().get(0) + "\" must have " + getValueCount() + " values. " + getValueDescription(); + return "\"" + spp.getInputXmlLabels().getFirst() + "\" must have " + getValueCount() + " values. " + getValueDescription(); } String[] values = value.split("\\s"); if (values.length != getValueCount()) { - return "\"" + spp.getInputXmlLabels().get(0) + "\" must have " + getValueCount() + " values, but had " + values.length + ". " + getValueDescription(); + return "\"" + spp.getInputXmlLabels().getFirst() + "\" must have " + getValueCount() + " values, but had " + values.length + ". " + getValueDescription(); } for (String s : values) @@ -61,7 +61,7 @@ public String validate(Param spp) } catch (NumberFormatException e) { - return "Could not parse value \"" + s + "\" for parameter \"" + spp.getInputXmlLabels().get(0) + "\". " + getValueDescription(); + return "Could not parse value \"" + s + "\" for parameter \"" + spp.getInputXmlLabels().getFirst() + "\". " + getValueDescription(); } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/BooleanParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/BooleanParamsValidator.java index 0a0bc5ca3b..35a1afbb39 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/BooleanParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/BooleanParamsValidator.java @@ -36,7 +36,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a 1 or a 0(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a 1 or a 0(" + value + ").\n"; return parserError; } if (spp.getValue().equalsIgnoreCase("no")) @@ -51,7 +51,7 @@ public String validate(Param spp) } if (!value.equals("1") && !value.equals("0") && !value.equalsIgnoreCase("no") && !value.equalsIgnoreCase("yes")) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a 1 or a 0(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a 1 or a 0(" + value + ").\n"; } return parserError; } @@ -114,11 +114,11 @@ public void testValidateMissingValue() { _property.setValue(""); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0().\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0().\n", parserError); _property.setValue(null); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0(null).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0(null).\n", parserError); } @Test @@ -126,7 +126,7 @@ public void testValidateGarbage() { _property.setValue("foo"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0(foo).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0(foo).\n", parserError); } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/ListParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/ListParamsValidator.java index 9c412c54cb..a93fee91b0 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/ListParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/ListParamsValidator.java @@ -47,7 +47,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null || value.isEmpty()) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value is not set.\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value is not set.\n"; return parserError; } boolean isValid = true; @@ -64,7 +64,7 @@ public String validate(Param spp) } } - if(!isValid) parserError = spp.getInputXmlLabels().get(0) + ", " + "this value (" + if(!isValid) parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value (" + value + ") is not in the valid list.\n"; return parserError; } @@ -119,11 +119,11 @@ public void testValidateMissingValue() { _property.setValue(""); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", " + "this value is not set.\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", " + "this value is not set.\n", parserError); _property.setValue(null); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", " + "this value is not set.\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", " + "this value is not set.\n", parserError); } @Test @@ -131,11 +131,11 @@ public void testValidateGarbage() { _property.setValue("foo"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", " + "this value (foo) is not in the valid list.\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", " + "this value (foo) is not in the valid list.\n", parserError); _property.setValue("9"); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", " + "this value (9) is not in the valid list.\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", " + "this value (9) is not in the valid list.\n", parserError); } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleDoubleParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleDoubleParamsValidator.java index c82bdfc289..e373d20fdc 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleDoubleParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleDoubleParamsValidator.java @@ -48,7 +48,7 @@ protected String parseValue(String value, Param spp) double d = Double.parseDouble(value); if (d < _minValue || d > _maxValue) { - return "Value \"" + value + "\" for parameter \"" + spp.getInputXmlLabels().get(0) + "\" is not between " + _minValue + " and " + _maxValue + ", inclusive."; + return "Value \"" + value + "\" for parameter \"" + spp.getInputXmlLabels().getFirst() + "\" is not between " + _minValue + " and " + _maxValue + ", inclusive."; } return null; } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleIntegerParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleIntegerParamsValidator.java index 021324c072..bf5a09b20f 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleIntegerParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/MultipleIntegerParamsValidator.java @@ -48,7 +48,7 @@ protected String parseValue(String value, Param spp) int i = Integer.parseInt(value); if (i < _minValue || i > _maxValue) { - return "Value \"" + value + "\" for parameter \"" + spp.getInputXmlLabels().get(0) + "\" is not between " + _minValue + " and " + _maxValue + ", inclusive."; + return "Value \"" + value + "\" for parameter \"" + spp.getInputXmlLabels().getFirst() + "\" is not between " + _minValue + " and " + _maxValue + ", inclusive."; } return null; } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/NaturalNumberParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/NaturalNumberParamsValidator.java index ea438e0f65..8f86690b15 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/NaturalNumberParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/NaturalNumberParamsValidator.java @@ -41,7 +41,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null || value.isEmpty()) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a natural number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a natural number(" + value + ").\n"; return parserError; } StringTokenizer st = new StringTokenizer(value, ","); @@ -54,11 +54,11 @@ public String validate(Param spp) } catch (NumberFormatException e) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a natural number(" + token + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a natural number(" + token + ").\n"; return parserError; } if (i < 1) - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a natural number(" + token + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a natural number(" + token + ").\n"; } return parserError; } @@ -106,11 +106,11 @@ public void testValidateMissingValue() { _property.setValue(""); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number().\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number().\n", parserError); _property.setValue(null); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(null).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(null).\n", parserError); } @Test @@ -119,17 +119,17 @@ public void testValidateNegative() String value = "-1"; _property.setValue(value); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", parserError); value = "0"; _property.setValue(value); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", parserError); value = "-1.4"; _property.setValue(value); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", parserError); } @Test @@ -137,11 +137,11 @@ public void testValidateGarbage() { _property.setValue("foo"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(foo).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(foo).\n", parserError); _property.setValue("1.2"); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a natural number(1.2).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a natural number(1.2).\n", parserError); } } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/NonNegativeIntegerParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/NonNegativeIntegerParamsValidator.java index 335c825056..57fd862a56 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/NonNegativeIntegerParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/NonNegativeIntegerParamsValidator.java @@ -35,7 +35,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null) { - return spp.getInputXmlLabels().get(0) + ", " + "this value must be a non-negative integer(" + value + ").\n"; + return spp.getInputXmlLabels().getFirst() + ", " + "this value must be a non-negative integer(" + value + ").\n"; } try { @@ -43,10 +43,10 @@ public String validate(Param spp) } catch (NumberFormatException e) { - return spp.getInputXmlLabels().get(0) + ", " + "this value must be a non-negative integer(" + value + ").\n"; + return spp.getInputXmlLabels().getFirst() + ", " + "this value must be a non-negative integer(" + value + ").\n"; } if (i < 0) - return spp.getInputXmlLabels().get(0) + ", " + "this value must be a non-negative integer(" + value + ").\n"; + return spp.getInputXmlLabels().getFirst() + ", " + "this value must be a non-negative integer(" + value + ").\n"; return ""; } @@ -91,11 +91,11 @@ public void testValidateMissingValue() { _property.setValue(""); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer().\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer().\n", parserError); _property.setValue(null); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(null).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(null).\n", parserError); } @Test @@ -104,12 +104,12 @@ public void testValidateNegative() String value = "-4"; _property.setValue(value); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(" + value + ").\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(" + value + ").\n", parserError); value = "-4.7"; _property.setValue(value); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(" + value + ").\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(" + value + ").\n", parserError); } @@ -118,11 +118,11 @@ public void testValidateGarbage() { _property.setValue("foo"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(foo).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(foo).\n", parserError); _property.setValue("1. 2"); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(1. 2).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(1. 2).\n", parserError); } } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/PositiveDoubleParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/PositiveDoubleParamsValidator.java index 4f0d09eb63..07a9aafc72 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/PositiveDoubleParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/PositiveDoubleParamsValidator.java @@ -36,7 +36,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a positive number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a positive number(" + value + ").\n"; return parserError; } try @@ -45,11 +45,11 @@ public String validate(Param spp) } catch (NumberFormatException e) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a positive number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a positive number(" + value + ").\n"; return parserError; } if (d < 0) - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a positive number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a positive number(" + value + ").\n"; return parserError; } @@ -103,11 +103,11 @@ public void testValidateMissingValue() { _property.setValue(""); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number().\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number().\n", parserError); _property.setValue(null); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number(null).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number(null).\n", parserError); } @Test @@ -115,11 +115,11 @@ public void testValidateNegative() { _property.setValue("-4"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number(-4).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number(-4).\n", parserError); _property.setValue("-4.7"); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number(-4.7).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number(-4.7).\n", parserError); } @Test @@ -127,11 +127,11 @@ public void testValidateGarbage() { _property.setValue("foo"); String parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number(foo).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number(foo).\n", parserError); _property.setValue("1. 2"); parserError = _property.validate(); - assertEquals(_property.getInputXmlLabels().get(0) + ", this value must be a positive number(1. 2).\n", parserError); + assertEquals(_property.getInputXmlLabels().getFirst() + ", this value must be a positive number(1. 2).\n", parserError); } } } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/RealNumberParamsValidator.java b/ms2/src/org/labkey/ms2/pipeline/sequest/RealNumberParamsValidator.java index af5c6e4383..6656d98f8f 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/RealNumberParamsValidator.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/RealNumberParamsValidator.java @@ -35,7 +35,7 @@ public String validate(Param spp) String value = spp.getValue(); if (value == null) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a real number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a real number(" + value + ").\n"; return parserError; } try @@ -44,7 +44,7 @@ public String validate(Param spp) } catch (NumberFormatException e) { - parserError = spp.getInputXmlLabels().get(0) + ", " + "this value must be a real number(" + value + ").\n"; + parserError = spp.getInputXmlLabels().getFirst() + ", " + "this value must be a real number(" + value + ").\n"; return parserError; } return parserError; diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestParamsBuilder.java b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestParamsBuilder.java index 21bc18219a..a62abfc1a9 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestParamsBuilder.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestParamsBuilder.java @@ -173,7 +173,7 @@ protected List initDatabases() } Param database1 = _params.getFASTAParam(); - FileLike databaseFile = databaseFiles.get(0); + FileLike databaseFile = databaseFiles.getFirst(); if (!databaseFile.exists() && !DUMMY_FASTA_NAME.equals(databaseFile.getName())) { return Collections.singletonList("pipeline, database; The database does not exist(" + databaseFile + ")"); diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchProtocol.java b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchProtocol.java index 2e4a9680a8..bc794c2c7a 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchProtocol.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchProtocol.java @@ -63,9 +63,9 @@ public void validate(PipeRoot root) throws PipelineValidationException if(dbNames.isEmpty()) throw new IllegalArgumentException("A sequence database must be selected."); - FileLike fileSequenceDB = getDirSeqRoot().resolveFile(org.labkey.api.util.Path.parse(dbNames.get(0))); + FileLike fileSequenceDB = getDirSeqRoot().resolveFile(org.labkey.api.util.Path.parse(dbNames.getFirst())); if (!fileSequenceDB.exists()) - throw new IllegalArgumentException("Sequence database '" + dbNames.get(0) + "' is not found in local FASTA root."); + throw new IllegalArgumentException("Sequence database '" + dbNames.getFirst() + "' is not found in local FASTA root."); super.validate(root); } diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchTask.java b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchTask.java index 0963ecefdd..3bd4be2714 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchTask.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchTask.java @@ -15,7 +15,6 @@ */ package org.labkey.ms2.pipeline.sequest; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.junit.Assert; @@ -43,8 +42,6 @@ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -124,7 +121,7 @@ public SequestPipelineJob getJob() private FileLike getIndexFileWithoutExtension() throws PipelineJobException { - FileLike fastaFile = getJob().getSequenceFiles().get(0); + FileLike fastaFile = getJob().getSequenceFiles().getFirst(); FileLike fastaRoot = getJob().getSequenceRootDirectory(); Map params = getJob().getParameters(); @@ -210,7 +207,7 @@ private List getFASTAOrIndexFiles(List actions) throws assert getJob().getSequenceFiles().size() == 1 : "Only one FASTA is supported when using indices"; getJob().setStatus("CREATING FASTA INDEX"); - getJob().info("Creating a FASTA index for " + getJob().getSequenceFiles().get(0) + " as " + indexFileBase); + getJob().info("Creating a FASTA index for " + getJob().getSequenceFiles().getFirst() + " as " + indexFileBase); // Create a makedb.params to control the index creation FileLike fileWorkParams = _wd.newFile(MAKE_DB_PARAMS); @@ -231,7 +228,7 @@ private List getFASTAOrIndexFiles(List actions) throws getJob().runSubProcess(pb, FileSystemLike.wrapFile(dir)); RecordedAction action = new RecordedAction(MAKEDB_ACTION_NAME); - action.addInput(getJob().getSequenceFiles().get(0), "FASTA"); + action.addInput(getJob().getSequenceFiles().getFirst(), "FASTA"); action.addInput(fileWorkParams, "MakeDB Params"); action.addOutput(indexFile, "FASTA Index", false); action.addParameter(RecordedAction.COMMAND_LINE_PARAM, StringUtils.join(args, " ")); @@ -373,8 +370,8 @@ public RecordedActionSet run() throws PipelineJobException { assert sequenceFiles.size() == 1; // We want the pepXML file to point at the FASTA file, not at the indexed copy - String indexPath = sequenceFiles.get(0).toNioPathForRead().toFile().getAbsolutePath(); - String fastaPath = getJob().getSequenceFiles().get(0).toNioPathForRead().toFile().getAbsolutePath(); + String indexPath = sequenceFiles.getFirst().toNioPathForRead().toFile().getAbsolutePath(); + String fastaPath = getJob().getSequenceFiles().getFirst().toNioPathForRead().toFile().getAbsolutePath(); replacements.put(indexPath, fastaPath); getJob().info("Replacing index path (" + indexPath + ") with FASTA path (" + fastaPath + ")"); } @@ -518,7 +515,7 @@ static Collection convertParams(Collection converters, Map paramsCmd = new ArrayList<>(); for (Param conv : converters) { - String value = paramsXml.get(conv.getInputXmlLabels().get(0)); + String value = paramsXml.get(conv.getInputXmlLabels().getFirst()); if (value == null || value.isEmpty()) { if(conv.getValue() == null || conv.getValue().isEmpty()) diff --git a/ms2/src/org/labkey/ms2/pipeline/sequest/ThermoSequestParamsBuilder.java b/ms2/src/org/labkey/ms2/pipeline/sequest/ThermoSequestParamsBuilder.java index e32b740b6c..2e8c83c77f 100644 --- a/ms2/src/org/labkey/ms2/pipeline/sequest/ThermoSequestParamsBuilder.java +++ b/ms2/src/org/labkey/ms2/pipeline/sequest/ThermoSequestParamsBuilder.java @@ -261,7 +261,7 @@ public void testInitDatabasesMissingValue() List parserError = spb.initDatabases(); if (parserError.isEmpty()) fail("Expected error."); - assertEquals("pipeline, database; No value entered for database.", parserError.get(0)); + assertEquals("pipeline, database; No value entered for database.", parserError.getFirst()); } @Test @@ -273,7 +273,7 @@ public void testInitDatabasesMissingInput() List parserError = spb.initDatabases(); if (parserError.isEmpty()) fail("Expected error."); - assertEquals("pipeline, database; No value entered for database.", parserError.get(0)); + assertEquals("pipeline, database; No value entered for database.", parserError.getFirst()); } @Test @@ -287,8 +287,8 @@ public void testInitDatabasesGarbage() List parserError = spb.initDatabases(); if (parserError.isEmpty()) fail("Expected error."); - assertTrue(parserError.get(0).contains("pipeline, database; The database does not exist")); - assertTrue(parserError.get(0).contains("garbage")); + assertTrue(parserError.getFirst().contains("pipeline, database; The database does not exist")); + assertTrue(parserError.getFirst().contains("garbage")); value = "Bovine_mini1.fasta, garbage"; parseParams("" + @@ -298,8 +298,8 @@ public void testInitDatabasesGarbage() parserError = spb.initDatabases(); if (parserError.isEmpty()) fail("Expected error."); - assertTrue(parserError.get(0).contains("pipeline, database; The database does not exist")); - assertTrue(parserError.get(0).contains("garbage")); + assertTrue(parserError.getFirst().contains("pipeline, database; The database does not exist")); + assertTrue(parserError.getFirst().contains("garbage")); value = "garbage, Bovine_mini1.fasta"; parseParams("" + @@ -309,8 +309,8 @@ public void testInitDatabasesGarbage() parserError = spb.initDatabases(); if (parserError.isEmpty()) fail("Expected error."); - assertTrue(parserError.get(0).contains("pipeline, database; The database does not exist")); - assertTrue(parserError.get(0).contains("garbage")); + assertTrue(parserError.getFirst().contains("pipeline, database; The database does not exist")); + assertTrue(parserError.getFirst().contains("garbage")); } @Test @@ -360,7 +360,7 @@ public void testInitPeptideMassToleranceMissingValue() if (parserError.isEmpty()) fail("No error message."); String actual = spb.getProperties().getParam("peptide_mass_tolerance").getValue(); assertEquals("peptide_mass_tolerance", expected, actual); - assertEquals("Sequest does not support asymmetric parent error ranges (minus=4.0 plus=).", parserError.get(0)); + assertEquals("Sequest does not support asymmetric parent error ranges (minus=4.0 plus=).", parserError.getFirst()); parseParams("" + "" + @@ -371,7 +371,7 @@ public void testInitPeptideMassToleranceMissingValue() if (parserError.isEmpty()) fail("No error message."); actual = spb.getProperties().getParam("peptide_mass_tolerance").getValue(); assertEquals("peptide_mass_tolerance", expected, actual); - assertEquals("Sequest does not support asymmetric parent error ranges (minus= plus=4.0).", parserError.get(0)); + assertEquals("Sequest does not support asymmetric parent error ranges (minus= plus=4.0).", parserError.getFirst()); parseParams("" + "" + @@ -382,7 +382,7 @@ public void testInitPeptideMassToleranceMissingValue() if (parserError.isEmpty()) fail("No error message."); actual = spb.getProperties().getParam("peptide_mass_tolerance").getValue(); assertEquals("peptide_mass_tolerance", expected, actual); - assertEquals("No values were entered for spectrum, parent monoisotopic mass error minus/plus.", parserError.get(0)); + assertEquals("No values were entered for spectrum, parent monoisotopic mass error minus/plus.", parserError.getFirst()); } @Test @@ -400,7 +400,7 @@ public void testInitPeptideMassToleranceNegative() Param sp = spb.getProperties().getParam("peptide_mass_tolerance"); String actual = sp.getValue(); assertEquals("parameter value changed", defaultValue, actual); - assertEquals("Negative values not permitted for parent monoisotopic mass error(" + expected + ").", parserError.get(0)); + assertEquals("Negative values not permitted for parent monoisotopic mass error(" + expected + ").", parserError.getFirst()); } @Test @@ -418,7 +418,7 @@ public void testInitPeptideMassToleranceInvalid() Param sp = spb.getProperties().getParam("peptide_mass_tolerance"); String actual = sp.getValue(); assertEquals("parameter value changed", defaultValue, actual); - assertEquals("Invalid value for value for spectrum, parent monoisotopic mass error minus/plus (garbage).", parserError.get(0)); + assertEquals("Invalid value for value for spectrum, parent monoisotopic mass error minus/plus (garbage).", parserError.getFirst()); } @@ -435,7 +435,7 @@ public void testInitPeptideMassToleranceMissingInput() if (parserError.isEmpty()) fail("No error message."); String actual = spb.getProperties().getParam("peptide_mass_tolerance").getValue(); assertEquals("peptide_mass_tolerance", expected, actual); - assertEquals("Sequest does not support asymmetric parent error ranges (minus=null plus=5.0).", parserError.get(0)); + assertEquals("Sequest does not support asymmetric parent error ranges (minus=null plus=5.0).", parserError.getFirst()); parseParams("" + "" + @@ -445,7 +445,7 @@ public void testInitPeptideMassToleranceMissingInput() if (parserError.isEmpty()) fail("No error message."); actual = spb.getProperties().getParam("peptide_mass_tolerance").getValue(); assertEquals("peptide_mass_tolerance", expected, actual); - assertEquals("Sequest does not support asymmetric parent error ranges (minus=5.0 plus=null).", parserError.get(0)); + assertEquals("Sequest does not support asymmetric parent error ranges (minus=5.0 plus=null).", parserError.getFirst()); } @Test @@ -504,7 +504,7 @@ public void testInitMassTypeMissingValue() Param sp = spb.getProperties().getParam("mass_type_fragment"); String actual = sp.getValue(); assertEquals("mass_type_fragment", expected, actual); - assertEquals("mass_type_fragment", "\"spectrum, fragment mass type\" contains no value.", parserError.get(0)); + assertEquals("mass_type_fragment", "\"spectrum, fragment mass type\" contains no value.", parserError.getFirst()); } @Test @@ -536,7 +536,7 @@ public void testInitMassTypeGarbage() Param sp = spb.getProperties().getParam("mass_type_fragment"); String actual = sp.getValue(); assertEquals("mass_type_fragment", expected, actual); - assertEquals("mass_type_fragment", "\"spectrum, fragment mass type\" contains an invalid value(garbage).", parserError.get(0)); + assertEquals("mass_type_fragment", "\"spectrum, fragment mass type\" contains an invalid value(garbage).", parserError.getFirst()); } @Test @@ -614,7 +614,7 @@ public void testInitIonScoringMissingValue() Param sp = spb.getProperties().getParam("ion_series"); String actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "sequest, y neutral loss did not contain a value.", parserError.get(0)); + assertEquals("ion_series", "sequest, y neutral loss did not contain a value.", parserError.getFirst()); expected = "0 1 1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0"; parseParams("" + @@ -638,7 +638,7 @@ public void testInitIonScoringMissingValue() sp = spb.getProperties().getParam("ion_series"); actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "scoring, c ions did not contain a value.", parserError.get(0)); + assertEquals("ion_series", "scoring, c ions did not contain a value.", parserError.getFirst()); expected = "0 1 1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0"; parseParams("" + @@ -662,7 +662,7 @@ public void testInitIonScoringMissingValue() sp = spb.getProperties().getParam("ion_series"); actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "sequest, d ions did not contain a value.", parserError.get(0)); + assertEquals("ion_series", "sequest, d ions did not contain a value.", parserError.getFirst()); } @Test @@ -729,7 +729,7 @@ public void testInitIonScoringGarbage() Param sp = spb.getProperties().getParam("ion_series"); String actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "sequest, y neutral loss contained an invalid value(garbage).", parserError.get(0)); + assertEquals("ion_series", "sequest, y neutral loss contained an invalid value(garbage).", parserError.getFirst()); expected = "0 1 1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0"; parseParams("" + @@ -753,7 +753,7 @@ public void testInitIonScoringGarbage() sp = spb.getProperties().getParam("ion_series"); actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "scoring, c ions contained an invalid value(garbage).", parserError.get(0)); + assertEquals("ion_series", "scoring, c ions contained an invalid value(garbage).", parserError.getFirst()); expected = "0 1 1 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0"; parseParams("" + @@ -777,7 +777,7 @@ public void testInitIonScoringGarbage() sp = spb.getProperties().getParam("ion_series"); actual = sp.getValue(); assertEquals("ion_series", expected, actual); - assertEquals("ion_series", "sequest, d ions contained an invalid value(garbage).", parserError.get(0)); + assertEquals("ion_series", "sequest, d ions contained an invalid value(garbage).", parserError.getFirst()); } @@ -864,7 +864,7 @@ public void testInitEnzymeInfoMissingValue() Param sp = spb.getProperties().getParam("enzyme_info"); String actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("enzyme_description", "protein, cleavage site did not contain a value.", parserError.get(0)); + assertEquals("enzyme_description", "protein, cleavage site did not contain a value.", parserError.getFirst()); } @Test @@ -883,7 +883,7 @@ public void testInitEnzymeInfoGarbage() Param sp = spb.getProperties().getParam("enzyme_info"); String actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("enzyme_description", "Invalid enzyme definition:foo", parserError.get(0)); + assertEquals("enzyme_description", "Invalid enzyme definition:foo", parserError.getFirst()); parseParams("" + "" + @@ -896,7 +896,7 @@ public void testInitEnzymeInfoGarbage() sp = spb.getProperties().getParam("enzyme_info"); actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("[CV]|{P},[KR]|{P} is not a pipeline supported enzyme.", parserError.get(0)); + assertEquals("[CV]|{P},[KR]|{P} is not a pipeline supported enzyme.", parserError.getFirst()); parseParams("" + "" + @@ -908,7 +908,7 @@ public void testInitEnzymeInfoGarbage() sp = spb.getProperties().getParam("enzyme_info"); actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("{P}|[KR] is not a pipeline supported enzyme.", parserError.get(0)); + assertEquals("{P}|[KR] is not a pipeline supported enzyme.", parserError.getFirst()); parseParams("" + "" + @@ -921,7 +921,7 @@ public void testInitEnzymeInfoGarbage() sp = spb.getProperties().getParam("enzyme_info"); actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("[a]|[X] is not a pipeline supported enzyme.", parserError.get(0)); + assertEquals("[a]|[X] is not a pipeline supported enzyme.", parserError.getFirst()); parseParams("" + "" + @@ -934,7 +934,7 @@ public void testInitEnzymeInfoGarbage() sp = spb.getProperties().getParam("enzyme_info"); actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("[X]|[a] is not a pipeline supported enzyme.", parserError.get(0)); + assertEquals("[X]|[a] is not a pipeline supported enzyme.", parserError.getFirst()); parseParams("" + "" + @@ -947,7 +947,7 @@ public void testInitEnzymeInfoGarbage() sp = spb.getProperties().getParam("enzyme_info"); actual = sp.getValue(); assertEquals("enzyme_description", expected2, actual); - assertEquals("Invalid enzyme definition:[X]|P", parserError.get(0)); + assertEquals("Invalid enzyme definition:[X]|P", parserError.getFirst()); } @Test @@ -1048,7 +1048,7 @@ public void testInitDynamicModsGarbage() Param sp = spb.getProperties().getParam("diff_search_options"); String actual = sp.getValue(); assertEquals("diff_search_options", expected1, actual); - assertEquals("diff_search_options", "modification mass contained an invalid residue(J).", parserError.get(0)); + assertEquals("diff_search_options", "modification mass contained an invalid residue(J).", parserError.getFirst()); expected1 = "0.000000 C 0.000000 M 0.000000 S 0.000000 T 0.000000 X 0.000000 Y"; parseParams("" + @@ -1061,7 +1061,7 @@ public void testInitDynamicModsGarbage() sp = spb.getProperties().getParam("diff_search_options"); actual = sp.getValue(); assertEquals("diff_search_options", expected1, actual); - assertEquals("diff_search_options", "modification mass contained an invalid value(G@18).", parserError.get(0)); + assertEquals("diff_search_options", "modification mass contained an invalid value(G@18).", parserError.getFirst()); } @@ -1311,7 +1311,7 @@ public void testInitStaticModsGarbage() List parserError = spb.initStaticMods(); if (parserError.isEmpty()) fail("Expected error."); - assertEquals("modification mass contained an invalid value(" + value + ").", parserError.get(0)); + assertEquals("modification mass contained an invalid value(" + value + ").", parserError.getFirst()); } @Test @@ -1389,37 +1389,37 @@ else if (passThrough.getValidator().getClass() == NaturalNumberParamsValidator.c { String value = ""; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == PositiveDoubleParamsValidator.class) { String value = ""; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == BooleanParamsValidator.class) { String value = ""; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == RealNumberParamsValidator.class) { String value = ""; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a real number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a real number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == NonNegativeIntegerParamsValidator.class) { String value = ""; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == ListParamsValidator.class) { String listValue = ""; passThrough.setValue(listValue); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", " + "this value is not set.\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", " + "this value is not set.\n", passThrough.validate()); } else { @@ -1442,25 +1442,25 @@ else if (passThrough.getValidator().getClass() == NaturalNumberParamsValidator.c { String value = "-3"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == PositiveDoubleParamsValidator.class) { String value = "-3.4"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == NonNegativeIntegerParamsValidator.class) { String value = "-3"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == BooleanParamsValidator.class) { String value = "-1"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == RealNumberParamsValidator.class) { @@ -1472,7 +1472,7 @@ else if (passThrough.getValidator().getClass() == ListParamsValidator.class) { ((ListParamsValidator)passThrough.getValidator()).setList(new String[]{"a","b","c"}); passThrough.setValue("-1"); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", " + "this value (-1) is not in the valid list.\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", " + "this value (-1) is not in the valid list.\n", passThrough.validate()); } else { @@ -1496,37 +1496,37 @@ else if (passThrough.getValidator().getClass() == NaturalNumberParamsValidator.c { String value = "foo"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a natural number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == PositiveDoubleParamsValidator.class) { String value = "bar"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a positive number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == BooleanParamsValidator.class) { String value = "true"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a 1 or a 0(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == RealNumberParamsValidator.class) { String value = "blue"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a real number(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a real number(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == NonNegativeIntegerParamsValidator.class) { String value = "blue"; passThrough.setValue(value); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", this value must be a non-negative integer(" + value + ").\n", passThrough.validate()); } else if (passThrough.getValidator().getClass() == ListParamsValidator.class) { ((ListParamsValidator)passThrough.getValidator()).setList(new String[]{"a","b","c"}); passThrough.setValue("foo"); - assertEquals(passThrough.getInputXmlLabels().get(0) + ", " + "this value (foo) is not in the valid list.\n", passThrough.validate()); + assertEquals(passThrough.getInputXmlLabels().getFirst() + ", " + "this value (foo) is not in the valid list.\n", passThrough.validate()); } else { diff --git a/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchProtocol.java b/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchProtocol.java index 9562ac34d1..357f83f6b2 100644 --- a/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchProtocol.java +++ b/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchProtocol.java @@ -23,7 +23,6 @@ import org.labkey.vfs.FileLike; import java.io.IOException; -import java.nio.file.Path; import java.util.List; import java.util.Map; diff --git a/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchTask.java b/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchTask.java index c9ade6b3a3..d51aaba40d 100644 --- a/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchTask.java +++ b/ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchTask.java @@ -34,9 +34,7 @@ import org.labkey.vfs.FileLike; import java.io.BufferedWriter; -import java.io.File; import java.io.FileNotFoundException; -import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; diff --git a/ms2/src/org/labkey/ms2/protein/tools/GoHelpers.java b/ms2/src/org/labkey/ms2/protein/tools/GoHelpers.java index bdfb6d475d..387fbec86a 100644 --- a/ms2/src/org/labkey/ms2/protein/tools/GoHelpers.java +++ b/ms2/src/org/labkey/ms2/protein/tools/GoHelpers.java @@ -117,18 +117,12 @@ public static String getAnnotTypeWhereClause(GoTypes kind) { kind = GoTypes.ALL; } - switch (kind) + return switch (kind) { - case CELL_LOCATION: - return "AnnotTypeId=" + getgTypeC(); - case FUNCTION: - return "AnnotTypeId=" + getgTypeF(); - case PROCESS: - return "AnnotTypeId=" + getgTypeP(); - case ALL: - return "AnnotTypeId IN (" + getgTypeC() + "," + getgTypeF() + "," + getgTypeC() + ")"; - } - - return null; + case CELL_LOCATION -> "AnnotTypeId=" + getgTypeC(); + case FUNCTION -> "AnnotTypeId=" + getgTypeF(); + case PROCESS -> "AnnotTypeId=" + getgTypeP(); + case ALL -> "AnnotTypeId IN (" + getgTypeC() + "," + getgTypeF() + "," + getgTypeC() + ")"; + }; } } diff --git a/ms2/src/org/labkey/ms2/query/CompareProteinProphetTableInfo.java b/ms2/src/org/labkey/ms2/query/CompareProteinProphetTableInfo.java index c340a7f9b4..9871d48190 100644 --- a/ms2/src/org/labkey/ms2/query/CompareProteinProphetTableInfo.java +++ b/ms2/src/org/labkey/ms2/query/CompareProteinProphetTableInfo.java @@ -218,7 +218,7 @@ protected ColumnInfo resolveColumn(String name) ColumnInfo result = super.resolveColumn(name); if (result == null && "Run".equalsIgnoreCase(name) && !_runs.isEmpty()) { - result = getColumn("Run" + _runs.get(0).getRun()); + result = getColumn("Run" + _runs.getFirst().getRun()); } return result; } diff --git a/ms2/src/org/labkey/ms2/query/MS2Schema.java b/ms2/src/org/labkey/ms2/query/MS2Schema.java index 114299975d..fd1f255c39 100644 --- a/ms2/src/org/labkey/ms2/query/MS2Schema.java +++ b/ms2/src/org/labkey/ms2/query/MS2Schema.java @@ -513,8 +513,8 @@ public ProteinGroupTableInfo createProteinGroupsForSearchTable(ContainerFilter c { ProteinGroupTableInfo result = new ProteinGroupTableInfo(this, cf); List defaultColumns = new ArrayList<>(result.getDefaultVisibleColumns()); - defaultColumns.add(0, FieldKey.fromParts("ProteinProphet","Run")); - defaultColumns.add(0, FieldKey.fromParts("ProteinProphet", "Run", "Folder")); + defaultColumns.addFirst(FieldKey.fromParts("ProteinProphet","Run")); + defaultColumns.addFirst(FieldKey.fromParts("ProteinProphet", "Run", "Folder")); result.setDefaultVisibleColumns(defaultColumns); return result; } @@ -1412,7 +1412,7 @@ public CrosstabTableInfo createPeptideCrosstabTable(MS2Controller.PeptideFilteri if ((form != null) && (form.getTargetSeqIds()!=null) && form.getTargetSeqIds().size() == 1) { linkUrlOnRunColuumn =new ActionURL(MS2Controller.ShowProteinAction.class,getContainer()); - linkUrlOnRunColuumn.addParameter("seqId", form.getTargetSeqIds().get(0)); + linkUrlOnRunColuumn.addParameter("seqId", form.getTargetSeqIds().getFirst()); linkUrlOnRunColuumn.addParameter(ProteinViewBean.ALL_PEPTIDES_URL_PARAM, "true"); linkUrlOnRunColuumn.addParameter("protein", form.getTargetProtein()); if (form.isCustomViewPeptideFilter() && form.getPeptideCustomViewName(context) != null) diff --git a/ms2/src/org/labkey/ms2/query/PeptideAggregrationDisplayColumn.java b/ms2/src/org/labkey/ms2/query/PeptideAggregrationDisplayColumn.java index 046ef785f2..c014d6125e 100644 --- a/ms2/src/org/labkey/ms2/query/PeptideAggregrationDisplayColumn.java +++ b/ms2/src/org/labkey/ms2/query/PeptideAggregrationDisplayColumn.java @@ -136,12 +136,11 @@ private void logError(String message) if (!_loggedError) { _loggedError = true; - LOG.warn("For column '" + getName() + "', " + message); + LOG.warn("For column '{}', {}", getName(), message); } } - protected abstract Object calculateValue(RenderContext ctx, List peptides) - throws SQLException; + protected abstract Object calculateValue(RenderContext ctx, List peptides); @Override public void addQueryColumns(Set set) diff --git a/ms2/src/org/labkey/ms2/query/PeptidesTableInfo.java b/ms2/src/org/labkey/ms2/query/PeptidesTableInfo.java index 4a1636c711..effc1f0ad0 100644 --- a/ms2/src/org/labkey/ms2/query/PeptidesTableInfo.java +++ b/ms2/src/org/labkey/ms2/query/PeptidesTableInfo.java @@ -356,7 +356,7 @@ private void addHighestScoreFilter() // now find index of charge column name for query - MS2Run run = runs.get(0); // all run types are the same, so just get the first one + MS2Run run = runs.getFirst(); // all run types are the same, so just get the first one String chargeColumnName = run.getChargeFilterColumnName(); int index = runType.getScoreColumnList().indexOf(FieldKey.fromParts(chargeColumnName)); // all run types are the same, so re-use runType String databaseScoreColumn = "Score" + (index + 1); // db columns are 1-indexed diff --git a/ms2/src/org/labkey/ms2/query/ProteinGroupTableInfo.java b/ms2/src/org/labkey/ms2/query/ProteinGroupTableInfo.java index 6bc4b51d89..102c1e4d5f 100644 --- a/ms2/src/org/labkey/ms2/query/ProteinGroupTableInfo.java +++ b/ms2/src/org/labkey/ms2/query/ProteinGroupTableInfo.java @@ -228,7 +228,7 @@ public TableInfo getLookupTableInfo() ActionURL url = new ActionURL(MS2Controller.ShowProteinAction.class, _userSchema.getContainer()); if (_runs != null && _runs.size() == 1) { - url.addParameter("run", Long.toString(_runs.get(0).getRun())); + url.addParameter("run", Long.toString(_runs.getFirst().getRun())); } result1.setURL(url.addParameter("proteinGroupId", "${RowId}").addParameter("seqId", "${" + colInfo.getName() + "}")); return result1; diff --git a/ms2/src/org/labkey/ms2/query/QueryAACoverageColumn.java b/ms2/src/org/labkey/ms2/query/QueryAACoverageColumn.java index aacfc445b0..d4d87589f8 100644 --- a/ms2/src/org/labkey/ms2/query/QueryAACoverageColumn.java +++ b/ms2/src/org/labkey/ms2/query/QueryAACoverageColumn.java @@ -20,7 +20,6 @@ import org.labkey.api.data.RenderContext; import org.labkey.ms2.protein.Protein; -import java.sql.SQLException; import java.util.List; import java.util.Set; @@ -63,7 +62,6 @@ public Class getValueClass() @Override protected Object calculateValue(RenderContext ctx, List peptides) - throws SQLException { Protein protein = new Protein(); protein.setSequence((String)_sequenceColumn.getValue(ctx)); diff --git a/ms2/src/org/labkey/ms2/reader/MS2Loader.java b/ms2/src/org/labkey/ms2/reader/MS2Loader.java index 76f89b9a95..a55875622d 100644 --- a/ms2/src/org/labkey/ms2/reader/MS2Loader.java +++ b/ms2/src/org/labkey/ms2/reader/MS2Loader.java @@ -23,7 +23,6 @@ import org.labkey.vfs.FileLike; import javax.xml.stream.XMLStreamException; -import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; diff --git a/ms2/src/org/labkey/ms2/reader/MS2XmlLoader.java b/ms2/src/org/labkey/ms2/reader/MS2XmlLoader.java index fb247d4aa0..dcfb597173 100644 --- a/ms2/src/org/labkey/ms2/reader/MS2XmlLoader.java +++ b/ms2/src/org/labkey/ms2/reader/MS2XmlLoader.java @@ -23,8 +23,6 @@ import javax.xml.stream.XMLStreamException; import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; diff --git a/ms2/src/org/labkey/ms2/reader/MascotDatLoader.java b/ms2/src/org/labkey/ms2/reader/MascotDatLoader.java index f83c436a96..7cf10b20d9 100644 --- a/ms2/src/org/labkey/ms2/reader/MascotDatLoader.java +++ b/ms2/src/org/labkey/ms2/reader/MascotDatLoader.java @@ -20,7 +20,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.labkey.api.data.Container; -import org.labkey.api.util.FileUtil; import org.labkey.api.util.Pair; import org.labkey.api.util.Path; import org.labkey.api.util.StringUtilsLabKey; @@ -34,7 +33,6 @@ import javax.xml.stream.XMLStreamException; import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; @@ -194,7 +192,7 @@ public enum Section { } private String _boundaryMarker = null; - private BufferedReader _reader; + private final BufferedReader _reader; private String _currentLine = null; private Section _currentSection = null; private Integer _currentQueryNum = null; @@ -263,7 +261,7 @@ public boolean findSection() throws IOException } catch (IllegalArgumentException e) // Don't fail on sections we don't know about { - _log.warn("Unknown section found in dat file: " + matcher.group(SECTION_NAME_GROUP_NUM)); + _log.warn("Unknown section found in dat file: {}", matcher.group(SECTION_NAME_GROUP_NUM)); _currentSection = Section.UNKNOWN_SECTION; return true; } @@ -361,7 +359,7 @@ public void loadParameters(PeptideFraction fraction, Container container) throws // Do nothing. If we can't find the file from the fastafile value in the header section, it will throw an exception. // Note that this assumes the header comes after the parameters section, which seems to be the case (despite what the names // might suggest). - _log.warn("Could not find FASTA file: " + dbFileName); + _log.warn("Could not find FASTA file: {}", dbFileName); } } else if (_currentLine.startsWith(ENZYME_PREFIX) || _currentLine.startsWith(ENZYME_PREFIX_LC)) @@ -402,7 +400,7 @@ public void loadMasses(PeptideFraction fraction) throws IOException boolean isCTerm = residues.contains("C-term"); if (isNTerm && isCTerm) { - _log.error("Both c and n term modification detected. Skipping delta " + deltaNum + " in masses."); + _log.error("Both c and n term modification detected. Skipping delta {} in masses.", deltaNum); } else if ((((residues.length() == 7 || residues.length() == 14) && isProteinTerm)) || (residues.length() == 6 && isNTerm)) @@ -461,11 +459,11 @@ else if ((matcher = KEY_VALUE_LINE.matcher(_currentLine)).matches()) fraction.addModification(mod); } } - else if (massName.toLowerCase().equals("c_term")) + else if (massName.equalsIgnoreCase("c_term")) { _masses.put("c", Float.parseFloat(matcher.group(KV_VALUE_GROUP_NUM))); } - else if (massName.toLowerCase().equals("n_term")) + else if (massName.equalsIgnoreCase("n_term")) { _masses.put("n", Float.parseFloat(matcher.group(KV_VALUE_GROUP_NUM))); } @@ -480,7 +478,7 @@ else if (massName.toLowerCase().equals("n_term")) private void addVariableModifiedMass(PeptideFraction fraction, String aminoAcid, Float massDelta) { if (!_masses.containsKey(aminoAcid)) - _log.error("Trying to store a variable AA modification for '" + aminoAcid + "' without any prior info for this AA."); + _log.error("Trying to store a variable AA modification for '{}' without any prior info for this AA.", aminoAcid); else { MS2Modification mod = new MS2Modification(); @@ -707,7 +705,7 @@ public void loadQuery(Map peptides, Map <% if (!run.getRunType().getScoreColumnList().isEmpty()) { %> - <%= h(run.getRunType().getScoreColumnList().get(0)) %><%= h(p.getRawScore() == null ? "" : Formats.f3.format(p.getRawScore())) %> + <%= h(run.getRunType().getScoreColumnList().getFirst()) %><%= h(p.getRawScore() == null ? "" : Formats.f3.format(p.getRawScore())) %> <% } %> PeptideProphet<%= h((p.getPeptideProphet() == null) ? "" : Formats.f2.format(p.getPeptideProphet())) %> Run<%= h(run.getDescription()) %> @@ -303,12 +303,7 @@ var peaks = [ String libraMatch = libra != null ? libra.getMatch(mzs[i], 0.2) : null; if (libraMatch != null) { - java.util.List> peaks = customHits.get(libraMatch); - if (peaks == null) - { - peaks = new ArrayList<>(); - customHits.put(libraMatch, peaks); - } + java.util.List> peaks = customHits.computeIfAbsent(libraMatch, _ -> new ArrayList<>()); peaks.add(new Pair<>(mzs[i], intensities[i])); } else diff --git a/ms2/src/org/systemsbiology/jrap/MSXMLParser.java b/ms2/src/org/systemsbiology/jrap/MSXMLParser.java index afdbcd57be..0395c34515 100644 --- a/ms2/src/org/systemsbiology/jrap/MSXMLParser.java +++ b/ms2/src/org/systemsbiology/jrap/MSXMLParser.java @@ -246,7 +246,7 @@ public MSXMLParser(File file) { indexPosition = Long.parseLong(footer); } catch (Exception e) { - _log.info("exception:" + e, e); + _log.info("exception:{}", e, e); } // Parse to locate indexOffset tag @@ -262,7 +262,7 @@ public MSXMLParser(File file) { fileIN.skip(indexPosition); } catch (Exception e) { - _log.info("File exception:" + e, e); + _log.info("File exception:{}", e, e); } try { diff --git a/ms2/src/org/systemsbiology/jrap/SAX2IndexHandler.java b/ms2/src/org/systemsbiology/jrap/SAX2IndexHandler.java index 326a2961c9..1c2f732ca5 100644 --- a/ms2/src/org/systemsbiology/jrap/SAX2IndexHandler.java +++ b/ms2/src/org/systemsbiology/jrap/SAX2IndexHandler.java @@ -183,7 +183,7 @@ else if(raw.equals("index")) /** Characters. */ @Override - public void characters(char ch[], int start, int length) + public void characters(char[] ch, int start, int length) { if (foundIdxOffset || foundScanOffset) { @@ -193,7 +193,7 @@ public void characters(char ch[], int start, int length) /** Ignorable whitespace. */ @Override - public void ignorableWhitespace(char ch[], int start, int length) + public void ignorableWhitespace(char[] ch, int start, int length) { // Do nothing } // ignorableWhitespace(char[],int,int); diff --git a/ms2/src/org/systemsbiology/jrap/SAX2ScanHandler.java b/ms2/src/org/systemsbiology/jrap/SAX2ScanHandler.java index c873cbb44a..ab9a29ba44 100644 --- a/ms2/src/org/systemsbiology/jrap/SAX2ScanHandler.java +++ b/ms2/src/org/systemsbiology/jrap/SAX2ScanHandler.java @@ -248,7 +248,7 @@ else if (tmpScan.getPrecision() == 64) /** Characters. */ @Override - public void characters(char ch[], int start, int length) + public void characters(char[] ch, int start, int length) { if (inPeak) { @@ -261,7 +261,7 @@ public void characters(char ch[], int start, int length) /** Ignorable whitespace. */ @Override - public void ignorableWhitespace(char ch[], int start, int length) + public void ignorableWhitespace(char[] ch, int start, int length) { // Do nothing } // ignorableWhitespace(char[],int,int); diff --git a/ms2/src/org/systemsbiology/jrap/SAX2ScanHeaderHandler.java b/ms2/src/org/systemsbiology/jrap/SAX2ScanHeaderHandler.java index 3202a4c587..069712341c 100644 --- a/ms2/src/org/systemsbiology/jrap/SAX2ScanHeaderHandler.java +++ b/ms2/src/org/systemsbiology/jrap/SAX2ScanHeaderHandler.java @@ -186,7 +186,7 @@ public void endElement(String uri, String local, String raw) /** Characters. */ @Override - public void characters(char ch[], int start, int length) + public void characters(char[] ch, int start, int length) { if (inPrecursorMZ) { @@ -196,7 +196,7 @@ public void characters(char ch[], int start, int length) /** Ignorable whitespace. */ @Override - public void ignorableWhitespace(char ch[], int start, int length) + public void ignorableWhitespace(char[] ch, int start, int length) { // Do nothing } // ignorableWhitespace(char[],int,int); diff --git a/ms2/test/src/org/labkey/test/tests/ms2/LibraTest.java b/ms2/test/src/org/labkey/test/tests/ms2/LibraTest.java index 1e2b6a32e8..31bce33a88 100644 --- a/ms2/test/src/org/labkey/test/tests/ms2/LibraTest.java +++ b/ms2/test/src/org/labkey/test/tests/ms2/LibraTest.java @@ -32,7 +32,6 @@ import org.labkey.test.util.TextSearcher; import java.io.File; -import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertEquals; @@ -252,10 +251,4 @@ protected void doCleanup(boolean afterTest) throws TestTimeoutException { _containerHelper.deleteProject(getProjectName(), afterTest); } - - @Override - public List getAssociatedModules() - { - return Arrays.asList("ms2"); - } } diff --git a/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java b/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java index 1d6a09cd3f..8aa27f3def 100644 --- a/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java +++ b/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java @@ -953,7 +953,7 @@ private void verifyRunGroupMapQuery() List> rows = executeSelectRowCommand("exp", "RunGroupMap").getRows(); assertEquals("Unexpected number of rows in RunGroupMap", 5, rows.size()); - Set keys = rows.get(0).keySet(); + Set keys = rows.getFirst().keySet(); for (String header : new String[] {"RunGroup", "Created", "CreatedBy", "Run"}) { assertTrue("Run Group Map missing column: " + header, keys.contains(header)); diff --git a/ms2/test/src/org/labkey/test/tests/ms2/MascotTest.java b/ms2/test/src/org/labkey/test/tests/ms2/MascotTest.java index e6dfca20e5..4408a319b4 100644 --- a/ms2/test/src/org/labkey/test/tests/ms2/MascotTest.java +++ b/ms2/test/src/org/labkey/test/tests/ms2/MascotTest.java @@ -111,7 +111,7 @@ private void doSetup() throws IOException if (TestCredentials.hasCredentials(SEARCH_TYPE)) { MASCOT_HOST = TestCredentials.getServer(SEARCH_TYPE).getHost(); - MASCOT_USER_LOGIN = TestCredentials.getServer(SEARCH_TYPE).getLogins().get(0); + MASCOT_USER_LOGIN = TestCredentials.getServer(SEARCH_TYPE).getLogins().getFirst(); MASCOT_PROXY = (String)TestCredentials.getServer(SEARCH_TYPE).getExtraValues().get("proxy"); } diff --git a/nab/src/org/labkey/nab/NabAssayController.java b/nab/src/org/labkey/nab/NabAssayController.java index c14f2effd6..66684007a7 100644 --- a/nab/src/org/labkey/nab/NabAssayController.java +++ b/nab/src/org/labkey/nab/NabAssayController.java @@ -1121,7 +1121,7 @@ public ApiResponse execute(QCControlInfo form, BindException errors) throws Exce List> rawData = dataHandler.calculateDilutionStats(run, getUser(), null, true, true); if (!rawData.isEmpty()) { - ExpData data = run.getDataOutputs().get(0); + ExpData data = run.getDataOutputs().getFirst(); List> specimenRows = new ArrayList<>(); List> cutoffRows = new ArrayList<>(); Map specimenLsidToRowid = new HashMap<>(); diff --git a/nab/src/org/labkey/nab/NabAssayRun.java b/nab/src/org/labkey/nab/NabAssayRun.java index fe7c148792..f32ebba7d3 100644 --- a/nab/src/org/labkey/nab/NabAssayRun.java +++ b/nab/src/org/labkey/nab/NabAssayRun.java @@ -77,9 +77,9 @@ public List getSampleResults() List outputDatas = _run.getOutputDatas(null); //handler.getDataType()); ExpData outputObject = null; - if (outputDatas.size() == 1 && outputDatas.get(0).getDataType() == dataType) + if (outputDatas.size() == 1 && outputDatas.getFirst().getDataType() == dataType) { - outputObject = outputDatas.get(0); + outputObject = outputDatas.getFirst(); } else if (outputDatas.size() > 1) { diff --git a/nab/src/org/labkey/nab/NabDataHandler.java b/nab/src/org/labkey/nab/NabDataHandler.java index 4d8665d117..6edc50024c 100644 --- a/nab/src/org/labkey/nab/NabDataHandler.java +++ b/nab/src/org/labkey/nab/NabDataHandler.java @@ -18,7 +18,6 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.apache.poi.ss.usermodel.DataValidationHelper; import org.jetbrains.annotations.Nullable; import org.labkey.api.assay.plate.AbstractPlateBasedAssayProvider; import org.labkey.api.assay.dilution.DilutionAssayRun; @@ -53,7 +52,6 @@ import org.labkey.nab.query.NabProtocolSchema; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; @@ -375,7 +373,7 @@ protected List parseList(FileLike dataFile, List } if (!plates.isEmpty()) - LOG.debug("found " + plates.size() + " list style plate data in " + dataFile.getName()); + LOG.debug("found {} list style plate data in {}", plates.size(), dataFile.getName()); return plates; } diff --git a/nab/src/org/labkey/nab/NabManager.java b/nab/src/org/labkey/nab/NabManager.java index bc7946865e..a96000524e 100644 --- a/nab/src/org/labkey/nab/NabManager.java +++ b/nab/src/org/labkey/nab/NabManager.java @@ -109,7 +109,7 @@ public ExpRun getNAbRunByObjectId(long objectId) List runIds = new TableSelector(tableInfo.getColumn("RunId"), filter, null).getArrayList(Integer.class); if (!runIds.isEmpty()) { - ExpRun run = ExperimentService.get().getExpRun(runIds.get(0)); + ExpRun run = ExperimentService.get().getExpRun(runIds.getFirst()); if (null != run) return run; } diff --git a/nab/src/org/labkey/nab/NabUploadWizardAction.java b/nab/src/org/labkey/nab/NabUploadWizardAction.java index b4c4cb7cf1..a4c2771057 100644 --- a/nab/src/org/labkey/nab/NabUploadWizardAction.java +++ b/nab/src/org/labkey/nab/NabUploadWizardAction.java @@ -37,7 +37,7 @@ import org.springframework.validation.ObjectError; import jakarta.servlet.ServletException; -import java.sql.SQLException; + import java.util.Map; @RequiresPermission(InsertPermission.class) @@ -116,7 +116,7 @@ public void validateStep(NabRunUploadForm form, Errors errors) } @Override - public boolean executeStep(NabRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(NabRunUploadForm form, BindException errors) throws ServletException, ExperimentException { execute(form, errors, _postedVirusProperties); execute(form, errors, _postedSampleProperties); diff --git a/nab/src/org/labkey/nab/NabVirusPropertyHelper.java b/nab/src/org/labkey/nab/NabVirusPropertyHelper.java index 4ca6fd67fd..4a7bb6ad28 100644 --- a/nab/src/org/labkey/nab/NabVirusPropertyHelper.java +++ b/nab/src/org/labkey/nab/NabVirusPropertyHelper.java @@ -56,7 +56,7 @@ public Map> getSampleProperties(HttpServletR { // because of the optimization to display a single virus in the insert view, we need to // pull the posted values from the request instead of using the property helper - String virusGroupName = (_sampleNames.size() == 1) ? _sampleNames.get(0) : null; + String virusGroupName = (_sampleNames.size() == 1) ? _sampleNames.getFirst() : null; Map> result = new LinkedHashMap<>(); Map sampleProperties = new HashMap<>(); diff --git a/nab/src/org/labkey/nab/SinglePlateNabAssayRun.java b/nab/src/org/labkey/nab/SinglePlateNabAssayRun.java index 96e783da77..015347e964 100644 --- a/nab/src/org/labkey/nab/SinglePlateNabAssayRun.java +++ b/nab/src/org/labkey/nab/SinglePlateNabAssayRun.java @@ -322,7 +322,7 @@ protected String getVirusName(String virusWellGroupName) List outputDatas = _run.getOutputDatas(null); if (!outputDatas.isEmpty()) { - Lsid virusLsid = DilutionDataHandler.createVirusWellGroupLsid(outputDatas.get(0), virusWellGroupName); + Lsid virusLsid = DilutionDataHandler.createVirusWellGroupLsid(outputDatas.getFirst(), virusWellGroupName); AssayProtocolSchema schema = _provider.createProtocolSchema(getUser(), _run.getContainer(), _protocol, null); TableInfo virusTable = schema.createTable(DilutionManager.VIRUS_TABLE_NAME, null); if (null != virusTable) @@ -331,7 +331,7 @@ protected String getVirusName(String virusWellGroupName) SimpleFilter filter = new SimpleFilter(FieldKey.fromString("VirusLsid"), virusLsid.toString()); List results = new TableSelector(columnInfo, filter, null).getArrayList(String.class); if (!results.isEmpty()) - return results.get(0); + return results.getFirst(); } } return null; diff --git a/nab/src/org/labkey/nab/SinglePlateNabDataHandler.java b/nab/src/org/labkey/nab/SinglePlateNabDataHandler.java index 45d028beb6..c3a71f92cd 100644 --- a/nab/src/org/labkey/nab/SinglePlateNabDataHandler.java +++ b/nab/src/org/labkey/nab/SinglePlateNabDataHandler.java @@ -95,7 +95,7 @@ public DataType getDataType() protected DilutionAssayRun createDilutionAssayRun(DilutionAssayProvider provider, ExpRun run, List plates, User user, List sortedCutoffs, StatsService.CurveFitType fit) { - return new SinglePlateNabAssayRun(provider, run, plates.get(0), user, sortedCutoffs, fit); + return new SinglePlateNabAssayRun(provider, run, plates.getFirst(), user, sortedCutoffs, fit); } @Override @@ -214,12 +214,12 @@ protected double[][] parse(FileLike dataFile, Load load, int expectedRows, int e List plates = parseList(dataFile, rows, "Well", resultColumnHeader, 1, expectedRows, expectedCols, errors); if (!errors.isEmpty()) { - LOG.warn("Unable to parse list style data from file (retrying using grid method) : " + errors.get(0).getMessage()); + LOG.warn("Unable to parse list style data from file (retrying using grid method) : {}", errors.getFirst().getMessage()); } if (plates != null && !plates.isEmpty()) { - return plates.get(0); + return plates.getFirst(); } } } @@ -288,7 +288,7 @@ protected void prepareWellGroups(List groups, ExpMaterial sampleInput { if (groups.size() != 1) throw new IllegalStateException("Expected exactly 1 well group per material for single-plate NAb runs. Found " + groups.size()); - WellGroup group = groups.get(0); + WellGroup group = groups.getFirst(); Map sampleProperties = sampleInput.getPropertyValues(); for (DomainProperty property : properties.values()) group.setProperty(property.getName(), sampleProperties.get(property.getPropertyDescriptor())); diff --git a/nab/src/org/labkey/nab/multiplate/CrossPlateDilutionNabAssayRun.java b/nab/src/org/labkey/nab/multiplate/CrossPlateDilutionNabAssayRun.java index 07b233e087..472040212e 100644 --- a/nab/src/org/labkey/nab/multiplate/CrossPlateDilutionNabAssayRun.java +++ b/nab/src/org/labkey/nab/multiplate/CrossPlateDilutionNabAssayRun.java @@ -45,7 +45,7 @@ public CrossPlateDilutionNabAssayRun(DilutionAssayProvider provider, ExpRun r super(provider, run, user, cutoffs, renderCurveFitType); _plates = plates; - int sampleCount = plates.get(0).getWellGroupCount(WellGroup.Type.SPECIMEN); + int sampleCount = plates.getFirst().getWellGroupCount(WellGroup.Type.SPECIMEN); _dilutionSummaries = new DilutionSummary[sampleCount]; Map> sampleGroups = new LinkedHashMap<>(); for (Plate plate : plates) diff --git a/nab/src/org/labkey/nab/multiplate/HighThroughputNabDataHandler.java b/nab/src/org/labkey/nab/multiplate/HighThroughputNabDataHandler.java index 7b4178301d..32e17ae833 100644 --- a/nab/src/org/labkey/nab/multiplate/HighThroughputNabDataHandler.java +++ b/nab/src/org/labkey/nab/multiplate/HighThroughputNabDataHandler.java @@ -159,7 +159,7 @@ protected List parse(FileLike dataFile, ColumnDescriptor[] columns, List errors = new ArrayList<>(); List values = parseList(dataFile, rows, LOCATION_COLUMNN_HEADER, resultColumnHeader, 0, expectedRows, expectedCols, errors); if (!errors.isEmpty()) - throw errors.get(0); + throw errors.getFirst(); if (values != null && !values.isEmpty()) return values; } @@ -179,7 +179,7 @@ protected void prepareWellGroups(List groups, ExpMaterial sampleInput { List wells = new ArrayList<>(); // All well groups use the same plate template, so it's okay to just check the dilution direction of the first group: - boolean reverseDirection = Boolean.parseBoolean((String) groups.get(0).getProperty(SampleProperty.ReverseDilutionDirection.name())); + boolean reverseDirection = Boolean.parseBoolean((String) groups.getFirst().getProperty(SampleProperty.ReverseDilutionDirection.name())); Map sampleProperties = sampleInput.getPropertyValues(); diff --git a/nab/src/org/labkey/nab/multiplate/SinglePlateDilutionSamplePropertyHelper.java b/nab/src/org/labkey/nab/multiplate/SinglePlateDilutionSamplePropertyHelper.java index c030a7fde1..bdeb5e9059 100644 --- a/nab/src/org/labkey/nab/multiplate/SinglePlateDilutionSamplePropertyHelper.java +++ b/nab/src/org/labkey/nab/multiplate/SinglePlateDilutionSamplePropertyHelper.java @@ -30,7 +30,6 @@ import jakarta.servlet.http.HttpServletRequest; import org.labkey.vfs.FileLike; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; diff --git a/nab/src/org/labkey/nab/query/NabVirusDomainKind.java b/nab/src/org/labkey/nab/query/NabVirusDomainKind.java index 6bbd3f0d00..3fde9599a3 100644 --- a/nab/src/org/labkey/nab/query/NabVirusDomainKind.java +++ b/nab/src/org/labkey/nab/query/NabVirusDomainKind.java @@ -17,7 +17,6 @@ import org.jetbrains.annotations.NotNull; import org.labkey.api.assay.AssayDomainKind; -import org.labkey.api.collections.CaseInsensitiveHashSet; import org.labkey.api.data.DbScope; import org.labkey.api.data.JdbcType; import org.labkey.api.data.PropertyStorageSpec; diff --git a/protein/api-src/org/labkey/api/protein/CoverageProtein.java b/protein/api-src/org/labkey/api/protein/CoverageProtein.java index 0e864d0a8b..3909dc1a65 100644 --- a/protein/api-src/org/labkey/api/protein/CoverageProtein.java +++ b/protein/api-src/org/labkey/api/protein/CoverageProtein.java @@ -273,7 +273,7 @@ protected List getUncoalescedPeptideRanges(@Nullable ModificationHandler if (_sequence.startsWith(peptide.substring(1))) ranges.add(new Range(0, peptide.length() - 2, cnt)); else - _log.debug("Can't find " + peptide + " at start of sequence"); + _log.debug("Can't find {} at start of sequence", peptide); } else if (peptide.charAt(peptide.length() - 1) == '-') { @@ -284,7 +284,7 @@ else if (peptide.charAt(peptide.length() - 1) == '-') if (_sequence.endsWith(peptide.substring(0, peptide.length() - 1))) ranges.add(new Range(start, length, cnt)); else - _log.debug("Can't find " + peptide + " at end of sequence"); + _log.debug("Can't find {} at end of sequence", peptide); } else { @@ -292,7 +292,7 @@ else if (peptide.charAt(peptide.length() - 1) == '-') if (start <= -1) { - _log.debug("Can't find " + peptide + " in middle of sequence"); + _log.debug("Can't find {} in middle of sequence", peptide); continue; } diff --git a/protein/api-src/org/labkey/api/protein/annotation/CustomAnnotationSetManager.java b/protein/api-src/org/labkey/api/protein/annotation/CustomAnnotationSetManager.java index a7ed43a30d..f571ed9e02 100644 --- a/protein/api-src/org/labkey/api/protein/annotation/CustomAnnotationSetManager.java +++ b/protein/api-src/org/labkey/api/protein/annotation/CustomAnnotationSetManager.java @@ -122,11 +122,11 @@ public static CustomAnnotationSet getCustomAnnotationSet(Container c, long id, b } } assert false : "More than one matching set was found but none were in the current container"; - return matches.get(0); + return matches.getFirst(); } if (matches.size() == 1) { - return matches.get(0); + return matches.getFirst(); } return null; } diff --git a/protein/api-src/org/labkey/api/protein/annotation/ProtSprotOrgMap.java b/protein/api-src/org/labkey/api/protein/annotation/ProtSprotOrgMap.java index 16d830087d..4df6a7c5b6 100644 --- a/protein/api-src/org/labkey/api/protein/annotation/ProtSprotOrgMap.java +++ b/protein/api-src/org/labkey/api/protein/annotation/ProtSprotOrgMap.java @@ -126,7 +126,7 @@ public static void loadProtSprotOrgMap() throws SQLException { ps.executeBatch(); ps.clearBatch(); - _log.debug("SprotOrgMap: " + orgLineCount + " lines loaded"); + _log.debug("SprotOrgMap: {} lines loaded", orgLineCount); } } @@ -137,7 +137,7 @@ public static void loadProtSprotOrgMap() throws SQLException throw UnexpectedException.wrap(e, "Problem loading ProtSprotOrgMap on line " + (orgLineCount + 1)); } - _log.info("Finished reloading ProtSprotOrgMap in " + (System.currentTimeMillis() - start)/1000.0 + " seconds"); + _log.info("Finished reloading ProtSprotOrgMap in {} seconds", (System.currentTimeMillis() - start) / 1000.0); } } diff --git a/protein/api-src/org/labkey/api/protein/annotation/XMLProteinHandler.java b/protein/api-src/org/labkey/api/protein/annotation/XMLProteinHandler.java index fd2917e4aa..eee5c1be3b 100644 --- a/protein/api-src/org/labkey/api/protein/annotation/XMLProteinHandler.java +++ b/protein/api-src/org/labkey/api/protein/annotation/XMLProteinHandler.java @@ -268,7 +268,7 @@ public void endElement(String uri, String local, String qname) throws SAXExcepti * Characters. */ @Override - public void characters(char ch[], int start, int length) + public void characters(char[] ch, int start, int length) { _loader.handleThreadStateChangeRequests(); if (skipMe != null) return; @@ -285,7 +285,7 @@ public void characters(char ch[], int start, int length) * Ignorable whitespace. */ @Override - public void ignorableWhitespace(char ch[], int start, int length) + public void ignorableWhitespace(char[] ch, int start, int length) { _loader.handleThreadStateChangeRequests(); } @@ -300,7 +300,7 @@ public void processingInstruction(String target, String data) if (skipMe != null) return; if (data != null && !data.isEmpty()) { - _loader.getLogger().warn("PROCESSING INSTRUCTION: target=" + target + "; data=" + data); + _loader.getLogger().warn("PROCESSING INSTRUCTION: target={}; data={}", target, data); } } diff --git a/protein/api-src/org/labkey/api/protein/fasta/FastaDbLoader.java b/protein/api-src/org/labkey/api/protein/fasta/FastaDbLoader.java index abaff4006d..8ab4a0b9cf 100644 --- a/protein/api-src/org/labkey/api/protein/fasta/FastaDbLoader.java +++ b/protein/api-src/org/labkey/api/protein/fasta/FastaDbLoader.java @@ -149,9 +149,7 @@ public void parseFile(Logger logger) throws SQLException, IOException if (!errors.isEmpty()) { - logger.error("This FASTA file has " + errors.size() + " duplicate protein name" + (1 == errors.size() ? "" : "s") + ", listed below. " + - "Search engines and the Trans-Proteomic Pipeline use these names to link to specific protein sequences so the names must be unique. " + - "You should remove or otherwise disambiguate the duplicate entries from this FASTA file and re-run your search."); + logger.error("This FASTA file has {} duplicate protein name{}, listed below. Search engines and the Trans-Proteomic Pipeline use these names to link to specific protein sequences so the names must be unique. You should remove or otherwise disambiguate the duplicate entries from this FASTA file and re-run your search.", errors.size(), 1 == errors.size() ? "" : "s"); String errorString = StringUtils.join(errors, "\n"); logger.error(errorString); @@ -313,7 +311,7 @@ protected void preProcessSequences(List mouthful, Connection c, Log fdbu._addSeqStmt.clearBatch(); handleThreadStateChangeRequests(); c.setAutoCommit(true); - logger.debug("Sequences = " + transactionCount + ". preProcessSequences() total elapsed time was " + (System.currentTimeMillis() - startTime)/1000 + " seconds for this mouthful."); + logger.debug("Sequences = {}. preProcessSequences() total elapsed time was {} seconds for this mouthful.", transactionCount, (System.currentTimeMillis() - startTime) / 1000); guessBySharedHash(logger); } @@ -326,7 +324,7 @@ protected void guessBySharedHash(Logger logger) throws SQLException fdbu._guessOrgBySharedHashStmt.setString(2, "unknown"); int rc = fdbu._guessOrgBySharedHashStmt.executeUpdate(); - logger.debug("Updated " + rc + " Sequences in guessBySharedHash"); + logger.debug("Updated {} Sequences in guessBySharedHash", rc); } @@ -510,18 +508,14 @@ protected void processMouthful(Connection c, List mouthful, Logger if (associatedFastaId <= 0) setAssociatedFastaId(guessAssociatedFastaId()); int lookupsUpdated = insertLookups(associatedFastaId); - logger.debug("Updated " + lookupsUpdated + " lookups"); + logger.debug("Updated {} lookups", lookupsUpdated); handleThreadStateChangeRequests("In Process mouthful - finished mouthful"); fdbu._emptySeqsStmt.executeUpdate(); fdbu._emptyIdentsStmt.executeUpdate(); // housekeeping and bookkeeping - logger.info("Batch complete. Added: " + - orgsAdded + " organisms; " + - seqsAdded + " sequences; " + - identsAdded + " identifiers; " + - annotsAdded + " annotations"); + logger.info("Batch complete. Added: {} organisms; {} sequences; {} identifiers; {} annotations", orgsAdded, seqsAdded, identsAdded, annotsAdded); fdbu._getCurrentInsertStatsStmt.setInt(1, currentInsertId); int priorseqs; @@ -620,7 +614,7 @@ public void parse(Logger logger, OrganismGuessStrategy parsingStrategy, Organism setOrganismIsToGuessed(rs.getInt(2) == 1); } else - logger.error("Can't find insert id " + currentInsertId + " in parse recovery."); + logger.error("Can't find insert id {} in parse recovery.", currentInsertId); } skipEntries = new SqlSelector(ProteinSchema.getSchema(), "SELECT RecordsProcessed FROM " + @@ -659,7 +653,7 @@ public void parse(Logger logger, OrganismGuessStrategy parsingStrategy, Organism Integer percentComplete = proteinIterator.getPercentCompleteIfChanged(); if (null != percentComplete) - logger.info("Importing FASTA file sequences: " + percentComplete + "% complete"); + logger.info("Importing FASTA file sequences: {}% complete", percentComplete); } if (protCount / 3 < negCount) @@ -732,9 +726,9 @@ public static synchronized int loadAnnotations(String path, String fileName, Str new SqlSelector(ProteinSchema.getSchema(), "SELECT MIN(FileName) FROM " + ProteinSchema.getTableInfoFastaLoads() + " WHERE FileChecksum = ?", hash).getObject(String.class); if (convertedName.equals(previousFileWithSameChecksum)) - log.info("FASTA file \"" + convertedName + "\" has already been imported"); + log.info("FASTA file \"{}\" has already been imported", convertedName); else - log.info("FASTA file \"" + convertedName + "\" not imported, but another file, '" + previousFileWithSameChecksum + "', has the same checksum"); + log.info("FASTA file \"{}\" not imported, but another file, '{}', has the same checksum", convertedName, previousFileWithSameChecksum); return loadedFile.getFastaId(); } diff --git a/protein/api-src/org/labkey/api/protein/fasta/FastaProtein.java b/protein/api-src/org/labkey/api/protein/fasta/FastaProtein.java index 039b7edf1e..91a42459fb 100644 --- a/protein/api-src/org/labkey/api/protein/fasta/FastaProtein.java +++ b/protein/api-src/org/labkey/api/protein/fasta/FastaProtein.java @@ -231,7 +231,7 @@ public static Map> identParse(String fastaIdentifierString, if (fastaIdentifierString.contains(" ")) fastaIdentifierString = fastaIdentifierString.substring(0, fastaIdentifierString.indexOf(" ")); fastaIdentifierString = fastaIdentifierString.replaceAll(":", "|"); fastaIdentifierString = fastaIdentifierString.replace("|$", ""); - String tokens[] = fastaIdentifierString.split(SEPARATOR_PATTERN); + String[] tokens = fastaIdentifierString.split(SEPARATOR_PATTERN); for (int i = 0; i < tokens.length; i++) { diff --git a/protein/api-src/org/labkey/api/protein/go/GoLoader.java b/protein/api-src/org/labkey/api/protein/go/GoLoader.java index cd39db1fe5..f383764869 100644 --- a/protein/api-src/org/labkey/api/protein/go/GoLoader.java +++ b/protein/api-src/org/labkey/api/protein/go/GoLoader.java @@ -119,7 +119,7 @@ private static synchronized GoLoader ensureOneLoader(GoLoader newLoader) return null; } - protected abstract InputStream getInputStream() throws IOException, ServletException; + protected abstract InputStream getInputStream() throws IOException; public void load() { @@ -266,7 +266,7 @@ private void loadSingleGoFile(GoLoadBean bean, String filename, InputStream is) if (s.length() > limit) { val = s.substring(0, column.getScale()); - _log.warn(ti + ": value in " + cols[kindex] + " column in row " + (orgLineCount + 1) + " truncated from " + s.length() + " to " + limit + " characters."); + _log.warn("{}: value in {} column in row {} truncated from {} to {} characters.", ti, cols[kindex], orgLineCount + 1, s.length(), limit); } } } diff --git a/protein/api-src/org/labkey/api/protein/organism/GuessOrgByParsing.java b/protein/api-src/org/labkey/api/protein/organism/GuessOrgByParsing.java index 091a0f6774..07ad6cc595 100644 --- a/protein/api-src/org/labkey/api/protein/organism/GuessOrgByParsing.java +++ b/protein/api-src/org/labkey/api/protein/organism/GuessOrgByParsing.java @@ -64,7 +64,7 @@ public String guess(ProteinPlus p) int taxpos = header.indexOf("TAX_ID"); if (taxpos != -1) { - String tmp[] = header.substring(taxpos).split("="); + String[] tmp = header.substring(taxpos).split("="); if (tmp.length > 1) { String taxid = tmp[1].split("[^\\d]")[0]; @@ -130,7 +130,7 @@ public String guess(ProteinPlus p) phrase = phrase.replaceAll(",", " "); phrase = phrase.replaceAll("=", " "); phrase = phrase.replaceAll("'", ""); - String words[] = phrase.toUpperCase().split("\\s+"); + String[] words = phrase.toUpperCase().split("\\s+"); if (words[0].indexOf('(') != -1) continue; if (words[0].equalsIgnoreCase("ORF")) continue; diff --git a/protein/api-src/org/labkey/api/protein/uniprot/CharactersParseActions.java b/protein/api-src/org/labkey/api/protein/uniprot/CharactersParseActions.java index 98751c7319..31ef2de698 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/CharactersParseActions.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/CharactersParseActions.java @@ -25,7 +25,7 @@ public class CharactersParseActions extends ParseActions protected String _accumulated; @Override - public void characters(ParseContext context, char ch[], int start, int len) + public void characters(ParseContext context, char[] ch, int start, int len) { if (context.isIgnorable()) { diff --git a/protein/api-src/org/labkey/api/protein/uniprot/ParserTree.java b/protein/api-src/org/labkey/api/protein/uniprot/ParserTree.java index 5bc62bebc9..99ef87abad 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/ParserTree.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/ParserTree.java @@ -127,7 +127,7 @@ public ParserTreeNode getChild(String elementName) if (result == null) { result = new ParserTreeNode(this, elementName); - _log.debug("Detected " + result.getDescription() + " element, but not parsing it."); + _log.debug("Detected {} element, but not parsing it.", result.getDescription()); _children.put(elementName, result); } return result; diff --git a/protein/api-src/org/labkey/api/protein/uniprot/uniprot.java b/protein/api-src/org/labkey/api/protein/uniprot/uniprot.java index ff8280202b..3b69a8d586 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/uniprot.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/uniprot.java @@ -145,7 +145,7 @@ public void endElement(ParseContext context) throws SAXException //c.commit(); long totalTime = System.currentTimeMillis() - _startTime; - _log.info("Finished uniprot upload in " + totalTime + " milliseconds"); + _log.info("Finished uniprot upload in {} milliseconds", totalTime); } // All Database Stuff Follows @@ -439,13 +439,13 @@ public void insertTables(ParseContext context, Connection conn) throws SQLExcept try { int identsProcessed = insertIdentifiers(context, conn); - _log.debug("Inserted " + identsProcessed + " identifiers into temp table"); + _log.debug("Inserted {} identifiers into temp table", identsProcessed); handleThreadStateChangeRequests(); try { int annotsProcessed = insertAnnotations(context, conn); - _log.debug("Inserted " + annotsProcessed + " annotations into temp table"); + _log.debug("Inserted {} annotations into temp table", annotsProcessed); identsAdded = mergeIdentifiers(context, conn); annotsAdded = mergeAnnotations(context, conn); @@ -468,11 +468,7 @@ public void insertTables(ParseContext context, Connection conn) throws SQLExcept conn.setAutoCommit(true); handleThreadStateChangeRequests(); - _log.info("Batch complete. Added: " + - orgsAdded + " organisms; " + - seqsAdded + " sequences; " + - identsAdded + " identifiers; " + - annotsAdded + " annotations"); + _log.info("Batch complete. Added: {} organisms; {} sequences; {} identifiers; {} annotations", orgsAdded, seqsAdded, identsAdded, annotsAdded); _getCurrentInsertStats.setInt(1, getCurrentInsertId()); int priorseqs; @@ -512,13 +508,7 @@ public void insertTables(ParseContext context, Connection conn) throws SQLExcept _updateInsertion.executeUpdate(); //conn.commit(); - _log.info( - "Added: " + - orgsAdded + " organisms; " + - seqsAdded + " sequences; " + - identsAdded + " identifiers; " + - annotsAdded + " annotations" - ); + _log.info("Added: {} organisms; {} sequences; {} identifiers; {} annotations", orgsAdded, seqsAdded, identsAdded, annotsAdded); } public int insertOrganisms(ParseContext context, Connection conn) throws SQLException @@ -527,7 +517,7 @@ public int insertOrganisms(ParseContext context, Connection conn) throws SQLExce _addOrg.setTimestamp(6, new Timestamp(new Date().getTime())); //Add current mouthful of Organisms - _log.debug((new java.util.Date()) + " Processing organisms"); + _log.debug("{} Processing organisms", new Date()); // All organism records. Each one is a HashMap for (UniprotOrganism curOrg : context.getOrganisms()) @@ -592,7 +582,7 @@ public int insertSequences(ParseContext context, Connection conn) throws SQLExce _addSeq.setTimestamp(13, new Timestamp(new Date().getTime())); //Process current mouthful of sequences - _log.debug(new java.util.Date() + " Processing sequences"); + _log.debug("{} Processing sequences", new Date()); for (UniprotSequence curSeq : context.getSequences()) { transactionCount++; @@ -703,7 +693,7 @@ public int insertIdentifiers(ParseContext context, Connection conn) throws SQLEx int transactionCount = 0; // Process current mouthful of identifiers - _log.debug(new java.util.Date() + " Processing identifiers"); + _log.debug("{} Processing identifiers", new Date()); _addIdent.setTimestamp(6, new java.sql.Timestamp(new java.util.Date().getTime())); for (UniprotIdentifier curIdent : context.getIdentifiers()) { @@ -733,7 +723,7 @@ public int insertIdentifiers(ParseContext context, Connection conn) throws SQLEx conn.commit(); _addIdent.clearBatch(); - _log.debug("Starting to create indices on " + _iTableName); + _log.debug("Starting to create indices on {}", _iTableName); executeUpdate("create index iIdentifier on " + _iTableName + "(Identifier)", conn); executeUpdate("create index iIdenttype on " + _iTableName + "(IdentType)", conn); executeUpdate("create index iSpeciesGenusHash on " + _iTableName + "(Species, Genus, Hash)", conn); @@ -753,7 +743,7 @@ private int mergeIdentifiers(ParseContext context, Connection conn) throws SQLEx { // Clear these after the annotations that reference them have already been deleted int identifiersDeleted = executeUpdate(_clearExistingIdentifiersCommand, conn, "DeleteExistingIdents"); - _log.debug("Deleted " + identifiersDeleted + " existing identifiers"); + _log.debug("Deleted {} existing identifiers", identifiersDeleted); } int result = executeUpdate(_insertIntoIdentsCommand, conn, "InsertIntoIdents"); @@ -767,7 +757,7 @@ private int executeUpdate(String sql, Connection conn, String description) throw long startTime = System.currentTimeMillis(); int result = executeUpdate(sql, conn); long totalTime = System.currentTimeMillis() - startTime; - _log.debug(description + " took " + totalTime + " milliseconds"); + _log.debug("{} took {} milliseconds", description, totalTime); return result; } @@ -795,7 +785,7 @@ public int insertAnnotations(ParseContext context, Connection conn) throws SQLEx _addAnnot.setTimestamp(10, new java.sql.Timestamp(new java.util.Date().getTime())); transactionCount++; - _log.debug(new java.util.Date() + " Processing annotations"); + _log.debug("{} Processing annotations", new Date()); for (UniprotAnnotation curAnnot : context.getAnnotations()) { String annotVal = curAnnot.getAnnotVal(); @@ -852,7 +842,7 @@ public int insertAnnotations(ParseContext context, Connection conn) throws SQLEx handleThreadStateChangeRequests(); _addAnnot.clearBatch(); - _log.debug("Starting to create indices on " + _aTableName); + _log.debug("Starting to create indices on {}", _aTableName); executeUpdate("create index aAnnot_val on " + _aTableName + "(Annot_Val)", conn); executeUpdate("create index aAnnotType on " + _aTableName + "(AnnotType)", conn); executeUpdate("create index aHashGenusSpecies on " + _aTableName + "(Hash, Genus, Species)", conn); @@ -867,7 +857,7 @@ public int insertAnnotations(ParseContext context, Connection conn) throws SQLEx if (context.isClearExisting()) { int annotationsDeleted = executeUpdate(_clearExistingAnnotationsCommand, conn, "DeleteExistingAnnots"); - _log.debug("Deleted " + annotationsDeleted + " existing annotations."); + _log.debug("Deleted {} existing annotations.", annotationsDeleted); } return context.getAnnotations().size(); diff --git a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_dbReference_property.java b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_dbReference_property.java index d10c5ffcbb..f7941442eb 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_dbReference_property.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_dbReference_property.java @@ -38,7 +38,7 @@ public void beginElement(ParseContext context, Attributes attrs) { return; } - UniprotIdentifier sRefContents = surroundingRef.get(surroundingRef.size() - 1); + UniprotIdentifier sRefContents = surroundingRef.getLast(); String refType = sRefContents.getIdentifier(); if (refType == null || !refType.startsWith("GO:")) { diff --git a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_begin.java b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_begin.java index 04b3082871..74c90fe514 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_begin.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_begin.java @@ -31,7 +31,7 @@ public void beginElement(ParseContext context, Attributes attrs) { return; } - UniprotAnnotation surroundingFeature = context.getAnnotations().get(context.getAnnotations().size() - 1); + UniprotAnnotation surroundingFeature = context.getAnnotations().getLast(); String position = attrs.getValue("position"); if (position != null) surroundingFeature.setStartPos(Integer.valueOf(position)); diff --git a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_end.java b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_end.java index eecbdcefbf..4f4b849906 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_end.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_feature_location_end.java @@ -32,7 +32,7 @@ public void beginElement(ParseContext context, Attributes attrs) return; } - UniprotAnnotation surroundingFeature = context.getAnnotations().get(context.getAnnotations().size() - 1); + UniprotAnnotation surroundingFeature = context.getAnnotations().getLast(); String position = attrs.getValue("position"); if (position != null) surroundingFeature.setEndPos(Integer.valueOf(position)); diff --git a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_organism_name.java b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_organism_name.java index 26f313c880..945d8c8b4a 100644 --- a/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_organism_name.java +++ b/protein/api-src/org/labkey/api/protein/uniprot/uniprot_entry_organism_name.java @@ -68,18 +68,18 @@ public void endElement(ParseContext context) throws SAXException if (_curType.equalsIgnoreCase("scientific") || _curType.equalsIgnoreCase("full")) { String together = _accumulated.trim(); - String separate[] = together.split(" "); + String[] separate = together.split(" "); if (separate.length < 2) { - _log.warn("Found organism with this name: '" + together + "'"); + _log.warn("Found organism with this name: '{}'", together); } if (separate.length >= 1) { - organism.setGenus(separate[0].replaceAll("'", "")); + organism.setGenus(separate[0].replace("'", "")); } if (separate.length >= 2) { - organism.setSpecies(separate[1].replaceAll("'", "")); + organism.setSpecies(separate[1].replace("'", "")); } if ((_curType.equalsIgnoreCase("full") || separate.length > 2)) { diff --git a/protein/src/org/labkey/protein/ProteinServiceImpl.java b/protein/src/org/labkey/protein/ProteinServiceImpl.java index 4fd4f649d3..a3f143eacf 100644 --- a/protein/src/org/labkey/protein/ProteinServiceImpl.java +++ b/protein/src/org/labkey/protein/ProteinServiceImpl.java @@ -212,7 +212,7 @@ private WebPartView getProteinCoverageView(int seqId, List getProteinCoverageView(int seqId, List peptideCharacteristics, int aaRowWidth, boolean showEntireFragmentInCoverage, @Nullable String accessionForFeatures) { - return getProteinCoverageView(seqId, peptideCharacteristics, aaRowWidth, showEntireFragmentInCoverage, accessionForFeatures, bean -> {}); + return getProteinCoverageView(seqId, peptideCharacteristics, aaRowWidth, showEntireFragmentInCoverage, accessionForFeatures, _ -> {}); } @Override @@ -253,7 +253,7 @@ public List getProteinFeatures(String accession) } catch (DeadlockPreventingException e) { - LOG.warn("Timed out trying to fetch features from Uniprot for accession '" + accession + "'"); + LOG.warn("Timed out trying to fetch features from Uniprot for accession '{}'", accession); } } return Collections.emptyList(); @@ -370,17 +370,17 @@ else if (location.getChildNodes().getLength() == 2) { if (responseCode != 404) { - LOG.warn("HTTP GET failed to " + url + " with error code " + responseCode); + LOG.warn("HTTP GET failed to {} with error code {}", url, responseCode); } else { - LOG.debug("HTTP GET failed to " + url + " with error code " + responseCode); + LOG.debug("HTTP GET failed to {} with error code {}", url, responseCode); } } } catch (IOException | SAXException | ParserConfigurationException e) { - LOG.warn("Failed querying Uniprot for " + accession, e); + LOG.warn("Failed querying Uniprot for {}", accession, e); } result.sort(Comparator.comparingInt(ProteinFeature::getStartIndex)); diff --git a/protein/src/org/labkey/protein/view/proteinCoverageMap.jsp b/protein/src/org/labkey/protein/view/proteinCoverageMap.jsp index c2e171ca74..230ab118f0 100644 --- a/protein/src/org/labkey/protein/view/proteinCoverageMap.jsp +++ b/protein/src/org/labkey/protein/view/proteinCoverageMap.jsp @@ -205,7 +205,7 @@ legendValues.set(10, min); int closestToMeanIndex = 0; - var minDiff = iValues.get(0); + var minDiff = iValues.getFirst(); // calculate closest to mean index of peptidesForSequenceMapDisplay for sequence graph coloring for (int i = 0; i < peptidesForSequenceMapDisplay.size(); i++) @@ -250,7 +250,7 @@ peptideCharacteristic.setForegroundColor(ColorGradient.getContrastingForegroundColor(peptideColor)); } - peptidesForSequenceMapDisplay.get(peptidesForSequenceMapDisplay.size() - 1).setColor("#" + Integer.toHexString(one.getRGB()).substring(2)); + peptidesForSequenceMapDisplay.getLast().setColor("#" + Integer.toHexString(one.getRGB()).substring(2)); // assign red colors from median to first -> lighter to darker one = new Color(187, 78, 78); diff --git a/signalData/src/org/labkey/signaldata/SignalDataController.java b/signalData/src/org/labkey/signaldata/SignalDataController.java index 5fbc76a2df..f70e086182 100644 --- a/signalData/src/org/labkey/signaldata/SignalDataController.java +++ b/signalData/src/org/labkey/signaldata/SignalDataController.java @@ -183,7 +183,7 @@ public ApiResponse execute(SignalDataResourceForm form, BindException errors) th props.put("FilePath", path); props.put("FileName", fileName); results.add(props); - for (Map.Entry entry : rows.get(0).entrySet()) + for (Map.Entry entry : rows.getFirst().entrySet()) { Object value = entry.getValue(); if (null != value) diff --git a/signalData/src/org/labkey/signaldata/SignalDataModule.java b/signalData/src/org/labkey/signaldata/SignalDataModule.java index ec9e93fa36..7d1b9e471c 100644 --- a/signalData/src/org/labkey/signaldata/SignalDataModule.java +++ b/signalData/src/org/labkey/signaldata/SignalDataModule.java @@ -18,7 +18,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.labkey.api.data.Container; import org.labkey.api.data.UpgradeCode; import org.labkey.api.module.DefaultModule; import org.labkey.api.module.ModuleContext; @@ -94,10 +93,4 @@ public boolean hasScripts() return new SignalDataUpgradeCode(); } - @Override - @NotNull - public Collection getSummary(Container c) - { - return Collections.emptyList(); - } } \ No newline at end of file diff --git a/signalData/src/org/labkey/signaldata/SignalDataUpgradeCode.java b/signalData/src/org/labkey/signaldata/SignalDataUpgradeCode.java index 364138ed7e..7b9d724642 100644 --- a/signalData/src/org/labkey/signaldata/SignalDataUpgradeCode.java +++ b/signalData/src/org/labkey/signaldata/SignalDataUpgradeCode.java @@ -41,7 +41,7 @@ public static void updateDataFileField(ModuleContext ctx) throws Exception DomainProperty dataFile = domain.getPropertyByName("DataFile"); if (dataFile != null && dataFile.isRequired()) { - LOG.info(String.format("Updating Signal Data assay in folder '%s'", c.getPath())); + LOG.info("Updating Signal Data assay in folder '{}'", c.getPath()); dataFile.setRequired(false); domain.save(User.getAdminServiceUser()); } diff --git a/signalData/test/src/org/labkey/test/pages/signaldata/SignalDataUploadPage.java b/signalData/test/src/org/labkey/test/pages/signaldata/SignalDataUploadPage.java index ad9a313d18..b15cb65467 100644 --- a/signalData/test/src/org/labkey/test/pages/signaldata/SignalDataUploadPage.java +++ b/signalData/test/src/org/labkey/test/pages/signaldata/SignalDataUploadPage.java @@ -18,7 +18,6 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; import org.labkey.test.WebDriverWrapper; -import org.labkey.test.components.bootstrap.ModalDialog; import org.labkey.test.components.ext4.Window; import org.labkey.test.util.Ext4Helper; import org.openqa.selenium.Keys; diff --git a/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java b/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java index 12975fa7cc..13179e3bad 100644 --- a/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java +++ b/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java @@ -263,7 +263,7 @@ public ActionURL getContentURL(ExpData data) public void beforeDeleteData(List datas, User user) { // Don't bother calling super, since we aren't storing data in StorageProvisioner backed tables - Container c = datas.get(0).getContainer(); + Container c = datas.getFirst().getContainer(); ViabilityManager.deleteAll(datas, c); } @@ -436,17 +436,17 @@ public void testTsv() throws Exception List> rows = parser.getResultData(); assertEquals("Expected 3 rows", 3, rows.size()); - Map row = rows.get(0); + Map row = rows.getFirst(); assertEquals(8, row.size()); assertEquals(1, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("1235-5", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); assertEquals("1235", row.get(ViabilityAssayProvider.PARTICIPANTID_PROPERTY_NAME)); - assertEquals(null, row.get(ViabilityAssayProvider.SPECIMENIDS_PROPERTY_NAME)); + assertNull(row.get(ViabilityAssayProvider.SPECIMENIDS_PROPERTY_NAME)); assertEquals(5.0, row.get(ViabilityAssayProvider.VISITID_PROPERTY_NAME)); assertEquals(900, row.get(ViabilityAssayProvider.VIABLE_CELLS_PROPERTY_NAME)); assertEquals(1000, row.get(ViabilityAssayProvider.TOTAL_CELLS_PROPERTY_NAME)); - row = rows.get(rows.size()-1); + row = rows.getLast(); assertEquals(8, row.size()); assertEquals(3, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("1234-7", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); @@ -465,7 +465,7 @@ public void testGuava() throws Exception List> rows = parser.getResultData(); assertEquals("Expected 7 rows", 7, rows.size()); - Map row = rows.get(0); + Map row = rows.getFirst(); assertEquals(7, row.size()); assertEquals(1, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("160450533-5", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); @@ -475,7 +475,7 @@ public void testGuava() throws Exception assertEquals(31268270.5, row.get(ViabilityAssayProvider.VIABLE_CELLS_PROPERTY_NAME)); assertEquals(37003872.5, row.get(ViabilityAssayProvider.TOTAL_CELLS_PROPERTY_NAME)); - row = rows.get(rows.size()-1); + row = rows.getLast(); assertEquals(7, row.size()); assertEquals(34, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("159401872v5", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); @@ -494,7 +494,7 @@ public void testViabilityAndCountFormat() throws Exception List> rows = parser.getResultData(); assertEquals("Expected 8 rows", 8, rows.size()); - Map row = rows.get(0); + Map row = rows.getFirst(); assertEquals(7, row.size()); assertEquals(1, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("541001 v 11", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); @@ -504,13 +504,13 @@ public void testViabilityAndCountFormat() throws Exception assertEquals(23952602.0, row.get(ViabilityAssayProvider.VIABLE_CELLS_PROPERTY_NAME)); assertEquals(24976645.0, row.get(ViabilityAssayProvider.TOTAL_CELLS_PROPERTY_NAME)); - row = rows.get(rows.size()-1); + row = rows.getLast(); assertEquals(6, row.size()); assertEquals(32, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); // NOTE: the pool id is split into participant and visit, but participant=Comp and visit is not parsed assertEquals("Comp - RAC0096", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); assertEquals("Comp", row.get(ViabilityAssayProvider.PARTICIPANTID_PROPERTY_NAME)); - assertEquals(null, row.get(ViabilityAssayProvider.VISITID_PROPERTY_NAME)); + assertNull(row.get(ViabilityAssayProvider.VISITID_PROPERTY_NAME)); assertTrue(Math.abs(0.965 - (Double)row.get("Viability")) < 0.0001); assertEquals(34203120.0, row.get(ViabilityAssayProvider.VIABLE_CELLS_PROPERTY_NAME)); assertEquals(35443647.5, row.get(ViabilityAssayProvider.TOTAL_CELLS_PROPERTY_NAME)); @@ -524,7 +524,7 @@ public void testExpressPlus() throws Exception List> rows = parser.getResultData(); assertEquals("Expected 16 rows", 16, rows.size()); - Map row = rows.get(0); + Map row = rows.getFirst(); assertEquals(7, row.size()); assertEquals(1, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); assertEquals("B01", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); @@ -536,7 +536,7 @@ public void testExpressPlus() throws Exception assertEquals(10.0, row.get("OriginalVolume")); // Last row - row = rows.get(rows.size()-1); + row = rows.getLast(); assertEquals(16, row.get(ViabilityAssayProvider.SAMPLE_NUM_PROPERTY_NAME)); // NOTE: no splitting of PoolD into participant-visit assertEquals("C-04", row.get(ViabilityAssayProvider.POOL_ID_PROPERTY_NAME)); diff --git a/viability/src/org/labkey/viability/ViabilityAssayProvider.java b/viability/src/org/labkey/viability/ViabilityAssayProvider.java index be8b5c04b1..7cff8353cb 100644 --- a/viability/src/org/labkey/viability/ViabilityAssayProvider.java +++ b/viability/src/org/labkey/viability/ViabilityAssayProvider.java @@ -58,7 +58,6 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.beans.PropertyValue; -import java.io.File; import java.util.*; /** diff --git a/viability/src/org/labkey/viability/ViabilityAssayRunUploadForm.java b/viability/src/org/labkey/viability/ViabilityAssayRunUploadForm.java index 0236f36cb9..10cb03a778 100644 --- a/viability/src/org/labkey/viability/ViabilityAssayRunUploadForm.java +++ b/viability/src/org/labkey/viability/ViabilityAssayRunUploadForm.java @@ -236,7 +236,7 @@ public Map getUploadedData() throws ExperimentException List inputs = reRun.getDataOutputs(); if (!inputs.isEmpty()) { - FileLike dataFile = inputs.get(0).getFileLike(); + FileLike dataFile = inputs.getFirst().getFileLike(); if (null != dataFile && dataFile.exists()) { AssayFileWriter writer = new AssayFileWriter(); diff --git a/viability/src/org/labkey/viability/ViabilityAssaySchema.java b/viability/src/org/labkey/viability/ViabilityAssaySchema.java index b317cc17dc..51027d8075 100644 --- a/viability/src/org/labkey/viability/ViabilityAssaySchema.java +++ b/viability/src/org/labkey/viability/ViabilityAssaySchema.java @@ -515,7 +515,7 @@ public List getDisplayColumns() reRunDisplayCol.setNoWrap(true); List cols = super.getDisplayColumns(); - cols.add(0, reRunDisplayCol); + cols.addFirst(reRunDisplayCol); return cols; } } diff --git a/viability/src/org/labkey/viability/ViabilityAssayUploadWizardAction.java b/viability/src/org/labkey/viability/ViabilityAssayUploadWizardAction.java index f9c671248b..57b9621d86 100644 --- a/viability/src/org/labkey/viability/ViabilityAssayUploadWizardAction.java +++ b/viability/src/org/labkey/viability/ViabilityAssayUploadWizardAction.java @@ -55,8 +55,6 @@ import org.springframework.validation.FieldError; import org.springframework.web.servlet.ModelAndView; -import jakarta.servlet.ServletException; -import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -214,7 +212,7 @@ protected InsertView _getResultsView(ViabilityAssayRunUploadForm form, boolean e initialValue = row.get(propertyName); // third, if the field is editable get the property's default value from a previous run - String lowerPoolID = poolID.replaceAll(" ", "").toLowerCase(); + String lowerPoolID = poolID.replace(" ", "").toLowerCase(); Map reRun = reRunResults.get(lowerPoolID); if (copyReRunValue && reRun != null && reRun.containsKey(propertyName)) initialValue = reRun.get(propertyName); @@ -362,7 +360,7 @@ public void validateStep(ViabilityAssayRunUploadForm form, Errors errors) } @Override - public boolean executeStep(ViabilityAssayRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public boolean executeStep(ViabilityAssayRunUploadForm form, BindException errors) { try (DbScope.Transaction transaction = ExperimentService.get().ensureTransaction()) { @@ -414,7 +412,7 @@ else if (experiment == null) } @Override - public ModelAndView getNextStep(ViabilityAssayRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ViabilityAssayRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getResultsView(form, !form.isResetDefaultValues(), errors); diff --git a/viability/src/org/labkey/viability/ViabilityManager.java b/viability/src/org/labkey/viability/ViabilityManager.java index e6d33c03e4..ddb084d144 100644 --- a/viability/src/org/labkey/viability/ViabilityManager.java +++ b/viability/src/org/labkey/viability/ViabilityManager.java @@ -296,7 +296,7 @@ public static void updateSpecimenAggregates(User user, Container c, @NotNull Ass rs.next(); return rs.getLong(1); }); - LOG.debug(String.format("viability specimens: create temp table: rows=%d, duration=%d", count, t.getTotalMilliseconds())); + LOG.debug("viability specimens: create temp table: rows={}, duration={}", count, t.getTotalMilliseconds()); } // CONSIDER: add indices on the temp table @@ -356,7 +356,7 @@ public static void updateSpecimenAggregates(User user, Container c, @NotNull Ass t.start(); int rows = executor.execute(updateFrag); t.stop(); - LOG.info(String.format("viability specimens: update aggregates: rows=%d, duration=%d", rows, t.getTotalMilliseconds())); + LOG.info("viability specimens: update aggregates: rows={}, duration={}", rows, t.getTotalMilliseconds()); tx.commit(); } @@ -437,11 +437,11 @@ private static SQLFragment specimenAggregates(ViabilityAssaySchema schema, ExpRu { DbScope scope = schema.getDbSchema().getScope(); - LOG.debug(String.format("viability specimens: all for container=%s, protocol=%d, run=%d", schema.getContainer().getPath(), schema.getProtocol().getRowId(), run == null ? 0 : run.getRowId())); + LOG.debug("viability specimens: all for container={}, protocol={}, run={}", schema.getContainer().getPath(), schema.getProtocol().getRowId(), run == null ? 0 : run.getRowId()); ResultSet allResultSet = new SqlSelector(scope, sub).getResultSet(); ResultSetUtil.logData(allResultSet, LOG); - LOG.debug(String.format("viability specimens: aggregates for container=%s, protocol=%d, run=%d", schema.getContainer().getPath(), schema.getProtocol().getRowId(), run == null ? 0 : run.getRowId())); + LOG.debug("viability specimens: aggregates for container={}, protocol={}, run={}", schema.getContainer().getPath(), schema.getProtocol().getRowId(), run == null ? 0 : run.getRowId()); ResultSet groupResultSet = new SqlSelector(scope, groupFrag).getResultSet(); ResultSetUtil.logData(groupResultSet, LOG); } @@ -709,7 +709,7 @@ public void testViability() throws Exception assertTrue(properties.isEmpty()); String[] specimens = ViabilityManager.getSpecimens(resultId); - assertTrue(specimens.length == 0); + assertEquals(0, specimens.length); ViabilityResult result = ViabilityManager.getResult(c, resultId); assertNull(result); diff --git a/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java b/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java index 1654e2000e..ab7a55e87e 100644 --- a/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java +++ b/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java @@ -72,25 +72,25 @@ public Object handle(ResultSet rs, Connection conn) throws SQLException ExpProtocol protocol = ExperimentService.get().getExpProtocol(protocolId); if (protocol == null) { - logger.warn("No assay protocol found for id '" + protocolId + "'"); + logger.warn("No assay protocol found for id '{}'", protocolId); continue; } AssayProvider provider = AssayService.get().getProvider(protocol); if (provider == null) { - logger.warn("No assay provider found for protocol '" + protocol.getName() + ""); + logger.warn("No assay provider found for protocol '{}", protocol.getName()); continue; } if (!(provider instanceof ViabilityAssayProvider)) { - logger.warn("Expected viability assay provider for assay '" + provider.getName() + "'"); + logger.warn("Expected viability assay provider for assay '{}'", provider.getName()); continue; } Container protocolContainer = protocol.getContainer(); - logger.info("Updating specimens aggregates for viability assay '" + provider.getName() + "', container='" + protocolContainer + "'"); + logger.info("Updating specimens aggregates for viability assay '{}', container='{}'", provider.getName(), protocolContainer); ViabilityManager.updateSpecimenAggregates(user, protocolContainer, provider, protocol, null); } } From ac958445db9195b88c9a6758fcf2719ba4c9a669 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 9 May 2026 15:01:02 -0700 Subject: [PATCH 2/2] Fix test logging trickery --- luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java b/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java index 423bd430b4..5e4b9629bc 100644 --- a/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java +++ b/luminex/src/org/labkey/luminex/LuminexRunAsyncContext.java @@ -17,6 +17,8 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.simple.SimpleLogger; import org.apache.logging.log4j.util.PropertiesUtil; import org.junit.Assert; @@ -282,9 +284,9 @@ private StringLogger() } @Override - public void info(String message) + public void logMessage(String fqcn, Level level, Marker marker, Message message, Throwable throwable) { - sb.append(message); + sb.append(message.getFormattedMessage()); sb.append("\n"); }