From 7423e8979053cc1129bb00289632ffa1dbdc6058 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 8 Jun 2025 15:00:44 -0700 Subject: [PATCH 1/2] Minor auto-refactor code cleanup on a massive scale --- .../org/labkey/elisa/ElisaAssayProvider.java | 19 +++--- .../src/org/labkey/elisa/ElisaController.java | 2 +- .../org/labkey/elisa/ElisaImportHelper.java | 2 +- .../org/labkey/elisa/ElisaProtocolSchema.java | 3 +- .../elisa/HighThroughputImportHelper.java | 14 ++-- .../actions/ElisaUploadWizardAction.java | 2 +- .../PlateConcentrationPropertyHelper.java | 2 +- .../org/labkey/elisa/query/CurveFitTable.java | 2 - .../labkey/elisa/query/ElisaResultsTable.java | 1 - .../labkey/elispot/ElispotAssayProvider.java | 13 ++-- .../org/labkey/elispot/ElispotController.java | 12 ++-- .../elispot/ElispotDataExchangeHandler.java | 4 +- .../org/labkey/elispot/ElispotManager.java | 2 +- .../labkey/elispot/ElispotProviderSchema.java | 2 +- .../elispot/plate/FluorescentPlateInfo.java | 5 +- .../org/labkey/elispot/plate/PlateInfo.java | 36 +++++----- .../elispot/query/ElispotRunDataTable.java | 20 +----- .../query/PlateBasedAssayRunDataTable.java | 1 - .../edu/stanford/facs/transform/Hyperlog.java | 10 +-- .../edu/stanford/facs/transform/Logicle.java | 16 ++--- .../stanford/facs/transform/Transform.java | 1 - flow/enginesrc/org/labkey/flow/Main.java | 12 ++-- .../analysis/chart/DataFrameXYDataset.java | 2 - .../flow/analysis/chart/DensityDataset.java | 4 +- .../flow/analysis/chart/DensityPlot.java | 7 +- .../labkey/flow/analysis/chart/HistPlot.java | 7 +- .../flow/analysis/chart/PlotFactory.java | 1 - .../labkey/flow/analysis/model/Analysis.java | 6 +- .../flow/analysis/model/CalibrationTable.java | 34 +++++----- .../model/CleanNameExpressionTransform.java | 32 ++++----- .../analysis/model/CompensationMatrix.java | 30 ++++----- .../labkey/flow/analysis/model/DataFrame.java | 10 +-- .../flow/analysis/model/EllipseGate.java | 1 - .../flow/analysis/model/ExternalAnalysis.java | 1 - .../org/labkey/flow/analysis/model/FCS.java | 4 +- .../labkey/flow/analysis/model/FCSCache.java | 6 +- .../labkey/flow/analysis/model/FCSHeader.java | 4 +- .../analysis/model/FlowJo10_0_6Workspace.java | 2 +- .../flow/analysis/model/FlowJoWorkspace.java | 10 +-- .../org/labkey/flow/analysis/model/Gate.java | 3 +- .../flow/analysis/model/ISampleInfo.java | 21 +++--- .../flow/analysis/model/MacWorkspace.java | 5 +- .../labkey/flow/analysis/model/NotGate.java | 3 +- .../flow/analysis/model/PC75Workspace.java | 8 +-- .../flow/analysis/model/PCWorkspace.java | 2 +- .../flow/analysis/model/Population.java | 1 - .../flow/analysis/model/PopulationName.java | 6 +- .../flow/analysis/model/SampleIdMap.java | 3 +- .../flow/analysis/model/SampleInfoBase.java | 4 +- .../flow/analysis/model/ScalingFunction.java | 4 +- .../flow/analysis/model/ScriptSettings.java | 2 +- .../flow/analysis/model/StatsTable.java | 4 +- .../analysis/model/SubsetExpressionGate.java | 7 +- .../flow/analysis/model/SubsetPart.java | 2 +- .../flow/analysis/model/ValueConstraint.java | 34 +++++----- .../labkey/flow/analysis/model/Workspace.java | 16 ++--- .../flow/analysis/model/WorkspaceParser.java | 9 +-- .../analysis/util/AbstractRangeFunction.java | 2 + .../labkey/flow/analysis/web/ChannelData.java | 7 +- .../labkey/flow/analysis/web/CompSign.java | 4 +- .../labkey/flow/analysis/web/FCSAnalyzer.java | 9 +-- .../labkey/flow/analysis/web/GraphSpec.java | 4 +- .../labkey/flow/analysis/web/PlotInfo.java | 2 +- .../flow/analysis/web/ScriptAnalyzer.java | 15 ++--- .../flow/analysis/web/StatisticSpec.java | 9 ++- .../flow/analysis/web/SubsetExpression.java | 5 +- .../flow/analysis/web/SubsetParser.java | 6 +- .../labkey/flow/analysis/web/SubsetSpec.java | 8 +-- .../flow/persist/AnalysisSerializer.java | 10 ++- .../org/labkey/flow/persist/AttributeSet.java | 10 +-- .../flow/controllers/FlowController.java | 11 ++-- .../flow/controllers/ReportsController.java | 8 +-- .../flow/controllers/WorkspaceData.java | 2 +- .../attribute/AttributeController.java | 4 +- .../compensation/CompensationController.java | 2 +- .../CompensationCalculationPage.java | 1 - .../EditCompensationCalculationForm.java | 1 - .../editscript/EditScriptForm.java | 6 +- .../editscript/EditSettingsForm.java | 2 +- .../editscript/ScriptController.java | 12 ++-- .../controllers/editscript/uploadAnalysis.jsp | 2 +- .../AnalysisScriptController.java | 2 +- .../ChooseRunsToAnalyzeForm.java | 4 +- .../executescript/confirmRunsToImport.jsp | 2 +- .../importAnalysisChooseAnalysis.jsp | 4 +- .../executescript/importAnalysisConfirm.jsp | 2 +- .../importAnalysisReviewSamples.jsp | 3 +- .../protocol/EditFCSAnalysisFilterForm.java | 6 +- .../protocol/EditFCSAnalysisNameForm.java | 2 +- .../protocol/EditICSMetadataForm.java | 4 +- .../protocol/ProtocolController.java | 2 +- .../org/labkey/flow/controllers/reports.jsp | 2 +- .../controllers/run/StatusJsonHelper.java | 2 +- .../labkey/flow/controllers/run/download.jsp | 2 +- .../labkey/flow/controllers/run/showRun.jsp | 2 +- .../flow/controllers/well/EditWellForm.java | 2 +- .../flow/controllers/well/WellController.java | 10 +-- .../labkey/flow/controllers/well/showWell.jsp | 2 +- .../labkey/flow/data/FieldSubstitution.java | 3 +- .../labkey/flow/data/FlowAssayProvider.java | 2 +- .../org/labkey/flow/data/FlowExperiment.java | 2 - flow/src/org/labkey/flow/data/FlowObject.java | 2 +- .../org/labkey/flow/data/FlowProtocol.java | 15 ++--- .../labkey/flow/data/FlowProtocolSchema.java | 2 +- .../labkey/flow/data/FlowProtocolStep.java | 2 +- flow/src/org/labkey/flow/data/FlowRun.java | 17 ++--- flow/src/org/labkey/flow/data/FlowScript.java | 4 +- flow/src/org/labkey/flow/data/FlowWell.java | 4 -- .../src/org/labkey/flow/data/ICSMetadata.java | 28 ++++---- .../labkey/flow/persist/AttributeCache.java | 6 +- .../flow/persist/AttributeSetHelper.java | 9 ++- .../labkey/flow/persist/FlowDataHandler.java | 1 - .../org/labkey/flow/persist/FlowManager.java | 8 +-- .../org/labkey/flow/persist/PersistTests.java | 4 +- .../flow/query/AttributeForeignKey.java | 6 +- .../flow/query/FCSFileCoalescingColumn.java | 4 +- .../labkey/flow/query/FlowPropertySet.java | 10 +-- .../src/org/labkey/flow/query/FlowSchema.java | 8 +-- .../labkey/flow/reports/FilterFlowReport.java | 2 +- .../org/labkey/flow/reports/FlowReport.java | 3 +- .../flow/reports/FlowReportManager.java | 16 ++--- .../flow/reports/editPositivityReport.jsp | 2 +- .../org/labkey/flow/reports/editQCReport.jsp | 2 +- .../script/AbstractExternalAnalysisJob.java | 9 ++- .../org/labkey/flow/script/AnalyzeJob.java | 2 +- .../org/labkey/flow/script/BaseHandler.java | 7 +- .../CompensationCalculationHandler.java | 4 +- .../org/labkey/flow/script/FlowAnalyzer.java | 2 - flow/src/org/labkey/flow/script/FlowJob.java | 9 +-- .../flow/script/FlowPipelineProvider.java | 4 +- .../org/labkey/flow/script/FlowTaskSet.java | 4 +- .../labkey/flow/script/FlowThreadPool.java | 6 +- .../labkey/flow/script/ImportResultsJob.java | 4 +- .../labkey/flow/script/KeywordsHandler.java | 6 +- .../org/labkey/flow/script/KeywordsTask.java | 1 - .../src/org/labkey/flow/script/ScriptJob.java | 2 +- .../labkey/flow/script/ScriptXarSource.java | 5 -- .../org/labkey/flow/script/WorkspaceJob.java | 8 +-- flow/src/org/labkey/flow/util/SampleUtil.java | 4 +- .../webparts/AnalysisScriptTypeColumn.java | 1 - .../org/labkey/flow/webparts/FlowSummary.jsp | 2 +- .../AbstractLuminexControlUpdateService.java | 1 - .../luminex/AnalyteDefaultValueService.java | 2 +- .../labkey/luminex/AnalyteImportHelper.java | 1 - .../labkey/luminex/LuminexAssayProvider.java | 6 +- .../org/labkey/luminex/LuminexController.java | 22 +++---- .../labkey/luminex/LuminexDataHandler.java | 20 +++--- .../labkey/luminex/LuminexImportHelper.java | 2 - .../org/labkey/luminex/LuminexManager.java | 6 +- .../org/labkey/luminex/LuminexReplicate.java | 6 +- .../luminex/LuminexRunAsyncContext.java | 8 +-- .../luminex/LuminexRunDatabaseContext.java | 2 +- .../labkey/luminex/LuminexRunUploadForm.java | 2 +- .../luminex/LuminexSaveExclusionsForm.java | 2 +- .../luminex/LuminexUnitTestContext.java | 4 +- .../luminex/LuminexUploadWizardAction.java | 8 +-- .../luminex/model/LuminexWellGroup.java | 2 +- .../query/AnalyteSinglePointControlTable.java | 3 +- .../query/ExclusionUIDisplayColumn.java | 2 - .../labkey/luminex/query/GuideSetTable.java | 4 +- .../luminex/query/LuminexProtocolSchema.java | 2 - .../luminex/query/WellExclusionTable.java | 5 +- .../luminex/LeveyJenningsPlotWindow.java | 6 +- .../tests/luminex/LuminexAsyncImportTest.java | 2 +- .../test/tests/luminex/LuminexEC50Test.java | 4 +- .../luminex/LuminexExcludableWellsTest.java | 5 +- .../LuminexExclusionRetentionTest.java | 2 +- .../luminex/LuminexJavaTransformTest.java | 2 +- .../luminex/LuminexMultipleCurvesTest.java | 3 +- .../tests/luminex/LuminexPositivityTest.java | 2 +- .../tests/luminex/LuminexRTransformTest.java | 2 +- .../tests/luminex/LuminexSinglePointTest.java | 4 +- .../test/tests/luminex/LuminexTest.java | 9 +-- .../LuminexValueBasedGuideSetTest.java | 2 +- .../util/luminex/LuminexGuideSetHelper.java | 2 +- .../matrix/AbstractMatrixRunCreator.java | 1 - .../labkey/microarray/MicroarrayManager.java | 11 ++-- .../FeatureAnnotationSetController.java | 11 ++-- .../matrix/ExpressionMatrixAssayProvider.java | 2 +- .../ExpressionMatrixExperimentListener.java | 1 - .../ExpressionMatrixProtocolSchema.java | 11 ++-- .../matrix/ExpressionMatrixRunCreator.java | 1 - .../query/FeatureAnnotationSetTable.java | 2 +- .../ms2/BibliospecSpectrumRenderer.java | 14 ++-- ms2/src/org/labkey/ms2/CumulativeTimer.java | 7 +- .../labkey/ms2/EditElutionGraphContext.java | 6 +- ms2/src/org/labkey/ms2/Hydrophobicity3.java | 10 ++- .../org/labkey/ms2/HydrophobicityColumn.java | 2 +- ms2/src/org/labkey/ms2/MS2Controller.java | 6 +- ms2/src/org/labkey/ms2/MS2Fraction.java | 3 - ms2/src/org/labkey/ms2/MS2GZFileRenderer.java | 4 +- ms2/src/org/labkey/ms2/MS2Importer.java | 12 ++-- ms2/src/org/labkey/ms2/MS2Manager.java | 6 +- ms2/src/org/labkey/ms2/MS2Peptide.java | 22 +++---- ms2/src/org/labkey/ms2/MS2Run.java | 1 - ms2/src/org/labkey/ms2/MS2RunType.java | 2 +- .../ms2/MS2SearchExperimentRunType.java | 4 +- ms2/src/org/labkey/ms2/MascotDatImporter.java | 1 - .../ms2/PepXmlExperimentDataHandler.java | 2 - ms2/src/org/labkey/ms2/PepXmlImporter.java | 1 - .../org/labkey/ms2/PeptideQuantitation.java | 1 - .../labkey/ms2/ProteinCoverageMapBuilder.java | 8 +-- .../org/labkey/ms2/ProteinGroupProteins.java | 2 +- ms2/src/org/labkey/ms2/RunListCache.java | 2 +- ms2/src/org/labkey/ms2/RunListException.java | 2 +- ms2/src/org/labkey/ms2/SpectrumImporter.java | 23 +++---- .../org/labkey/ms2/compare/CompareQuery.java | 2 +- .../ms2/compare/SpectraCountQueryView.java | 4 +- ms2/src/org/labkey/ms2/decoySummary.jsp | 2 +- .../ms2/peptideview/MS2RunViewType.java | 3 +- .../peptideview/ProteinStringExpression.java | 2 +- .../QueryResultSetSpectrumIterator.java | 2 +- .../ResultSetSpectrumIterator.java | 6 +- .../ms2/pipeline/AbstractMS2SearchTask.java | 1 - .../labkey/ms2/pipeline/FastaCheckTask.java | 2 +- .../ms2/pipeline/MS2ImportPipelineJob.java | 2 +- .../ms2/pipeline/MS2PipelineJobSupport.java | 1 - .../ms2/pipeline/MS2PipelineManager.java | 2 +- .../ms2/pipeline/PipelineController.java | 8 +-- .../comet/Comet2014ParamsBuilder.java | 5 +- .../comet/CometSearchProtocolFactory.java | 1 - .../ms2/pipeline/mascot/MascotClientImpl.java | 12 ++-- .../sequest/AbstractSequestParams.java | 2 +- .../pipeline/sequest/IInputXMLConverter.java | 2 +- .../pipeline/sequest/IParamsValidator.java | 4 +- .../pipeline/sequest/ListParamsValidator.java | 2 +- .../sequest/Mzxml2SearchConverter.java | 6 +- .../sequest/NaturalNumberParamsValidator.java | 2 +- .../pipeline/sequest/Out2XmlConverter.java | 2 +- .../sequest/SequestBasicConverter.java | 2 +- .../sequest/SequestEnzymeConverter.java | 7 +- .../sequest/SequestParamsBuilder.java | 61 +++++++++-------- .../tandem/XTandemSearchProtocol.java | 2 +- .../ms2/query/ComparePeptideTableInfo.java | 4 +- .../query/CompareProteinProphetTableInfo.java | 4 +- ms2/src/org/labkey/ms2/query/MS2Schema.java | 6 +- .../ms2/query/QueryAACoverageColumn.java | 2 +- .../ms2/query/SpectraCountConfiguration.java | 2 +- .../labkey/ms2/reader/DatDocumentParser.java | 2 - .../labkey/ms2/reader/MGFDocumentParser.java | 2 - .../org/labkey/ms2/reader/MS2XmlLoader.java | 1 - .../labkey/ms2/reader/MascotDatLoader.java | 18 ++--- .../labkey/ms2/reader/MzMLDocumentParser.java | 2 - .../ms2/reader/MzXMLDocumentParser.java | 2 - .../org/labkey/ms2/reader/PepXmlLoader.java | 20 +++--- .../org/labkey/ms2/reader/ProtXmlReader.java | 16 ++--- .../org/labkey/ms2/reader/ProteinGroup.java | 2 +- .../labkey/ms2/reader/Q3AnalysisSummary.java | 2 +- .../reader/RandomAccessJrapMzxmlIterator.java | 4 +- ms2/src/org/labkey/ms2/reader/Rounder.java | 3 - .../labkey/ms2/reader/SensitivitySummary.java | 2 +- .../ms2/reader/SequentialMzxmlIterator.java | 6 +- .../ms2/reader/SequestLogDocumentParser.java | 2 - .../ms2/reader/SimpleXMLEventRewriter.java | 18 ++--- .../org/labkey/ms2/reader/TarIterator.java | 2 +- .../ms2/reader/XPressAnalysisSummary.java | 2 +- ms2/src/org/labkey/ms2/showPeptide.jsp | 2 +- .../org/systemsbiology/jrap/MSXMLParser.java | 28 ++------ .../systemsbiology/jrap/SAX2IndexHandler.java | 2 +- ms2/src/org/systemsbiology/jrap/Scan.java | 8 +-- .../org/systemsbiology/jrap/ScanHeader.java | 66 +++++++++---------- .../test/ms2/AbstractMS2SearchEngineTest.java | 1 - .../test/tests/ms2/AbstractMS2ImportTest.java | 2 +- .../org/labkey/test/tests/ms2/CometTest.java | 2 +- .../org/labkey/test/tests/ms2/LibraTest.java | 2 +- .../org/labkey/test/tests/ms2/MS2Test.java | 2 +- .../org/labkey/test/tests/ms2/MascotTest.java | 2 +- .../utils/ms2/Ms2DataRegionExportHelper.java | 4 +- nab/src/org/labkey/nab/GetNabRunsAction.java | 1 - .../org/labkey/nab/NabAssayController.java | 22 +++---- nab/src/org/labkey/nab/NabAssayProvider.java | 4 +- .../org/labkey/nab/NabContainerListener.java | 3 - nab/src/org/labkey/nab/NabDataHandler.java | 2 +- nab/src/org/labkey/nab/NabManager.java | 5 +- nab/src/org/labkey/nab/NabRunPropertyMap.java | 3 - nab/src/org/labkey/nab/PlateParserTests.java | 4 +- .../CrossPlateDilutionNabAssayProvider.java | 8 --- .../HighThroughputNabAssayProvider.java | 2 +- .../labkey/nab/query/NabVirusDataTable.java | 3 +- .../labkey/api/protein/ProteinService.java | 3 - .../protein/annotation/ProtSprotOrgMap.java | 2 +- .../protein/annotation/XMLProteinHandler.java | 2 +- .../api/protein/fasta/FastaDbLoader.java | 2 +- .../labkey/api/protein/fasta/IdPattern.java | 1 - .../protein/organism/GuessOrgByParsing.java | 1 - .../organism/GuessOrgBySharedHash.java | 2 +- .../protein/search/PeptideSequenceFilter.java | 2 +- .../api/protein/uniprot/ParseContext.java | 8 +-- .../api/protein/uniprot/ParserTree.java | 6 +- .../protein/uniprot/UniprotIdentifier.java | 6 +- .../labkey/api/protein/uniprot/uniprot.java | 2 +- .../uniprot/uniprot_entry_gene_name.java | 4 +- .../org/labkey/protein/view/PepSearchView.jsp | 2 +- .../org/labkey/protein/view/insertAnnots.jsp | 2 +- .../labkey/protein/view/searchProteins.jsp | 2 +- .../protein/view/searchProteinsNarrow.jsp | 2 +- .../view/uploadCustomProteinAnnotations.jsp | 2 +- .../signaldata/SignalDataController.java | 4 +- .../signaldata/SignalDataAssayBeginPage.java | 2 +- .../signaldata/SignalDataUploadPage.java | 2 +- .../viability/ViabilityAssayDataHandler.java | 2 +- .../viability/ViabilityAssayProvider.java | 2 +- .../ViabilityAssayRunUploadForm.java | 6 +- .../viability/ViabilityAssaySchema.java | 3 +- .../ViabilityAssayUploadWizardAction.java | 15 ++--- .../labkey/viability/ViabilityController.java | 4 +- .../labkey/viability/ViabilityManager.java | 2 +- .../org/labkey/viability/ViabilityResult.java | 2 - .../ViabilitySpecimenChangeListener.java | 3 +- 309 files changed, 787 insertions(+), 1009 deletions(-) diff --git a/elisa/src/org/labkey/elisa/ElisaAssayProvider.java b/elisa/src/org/labkey/elisa/ElisaAssayProvider.java index be67e5cae1..2c54a44e3f 100644 --- a/elisa/src/org/labkey/elisa/ElisaAssayProvider.java +++ b/elisa/src/org/labkey/elisa/ElisaAssayProvider.java @@ -71,6 +71,7 @@ import org.labkey.elisa.plate.BioTekPlateReader; import org.springframework.web.servlet.ModelAndView; +import java.lang.reflect.InvocationTargetException; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -141,10 +142,10 @@ enum PlateReaderType { BIOTEK(BioTekPlateReader.LABEL, BioTekPlateReader.class); - private String _label; - private Class _class; + private final String _label; + private final Class _class; - private PlateReaderType(String label, Class cls) + PlateReaderType(String label, Class cls) { _label = label; _class = cls; @@ -159,9 +160,9 @@ public PlateReader getInstance() { try { - return (PlateReader)_class.newInstance(); + return _class.getDeclaredConstructor().newInstance(); } - catch (InstantiationException | IllegalAccessException x) + catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException x) { throw new RuntimeException(x); } @@ -295,11 +296,11 @@ private DomainProperty addPropertyWithFormat(Domain domain, String name, String } @Override - public HttpView getDataDescriptionView(AssayRunUploadForm form) + public HttpView getDataDescriptionView(AssayRunUploadForm form) { - if (form instanceof ElisaRunUploadForm) + if (form instanceof ElisaRunUploadForm eForm) { - if (((ElisaRunUploadForm)form).getSampleMetadataInputFormat() == SampleMetadataInputFormat.COMBINED) + if (eForm.getSampleMetadataInputFormat() == SampleMetadataInputFormat.COMBINED) return new JspView<>("/org/labkey/assay/view/tsvDataDescription.jsp", form); } return new HtmlView(HtmlString.of("The ELISA data files must be in the BioTek Microplate Reader Excel file format (.xls or .xlsx extension).")); @@ -438,7 +439,7 @@ protected void moveAssayResults(List runs, ExpProtocol protocol, Contain // move specimen String tableName = AssayProtocolSchema.DATA_TABLE_NAME; AssaySchema schema = createProtocolSchema(user, targetContainer, protocol, null); - FilteredTable assayResultTable = (FilteredTable) schema.getTable(tableName); + FilteredTable assayResultTable = (FilteredTable) schema.getTable(tableName); if (assayResultTable != null) { TableInfo expMaterialTable = ExperimentService.get().getTinfoMaterial(); diff --git a/elisa/src/org/labkey/elisa/ElisaController.java b/elisa/src/org/labkey/elisa/ElisaController.java index 053bd0e160..d5a75c789f 100644 --- a/elisa/src/org/labkey/elisa/ElisaController.java +++ b/elisa/src/org/labkey/elisa/ElisaController.java @@ -102,7 +102,7 @@ public void setProtocolId(int protocolId) } @RequiresPermission(ReadPermission.class) - public class GetCurveFitXYPairs extends ReadOnlyApiAction + public static class GetCurveFitXYPairs extends ReadOnlyApiAction { ExpRun _run; diff --git a/elisa/src/org/labkey/elisa/ElisaImportHelper.java b/elisa/src/org/labkey/elisa/ElisaImportHelper.java index 0f6ee8ef0f..8d4cd1c7ed 100644 --- a/elisa/src/org/labkey/elisa/ElisaImportHelper.java +++ b/elisa/src/org/labkey/elisa/ElisaImportHelper.java @@ -14,7 +14,7 @@ public interface ElisaImportHelper { - public static String PLACEHOLDER_PLATE_NAME = "PLACEHOLDER_PLATE"; + String PLACEHOLDER_PLATE_NAME = "PLACEHOLDER_PLATE"; /** * Gets the set of plate names in this import diff --git a/elisa/src/org/labkey/elisa/ElisaProtocolSchema.java b/elisa/src/org/labkey/elisa/ElisaProtocolSchema.java index 4567d6ac6b..a882c960a3 100644 --- a/elisa/src/org/labkey/elisa/ElisaProtocolSchema.java +++ b/elisa/src/org/labkey/elisa/ElisaProtocolSchema.java @@ -23,7 +23,6 @@ import org.labkey.api.data.DbSchema; import org.labkey.api.data.TableInfo; import org.labkey.api.exp.api.ExpProtocol; -import org.labkey.api.query.FilteredTable; import org.labkey.api.security.User; import org.labkey.elisa.query.CurveFitTable; import org.labkey.elisa.query.ElisaResultsTable; @@ -67,7 +66,7 @@ protected TableInfo createProviderTable(String name, ContainerFilter cf) } @Override - public FilteredTable createDataTable(ContainerFilter cf, boolean includeLinkedToStudyColumns) + public ElisaResultsTable createDataTable(ContainerFilter cf, boolean includeLinkedToStudyColumns) { return new ElisaResultsTable(this, cf, includeLinkedToStudyColumns); } diff --git a/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java b/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java index eb26ca3209..8a8d3988a1 100644 --- a/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java +++ b/elisa/src/org/labkey/elisa/HighThroughputImportHelper.java @@ -33,7 +33,7 @@ public class HighThroughputImportHelper extends AbstractElisaImportHelper { private static final Logger LOG = LogManager.getLogger(HighThroughputImportHelper.class); - private Map _plateMap = new HashMap<>(); + private final Map _plateMap = new HashMap<>(); private Plate _plateTemplate; public HighThroughputImportHelper(AssayUploadXarContext context, PlateBasedAssayProvider provider, ExpProtocol protocol, File dataFile) throws ExperimentException @@ -77,7 +77,7 @@ private void ensureData() throws ExperimentException } } else - LOG.warn("No well location and plate name for row : " + row.toString()); + LOG.warn("No well location and plate name for row : " + row); } } catch (IOException e) @@ -171,12 +171,12 @@ public Map getExtraProperties(String plateName, Position positio private static class AnalytePlate { - private Map> _stdConcentrations = new HashMap<>(); - private Map _dataMap = new HashMap<>(); - private String _plateName; - private Plate _plateTemplate; + private final Map> _stdConcentrations = new HashMap<>(); + private final Map _dataMap = new HashMap<>(); + private final String _plateName; + private final Plate _plateTemplate; // contains the mapping of (well/analyte) to extra row data to merge during data import - private Map> _extraWellData = new HashMap<>(); + private final Map> _extraWellData = new HashMap<>(); public static final String CONTROL_ID_COLUMN = "Sample"; public AnalytePlate(String plateName, Plate plateTemplate) diff --git a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java index bf84636ea2..0a90b67070 100644 --- a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java +++ b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java @@ -238,7 +238,7 @@ public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws Map> postedProps = helper.getPostedPropertyValues(form.getRequest()); form.setConcentrationProperties(postedProps); - run = saveExperimentRun(form); + saveExperimentRun(form); for (Map.Entry> entry : postedProps.entrySet()) form.saveDefaultValues(entry.getValue(), entry.getKey()); diff --git a/elisa/src/org/labkey/elisa/actions/PlateConcentrationPropertyHelper.java b/elisa/src/org/labkey/elisa/actions/PlateConcentrationPropertyHelper.java index 1728ad2c01..ed58de2d5d 100644 --- a/elisa/src/org/labkey/elisa/actions/PlateConcentrationPropertyHelper.java +++ b/elisa/src/org/labkey/elisa/actions/PlateConcentrationPropertyHelper.java @@ -96,7 +96,7 @@ protected boolean isCopyable(DomainProperty pd) @Override public List getSampleNames() { - return Arrays.asList(_controlNames.toArray(new String[_controlNames.size()])); + return Arrays.asList(_controlNames.toArray(new String[0])); } @Override diff --git a/elisa/src/org/labkey/elisa/query/CurveFitTable.java b/elisa/src/org/labkey/elisa/query/CurveFitTable.java index 75d52fb5a0..b0aad293b5 100644 --- a/elisa/src/org/labkey/elisa/query/CurveFitTable.java +++ b/elisa/src/org/labkey/elisa/query/CurveFitTable.java @@ -5,10 +5,8 @@ import org.labkey.api.assay.AssayProtocolSchema; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.ContainerFilter; -import org.labkey.api.data.ContainerForeignKey; import org.labkey.api.exp.api.ExpProtocol; import org.labkey.api.query.FilteredTable; -import org.labkey.api.query.UserIdForeignKey; import org.labkey.elisa.ElisaProtocolSchema; public class CurveFitTable extends FilteredTable diff --git a/elisa/src/org/labkey/elisa/query/ElisaResultsTable.java b/elisa/src/org/labkey/elisa/query/ElisaResultsTable.java index aaff92ffae..bdc6b0d1a2 100644 --- a/elisa/src/org/labkey/elisa/query/ElisaResultsTable.java +++ b/elisa/src/org/labkey/elisa/query/ElisaResultsTable.java @@ -27,7 +27,6 @@ import org.labkey.api.exp.api.SampleTypeService; import org.labkey.api.exp.property.DomainProperty; import org.labkey.api.exp.query.ExpMaterialTable; -import org.labkey.api.exp.query.ExpSchema; import org.labkey.api.query.FieldKey; import org.labkey.api.query.LookupForeignKey; import org.labkey.api.query.PropertyForeignKey; diff --git a/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java b/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java index a15d83a2db..c219469d7e 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java +++ b/elispotassay/src/org/labkey/elispot/ElispotAssayProvider.java @@ -58,6 +58,7 @@ import org.labkey.elispot.plate.AIDPlateReader; import org.labkey.elispot.query.ElispotAntigenDomainKind; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -102,10 +103,10 @@ enum PlateReaderType AID("AID", AIDPlateReader.class), ZEISS("Zeiss", TextPlateReader.class); - private String _label; - private Class _class; + private final String _label; + private final Class _class; - PlateReaderType(String label, Class cls) + PlateReaderType(String label, Class cls) { _label = label; _class = cls; @@ -120,9 +121,9 @@ public PlateReader getInstance() { try { - return (PlateReader)_class.newInstance(); + return _class.getDeclaredConstructor().newInstance(); } - catch (InstantiationException | IllegalAccessException x) + catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException x) { throw new RuntimeException(x); } @@ -238,7 +239,7 @@ public List>> createDefaultDomains(Cont } @Override - public HttpView getDataDescriptionView(AssayRunUploadForm form) + public HttpView getDataDescriptionView(AssayRunUploadForm form) { return HtmlView.of("The data file is the output file from the plate reader that has been selected."); } diff --git a/elispotassay/src/org/labkey/elispot/ElispotController.java b/elispotassay/src/org/labkey/elispot/ElispotController.java index 446fada412..3c357b789e 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotController.java +++ b/elispotassay/src/org/labkey/elispot/ElispotController.java @@ -89,7 +89,7 @@ public ElispotController() } @RequiresPermission(ReadPermission.class) - public class BeginAction extends SimpleViewAction + public static class BeginAction extends SimpleViewAction { @Override public ModelAndView getView(Object o, BindException errors) @@ -255,7 +255,7 @@ private void addRunFilter(ExpProtocol protocol, ActionURL url, int rowId) url.addFilter(ElispotProtocolSchema.ANTIGEN_STATS_TABLE_NAME, provider.getTableMetadata(protocol).getRunRowIdFieldKeyFromResults(), CompareType.EQUAL, rowId); } - private class ElispotDetailsHeaderView extends AssayHeaderView + private static class ElispotDetailsHeaderView extends AssayHeaderView { List _links = new ArrayList<>(); @@ -341,7 +341,7 @@ public ApiResponse execute(DetailsForm form, BindException errors) } } response.put("summary", rows); - if (analyteMap.size() > 0) + if (!analyteMap.isEmpty()) { response.put("analytes", analyteMap.keySet()); response.put("analyteMap", analyteMap); @@ -374,9 +374,9 @@ public static class WellInfo private String _spotSize = ""; private String _activity = ""; private String _intensity = ""; - private Map _wellProperties = new LinkedHashMap<>(); + private final Map _wellProperties = new LinkedHashMap<>(); private final RunDataRow _runDataRow; - private Position _position; + private final Position _position; public WellInfo(@Nullable RunDataRow runDataRow, Position position) { @@ -530,7 +530,7 @@ public void setFluorospot(boolean fluorospot) } @RequiresPermission(InsertPermission.class) - public class BackgroundSubtractionAction extends FormHandlerAction + public static class BackgroundSubtractionAction extends FormHandlerAction { @Override public void validateCommand(Object target, Errors errors) diff --git a/elispotassay/src/org/labkey/elispot/ElispotDataExchangeHandler.java b/elispotassay/src/org/labkey/elispot/ElispotDataExchangeHandler.java index 6be01ee5c7..75fb8eef14 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotDataExchangeHandler.java +++ b/elispotassay/src/org/labkey/elispot/ElispotDataExchangeHandler.java @@ -32,7 +32,6 @@ import org.labkey.api.view.ViewContext; import org.labkey.vfs.FileLike; -import java.io.File; import java.util.List; import java.util.Map; import java.util.Set; @@ -79,9 +78,8 @@ public void createSampleData( ) throws Exception { AssayProvider provider = AssayService.get().getProvider(protocol); - if (provider instanceof ElispotAssayProvider) + if (provider instanceof ElispotAssayProvider plateProvider) { - ElispotAssayProvider plateProvider = (ElispotAssayProvider)provider; Plate template = plateProvider.getPlate(viewContext.getContainer(), protocol); if (template != null) { diff --git a/elispotassay/src/org/labkey/elispot/ElispotManager.java b/elispotassay/src/org/labkey/elispot/ElispotManager.java index 55e252fde4..35e24fb21d 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotManager.java +++ b/elispotassay/src/org/labkey/elispot/ElispotManager.java @@ -160,7 +160,7 @@ public Map> getAntigenHeadings(Container container, TableIn if (null != antigenHeading) { if (!antigenHeadingMap.containsKey(antigenHeading)) - antigenHeadingMap.put(antigenHeading, new HashSet()); + antigenHeadingMap.put(antigenHeading, new HashSet<>()); antigenHeadingMap.get(antigenHeading).add((Integer)object.get("RunId")); } }); diff --git a/elispotassay/src/org/labkey/elispot/ElispotProviderSchema.java b/elispotassay/src/org/labkey/elispot/ElispotProviderSchema.java index 26d8ea9c3c..b2417c1079 100644 --- a/elispotassay/src/org/labkey/elispot/ElispotProviderSchema.java +++ b/elispotassay/src/org/labkey/elispot/ElispotProviderSchema.java @@ -58,7 +58,7 @@ public TableInfo createTable(String name, ContainerFilter cf) { if (name.equalsIgnoreCase(ELISPOT_PLATE_READER_TABLE)) { - EnumTableInfo result = new EnumTableInfo<>(ElispotAssayProvider.PlateReaderType.class, this, new EnumTableInfo.EnumValueGetter() + EnumTableInfo result = new EnumTableInfo<>(ElispotAssayProvider.PlateReaderType.class, this, new EnumTableInfo.EnumValueGetter<>() { @Override public String getValue(ElispotAssayProvider.PlateReaderType e) diff --git a/elispotassay/src/org/labkey/elispot/plate/FluorescentPlateInfo.java b/elispotassay/src/org/labkey/elispot/plate/FluorescentPlateInfo.java index 6bb11af515..8340d3dcff 100644 --- a/elispotassay/src/org/labkey/elispot/plate/FluorescentPlateInfo.java +++ b/elispotassay/src/org/labkey/elispot/plate/FluorescentPlateInfo.java @@ -27,8 +27,8 @@ */ public class FluorescentPlateInfo implements PlateInfo { - private String _measurement; - private String _analyte; + private final String _measurement; + private final String _analyte; private FluorescentPlateInfo(String measurement, String analyte) { @@ -52,7 +52,6 @@ public String getAnalyte() /** * Factory to parse annotations and create PlateInfo instances - * @return */ @Nullable public static FluorescentPlateInfo create(List annotations) diff --git a/elispotassay/src/org/labkey/elispot/plate/PlateInfo.java b/elispotassay/src/org/labkey/elispot/plate/PlateInfo.java index 0fc5f1e945..ffb6cdb341 100644 --- a/elispotassay/src/org/labkey/elispot/plate/PlateInfo.java +++ b/elispotassay/src/org/labkey/elispot/plate/PlateInfo.java @@ -1,18 +1,18 @@ -/* - * Copyright (c) 2015 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright (c) 2015 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.labkey.elispot.plate; import org.jetbrains.annotations.NotNull; @@ -27,13 +27,11 @@ public interface PlateInfo * Returns the type of measurement the corresponding plate contains * @return the measurement name */ - @NotNull - public String getMeasurement(); + @NotNull String getMeasurement(); /** * Returns the name of the analyte used for a corresponding plate data * @return the name of the analyte */ - @Nullable - public String getAnalyte(); + @Nullable String getAnalyte(); } diff --git a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java index f7dab89706..937d62dfb4 100644 --- a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java +++ b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java @@ -69,28 +69,14 @@ public ElispotRunDataTable(final AssaySchema schema, TableInfo table, ContainerF var col = getMutableColumn(FieldKey.fromParts(ElispotDataHandler.SFU_PROPERTY_NAME)); if (col != null) { - col.setDisplayColumnFactory(new DisplayColumnFactory() - { - @Override - public DisplayColumn createRenderer(ColumnInfo colInfo) - { - return new SpotCountDisplayColumn(colInfo, schema); - } - }); + col.setDisplayColumnFactory(colInfo -> new SpotCountDisplayColumn(colInfo, schema)); } // display column for spot size var spotSizeCol = getMutableColumn(FieldKey.fromParts(ElispotDataHandler.SPOT_SIZE_PROPERTY_NAME)); if (spotSizeCol != null) { - spotSizeCol.setDisplayColumnFactory(new DisplayColumnFactory() - { - @Override - public DisplayColumn createRenderer(ColumnInfo colInfo) - { - return new SpotCountDisplayColumn(colInfo, schema); - } - }); + spotSizeCol.setDisplayColumnFactory(colInfo -> new SpotCountDisplayColumn(colInfo, schema)); } } @@ -191,7 +177,7 @@ public List getDefaultVisibleColumns() public static class SpotCountDisplayColumn extends DataColumn { private PlateReader _reader; - private AssaySchema _schema; + private final AssaySchema _schema; public SpotCountDisplayColumn(ColumnInfo col, AssaySchema schema) { diff --git a/elispotassay/src/org/labkey/elispot/query/PlateBasedAssayRunDataTable.java b/elispotassay/src/org/labkey/elispot/query/PlateBasedAssayRunDataTable.java index ab4b3f0c26..22a2bfae7e 100644 --- a/elispotassay/src/org/labkey/elispot/query/PlateBasedAssayRunDataTable.java +++ b/elispotassay/src/org/labkey/elispot/query/PlateBasedAssayRunDataTable.java @@ -30,7 +30,6 @@ import org.labkey.api.exp.property.DomainProperty; import org.labkey.api.exp.query.ExpMaterialTable; import org.labkey.api.exp.query.ExpRunTable; -import org.labkey.api.exp.query.ExpSchema; import org.labkey.api.query.ExprColumn; import org.labkey.api.query.FieldKey; import org.labkey.api.query.FilteredTable; diff --git a/flow/enginesrc/edu/stanford/facs/transform/Hyperlog.java b/flow/enginesrc/edu/stanford/facs/transform/Hyperlog.java index d2bbec70fd..dd8ad8cad2 100644 --- a/flow/enginesrc/edu/stanford/facs/transform/Hyperlog.java +++ b/flow/enginesrc/edu/stanford/facs/transform/Hyperlog.java @@ -181,7 +181,6 @@ public Hyperlog(double T, double W) /** * Computes the value of Taylor series at a point on the scale * - * @param scale * @return value of the inverse hyperlog function */ protected double taylorSeries (double scale) @@ -201,7 +200,8 @@ protected double taylorSeries (double scale) * a data value * @return the double Hyperlog scale value */ - public double scale (double value) + @Override + public double scale (double value) { // handle true zero separately if (value == 0) @@ -266,7 +266,8 @@ public double scale (double value) * a double scale value * @return the double data value */ - public double inverse (double scale) + @Override + public double inverse (double scale) { // reflect negative scale regions boolean negative = scale < x1; @@ -303,7 +304,8 @@ protected double slope (double scale) * * @return a double array of data values */ - public double[] axisLabels () + @Override + public double[] axisLabels () { // number of decades in the positive logarithmic region double p = M - 2 * W; diff --git a/flow/enginesrc/edu/stanford/facs/transform/Logicle.java b/flow/enginesrc/edu/stanford/facs/transform/Logicle.java index fcdc0aec93..d7273a159e 100644 --- a/flow/enginesrc/edu/stanford/facs/transform/Logicle.java +++ b/flow/enginesrc/edu/stanford/facs/transform/Logicle.java @@ -164,8 +164,6 @@ public Logicle(double T, double W) /** * Solve f(d;w,b) = 2 * (ln(d) - ln(b)) + w * (d + b) = 0 for d, given b and w * - * @param b - * @param w * @return double root d */ protected static double solve (double b, double w) @@ -242,10 +240,10 @@ protected static double solve (double b, double w) /** * Computes the slope of the biexponential function at a scale value. * - * @param scale * @return The slope of the biexponential at the scale point */ - protected double slope (double scale) + @Override + protected double slope (double scale) { // reflect negative scale regions if (scale < x1) @@ -258,7 +256,6 @@ protected double slope (double scale) /** * Computes the value of Taylor series at a point on the scale * - * @param scale * @return value of the biexponential function */ protected double seriesBiexponential (double scale) @@ -280,7 +277,8 @@ protected double seriesBiexponential (double scale) * a data value * @return the double Logicle scale value */ - public double scale (double value) + @Override + public double scale (double value) { // handle true zero separately if (value == 0) @@ -352,7 +350,8 @@ public double scale (double value) * a double scale value * @return the double data value */ - public double inverse (double scale) + @Override + public double inverse (double scale) { // reflect negative scale regions boolean negative = scale < x1; @@ -380,7 +379,8 @@ public double inverse (double scale) * * @return a double array of data values */ - public double[] axisLabels () + @Override + public double[] axisLabels () { // number of decades in the positive logarithmic region double p = M - 2 * W; diff --git a/flow/enginesrc/edu/stanford/facs/transform/Transform.java b/flow/enginesrc/edu/stanford/facs/transform/Transform.java index bd6e6f4688..3e5fb6eff6 100644 --- a/flow/enginesrc/edu/stanford/facs/transform/Transform.java +++ b/flow/enginesrc/edu/stanford/facs/transform/Transform.java @@ -55,7 +55,6 @@ public abstract class Transform * Computes the slope of the inverse function at a scale value. Needed by the * unit tests. * - * @param scale * @return The slope of the inverse transform at the scale point */ abstract protected double slope (double scale); diff --git a/flow/enginesrc/org/labkey/flow/Main.java b/flow/enginesrc/org/labkey/flow/Main.java index d1c45db834..74cbb01759 100644 --- a/flow/enginesrc/org/labkey/flow/Main.java +++ b/flow/enginesrc/org/labkey/flow/Main.java @@ -78,7 +78,7 @@ private static Workspace readWorkspace(File file, boolean printWarnings) try { Workspace workspace = Workspace.readWorkspace(file); - if (printWarnings && workspace.getWarnings().size() > 0) + if (printWarnings && !workspace.getWarnings().isEmpty()) { for (String warning : workspace.getWarnings()) System.out.println("warning: " + warning); @@ -112,10 +112,10 @@ private static File uniqueFile(File dir, String name) return file; } - private static int MAX_LINE_LEN = 80; + private static final int MAX_LINE_LEN = 80; private static void printWrapped(PrintStream out, String indent, Collection os) { - if (os.size() == 0) + if (os.isEmpty()) return; int lineLen = indent.length(); @@ -189,7 +189,7 @@ private static void executeListSamples(File workspaceFile, Set g { System.out.printf("Group %s: %s\n", group.getGroupId(), group.getGroupName()); - if (group.getSampleIds().size() == 0) + if (group.getSampleIds().isEmpty()) { System.out.println(" no samples in group"); } @@ -383,7 +383,7 @@ private static ExternalAnalysis readTsvAnalysisResults(File analysisResultsFile, if (analysisResultsFile.getName().endsWith(".zip")) { // NOTE: Duplicated code in AnalysisScriptController - File statisticsFile = null; + File statisticsFile; java.util.zip.ZipFile zipFile; try { @@ -526,7 +526,7 @@ private static void usage(String message) usage.append(" Execute LabKey analysis and save as XAR:\n"); usage.append(" ").append(progName).append(" -w labkey.xml -f fcsfiles -F xar run-analysis\n"); - System.err.println(usage.toString()); + System.err.println(usage); } public static void main(String[] args) diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/DataFrameXYDataset.java b/flow/enginesrc/org/labkey/flow/analysis/chart/DataFrameXYDataset.java index 399bf74be3..dff2914a61 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/DataFrameXYDataset.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/DataFrameXYDataset.java @@ -19,8 +19,6 @@ import org.jfree.data.xy.AbstractXYDataset; import org.labkey.flow.analysis.model.DataFrame; -import java.util.BitSet; - /** */ public class DataFrameXYDataset extends AbstractXYDataset diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityDataset.java b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityDataset.java index 4754364c1a..bc6744c05a 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityDataset.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityDataset.java @@ -123,13 +123,13 @@ public Number getZ(int series, int item) @Override public double getMinZValue() { - return (double) 0; + return 0; } @Override public double getMaxZValue() { - return (double) _zMax; + return _zMax; } @Override diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java index 489a36665e..11d0ae0c52 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java @@ -27,7 +27,6 @@ import org.jfree.data.Range; import java.awt.geom.Rectangle2D; -import java.awt.geom.Point2D; import org.labkey.flow.analysis.model.Polygon; import java.awt.*; @@ -235,14 +234,14 @@ public void contourRenderer(Graphics2D g2, assert contourData instanceof DensityDataset; DensityDataset data = (DensityDataset) contourData; // setup for collecting optional entity info... - Rectangle2D.Double entityArea = null; + Rectangle2D.Double entityArea; EntityCollection entities = null; if (info != null) { entities = info.getOwner().getEntityCollection(); } - Rectangle2D.Double rect = null; + Rectangle2D.Double rect; rect = new Rectangle2D.Double(); //turn off anti-aliasing when filling rectangles @@ -255,7 +254,7 @@ public void contourRenderer(Graphics2D g2, boolean horizInverted = false; if (horizontalAxis instanceof NumberAxis) { - horizInverted = horizontalAxis.isInverted(); + horizontalAxis.isInverted(); } double[] arrX = data.getPossibleXValues(); double[] arrY = data.getPossibleYValues(); diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java b/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java index d1fc6ea47e..2ba546ac4f 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/HistPlot.java @@ -21,7 +21,6 @@ import org.jfree.chart.plot.CrosshairState; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.axis.ValueAxis; -import org.jfree.chart.renderer.xy.XYItemRenderer; import org.jfree.chart.renderer.xy.XYBarRenderer; import org.jfree.data.xy.XYDataset; import org.jfree.data.Range; @@ -53,9 +52,9 @@ boolean renderSeries(Graphics2D g2, Rectangle2D dataArea, int series, PlotRender List xValues = new ArrayList(); XYDataset dataset = getDataset(); - int lastX = -1; - int count = 0; - double total = 0; + int lastX; + int count; + double total; int itemCount = dataset.getItemCount(series); if (itemCount == 0) return false; diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/PlotFactory.java b/flow/enginesrc/org/labkey/flow/analysis/chart/PlotFactory.java index 0d67e414c4..221505c769 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/PlotFactory.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/PlotFactory.java @@ -54,7 +54,6 @@ public class PlotFactory * @param maxValue max value * @param bucketCount The maximum number of buckets * @param fn function used to space the buckets - * @return */ static public double[] getPossibleValues(double minValue, double maxValue, int bucketCount, RangeFunction fn) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java b/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java index b648713f67..61d4d3f087 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Analysis.java @@ -157,15 +157,13 @@ private void materializeGraphs(Set graphs, Population population, Sub if (population.getGates().size() == 1) { Gate gate = population.getGates().get(0); - if (gate instanceof PolygonGate) + if (gate instanceof PolygonGate poly) { - PolygonGate poly = (PolygonGate) gate; GraphSpec graph = new GraphSpec(parent, poly.getXAxis(), poly.getYAxis()); graphs.add(graph); } - else if (gate instanceof IntervalGate) + else if (gate instanceof IntervalGate interval) { - IntervalGate interval = (IntervalGate) gate; GraphSpec graph = new GraphSpec(parent, interval.getXAxis()); graphs.add(graph); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/CalibrationTable.java b/flow/enginesrc/org/labkey/flow/analysis/model/CalibrationTable.java index 5bbbe9fb75..bbd1112734 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/CalibrationTable.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/CalibrationTable.java @@ -1,26 +1,22 @@ -/* - * Copyright (c) 2011-2019 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright (c) 2011-2019 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.labkey.flow.analysis.model; import java.io.Serializable; -import java.util.Arrays; -import java.util.StringTokenizer; -import java.util.List; -import java.util.ArrayList; public interface CalibrationTable extends Serializable { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/CleanNameExpressionTransform.java b/flow/enginesrc/org/labkey/flow/analysis/model/CleanNameExpressionTransform.java index 533a108f9a..291e5d719f 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/CleanNameExpressionTransform.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/CleanNameExpressionTransform.java @@ -1,18 +1,18 @@ -/* - * Copyright (c) 2011 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright (c) 2011 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.labkey.flow.analysis.model; import org.labkey.flow.analysis.web.SubsetExpression; @@ -24,7 +24,7 @@ */ public class CleanNameExpressionTransform implements SubsetExpression.Transform { - private boolean _tailOnly = false; + private boolean _tailOnly; public CleanNameExpressionTransform(boolean tailOnly) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java b/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java index 1f3bc1cd19..61d4668b3b 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/CompensationMatrix.java @@ -182,16 +182,14 @@ private void initCompensationMatrix(Element elMatrix) NodeList nlChannels = elMatrix.getChildNodes(); for (int iChannel = 0; iChannel < nlChannels.getLength(); iChannel ++) { - if (!(nlChannels.item(iChannel) instanceof Element)) + if (!(nlChannels.item(iChannel) instanceof Element elChannel)) continue; - Element elChannel = (Element) nlChannels.item(iChannel); HashMap mapValues = new HashMap<>(); NodeList nlChannelValues = elChannel.getChildNodes(); for (int iValue = 0; iValue < nlChannelValues.getLength(); iValue ++) { - if (!(nlChannelValues.item(iValue) instanceof Element)) + if (!(nlChannelValues.item(iValue) instanceof Element elChannelValue)) continue; - Element elChannelValue = (Element) nlChannelValues.item(iValue); // FlowJo v9.7 uses 'fluorName' attribute name String fluorName = FlowJoWorkspace.getAttribute(elChannelValue, "name", "fluorName"); @@ -228,9 +226,8 @@ private void initGatingML_1_5(Element elMatrix) NodeList nlParameter = elParameters.getElementsByTagNameNS(DATATYPES_2_0_NS, "parameter"); for (int i = 0; i < nlParameter.getLength(); i++) { - if (!(nlParameter.item(i) instanceof Element)) + if (!(nlParameter.item(i) instanceof Element elParameter)) continue; - Element elParameter = (Element)nlParameter.item(i); String name = elParameter.getAttributeNS(DATATYPES_2_0_NS, "name"); if (!parameterNames.add(name)) throw new FlowException("Duplicate parameter '" + name + "' in comp. matrix '" + _name + "'"); @@ -243,14 +240,13 @@ private void initGatingML_1_5(Element elMatrix) for (int i = 0; i < nlSpillover.getLength(); i++) { - if (!(nlSpillover.item(i) instanceof Element)) + if (!(nlSpillover.item(i) instanceof Element elSpillover)) continue; - Element elSpillover = (Element)nlSpillover.item(i); String channelName = elSpillover.getAttributeNS(DATATYPES_1_5_NS, "parameter"); - if (channelName == null || channelName.length() == 0) + if (channelName == null || channelName.isEmpty()) channelName = elSpillover.getAttributeNS(DATATYPES_2_0_NS, "parameter"); - if (channelName == null || channelName.length() == 0) + if (channelName == null || channelName.isEmpty()) throw new FlowException("Compensation matrix spillover name required in comp. matrix '" + _name + "'"); if (parameterNames != null && !parameterNames.contains(channelName)) @@ -265,14 +261,13 @@ private void initGatingML_1_5(Element elMatrix) nlCoefficient = elSpillover.getElementsByTagNameNS(TRANSFORMATIONS_2_0_NS, "coefficient"); for (int j = 0; j < nlCoefficient.getLength(); j++) { - if (!(nlCoefficient.item(j) instanceof Element)) + if (!(nlCoefficient.item(j) instanceof Element elCoefficient)) continue; - Element elCoefficient = (Element)nlCoefficient.item(j); String parameterName = elCoefficient.getAttributeNS(DATATYPES_1_5_NS, "parameter"); - if (parameterName == null || parameterName.length() == 0) + if (parameterName == null || parameterName.isEmpty()) parameterName = elCoefficient.getAttributeNS(DATATYPES_2_0_NS, "parameter"); - if (parameterName == null || parameterName.length() == 0) + if (parameterName == null || parameterName.isEmpty()) throw new FlowException("Compensation matrix coefficient name required in comp. matrix '" + _name + "'"); if (parameterNames != null && !parameterNames.contains(parameterName)) @@ -282,9 +277,9 @@ private void initGatingML_1_5(Element elMatrix) } String value = elCoefficient.getAttributeNS(TRANSFORMATIONS_1_5_NS, "value"); - if (value == null || value.length() == 0) + if (value == null || value.isEmpty()) value = elCoefficient.getAttributeNS(TRANSFORMATIONS_2_0_NS, "value"); - if (value == null || value.length() == 0) + if (value == null || value.isEmpty()) throw new FlowException("Compensation matrix coefficient value required in comp. matrix '" + _name + "'"); Double d = Double.valueOf(value); @@ -615,9 +610,8 @@ public int hashCode() public boolean equals(Object other) { - if (!(other instanceof CompensationMatrix)) + if (!(other instanceof CompensationMatrix comp)) return false; - CompensationMatrix comp = (CompensationMatrix) other; if (!Arrays.equals(_channelNames, comp._channelNames)) return false; for (int i = 0; i < _rows.length; i ++) diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/DataFrame.java b/flow/enginesrc/org/labkey/flow/analysis/model/DataFrame.java index 202960b2be..1d57d46f03 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/DataFrame.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/DataFrame.java @@ -319,17 +319,17 @@ public void dump() /** Represents a parameter in the FCS file. */ public static class Field { - private String _name; - private String _baseName; + private final String _name; + private final String _baseName; private String _prefix; private String _suffix; private Set _aliases; private String _description; /** The parameter index is 0-based. */ - private int _index; - private int _origIndex; + private final int _index; + private final int _origIndex; - private int _range; + private final int _range; /** Function to transform raw data in FCS file. */ private ScalingFunction _scalingFunction; diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/EllipseGate.java b/flow/enginesrc/org/labkey/flow/analysis/model/EllipseGate.java index b941f284ed..78e7d7059d 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/EllipseGate.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/EllipseGate.java @@ -21,7 +21,6 @@ import org.w3c.dom.NodeList; import java.util.*; -import java.util.List; import java.io.Serializable; public class EllipseGate extends RegionGate diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/ExternalAnalysis.java b/flow/enginesrc/org/labkey/flow/analysis/model/ExternalAnalysis.java index c71f84cbe0..4bcc59beb3 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/ExternalAnalysis.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/ExternalAnalysis.java @@ -33,7 +33,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; /** * User: kevink diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FCS.java b/flow/enginesrc/org/labkey/flow/analysis/model/FCS.java index c901145587..5aabca4008 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FCS.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FCS.java @@ -173,7 +173,7 @@ void readListDataInteger(InputStream is, int[] bitCounts, float[][] data) throws int ib = 0; for (int p = 0; p < bitCounts.length; p++) { - int value = 0; + int value; switch (bitCounts[p]) { case 8: @@ -245,7 +245,7 @@ void readListDataFloat(InputStream is, int[] bitCounts, float[][] data) throws I int ib = 0; for (int p = 0; p < bitCounts.length; p++) { - float value = 0; + float value; switch (bitCounts[p]) { case 32: diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FCSCache.java b/flow/enginesrc/org/labkey/flow/analysis/model/FCSCache.java index 2442b5b74a..96fab3a0d5 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FCSCache.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FCSCache.java @@ -39,7 +39,8 @@ private static class FCSHeaderCache private FCSHeaderCache() { - super(CacheManager.getCache(CACHE_SIZE, CacheManager.DAY, "FCS header cache"), new CacheLoader(){ + super(CacheManager.getCache(CACHE_SIZE, CacheManager.DAY, "FCS header cache"), new CacheLoader<>() + { @Override public FCSHeader load(@NotNull URI uri, Object argument) { @@ -79,7 +80,8 @@ private static class FCSCacheMap extends BlockingCache private FCSCacheMap() { - super(CacheManager.getCache(CACHE_SIZE, CacheManager.DAY, "FCS cache"), new CacheLoader(){ + super(CacheManager.getCache(CACHE_SIZE, CacheManager.DAY, "FCS cache"), new CacheLoader<>() + { @Override public FCS load(@NotNull URI uri, Object argument) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java b/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java index 835d49b06c..96420c4c3a 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FCSHeader.java @@ -48,7 +48,7 @@ public class FCSHeader private static final Logger LOG = LogManager.getLogger(FCSHeader.class); - private Map keywords = new CaseInsensitiveHashMap<>(); + private final Map keywords = new CaseInsensitiveHashMap<>(); int dataLast; int dataOffset; int textOffset; @@ -489,7 +489,7 @@ protected void load(InputStream is) throws IOException String strValue = fullText.substring(ichMid + 1, ichEnd); // FCS format encodes empty keyword values as a single space character -- convert it to null. strValue = strValue.trim(); - if (strValue.length() == 0) + if (strValue.isEmpty()) strValue = null; if (keywords.containsKey(strKey)) LOG.warn("Duplicate key '" + strKey + "'"); 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 35ee2b9591..825ba76a0a 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 @@ -182,7 +182,7 @@ else if (xGate instanceof RectangleGateType) } catch (XmlException e) { - throw new UnexpectedException(e); + throw UnexpectedException.wrap(e); } return gate; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java index d282e80dc4..9a42d8c3d5 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/FlowJoWorkspace.java @@ -211,7 +211,7 @@ public void createBooleanAliases() protected void addSampleAnalysisResults(AttributeSet results, String sampleId) { final Map statistics = results.getStatistics(); - if (statistics.size() > 0) + if (!statistics.isEmpty()) { // Issue 19117: FlowJo 10.0.6 saves total count as -1 // If the statistic "count" is unavailable, try to get it from the '$TOT" keyword. @@ -299,9 +299,8 @@ static List getElementsByTagName(Element parent, String tagName) for (int i = 0; i < nl.getLength(); i ++) { Node node = nl.item(i); - if (!(node instanceof Element)) + if (!(node instanceof Element child)) continue; - Element child = (Element) node; if (child.getTagName().equals(tagName)) ret.add(child); } @@ -314,9 +313,8 @@ static Element getElementByTagName(Element parent, String tagName) for (int i = 0; i < nl.getLength(); i ++) { Node node = nl.item(i); - if (!(node instanceof Element)) + if (!(node instanceof Element child)) continue; - Element child = (Element) node; if (child.getTagName().equals(tagName)) return child; } @@ -639,8 +637,6 @@ protected double parseParamValue(String param, Element el, String attribute) /** * There are some - * @param axis - * @param values */ protected void scaleValues(String axis, List values) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java b/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java index ac4e04ce28..6ca7c43761 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Gate.java @@ -71,9 +71,8 @@ static public List readGateList(Element element) for (int i = 0; i < nlChildren.getLength(); i ++) { Node nodeChild = nlChildren.item(i); - if (!(nodeChild instanceof Element)) + if (!(nodeChild instanceof Element elChild)) continue; - Element elChild = (Element) nodeChild; if ("interval".equals(elChild.getTagName())) { ret.add(IntervalGate.readInterval(elChild)); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/ISampleInfo.java b/flow/enginesrc/org/labkey/flow/analysis/model/ISampleInfo.java index d8498b2e74..3170f939b0 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/ISampleInfo.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/ISampleInfo.java @@ -36,46 +36,41 @@ public interface ISampleInfo * Internal sample id used by the workspace or analysis archive. * Not a stable identifier across imports. */ - @NotNull - public String getSampleId(); + @NotNull String getSampleId(); /** * The sample name (usually the same as the $FIL keyword, but may be renamed in the workspace.) * The sample name may be null. */ - @Nullable - public String getSampleName(); + @Nullable String getSampleName(); /** * The $FIL keyword value. */ - @Nullable - public String getFilename(); + @Nullable String getFilename(); /** * Get human readable display name (may be sample name, $FIL, or sample id). */ - @NotNull - public String getLabel(); + @NotNull String getLabel(); /** * A case-insensitive map of keyword names to values. */ - public Map getKeywords(); + Map getKeywords(); /** * The analysis definition which may be null for an analysis archive. */ - @Nullable - public Analysis getAnalysis(); + @Nullable Analysis getAnalysis(); /** * The calculated statistics and graphs. */ - public AttributeSet getAnalysisResults(); + AttributeSet getAnalysisResults(); /** * The compensation matrix used for analysis. */ - public CompensationMatrix getCompensationMatrix(); + CompensationMatrix getCompensationMatrix(); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java index e53f9365b0..5fe39667bd 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/MacWorkspace.java @@ -224,7 +224,7 @@ private boolean checkGateCodesInOrder(SubsetSpec parentSubset, String name, Stri else { // get int from gateCode - Integer i = Integer.parseInt(gateCode.substring(1)); + int i = Integer.parseInt(gateCode.substring(1)); if (i != gateCount) { System.err.println(String.format("%s\t%s\t%s", _name==null ? "" : _name, fullGateName, specification)); @@ -310,9 +310,8 @@ protected Population readPopulation(Element elPopulation, SubsetSpec parentSubse for (int iNode = 0; iNode < nl.getLength(); iNode ++) { Node node = nl.item(iNode); - if (!(node instanceof Element)) + if (!(node instanceof Element el)) continue; - Element el = (Element) node; boolean invert = "1".equals(el.getAttribute("negated")) || "0".equals(el.getAttribute("eventsInside")); if ("Polygon".equals(el.getTagName()) || "PolyRect".equals(el.getTagName())) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/NotGate.java b/flow/enginesrc/org/labkey/flow/analysis/model/NotGate.java index e8dff062cd..3f7ea5647d 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/NotGate.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/NotGate.java @@ -63,10 +63,9 @@ public boolean isSimilar(Gate other) if (equals(other)) return true; - if (!(other instanceof NotGate)) + if (!(other instanceof NotGate notGate)) return false; - NotGate notGate = (NotGate) other; return _gate.isSimilar(notGate._gate); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java index e835fb54cd..6da90a8094 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/PC75Workspace.java @@ -131,7 +131,7 @@ private Gate readBooleanGate(BooleanGateType xBooleanGate) protected Gate readGate(Element elGate, SubsetSpec subset, Analysis analysis, String sampleId) { List elChildren = getElements(elGate); - if (elChildren.size() == 0) + if (elChildren.isEmpty()) { warnOnce(sampleId, analysis.getName(), subset, "No gate found"); return null; @@ -145,9 +145,9 @@ protected Gate readGate(Element elGate, SubsetSpec subset, Analysis analysis, St if (gate != null) { String id = gate.getId(); - if (id == null || "".equals(id)) + if (id == null || id.isEmpty()) id = elGate.getAttributeNS(GATING_1_5_NS, "id"); - if (id == null || "".equals(id)) + if (id == null || id.isEmpty()) id = elGate.getAttributeNS(GATING_2_0_NS, "id"); if (invert) @@ -196,7 +196,7 @@ else if (xGate instanceof RectangleGateType) } catch (XmlException e) { - throw new UnexpectedException(e); + throw UnexpectedException.wrap(e); } return gate; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java index a709e8310f..7ddb18ce25 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/PCWorkspace.java @@ -208,7 +208,7 @@ protected Population readBoolean(Element elBoolNode, SubsetSpec parentSubset, An } } - if (gates.size() > 0) + if (!gates.isEmpty()) { Gate gate = null; String tagName = elBoolNode.getTagName(); diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Population.java b/flow/enginesrc/org/labkey/flow/analysis/model/Population.java index 4b86f1e7e7..ebfc41def8 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Population.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Population.java @@ -16,7 +16,6 @@ package org.labkey.flow.analysis.model; -import java.util.Collections; import java.util.List; import java.util.ArrayList; diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/PopulationName.java b/flow/enginesrc/org/labkey/flow/analysis/model/PopulationName.java index 1f29fedd75..db69cd97b2 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/PopulationName.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/PopulationName.java @@ -41,7 +41,7 @@ public class PopulationName implements SubsetPart, Comparable public static final Character MAC_EMDASH = (char)209; // Characters not allowed to appear within a top-level population name. - private static Set illegalTopLevelChars = new HashSet<>(); + private static final Set illegalTopLevelChars = new HashSet<>(); static { illegalTopLevelChars.add('/'); @@ -50,7 +50,7 @@ public class PopulationName implements SubsetPart, Comparable } // Characters not allowed to appear within a population name inside of boolean expression. - private static Set illegalExpressionChars = new HashSet<>(); + private static final Set illegalExpressionChars = new HashSet<>(); static { illegalExpressionChars.add('('); @@ -71,7 +71,7 @@ public class PopulationName implements SubsetPart, Comparable public static PopulationName fromString(String str) { - if (str == null || str.length() == 0) + if (str == null || str.isEmpty()) return null; // replace MacRoman em-dash and en-dash diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java b/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java index 044a7b46be..61b2c7b4bd 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SampleIdMap.java @@ -39,7 +39,8 @@ public class SampleIdMap { public static SampleIdMap emptyMap() { - return new SampleIdMap() { + return new SampleIdMap<>() + { @Override public void put(String id, String name, Object value) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java b/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java index d6116d3519..ffa26c5861 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SampleInfoBase.java @@ -74,9 +74,9 @@ public String getSampleId() public @NotNull String getLabel() { String ret = _sampleName; - if (ret == null || ret.length() == 0) + if (ret == null || ret.isEmpty()) ret = getFilename(); - if (ret == null || ret.length() == 0) + if (ret == null || ret.isEmpty()) return _sampleId; return ret; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/ScalingFunction.java b/flow/enginesrc/org/labkey/flow/analysis/model/ScalingFunction.java index fdb28861e9..c0aa1a1cb1 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/ScalingFunction.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/ScalingFunction.java @@ -17,7 +17,6 @@ import org.labkey.flow.analysis.data.NumberArray; import org.labkey.flow.analysis.data.FloatArray; -import org.labkey.flow.analysis.data.ConstrainedNumberArray; import org.labkey.flow.analysis.data.DoubleArray; import static java.lang.Math.max; @@ -38,8 +37,7 @@ public abstract class ScalingFunction implements Cloneable * @param scale linear scaling factor * @param range max input value * @param minValue min output value - * @return - */ + */ private static ScalingFunction makeFunction(double decade, double scale, double range, double minValue) { ScalingFunction fn; diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/ScriptSettings.java b/flow/enginesrc/org/labkey/flow/analysis/model/ScriptSettings.java index 9d45255d00..d5e4d00fda 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/ScriptSettings.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/ScriptSettings.java @@ -144,7 +144,7 @@ public SettingsDef toSettingsDef() } } - if (_filters.size() > 0) + if (!_filters.isEmpty()) { FiltersDef filtersDef = ret.addNewFilters(); for (FilterInfo filter : _filters.values()) diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/StatsTable.java b/flow/enginesrc/org/labkey/flow/analysis/model/StatsTable.java index d7559f2a29..a375d16c9d 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/StatsTable.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/StatsTable.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.labkey.flow.analysis.model; import java.util.ArrayList; @@ -77,7 +77,7 @@ public void setParameter(String parameter) public String getHeader() { String ret = getSubset() + ":" + getStatistic(); - if (_parameter != null && _parameter.length() != 0) + if (_parameter != null && !_parameter.isEmpty()) { ret += "(" + _parameter + ")"; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SubsetExpressionGate.java b/flow/enginesrc/org/labkey/flow/analysis/model/SubsetExpressionGate.java index 80df10b177..9f3fe3e622 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SubsetExpressionGate.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SubsetExpressionGate.java @@ -24,14 +24,13 @@ */ public interface SubsetExpressionGate { - abstract public SubsetExpression getOriginalExpression(); - abstract public void setOriginalExpression(SubsetExpression expr); + SubsetExpression getOriginalExpression(); + void setOriginalExpression(SubsetExpression expr); /** * Create a SubsetExpression from this Gate. Only gates contributing to * a boolean expression are supported. This is used to create a backwards * compatible SubsetExpression string from a boolean gate. - * @return */ - abstract public SubsetExpression createTerm(); + SubsetExpression createTerm(); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/SubsetPart.java b/flow/enginesrc/org/labkey/flow/analysis/model/SubsetPart.java index 50823a5007..24acc2d0c9 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/SubsetPart.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/SubsetPart.java @@ -24,5 +24,5 @@ */ public interface SubsetPart extends Serializable { - public String toString(boolean escape, boolean withinExpression); + String toString(boolean escape, boolean withinExpression); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/ValueConstraint.java b/flow/enginesrc/org/labkey/flow/analysis/model/ValueConstraint.java index d3b08e4582..46c4e23013 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/ValueConstraint.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/ValueConstraint.java @@ -1,25 +1,25 @@ -/* - * Copyright (c) 2011-2019 LabKey Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright (c) 2011-2019 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.labkey.flow.analysis.model; public class ValueConstraint { - private double _minValue; - private double _maxValue; + private final double _minValue; + private final double _maxValue; public ValueConstraint(double minValue, double maxValue) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java b/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java index cf58f28237..c62c705f79 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/Workspace.java @@ -124,7 +124,7 @@ static public Workspace readWorkspace(String name, String path, InputStream stre double version = 0; try { - if (versionString != null && versionString.length() > 0) + if (versionString != null && !versionString.isEmpty()) version = Double.parseDouble(versionString); } catch (NumberFormatException nfe) @@ -248,13 +248,13 @@ protected void warning(SampleInfo sample, PopulationName name, SubsetSpec subset { StringBuilder sb = new StringBuilder(); if (sample != null) - sb.append("Sample ").append(sample.toString()).append(": "); + sb.append("Sample ").append(sample).append(": "); if (name != null) - sb.append(name.toString()).append(": "); + sb.append(name).append(": "); if (subset != null) - sb.append(subset.toString()).append(": "); + sb.append(subset).append(": "); sb.append(msg); warning(sb.toString()); @@ -401,7 +401,7 @@ public List getSamples() allSamples = allSamplesGroup.getSampleInfos(); // No "All Samples" group found or it was empty. Return all sample IDs in the workspace. - if (allSamples == null || allSamples.size() == 0) + if (allSamples == null || allSamples.isEmpty()) allSamples = getSamplesComplete(); return allSamples; @@ -427,7 +427,7 @@ public List getSampleIds() public List getSampleLabels() { List allSamples = getSamples(); - if (allSamples == null || allSamples.size() == 0) + if (allSamples == null || allSamples.isEmpty()) return Collections.emptyList(); List allSampleLabels = new ArrayList<>(allSamples.size()); @@ -589,7 +589,7 @@ public CompensationMatrix getCompensationMatrix() return CompensationMatrix.fromSpillKeyword(_keywords); } - if (_compensationMatrices.size() == 0) + if (_compensationMatrices.isEmpty()) { return null; } @@ -639,7 +639,7 @@ public boolean isAllSamples() public List getSampleIds() { - if (_sampleIds.size() == 0 && isAllSamples()) + if (_sampleIds.isEmpty() && isAllSamples()) return new ArrayList<>(Workspace.this.getSampleIdsComplete()); return _sampleIds; } diff --git a/flow/enginesrc/org/labkey/flow/analysis/model/WorkspaceParser.java b/flow/enginesrc/org/labkey/flow/analysis/model/WorkspaceParser.java index 4a4a7bada2..f9c3aaee88 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/model/WorkspaceParser.java +++ b/flow/enginesrc/org/labkey/flow/analysis/model/WorkspaceParser.java @@ -15,7 +15,6 @@ */ package org.labkey.flow.analysis.model; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.apache.xerces.impl.Constants; import org.apache.xerces.parsers.DOMParser; @@ -396,7 +395,7 @@ public short acceptNode(Node node) if (node instanceof Text) { String data = ((Text)node).getData(); - if (data.length() < 10 && data.trim().length() == 0) + if (data.length() < 10 && data.trim().isEmpty()) return FILTER_REJECT; else return FILTER_ACCEPT; @@ -469,11 +468,7 @@ static FJDOMParser create() setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE, true); setErrorHandler(new FJErrorHandler()); } - catch (SAXNotSupportedException x) - { - throw new RuntimeException(x); - } - catch (SAXNotRecognizedException x) + catch (SAXNotSupportedException | SAXNotRecognizedException x) { throw new RuntimeException(x); } diff --git a/flow/enginesrc/org/labkey/flow/analysis/util/AbstractRangeFunction.java b/flow/enginesrc/org/labkey/flow/analysis/util/AbstractRangeFunction.java index 41844f7bd8..a025e62e89 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/util/AbstractRangeFunction.java +++ b/flow/enginesrc/org/labkey/flow/analysis/util/AbstractRangeFunction.java @@ -11,11 +11,13 @@ protected AbstractRangeFunction(double min, double max) _max = max; } + @Override public double getMin() { return _min; } + @Override public double getMax() { return _max; diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/ChannelData.java b/flow/enginesrc/org/labkey/flow/analysis/web/ChannelData.java index d68740e0c1..2eca670494 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/ChannelData.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/ChannelData.java @@ -23,7 +23,7 @@ class ChannelData { - static private SubsetSpec compSubset = SubsetSpec.fromEscapedString("comp"); + static private final SubsetSpec compSubset = SubsetSpec.fromEscapedString("comp"); // Returns the SSC-H field, or whatever field is appropriate for histogram data /*public DataFrame.Field findHistogramField(DataFrame data) @@ -123,9 +123,8 @@ public void drawGraph(Subset subset, String parameter, boolean compensated) List polys = new ArrayList(); if (!compensated) { - if (_populationSet instanceof Population) + if (_populationSet instanceof Population positivePop) { - Population positivePop = (Population) _populationSet; for (Gate gate : positivePop.getGates()) { gate.getPolygons(polys, getChannelName(), getChannelName()); @@ -133,7 +132,7 @@ public void drawGraph(Subset subset, String parameter, boolean compensated) } } List displayPolys = new ArrayList(); - if (polys.size() > 0) + if (!polys.isEmpty()) { double xMin = Float.MAX_VALUE; double xMax = -Float.MAX_VALUE; diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/CompSign.java b/flow/enginesrc/org/labkey/flow/analysis/web/CompSign.java index c3bcf562d6..48d4862ed5 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/CompSign.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/CompSign.java @@ -13,11 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + package org.labkey.flow.analysis.web; public enum CompSign { positive, - negative; + negative } diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java b/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java index 6f47e328b4..0e77948662 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/FCSAnalyzer.java @@ -197,7 +197,7 @@ private GraphResult generateGraph(Map subsetMap, PopulationS public List generateGraphs(URI uri, CompensationMatrix comp, ScriptComponent group, Collection graphs) throws IOException { - if (graphs.size() == 0) + if (graphs.isEmpty()) { return Collections.EMPTY_LIST; } @@ -389,9 +389,8 @@ protected SubsetSpec _getSubsetAlias(PopulationSet populationSet, SubsetSpec sub //List aliasParts = new ArrayList(10); for (SubsetPart part : subset.getSubsets()) { - if (part instanceof PopulationName) + if (part instanceof PopulationName name) { - PopulationName name = (PopulationName)part; Population population = populationSet.getPopulation(name); if (population == null) return null; @@ -448,11 +447,9 @@ protected SubsetSpec _getSubsetAlias(PopulationSet populationSet, SubsetSpec sub private SubsetExpression expressionFromGate(Gate gate) { - if (!(gate instanceof SubsetExpressionGate)) + if (!(gate instanceof SubsetExpressionGate exprGate)) return null; - SubsetExpressionGate exprGate = (SubsetExpressionGate)gate; - try { // Re-use the original boolean expression if possible. It may contain grouping information. diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/GraphSpec.java b/flow/enginesrc/org/labkey/flow/analysis/web/GraphSpec.java index 9d60fc3852..41ab3600be 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/GraphSpec.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/GraphSpec.java @@ -53,7 +53,7 @@ public GraphSpec(SubsetSpec subset, String ... parameters) public GraphSpec(SubsetSpec subset, Collection parameters) { _subset = subset; - _parameters = parameters.toArray(new String[parameters.size()]); + _parameters = parameters.toArray(new String[0]); } public GraphSpec(@NotNull String str) @@ -90,7 +90,7 @@ private String _toString() StringBuilder ret = new StringBuilder(); if (_subset != null) - ret.append(_subset.toString()); + ret.append(_subset); ret.append("("); for (int i = 0; i < _parameters.length; i ++) { diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/PlotInfo.java b/flow/enginesrc/org/labkey/flow/analysis/web/PlotInfo.java index c29a79e73a..14ed10c041 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/PlotInfo.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/PlotInfo.java @@ -34,7 +34,7 @@ public class PlotInfo { - private ChartRenderingInfo _info; + private final ChartRenderingInfo _info; BufferedImage _image; ValueAxis _domainAxis; ValueAxis _rangeAxis; diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java b/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java index cfa12567c4..32da912b4e 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/ScriptAnalyzer.java @@ -318,21 +318,18 @@ else if (gate instanceof SubsetRef) static public void fillGate(GateDef gateDef, Gate gate) { - if (gate instanceof PolygonGate) + if (gate instanceof PolygonGate polygonGate) { - PolygonGate polygonGate = (PolygonGate) gate; PolygonDef polygonDef = gateDef.addNewPolygon(); fillPolygonGate(polygonDef, polygonGate); } - else if (gate instanceof IntervalGate) + else if (gate instanceof IntervalGate intervalGate) { - IntervalGate intervalGate = (IntervalGate) gate; IntervalDef intervalDef = gateDef.addNewInterval(); fillIntervalGate(intervalDef, intervalGate); } - else if (gate instanceof EllipseGate) + else if (gate instanceof EllipseGate ellipseGate) { - EllipseGate ellipseGate = (EllipseGate) gate; EllipseDef ellipseDef = gateDef.addNewEllipse(); fillEllipseGate(ellipseDef, ellipseGate); } @@ -438,7 +435,7 @@ else if (sampleId != null) { for (Analysis analysisTry : workspace.getGroupAnalyses().values()) { - if (analysisTry.getPopulations().size() > 0) + if (!analysisTry.getPopulations().isEmpty()) { if (analysis != null) throw new RuntimeException("There is more than one group analysis in this workspace. Please specify which one to use."); @@ -452,7 +449,7 @@ else if (sampleId != null) Analysis analysisTry = workspace.getSampleAnalysis(sample); if (analysisTry == null) continue; - if (analysisTry.getPopulations().size() > 0) + if (!analysisTry.getPopulations().isEmpty()) { if (analysis != null) throw new RuntimeException("There is more than one sample analysis in this workspace. Please specify which one to use."); @@ -576,7 +573,7 @@ public static void addSubsets(Collection list, SubsetSpec parent, Po static public Collection getSubsets(String script, boolean includeAnalysis, boolean includeCompensation, boolean includeBooleans) { - if (script == null || script.length() == 0) + if (script == null || script.isEmpty()) return Collections.emptyList(); try { diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/StatisticSpec.java b/flow/enginesrc/org/labkey/flow/analysis/web/StatisticSpec.java index 5c4e047de7..6fa6fb6154 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/StatisticSpec.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/StatisticSpec.java @@ -128,12 +128,11 @@ public static STAT fromString(String str) // Create regular expression to find the STAT in a statistic spec // start-of-line-or-colon ( stat-names ) open-paren-or-end-of-line - StringBuilder sb = new StringBuilder(); - sb.append("(^|:)"); - sb.append("(").append(StringUtils.join(stats, "|")).append(")"); - sb.append("(\\(|$)"); + String sb = "(^|:)" + + "(" + StringUtils.join(stats, "|") + ")" + + "(\\(|$)"; - _statPattern = Pattern.compile(sb.toString()); + _statPattern = Pattern.compile(sb); } public StatisticSpec(SubsetSpec subset, STAT statistic, String parameter) diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetExpression.java b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetExpression.java index 68196ab9f0..2deaffe5f4 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetExpression.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetExpression.java @@ -26,7 +26,6 @@ abstract public class SubsetExpression implements SubsetPart * Parses a string into a SubsetSpec. * * @param subsetAndExpression The subset and expression (eg., "X/Y/(A&B)" or "(A&B)") - * @return */ static public SubsetSpec subset(String subsetAndExpression) { @@ -38,7 +37,6 @@ static public SubsetSpec subset(String subsetAndExpression) * Parses a string into a SubsetExpression. * * @param expression The expression portion of a subset (eg., "(A&B)") - * @return */ static public SubsetExpression expression(String expression) { @@ -290,10 +288,9 @@ public BitSet apply(Subset subset, PopulationSet populationSet) { Object term = terms[i]; // UNDONE: allow populations below boolean expressions - if (term instanceof SubsetExpression) + if (term instanceof SubsetExpression expr) { assert i == terms.length - 1; - SubsetExpression expr = (SubsetExpression)term; BitSet bits = expr.apply(subset, populationSet); ret.and(bits); return ret; diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetParser.java b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetParser.java index a5cdf4506c..55a928ff14 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetParser.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetParser.java @@ -78,7 +78,7 @@ public String toString() private static final Token EOF = new Token(Tok.eof, ""); - private Lexer _lexer; + private final Lexer _lexer; private Token _lookahead; public SubsetParser(String str) @@ -224,11 +224,11 @@ private static class Lexer implements Iterator /** The last recognized token. */ Token _token = null; /** Lookahead, if any. */ - int _lookahead = -1; + int _lookahead; /** Current index. */ int _index = -1; /** The source string. */ - String _str = null; + String _str; /** are we in a spot where we might have an unescaped name? */ boolean _allowUnescapedName = false; diff --git a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetSpec.java b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetSpec.java index 719a3aba0a..a5ac549cdc 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/web/SubsetSpec.java +++ b/flow/enginesrc/org/labkey/flow/analysis/web/SubsetSpec.java @@ -68,8 +68,6 @@ public SubsetSpec createChild(@NotNull SubsetSpec spec) /** * Creates a new SubsetSpec from raw strings. The final string may be a boolean expression. * - * @param rawStrings - * @return */ static public SubsetSpec fromParts(String... rawStrings) { @@ -96,8 +94,6 @@ static public SubsetSpec fromParts(String... rawStrings) /** * Parses a SubsetSpec from an unesacped string and assumes there are no '/' characters in population names. - * @param rawString - * @return */ static public SubsetSpec fromUnescapedString(String rawString) { @@ -109,13 +105,11 @@ static public SubsetSpec fromUnescapedString(String rawString) * Parses a SubsetSpec from an escaped string. Any special characters (e.g., "(" or "/") have been escaped * in each population by surrounding the population name with "{}". * - * @param strSubset - * @return * @see {@link org.labkey.flow.analysis.model.PopulationName#fromString(String)}. */ static public SubsetSpec fromEscapedString(String strSubset) { - if (strSubset == null || strSubset.length() == 0) + if (strSubset == null || strSubset.isEmpty()) { return null; } diff --git a/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java b/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java index 22d17fa0f9..18b7e5f879 100644 --- a/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java +++ b/flow/enginesrc/org/labkey/flow/persist/AnalysisSerializer.java @@ -18,7 +18,6 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; import org.jetbrains.annotations.NotNull; import org.junit.Assert; import org.junit.Test; @@ -732,7 +731,6 @@ else if (!foundValueColumn && col.name.equalsIgnoreCase(KeywordColumnName.Value. foundValueColumn = true; else { - foundExtraColumns = true; // assume any other column is a String keyword value col.clazz = String.class; @@ -1344,7 +1342,7 @@ else if (saveOptions.contains(Options.FormatGroupBySamplePopulationParameter)) results = writeStatisticsGroupedBySamplePopulation(analysis, shortStatNames); // write the tsv file - if (results.second.size() > 0) + if (!results.second.isEmpty()) { OutputStream statisticsFile = _rootDir.getOutputStream(STATISTICS_FILENAME); @@ -1470,7 +1468,7 @@ private void writeKeywords(SampleIdMap keywords, EnumSet results = writeKeywordsGroupedBySample(keywords); // write the tsv file - if (results.second.size() > 0) + if (!results.second.isEmpty()) { OutputStream statisticsFile = _rootDir.getOutputStream(KEYWORDS_FILENAME); @@ -1518,7 +1516,7 @@ private void writeCompMatrices(SampleIdMap matrices, EnumSet } // write the tsv file - if (rows.size() > 0) + if (!rows.isEmpty()) { OutputStream statisticsFile = _rootDir.getOutputStream(COMPENSATION_FILENAME); @@ -1625,7 +1623,7 @@ private void writeGraphs(SampleIdMap analysis, boolean friendlyIma } // write the graphs.tsv - if (rows.size() > 0) + if (!rows.isEmpty()) { OutputStream statisticsFile = _rootDir.getOutputStream(GRAPHS_FILENAME); diff --git a/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java b/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java index 3e8ec1c4b8..a475c52f98 100644 --- a/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java +++ b/flow/enginesrc/org/labkey/flow/persist/AttributeSet.java @@ -277,7 +277,7 @@ public Collection getKeywordAliases(String spec) return Collections.emptyList(); Set aliases = _keywordAliases.get(spec); - if (aliases == null || aliases.size() == 0) + if (aliases == null || aliases.isEmpty()) return Collections.emptyList(); return Collections.unmodifiableCollection(aliases); @@ -303,7 +303,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.toString() + "'"); + LOG.warn("Duplicate statistic '" + existing + "' and '" + stat + "'"); _statistics.put(stat, value); } } @@ -323,7 +323,7 @@ public Collection getStatisticAliases(StatisticSpec spec) return Collections.emptyList(); Set aliases = _statisticAliases.get(spec); - if (aliases == null || aliases.size() == 0) + if (aliases == null || aliases.isEmpty()) return Collections.emptyList(); //ArrayList strings = new ArrayList(aliases.size()); @@ -345,7 +345,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.toString() + "'"); + LOG.warn("Duplicate graph '" + existing + "' and '" + graph + "'"); _graphs.put(graph, data); } @@ -372,7 +372,7 @@ public Collection getGraphAliases(GraphSpec spec) return Collections.emptyList(); Set aliases = _graphAliases.get(spec); - if (aliases == null || aliases.size() == 0) + if (aliases == null || aliases.isEmpty()) return Collections.emptyList(); //ArrayList strings = new ArrayList(aliases.size()); diff --git a/flow/src/org/labkey/flow/controllers/FlowController.java b/flow/src/org/labkey/flow/controllers/FlowController.java index 163baf5bbb..a612ff525a 100644 --- a/flow/src/org/labkey/flow/controllers/FlowController.java +++ b/flow/src/org/labkey/flow/controllers/FlowController.java @@ -68,7 +68,6 @@ import org.labkey.flow.webparts.FlowFolderType; import org.labkey.flow.webparts.OverviewWebPart; import org.labkey.vfs.FileLike; -import org.labkey.vfs.FileSystemLike; import org.springframework.validation.BindException; import org.springframework.validation.Errors; import org.springframework.web.servlet.ModelAndView; @@ -194,7 +193,7 @@ public void addNavTrail(NavTree root) } @RequiresPermission(AdminPermission.class) - public class NewFolderAction extends FormViewAction + public static class NewFolderAction extends FormViewAction { Container destContainer; @@ -297,7 +296,7 @@ public void addNavTrail(NavTree root) @AdminConsoleAction @RequiresPermission(AdminOperationsPermission.class) - public class FlowAdminAction extends FormViewAction + public static class FlowAdminAction extends FormViewAction { @Override public void validateCommand(FlowAdminForm form, Errors errors) @@ -401,7 +400,7 @@ public void addNavTrail(NavTree root) } @RequiresPermission(AdminPermission.class) - public class MetricsAction extends ReadOnlyApiAction + public static class MetricsAction extends ReadOnlyApiAction { @Override public Object execute(Object o, BindException errors) throws Exception @@ -437,13 +436,13 @@ controller.new SavePreferencesAction() // @RequiresPermission(AdminPermission.class) assertForAdminPermission(user, - controller.new NewFolderAction() + new NewFolderAction() ); // @AdminConsoleAction // @RequiresPermission(AdminOperationsPermission.class) assertForAdminOperationsPermission(ContainerManager.getRoot(), user, - controller.new FlowAdminAction() + new FlowAdminAction() ); } } diff --git a/flow/src/org/labkey/flow/controllers/ReportsController.java b/flow/src/org/labkey/flow/controllers/ReportsController.java index 3f918c443f..ea4f41ccdc 100644 --- a/flow/src/org/labkey/flow/controllers/ReportsController.java +++ b/flow/src/org/labkey/flow/controllers/ReportsController.java @@ -256,7 +256,7 @@ public void validateCommand(CopyForm form, Errors errors) return; } - if (form.getReportName() == null || form.getReportName().length() == 0) + if (form.getReportName() == null || form.getReportName().isEmpty()) { errors.rejectValue("reportName", ERROR_MSG, "Report name must not be empty"); return; @@ -281,7 +281,7 @@ public ModelAndView getView(CopyForm form, boolean reshow, BindException errors) return new SimpleErrorView(errors); r = getReport(getViewContext(), form); - if (form.getReportName() == null || form.getReportName().length() == 0) + if (form.getReportName() == null || form.getReportName().isEmpty()) form.setReportName("Copy of " + r.getDescriptor().getReportName()); getPageConfig().setFocusId("reportName"); return new JspView<>("/org/labkey/flow/controllers/copyReport.jsp", Pair.of(form, r), errors); @@ -421,7 +421,7 @@ else if (r.saveToDomain()) else { // ajax execute report via POST - view = new JspView("/org/labkey/flow/controllers/ajaxExecuteReport.jsp", Pair.of(form, r), errors); + view = new JspView<>("/org/labkey/flow/controllers/ajaxExecuteReport.jsp", Pair.of(form, r), errors); } return new VBox(new SelectReportView(form), view); @@ -436,7 +436,7 @@ public void addNavTrail(NavTree root) } @RequiresPermission(ReadPermission.class) - public class ExecuteReportAction extends MutatingApiAction + public static class ExecuteReportAction extends MutatingApiAction { @Override public Object execute(ExecuteForm form, BindException errors) throws Exception diff --git a/flow/src/org/labkey/flow/controllers/WorkspaceData.java b/flow/src/org/labkey/flow/controllers/WorkspaceData.java index ff4f109b40..84815ec1c7 100644 --- a/flow/src/org/labkey/flow/controllers/WorkspaceData.java +++ b/flow/src/org/labkey/flow/controllers/WorkspaceData.java @@ -281,7 +281,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.toString() + "\n" + parameterMismatches.toString()); + _log.debug("Mismatch counts while parsing workspace: " + _object.getName() + "\n" + subsetMismatches + "\n" + parameterMismatches); addCaseSensitiveWarnings(errors, messages, isCaseSensitive); } diff --git a/flow/src/org/labkey/flow/controllers/attribute/AttributeController.java b/flow/src/org/labkey/flow/controllers/attribute/AttributeController.java index f10b5e9e75..e9189b44c4 100644 --- a/flow/src/org/labkey/flow/controllers/attribute/AttributeController.java +++ b/flow/src/org/labkey/flow/controllers/attribute/AttributeController.java @@ -414,7 +414,7 @@ public static class DeleteUnusedBean } @RequiresPermission(AdminPermission.class) - public class DeleteUnusedAction extends ConfirmAction + public static class DeleteUnusedAction extends ConfirmAction { @Override public ModelAndView getConfirmView(ReturnUrlForm form, BindException errors) @@ -481,7 +481,7 @@ public void setCaseSensitiveStatsAndGraphs(boolean caseSensitiveStatsAndGraphs) } @RequiresPermission(AdminPermission.class) - public class CaseSensitivityAction extends FormViewAction + public static class CaseSensitivityAction extends FormViewAction { @Override public void validateCommand(CaseSensitivityForm form, Errors errors) diff --git a/flow/src/org/labkey/flow/controllers/compensation/CompensationController.java b/flow/src/org/labkey/flow/controllers/compensation/CompensationController.java index 5a7d9baf68..82457c4642 100644 --- a/flow/src/org/labkey/flow/controllers/compensation/CompensationController.java +++ b/flow/src/org/labkey/flow/controllers/compensation/CompensationController.java @@ -259,7 +259,7 @@ public boolean handlePost(ViewForm viewForm, BindException errors) hasErrors = addError(errors, "This matrix cannot be deleted because belongs to a run."); } List runs = comp.getExpObject().getTargetRuns(); - if (runs.size() != 0) + if (!runs.isEmpty()) { hasErrors = addError(errors, "This matrix cannot be deleted because it has been used in " + runs.size() + " analysis runs. Those runs must be deleted first."); } diff --git a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java index 36f1a74fc4..50dcba86c2 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java +++ b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java @@ -132,7 +132,6 @@ protected boolean isValidCompKeyword(String keyword) /** * Walks all of the samples in the workspace, looking for keyword/value pairs that uniquely identify a sample. * For each pair that is found, returns the list of subset names. - * @param workspace * @return Keyword -> Value -> Subsets */ public Map>> getKeywordValueSampleMap(Workspace workspace) diff --git a/flow/src/org/labkey/flow/controllers/editscript/EditCompensationCalculationForm.java b/flow/src/org/labkey/flow/controllers/editscript/EditCompensationCalculationForm.java index 851031b4e8..cbcde32378 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/EditCompensationCalculationForm.java +++ b/flow/src/org/labkey/flow/controllers/editscript/EditCompensationCalculationForm.java @@ -20,7 +20,6 @@ import org.fhcrc.cpas.flow.script.xml.ChannelSubsetDef; import org.fhcrc.cpas.flow.script.xml.CompensationCalculationDef; import org.fhcrc.cpas.flow.script.xml.CriteriaDef; -import org.labkey.api.util.PageFlowUtil; import org.labkey.api.util.SessionHelper; import org.labkey.api.util.UnexpectedException; import org.labkey.flow.analysis.model.Workspace; diff --git a/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java b/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java index 342a213a5a..b8632153ff 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java +++ b/flow/src/org/labkey/flow/controllers/editscript/EditScriptForm.java @@ -78,7 +78,7 @@ public void reset() { throw new NotFoundException("scriptId required"); } - int scriptId = 0; + int scriptId; try { scriptId = Integer.parseInt(scriptIdStr); @@ -199,7 +199,7 @@ public FlowCompensationMatrix getCompensationMatrix() try { List matrices = FlowCompensationMatrix.getCompensationMatrices(getContainer()); - if (matrices.size() == 0) + if (matrices.isEmpty()) return null; _comp = (FlowCompensationMatrix) matrices.get(0); } @@ -310,7 +310,7 @@ public String[] getAvailableKeywords() _log.error("Error", t); } - String[] ret = keywords.toArray(new String[keywords.size()]); + String[] ret = keywords.toArray(new String[0]); Arrays.sort(ret); return ret; } diff --git a/flow/src/org/labkey/flow/controllers/editscript/EditSettingsForm.java b/flow/src/org/labkey/flow/controllers/editscript/EditSettingsForm.java index 87c009f12c..d2f37941fb 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/EditSettingsForm.java +++ b/flow/src/org/labkey/flow/controllers/editscript/EditSettingsForm.java @@ -78,7 +78,7 @@ protected void initSettings() } } - ff_parameter = parameters.keySet().toArray(new String[parameters.size()]); + ff_parameter = parameters.keySet().toArray(new String[0]); ff_minValue = new String[ff_parameter.length]; for (int i = 0; i < ff_parameter.length; i ++) { diff --git a/flow/src/org/labkey/flow/controllers/editscript/ScriptController.java b/flow/src/org/labkey/flow/controllers/editscript/ScriptController.java index 2c36c511bc..b456622dd0 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/ScriptController.java +++ b/flow/src/org/labkey/flow/controllers/editscript/ScriptController.java @@ -106,7 +106,7 @@ public ScriptController() } @RequiresPermission(ReadPermission.class) - public class BeginAction extends SimpleViewAction + public static class BeginAction extends SimpleViewAction { @Override public ModelAndView getView(EditScriptForm form, BindException errors) @@ -126,7 +126,7 @@ public void addNavTrail(NavTree root) } @RequiresPermission(ReadPermission.class) - public class DownloadAction extends SimpleViewAction + public static class DownloadAction extends SimpleViewAction { @Override public ModelAndView getView(EditScriptForm form, BindException errors) throws Exception @@ -251,7 +251,7 @@ public void addNavTrail(NavTree root) protected ActionURL createScript(NewProtocolForm form, BindException errors) { - if (form.ff_name == null || form.ff_name.length() == 0) + if (form.ff_name == null || form.ff_name.isEmpty()) { errors.reject(ERROR_MSG, "The name cannot be blank."); return null; @@ -538,7 +538,7 @@ protected ActionURL doUploadAnalysis(UploadAnalysisForm form, MultipartFile file AnalysisDef analysisElement = doc.getScript().getAnalysis(); if (analysisElement == null) { - analysisElement = doc.getScript().addNewAnalysis(); + doc.getScript().addNewAnalysis(); } try @@ -731,7 +731,7 @@ protected ActionURL doEditCompensationCalculation(EditCompensationCalculationFor groupName = PopulationName.fromString(form.selectGroupName); WorkspaceCompensation calculator = new WorkspaceCompensation(workspace); CompensationCalculation calc = calculator.makeCompensationCalculation(dataMap, groupName, errorslist); - if (errorslist.size() > 0) + if (!errorslist.isEmpty()) { for (String error : errorslist) { @@ -1057,7 +1057,7 @@ protected boolean updateSettingsFilter(EditSettingsForm form, ScriptDocument doc if (settingsDef == null) settingsDef = doc.getScript().addNewSettings(); - FiltersDef filtersDef = null; + FiltersDef filtersDef; XmlCursor cur = null; try { diff --git a/flow/src/org/labkey/flow/controllers/editscript/uploadAnalysis.jsp b/flow/src/org/labkey/flow/controllers/editscript/uploadAnalysis.jsp index 54c9f1b986..4faf774ff0 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/uploadAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/editscript/uploadAnalysis.jsp @@ -55,7 +55,7 @@ else { Map sampleAnalyses = this.getSampleAnalysisNames(); - if (sampleAnalyses.size() > 0) + if (!sampleAnalyses.isEmpty()) { %>

Which sample do you want to use?
diff --git a/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java b/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java index 1fa1721961..8089be37c2 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java +++ b/flow/src/org/labkey/flow/controllers/executescript/AnalysisScriptController.java @@ -874,7 +874,7 @@ private enum RunType { Local, Existing, None - }; + } private RunType hasExistingRuns(File workspaceFile) { diff --git a/flow/src/org/labkey/flow/controllers/executescript/ChooseRunsToAnalyzeForm.java b/flow/src/org/labkey/flow/controllers/executescript/ChooseRunsToAnalyzeForm.java index cb77bf4c09..82c0876909 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/ChooseRunsToAnalyzeForm.java +++ b/flow/src/org/labkey/flow/controllers/executescript/ChooseRunsToAnalyzeForm.java @@ -145,7 +145,7 @@ public Collection getAvailableGateDefinitionSets() FlowScript[] protocols = FlowScript.getScripts(getContainer()); for (FlowScript analysisScript : protocols) { - if (getAvailableSteps(analysisScript).size() > 0) + if (!getAvailableSteps(analysisScript).isEmpty()) { ret.add(analysisScript); } @@ -174,7 +174,7 @@ public void populate(BindException errors) } } Collection availableProtocols = Arrays.asList(FlowScript.getScripts(getContainer())); - if (availableProtocols.size() == 0) + if (availableProtocols.isEmpty()) { errors.reject(SpringActionController.ERROR_MSG, "There are no analysis or compensation protocols in this folder."); } diff --git a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp index da9da6f73c..49b8c693ab 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp @@ -59,7 +59,7 @@ %><% - if (paths != null && paths.size() != 0) + if (paths != null && !paths.isEmpty()) { %> diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp index 0eb806b816..8f274b591d 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp @@ -94,7 +94,7 @@ } } - if (keywordDirs.size() > 0) + if (!keywordDirs.isEmpty()) { for (FlowExperiment analysis : analyses) { @@ -218,7 +218,7 @@ if (form.getKeywordDir() != null && form.getKeywordDir().length > 0 && StudyPubl targetStudies.put(c.getId(), c.getPath() + " (" + study.getLabel() + ")"); } - if (validStudies.size() > 0) + if (!validStudies.isEmpty()) { // Pre-select the most recent target study if (form.getTargetStudy() == null) diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp index b1f4d66247..3e13288659 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp @@ -61,7 +61,7 @@ } String targetStudyLabel = null; - if (form.getTargetStudy() != null && form.getTargetStudy().length() > 0) + if (form.getTargetStudy() != null && !form.getTargetStudy().isEmpty()) { Set studies = StudyService.get().findStudy(form.getTargetStudy(), getUser()); Study study = studies.iterator().next(); diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp index 3c2a6aacde..0d50b1ac2e 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisReviewSamples.jsp @@ -46,9 +46,8 @@ Map groupOptions = new TreeMap<>(); Map> groups = new TreeMap<>(); - if (workspace instanceof Workspace) + if (workspace instanceof Workspace w) { - Workspace w = (Workspace)workspace; for (Workspace.GroupInfo group : w.getGroups()) { Map groupSamples = new TreeMap<>(); diff --git a/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisFilterForm.java b/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisFilterForm.java index 6294e74280..006b48f9a5 100644 --- a/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisFilterForm.java +++ b/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisFilterForm.java @@ -48,8 +48,8 @@ public void init() throws UnauthorizedException ops.add(parts[1]); values.add(entry.getValue()); } - ff_field = fields.toArray(new FieldKey[fields.size()]); - ff_op = ops.toArray(new String[ops.size()]); + ff_field = fields.toArray(new FieldKey[0]); + ff_op = ops.toArray(new String[0]); ff_value = values.toArray(new String[ops.size()]); } @@ -83,7 +83,7 @@ public String getFilterValue() String clause = PageFlowUtil.encode(ff_field[i].toString()) + "~" + ff_op[i] + "=" + PageFlowUtil.encode(ff_value[i]); clauses.add(clause); } - if (clauses.size() == 0) + if (clauses.isEmpty()) return null; return StringUtils.join(clauses.iterator(), "&"); } diff --git a/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisNameForm.java b/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisNameForm.java index 5f228a445a..96192b1921 100644 --- a/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisNameForm.java +++ b/flow/src/org/labkey/flow/controllers/protocol/EditFCSAnalysisNameForm.java @@ -56,7 +56,7 @@ public void setFf_keyword(String[] keyword) { if (!StringUtils.isEmpty(keyword[i])) { - if (parts.size() > 0) + if (!parts.isEmpty()) { parts.add(SEPARATOR); } diff --git a/flow/src/org/labkey/flow/controllers/protocol/EditICSMetadataForm.java b/flow/src/org/labkey/flow/controllers/protocol/EditICSMetadataForm.java index cf5b37bd41..d57de9569e 100644 --- a/flow/src/org/labkey/flow/controllers/protocol/EditICSMetadataForm.java +++ b/flow/src/org/labkey/flow/controllers/protocol/EditICSMetadataForm.java @@ -83,7 +83,7 @@ public void init(ICSMetadata icsmetadata) matchColumn[i] = icsmetadata.getMatchColumns().get(i); } - if (icsmetadata.getBackgroundFilter() != null && icsmetadata.getBackgroundFilter().size() > 0) + if (icsmetadata.getBackgroundFilter() != null && !icsmetadata.getBackgroundFilter().isEmpty()) { for (int i = 0; i < icsmetadata.getBackgroundFilter().size(); i++) { @@ -251,7 +251,7 @@ public Map getKeywordAndSampleFieldMap(boolean includeStatisti StatisticSpec spec = stat.getAttribute(); if (spec.getStatistic() != StatisticSpec.STAT.Count) continue; - ret.put(new FieldKey(statisticProperty, spec.toString()), "Statistic " + spec.toString()); + ret.put(new FieldKey(statisticProperty, spec.toString()), "Statistic " + spec); } } diff --git a/flow/src/org/labkey/flow/controllers/protocol/ProtocolController.java b/flow/src/org/labkey/flow/controllers/protocol/ProtocolController.java index 9d861bd4ab..6d8694ef91 100644 --- a/flow/src/org/labkey/flow/controllers/protocol/ProtocolController.java +++ b/flow/src/org/labkey/flow/controllers/protocol/ProtocolController.java @@ -47,7 +47,7 @@ public ProtocolController() setActionResolver(_actionResolver); } - public abstract class ProtocolViewAction

extends FormViewAction + public abstract static class ProtocolViewAction extends FormViewAction { private FlowProtocol protocol; diff --git a/flow/src/org/labkey/flow/controllers/reports.jsp b/flow/src/org/labkey/flow/controllers/reports.jsp index ae4db64b9f..32371b109e 100644 --- a/flow/src/org/labkey/flow/controllers/reports.jsp +++ b/flow/src/org/labkey/flow/controllers/reports.jsp @@ -70,7 +70,7 @@ table.reports td { <% for (List rs : reportsByType.values()) { - if (rs.size() == 0) + if (rs.isEmpty()) continue; %> diff --git a/flow/src/org/labkey/flow/controllers/run/StatusJsonHelper.java b/flow/src/org/labkey/flow/controllers/run/StatusJsonHelper.java index 451a295d10..1cfc342ccd 100644 --- a/flow/src/org/labkey/flow/controllers/run/StatusJsonHelper.java +++ b/flow/src/org/labkey/flow/controllers/run/StatusJsonHelper.java @@ -52,7 +52,7 @@ protected static String getStatusUrl(List lines) break; } } - if(stringBuilder.length() > 0) + if(!stringBuilder.isEmpty()) { ObjectMapper mapper = JsonUtil.createDefaultMapper(); mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); diff --git a/flow/src/org/labkey/flow/controllers/run/download.jsp b/flow/src/org/labkey/flow/controllers/run/download.jsp index 2effebbb88..ec1fdf6ea0 100644 --- a/flow/src/org/labkey/flow/controllers/run/download.jsp +++ b/flow/src/org/labkey/flow/controllers/run/download.jsp @@ -28,7 +28,7 @@ %> <% - if (model.missing.size() > 0) + if (!model.missing.isEmpty()) { Container container = getContainer(); PipelineService pipeService = PipelineService.get(); diff --git a/flow/src/org/labkey/flow/controllers/run/showRun.jsp b/flow/src/org/labkey/flow/controllers/run/showRun.jsp index 351d7b0939..a50cecd9ac 100644 --- a/flow/src/org/labkey/flow/controllers/run/showRun.jsp +++ b/flow/src/org/labkey/flow/controllers/run/showRun.jsp @@ -71,7 +71,7 @@ } String targetStudyId = (String)run.getProperty(FlowProperty.TargetStudy); - if (targetStudyId != null && targetStudyId.length() > 0) + if (targetStudyId != null && !targetStudyId.isEmpty()) { Container c = ContainerManager.getForId(targetStudyId); if (c != null) diff --git a/flow/src/org/labkey/flow/controllers/well/EditWellForm.java b/flow/src/org/labkey/flow/controllers/well/EditWellForm.java index bd3caa1e5d..1be6d2d3a1 100644 --- a/flow/src/org/labkey/flow/controllers/well/EditWellForm.java +++ b/flow/src/org/labkey/flow/controllers/well/EditWellForm.java @@ -73,7 +73,7 @@ public FlowWell getWell() public void setWells(List wells, boolean isBulkEdit) { _wells = wells; - if (wells != null && wells.size() > 0) + if (wells != null && !wells.isEmpty()) { setFormKeywords(wells); diff --git a/flow/src/org/labkey/flow/controllers/well/WellController.java b/flow/src/org/labkey/flow/controllers/well/WellController.java index 6d48c507f0..a76cb82093 100644 --- a/flow/src/org/labkey/flow/controllers/well/WellController.java +++ b/flow/src/org/labkey/flow/controllers/well/WellController.java @@ -109,7 +109,7 @@ public WellController() } @RequiresNoPermission - public class BeginAction extends SimpleViewAction + public static class BeginAction extends SimpleViewAction { @Override public ModelAndView getView(Object o, BindException errors) @@ -198,7 +198,7 @@ public ModelAndView getView(Object o, BindException errors) { Page page = getPage("/org/labkey/flow/controllers/well/showWell.jsp"); _well = page.getWell(); - JspView v = new JspView(page); + JspView v = new JspView<>(page); v.setClientDependencies(page.getClientDependencies()); return v; } @@ -279,7 +279,7 @@ public ModelAndView getView(EditWellForm form, boolean reshow, BindException err { _wells = getWells(form.ff_isBulkEdit); } - if (_wells == null || _wells.size() == 0) + if (_wells == null || _wells.isEmpty()) { Set selected = DataRegionSelection.getSelected(form.getViewContext(), null, false); _wells = new ArrayList<>(); @@ -663,7 +663,7 @@ public void addNavTrail(NavTree root) @RequiresPermission(AdminPermission.class) - public class BulkUpdateKeywordsAction extends FormViewAction + public static class BulkUpdateKeywordsAction extends FormViewAction { private Integer _keywordid = null; @@ -869,7 +869,7 @@ public GraphSpec[] getGraphs() @RequiresPermission(AdminPermission.class) - public class SetFileDateAction extends MutatingApiAction + public static class SetFileDateAction extends MutatingApiAction { @Override public Object execute(Object o, BindException errors) diff --git a/flow/src/org/labkey/flow/controllers/well/showWell.jsp b/flow/src/org/labkey/flow/controllers/well/showWell.jsp index 31c85e6e55..5e13850465 100644 --- a/flow/src/org/labkey/flow/controllers/well/showWell.jsp +++ b/flow/src/org/labkey/flow/controllers/well/showWell.jsp @@ -521,7 +521,7 @@ if (originalFile != null) for (FlowFCSAnalysis analysis : originalRelatedFile.getFCSAnalysisOutputs()) allAnalyses.put(analysis.getRowId(), analysis); } -if (allAnalyses.size() > 0) +if (!allAnalyses.isEmpty()) { %>

diff --git a/flow/src/org/labkey/flow/data/FieldSubstitution.java b/flow/src/org/labkey/flow/data/FieldSubstitution.java index 4bc26ec46c..33cfe9d814 100644 --- a/flow/src/org/labkey/flow/data/FieldSubstitution.java +++ b/flow/src/org/labkey/flow/data/FieldSubstitution.java @@ -106,9 +106,8 @@ public String eval(Map columns, ResultSet rs) for (Object part : _parts) { Object value; - if (part instanceof FieldKey) + if (part instanceof FieldKey field) { - FieldKey field = (FieldKey) part; ColumnInfo column = columns.get(field); if (column == null) { diff --git a/flow/src/org/labkey/flow/data/FlowAssayProvider.java b/flow/src/org/labkey/flow/data/FlowAssayProvider.java index b1e7b16eb5..fe6be76c7c 100644 --- a/flow/src/org/labkey/flow/data/FlowAssayProvider.java +++ b/flow/src/org/labkey/flow/data/FlowAssayProvider.java @@ -240,7 +240,7 @@ public List>> createDefaultDomains(Cont } @Override - public HttpView getDataDescriptionView(AssayRunUploadForm form) + public HttpView getDataDescriptionView(AssayRunUploadForm form) { return new HtmlView(HtmlString.of("Data files must be FCS file format.")); } diff --git a/flow/src/org/labkey/flow/data/FlowExperiment.java b/flow/src/org/labkey/flow/data/FlowExperiment.java index 051401fe0f..c799412672 100644 --- a/flow/src/org/labkey/flow/data/FlowExperiment.java +++ b/flow/src/org/labkey/flow/data/FlowExperiment.java @@ -105,8 +105,6 @@ static public FlowExperiment[] getAnalyses(Container container) /** * Generate an unused FlowExperiment name using "Analysis" as the starting name. - * @param container - * @return */ static public String generateUnusedName(Container container) { diff --git a/flow/src/org/labkey/flow/data/FlowObject.java b/flow/src/org/labkey/flow/data/FlowObject.java index de75489613..bad0023055 100644 --- a/flow/src/org/labkey/flow/data/FlowObject.java +++ b/flow/src/org/labkey/flow/data/FlowObject.java @@ -173,7 +173,7 @@ static public String getParam(ActionURL url, HttpServletRequest request, FlowPar static public int getIntParam(ActionURL url, HttpServletRequest request, FlowParam param) { String str = getParam(url, request, param); - if (str == null || str.length() == 0) + if (str == null || str.isEmpty()) return 0; try { diff --git a/flow/src/org/labkey/flow/data/FlowProtocol.java b/flow/src/org/labkey/flow/data/FlowProtocol.java index 761e22c408..c58bf74a9e 100644 --- a/flow/src/org/labkey/flow/data/FlowProtocol.java +++ b/flow/src/org/labkey/flow/data/FlowProtocol.java @@ -352,7 +352,7 @@ public Map getSampleMap(User user) if (st == null) return Collections.emptyMap(); Set propertyNames = getSampleTypeJoinFields().keySet(); - if (propertyNames.size() == 0) + if (propertyNames.isEmpty()) return Collections.emptyMap(); SamplesSchema schema = new SamplesSchema(user, getContainer()); @@ -617,7 +617,7 @@ public FCSFilesGroupedBySample getFCSFilesGroupedBySample(User user, Container c Map> fcsFileRuns = new HashMap<>(); int linkedFcsFileCount = 0; - try (TableResultSet rs = (TableResultSet)QueryService.get().select(schema, sql, tableMap, false, false)) + try (TableResultSet rs = QueryService.get().select(schema, sql, tableMap, false, false)) { for (Map row : rs) { @@ -703,7 +703,6 @@ public FCSFilesGroupedBySample getFCSFilesGroupedBySample(User user, Container c { throw new RuntimeSQLException(e); } - ; var ret = new FCSFilesGroupedBySample(); ret.fcsFileRuns = fcsFileRuns; @@ -722,7 +721,7 @@ public FCSFilesGroupedBySample getFCSFilesGroupedBySample(User user, Container c public SampleKey makeSampleKey(String runName, String fileName, AttributeSet attrs) { Collection fields = getSampleTypeJoinFields().values(); - if (fields.size() == 0) + if (fields.isEmpty()) return null; FieldKey tableRun = FieldKey.fromParts("Run"); FieldKey tableKeyword = FieldKey.fromParts("Keyword"); @@ -913,14 +912,14 @@ public void setICSMetadata(User user, String value) throws SQLException public boolean hasICSMetadata() { String metadata = getICSMetadataString(); - return metadata != null && metadata.length() > 0; + return metadata != null && !metadata.isEmpty(); } @Nullable public ICSMetadata getICSMetadata() { String metadata = getICSMetadataString(); - if (metadata == null || metadata.length() == 0) + if (metadata == null || metadata.isEmpty()) return null; return ICSMetadata.fromXmlString(metadata); } @@ -928,7 +927,7 @@ public ICSMetadata getICSMetadata() public String getProtocolSettingsDescription() { List parts = new ArrayList<>(); - if (getSampleTypeJoinFields().size() != 0) + if (!getSampleTypeJoinFields().isEmpty()) { parts.add("Sample type join fields"); } @@ -944,7 +943,7 @@ public String getProtocolSettingsDescription() { parts.add("Metadata"); } - if (parts.size() == 0) + if (parts.isEmpty()) return null; StringBuilder ret = new StringBuilder("Protocol Settings ("); if (parts.size() ==1) diff --git a/flow/src/org/labkey/flow/data/FlowProtocolSchema.java b/flow/src/org/labkey/flow/data/FlowProtocolSchema.java index c82dfff881..2c35cd4744 100644 --- a/flow/src/org/labkey/flow/data/FlowProtocolSchema.java +++ b/flow/src/org/labkey/flow/data/FlowProtocolSchema.java @@ -38,7 +38,7 @@ */ public class FlowProtocolSchema extends AssayProtocolSchema { - private FlowSchema _flowSchema; + private final FlowSchema _flowSchema; public FlowProtocolSchema(User user, Container container, @NotNull FlowAssayProvider provider, @NotNull ExpProtocol protocol, @Nullable Container targetStudy) { diff --git a/flow/src/org/labkey/flow/data/FlowProtocolStep.java b/flow/src/org/labkey/flow/data/FlowProtocolStep.java index 261b9bf536..b0bc39f029 100644 --- a/flow/src/org/labkey/flow/data/FlowProtocolStep.java +++ b/flow/src/org/labkey/flow/data/FlowProtocolStep.java @@ -111,7 +111,7 @@ static public FlowProtocolStep fromActionSequence(Integer actionSequence) static public FlowProtocolStep fromRequest(HttpServletRequest request) { String strActionSequence = request.getParameter("actionSequence"); - if (strActionSequence == null || strActionSequence.length() == 0) + if (strActionSequence == null || strActionSequence.isEmpty()) return null; try { diff --git a/flow/src/org/labkey/flow/data/FlowRun.java b/flow/src/org/labkey/flow/data/FlowRun.java index 9866a43194..cd6e947d05 100644 --- a/flow/src/org/labkey/flow/data/FlowRun.java +++ b/flow/src/org/labkey/flow/data/FlowRun.java @@ -110,9 +110,8 @@ public boolean hasRealWells() List all = getDatas(null); for (FlowDataObject obj : all) { - if (obj instanceof FlowWell) + if (obj instanceof FlowWell well) { - FlowWell well = (FlowWell)obj; if (well.getFCSURI() != null) return true; } @@ -137,9 +136,8 @@ public FlowWell[] getWells(boolean realFiles) List wells = new ArrayList<>(); for (FlowDataObject obj : _allDatas) { - if (obj instanceof FlowWell) + if (obj instanceof FlowWell well) { - FlowWell well = (FlowWell)obj; if (realFiles) { URI uri = well.getFCSURI(); @@ -153,7 +151,7 @@ public FlowWell[] getWells(boolean realFiles) } } } - FlowWell[] ret = wells.toArray(new FlowWell[wells.size()]); + FlowWell[] ret = wells.toArray(new FlowWell[0]); Arrays.sort(ret); return ret; } @@ -202,7 +200,7 @@ public FlowFCSFile findFCSFile(URI uri) public FlowCompensationMatrix getCompensationMatrix() { List outputs = getExperimentRun().getOutputDatas(FlowDataType.CompensationMatrix); - if (outputs.size() > 0) + if (!outputs.isEmpty()) { return new FlowCompensationMatrix(outputs.get(0)); } @@ -308,7 +306,7 @@ public String getOriginalSourcePath() public FlowWorkspace getWorkspace() { List datas = getExperimentRun().getInputDatas(InputRole.Workspace.toString(), ExpProtocol.ApplicationType.ExperimentRun); - if (datas.size() == 0) + if (datas.isEmpty()) return null; return (FlowWorkspace) FlowDataObject.fromData(datas.get(0)); } @@ -436,7 +434,7 @@ public static String findMostRecentTargetStudy(Container container) for (FlowRun run : runs) { String targetStudy = (String)run.getProperty(FlowProperty.TargetStudy); - if (targetStudy != null && targetStudy.length() > 0) + if (targetStudy != null && !targetStudy.isEmpty()) return targetStudy; } @@ -474,9 +472,8 @@ public FlowFCSFile[] getFCSFilesToBeAnalyzed(FlowProtocol protocol, ScriptSettin while (rs.next()) { FlowWell well = FlowWell.fromWellId(colRowId.getIntValue(rs)); - if (well instanceof FlowFCSFile) + if (well instanceof FlowFCSFile fcsFile) { - FlowFCSFile fcsFile = (FlowFCSFile) well; if (fcsFile.getFCSURI() != null) ret.add(fcsFile); } diff --git a/flow/src/org/labkey/flow/data/FlowScript.java b/flow/src/org/labkey/flow/data/FlowScript.java index aa7113b4b7..48cbef4105 100644 --- a/flow/src/org/labkey/flow/data/FlowScript.java +++ b/flow/src/org/labkey/flow/data/FlowScript.java @@ -105,7 +105,7 @@ static public FlowScript[] getScripts(Container container) continue; ret.add(script); } - return ret.toArray(new FlowScript[ret.size()]); + return ret.toArray(new FlowScript[0]); } static public FlowScript[] getAnalysisScripts(Container container) @@ -254,7 +254,7 @@ public String[] getCompensationChannels() { ret.add(channel.getName()); } - return ret.toArray(new String[ret.size()]); + return ret.toArray(new String[0]); } catch (Exception e) { diff --git a/flow/src/org/labkey/flow/data/FlowWell.java b/flow/src/org/labkey/flow/data/FlowWell.java index c2fd4707f5..02ede93dc7 100644 --- a/flow/src/org/labkey/flow/data/FlowWell.java +++ b/flow/src/org/labkey/flow/data/FlowWell.java @@ -132,7 +132,6 @@ public void checkContainer(Container actionContainer, User user, ActionURL actio /** * Get the FlowFCSFile DataInput of this FCSAnalysis (or fake FCSFile.) - * @return */ public FlowFCSFile getFCSFileInput() { @@ -172,7 +171,6 @@ public FlowFCSFile getOriginalFCSFile() /** * Get all FlowFCSFile wells that are DataOutputs of this 'fake' FCSFile well. - * @return */ public List getFCSFileOutputs() { @@ -186,7 +184,6 @@ public List getFCSFileOutputs() /** * Get all FlowFCSAnalysis wells that are DataOutputs of this FCSFile well. - * @return */ public List getFCSAnalysisOutputs() { @@ -211,7 +208,6 @@ public String getKeyword(String keyword) /** * Get only the requested keyword values. * @param keywords The set of keywords to fetch. - * @return */ public Map getKeywords(String... keywords) { diff --git a/flow/src/org/labkey/flow/data/ICSMetadata.java b/flow/src/org/labkey/flow/data/ICSMetadata.java index 74fd5d2350..b528ac76ae 100644 --- a/flow/src/org/labkey/flow/data/ICSMetadata.java +++ b/flow/src/org/labkey/flow/data/ICSMetadata.java @@ -53,8 +53,8 @@ public boolean isEmpty() participantColumn == null && visitColumn == null && dateColumn == null && - (matchColumns == null || matchColumns.size() == 0) && - (background == null || background.size() == 0); + (matchColumns == null || matchColumns.isEmpty()) && + (background == null || background.isEmpty()); } /** Returns true if study metadata and background metadata have been completely set. */ @@ -78,16 +78,16 @@ public boolean hasPartialStudyMeta() /** Returns true if the background metadata is complete. */ public boolean hasCompleteBackground() { - return (matchColumns != null && matchColumns.size() > 0) && - (background != null && background.size() > 0); + return (matchColumns != null && !matchColumns.isEmpty()) && + (background != null && !background.isEmpty()); } /** Returns true if the background metadata is partially specified. */ public boolean hasPartialBackground() { - if (matchColumns == null || matchColumns.size() == 0) + if (matchColumns == null || matchColumns.isEmpty()) return false; - if (background == null || background.size() == 0) + if (background == null || background.isEmpty()) return false; return true; } @@ -108,9 +108,9 @@ public List getErrors() if (hasPartialBackground()) { - if (getMatchColumns() == null || getMatchColumns().size() == 0) + if (getMatchColumns() == null || getMatchColumns().isEmpty()) errors.add("Background metadata requires at least one match column"); - if (getBackgroundFilter() == null || getBackgroundFilter().size() == 0) + if (getBackgroundFilter() == null || getBackgroundFilter().isEmpty()) errors.add("Background metadata requires at least one background filter"); } @@ -159,7 +159,7 @@ public void setDateColumn(FieldKey dateColumn) public List getMatchColumns() { - if (matchColumns == null || matchColumns.size() == 0) + if (matchColumns == null || matchColumns.isEmpty()) return Collections.emptyList(); return Collections.unmodifiableList(matchColumns); } @@ -171,7 +171,7 @@ public void setMatchColumns(List matchColumns) public List getBackgroundFilter() { - if (background == null || background.size() == 0) + if (background == null || background.isEmpty()) return Collections.emptyList(); return Collections.unmodifiableList(background); } @@ -220,7 +220,7 @@ public String toXmlString() { ICSMetadataType.Background xBackground = xMetadata.addNewBackground(); - if (getMatchColumns() != null && getMatchColumns().size() > 0) + if (getMatchColumns() != null && !getMatchColumns().isEmpty()) { List matchColumns = new ArrayList<>(getMatchColumns().size()); for (FieldKey fieldKey : getMatchColumns()) @@ -228,10 +228,10 @@ public String toXmlString() if (fieldKey != null) matchColumns.add(fieldKey.toString()); } - xBackground.addNewMatchColumns().setFieldArray(matchColumns.toArray(new String[matchColumns.size()])); + xBackground.addNewMatchColumns().setFieldArray(matchColumns.toArray(new String[0])); } - if (getBackgroundFilter() != null && getBackgroundFilter().size() > 0) + if (getBackgroundFilter() != null && !getBackgroundFilter().isEmpty()) { FiltersDef xBackgroundFilter = null; for (FilterInfo filterInfo : getBackgroundFilter()) @@ -256,7 +256,7 @@ public String toXmlString() public static ICSMetadata fromXmlString(String value) { - if (value == null || value.length() == 0) + if (value == null || value.isEmpty()) return null; ICSMetadata result = new ICSMetadata(); diff --git a/flow/src/org/labkey/flow/persist/AttributeCache.java b/flow/src/org/labkey/flow/persist/AttributeCache.java index c9df96c8cc..1fccf11246 100644 --- a/flow/src/org/labkey/flow/persist/AttributeCache.java +++ b/flow/src/org/labkey/flow/persist/AttributeCache.java @@ -52,7 +52,7 @@ abstract public class AttributeCache, E extends Attribut private static final Logger LOG = LogManager.getLogger(AttributeCache.class); // container id -> list of names (sorted) - private CacheLoader> BY_CONTAINER_LOADER = new CacheLoader>() + private final CacheLoader> BY_CONTAINER_LOADER = new CacheLoader<>() { @Override public Attributes load(@NotNull String containerId, @Nullable Object argument) @@ -330,8 +330,8 @@ protected AttributeType type() private static class UncacheTask implements Runnable { - private Container _c; - private @Nullable AttributeCache _cache; + private final Container _c; + private final @Nullable AttributeCache _cache; UncacheTask(Container c, @Nullable AttributeCache cache) { diff --git a/flow/src/org/labkey/flow/persist/AttributeSetHelper.java b/flow/src/org/labkey/flow/persist/AttributeSetHelper.java index 6f0345a4db..6a5597c765 100644 --- a/flow/src/org/labkey/flow/persist/AttributeSetHelper.java +++ b/flow/src/org/labkey/flow/persist/AttributeSetHelper.java @@ -84,7 +84,6 @@ public static AttributeSet fromData(ExpData data, boolean includeGraphBytes) * Called outside of any transaction, ensures that the necessary entries have been added to the flow.*Attr * tables. That way, we never have to deal with transactions being rolled back and having to remove attribute * names from the cache, or two threads each trying to insert the same attribute name. - * @throws SQLException */ public static void prepareForSave(String sampleLabel, AttributeSet attrs, Container c, boolean clearCache) { @@ -256,7 +255,7 @@ private static void loadFromDb(final AttributeSet attrs, AttrObject obj, final b attrs.setKeywords(keywords); - if (keywordIDs.size() > 0) + if (!keywordIDs.isEmpty()) { String sqlKeywordAliaes = "SELECT A.name AS PreferredName, B.Name AS AliasName\n" + "FROM flow.KeywordAttr A\n" + @@ -278,13 +277,13 @@ private static void loadFromDb(final AttributeSet attrs, AttrObject obj, final b new SqlSelector(mgr.getSchema(), sqlStatistics, rowId).forEach(rs -> { String name = rs.getString(1); int preferredId = rs.getInt(2); - Double value = rs.getDouble(4); + double value = rs.getDouble(4); statisticIDs.add(preferredId); attrs.setStatistic(new StatisticSpec(name), value); }); - if (statisticIDs.size() > 0) + if (!statisticIDs.isEmpty()) { String sqlStatisticAliaes = "SELECT A.name AS PreferredName, B.Name AS AliasName\n" + "FROM flow.StatisticAttr A\n" + @@ -332,7 +331,7 @@ private static void loadFromDb(final AttributeSet attrs, AttrObject obj, final b }); - if (graphIDs.size() > 0) + if (!graphIDs.isEmpty()) { String sqlGraphAliaes = "SELECT A.name AS PreferredName, B.Name AS AliasName\n" + "FROM flow.GraphAttr A\n" + diff --git a/flow/src/org/labkey/flow/persist/FlowDataHandler.java b/flow/src/org/labkey/flow/persist/FlowDataHandler.java index 791b3c8554..074d06f705 100644 --- a/flow/src/org/labkey/flow/persist/FlowDataHandler.java +++ b/flow/src/org/labkey/flow/persist/FlowDataHandler.java @@ -17,7 +17,6 @@ package org.labkey.flow.persist; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; import org.jetbrains.annotations.NotNull; import org.labkey.api.data.Container; import org.labkey.api.exp.ExperimentException; diff --git a/flow/src/org/labkey/flow/persist/FlowManager.java b/flow/src/org/labkey/flow/persist/FlowManager.java index 91ad41bcde..6e43a77375 100644 --- a/flow/src/org/labkey/flow/persist/FlowManager.java +++ b/flow/src/org/labkey/flow/persist/FlowManager.java @@ -363,7 +363,7 @@ private int ensureAttributeName(@NotNull Container container, @Nullable String s } // Validate the name - if (attr == null || attr.length() == 0) + if (attr == null || attr.isEmpty()) throw new IllegalArgumentException("Name must not be null"); // Validate that name can be parsed as the given attribute type @@ -600,7 +600,7 @@ private void updateAttribute(@NotNull Container container, @NotNull FlowEntry en final int rowId = entry._rowId; // Validate the name - if (name == null || name.length() == 0) + if (name == null || name.isEmpty()) throw new IllegalArgumentException("Name must not be null"); // Parse the name before storing @@ -1145,7 +1145,7 @@ private void deleteObjectIds(SQLFragment sqlOIDs, Set containers) public void deleteData(List datas) { - if (datas.size() == 0) + if (datas.isEmpty()) return; StringBuilder sqlGetOIDs = new StringBuilder("SELECT flow.Object.RowId FROM flow.Object WHERE flow.Object.DataId IN ("); String comma = ""; @@ -1187,7 +1187,7 @@ public Map getKeywords(ExpData data, String... keywords) getSchema().getSqlDialect().appendInClauseSql(sql, Arrays.asList(keywords)); SqlSelector selector = new SqlSelector(getSchema(), sql); - return selector.fillValueMap(new TreeMap()); + return selector.fillValueMap(new TreeMap<>()); } static private final String sqlDeleteKeyword = "DELETE FROM flow.keyword WHERE ObjectId = ? AND KeywordId = ?"; diff --git a/flow/src/org/labkey/flow/persist/PersistTests.java b/flow/src/org/labkey/flow/persist/PersistTests.java index b8af2d1d2e..626b0621b0 100644 --- a/flow/src/org/labkey/flow/persist/PersistTests.java +++ b/flow/src/org/labkey/flow/persist/PersistTests.java @@ -581,7 +581,7 @@ public void caseInsensitiveNames() throws Exception // Set the Id column to indicate that it is not an alias map.put("Id", upperId); - map = Table.update(user, FlowManager.get().getTinfoKeywordAttr(), map, upperId); + Table.update(user, FlowManager.get().getTinfoKeywordAttr(), map, upperId); // Insert a duplicate name that only differs by case (NOTE: SQLServer default collation won't allow this) if (!sqlserver) @@ -595,7 +595,7 @@ public void caseInsensitiveNames() throws Exception // Set the Id column to indicate that it is not an alias map.put("Id", lowerId); - map = Table.update(user, FlowManager.get().getTinfoKeywordAttr(), map, lowerId); + Table.update(user, FlowManager.get().getTinfoKeywordAttr(), map, lowerId); } } diff --git a/flow/src/org/labkey/flow/query/AttributeForeignKey.java b/flow/src/org/labkey/flow/query/AttributeForeignKey.java index dcc51f00d3..8a86d13a5b 100644 --- a/flow/src/org/labkey/flow/query/AttributeForeignKey.java +++ b/flow/src/org/labkey/flow/query/AttributeForeignKey.java @@ -16,7 +16,6 @@ package org.labkey.flow.query; -import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.labkey.api.data.*; @@ -30,6 +29,7 @@ import org.labkey.api.query.FieldKey; import java.util.Collection; +import java.util.Objects; abstract public class AttributeForeignKey> extends AbstractForeignKey { @@ -52,7 +52,7 @@ public AttributeForeignKey(UserSchema schema) @Override public TableInfo getLookupTableInfo() { - VirtualTable ret = new VirtualTable(FlowManager.get().getSchema(), null, (UserSchema)_sourceSchema) + VirtualTable ret = new VirtualTable<>(FlowManager.get().getSchema(), null, (UserSchema)_sourceSchema) { @Override protected boolean isCaseSensitive() @@ -68,7 +68,7 @@ protected boolean isCaseSensitive() AttributeCache.Entry preferred = entry.getAliasedEntry(); var column = new BaseColumnInfo(new FieldKey(null, attrName.toString()), ret); - String alias = am.decideAlias(StringUtils.defaultString(preferred==null?null:preferred.getName(), attrName.toString())); + String alias = am.decideAlias(Objects.toString(preferred==null?null:preferred.getName(), attrName.toString())); column.setAlias(alias); initColumn(attrName, preferred, column); ret.addColumn(column); diff --git a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java index 4c2a0da565..246a469e17 100644 --- a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java +++ b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java @@ -42,13 +42,13 @@ */ public class FCSFileCoalescingColumn extends ExprColumn { - private boolean _relativeFromFCSFile; + private final boolean _relativeFromFCSFile; private Pair _specimenIdFieldKeys; private Pair _participantIdFieldKeys; private Pair _visitFieldKeys; private Pair _dateFieldKeys; - private Pair _targetStudyFieldKeys; + private final Pair _targetStudyFieldKeys; public FCSFileCoalescingColumn(TableInfo parent, FieldKey key, JdbcType type, @Nullable ICSMetadata metadata, boolean relativeFromFCSFile) { diff --git a/flow/src/org/labkey/flow/query/FlowPropertySet.java b/flow/src/org/labkey/flow/query/FlowPropertySet.java index 09791d2d90..9adb01a758 100644 --- a/flow/src/org/labkey/flow/query/FlowPropertySet.java +++ b/flow/src/org/labkey/flow/query/FlowPropertySet.java @@ -43,7 +43,7 @@ public class FlowPropertySet { static private final Logger _log = LogManager.getLogger(FlowPropertySet.class); - private Container _container; + private final Container _container; private Collection _keywords; private Collection _statistics; @@ -225,13 +225,13 @@ public void testSimplifySubset() FlowPropertySet fps = new FlowPropertySet(JunitUtil.getTestContainer()); fps._subsets = Set.of(subset1); fps._subsetNameAncestorMap = FlowPropertySet.getSubsetNameAncestorMap(fps._subsets); - simplify1 = fps.simplifySubset(subset1); - simplify2 = fps.simplifySubset(subset2); + fps.simplifySubset(subset1); + fps.simplifySubset(subset2); fps._subsets = Set.of(subset1, subset2); fps._subsetNameAncestorMap = FlowPropertySet.getSubsetNameAncestorMap(fps._subsets); - simplify1 = fps.simplifySubset(subset1); - simplify2 = fps.simplifySubset(subset2); + fps.simplifySubset(subset1); + fps.simplifySubset(subset2); } } } diff --git a/flow/src/org/labkey/flow/query/FlowSchema.java b/flow/src/org/labkey/flow/query/FlowSchema.java index 3f3444942a..3bfa93c30b 100644 --- a/flow/src/org/labkey/flow/query/FlowSchema.java +++ b/flow/src/org/labkey/flow/query/FlowSchema.java @@ -1001,7 +1001,7 @@ public SQLFragment getFromSQL() SQLFragment where = new SQLFragment(); SQLFragment filter = _filter.getSQLFragment(getSqlDialect()); String and = " WHERE "; - if (filter.getFilterText().length() > 0) + if (!filter.getFilterText().isEmpty()) { where.append(" ").append(filter); and = " AND "; @@ -1275,7 +1275,7 @@ public ContainerContext getContainerContext() @Override public FieldKey getContainerFieldKey() { - return ((AbstractTableInfo)_expData).getContainerFieldKey(); + return _expData.getContainerFieldKey(); } @Override @@ -1940,7 +1940,7 @@ private void filterTable(FilteredTable table, Map map static public int getIntParam(HttpServletRequest request, FlowParam param) { String str = request.getParameter(param.toString()); - if (str == null || str.length() == 0) + if (str == null || str.isEmpty()) return 0; try { @@ -2101,7 +2101,7 @@ SQLFragment generateBackgroundJuctionSql() filter.addCondition(bgMap.get(f.getField()), value, f.getOp()); } SQLFragment bgSQL = Table.getSelectSQL(bg, bgFields, null, null); - if (filter.getClauses().size() > 0) + if (!filter.getClauses().isEmpty()) { Map columnMap = Table.createColumnMap(bg, bgFields); SQLFragment filterFrag = filter.getSQLFragment(flow.getSqlDialect(), "_filter", columnMap); diff --git a/flow/src/org/labkey/flow/reports/FilterFlowReport.java b/flow/src/org/labkey/flow/reports/FilterFlowReport.java index 7c7e6921aa..b3f3750d8c 100644 --- a/flow/src/org/labkey/flow/reports/FilterFlowReport.java +++ b/flow/src/org/labkey/flow/reports/FilterFlowReport.java @@ -512,7 +512,7 @@ boolean isValid() private static CompareType fromDisplayValue(String displayValue) { - if (displayValue == null || displayValue.length() == 0) + if (displayValue == null || displayValue.isEmpty()) return null; for (CompareType ct : CompareType.values()) diff --git a/flow/src/org/labkey/flow/reports/FlowReport.java b/flow/src/org/labkey/flow/reports/FlowReport.java index c13f627903..e9fe559d86 100644 --- a/flow/src/org/labkey/flow/reports/FlowReport.java +++ b/flow/src/org/labkey/flow/reports/FlowReport.java @@ -88,7 +88,7 @@ protected void updateBaseProperties(ContainerUser cu, PropertyValues pvs, BindEx if (pv != null) reportName = String.valueOf(pv.getValue()); - if (reportName == null || reportName.length() == 0) + if (reportName == null || reportName.isEmpty()) { errors.rejectValue(ERROR_MSG, "Report name is required"); return; @@ -201,7 +201,6 @@ public Collection getDomainPrototypeProperties() /** * Delete all previous saved results in the Container for all FlowTableType Domains. - * @param container */ public void deleteSavedResults(Container container) { diff --git a/flow/src/org/labkey/flow/reports/FlowReportManager.java b/flow/src/org/labkey/flow/reports/FlowReportManager.java index dd1009025d..7272fecca2 100644 --- a/flow/src/org/labkey/flow/reports/FlowReportManager.java +++ b/flow/src/org/labkey/flow/reports/FlowReportManager.java @@ -131,10 +131,10 @@ public static Collection getReportDomains(Container c, User user, FlowTa return domains; } - private static String FLOW_REPORT_DOMAIN_PREFIX = "FlowReportDomain-"; - private static String FLOW_REPORT_TABLE_TYPE_SUBST = "FlowTableType"; - private static String FLOW_REPORT_TYPE_SUBST = "ReportType"; - private static String FLOW_REPORT_DOMAIN_URI_TEMPLATE = + private static final String FLOW_REPORT_DOMAIN_PREFIX = "FlowReportDomain-"; + private static final String FLOW_REPORT_TABLE_TYPE_SUBST = "FlowTableType"; + private static final String FLOW_REPORT_TYPE_SUBST = "ReportType"; + private static final String FLOW_REPORT_DOMAIN_URI_TEMPLATE = "urn:lsid:" + XarContext.LSID_AUTHORITY_SUBSTITUTION + ":" + FLOW_REPORT_DOMAIN_PREFIX + XarContext.createSubstitution(FLOW_REPORT_TYPE_SUBST) + ".Folder-" + XarContext.CONTAINER_ID_SUBSTITUTION + ":" + XarContext.createSubstitution(FLOW_REPORT_TABLE_TYPE_SUBST); @@ -192,7 +192,7 @@ public static Domain ensureDomain(FlowReport report, User user, FlowTableType ta return domain; Collection properties = report.getDomainPrototypeProperties(); - assert properties != null && properties.size() > 0; + assert properties != null && !properties.isEmpty(); DbSchema schema = ExperimentService.get().getSchema(); try (DbScope.Transaction transaction = schema.getScope().ensureTransaction()) @@ -225,9 +225,9 @@ public static Domain ensureDomain(FlowReport report, User user, FlowTableType ta } } - private static String FLOW_REPORT_EXPOBJECT_PREFIX = "FlowReportObject-"; - private static String FLOW_REPORT_ID_SUBST = "ReportId"; - private static String FLOW_REPORT_EXPOBJECT_URI_TEMPLATE = + private static final String FLOW_REPORT_EXPOBJECT_PREFIX = "FlowReportObject-"; + private static final String FLOW_REPORT_ID_SUBST = "ReportId"; + private static final String FLOW_REPORT_EXPOBJECT_URI_TEMPLATE = "urn:lsid:" + XarContext.LSID_AUTHORITY_SUBSTITUTION + ":" + FLOW_REPORT_EXPOBJECT_PREFIX + XarContext.createSubstitution(FLOW_REPORT_TYPE_SUBST) + ".Folder-" + XarContext.CONTAINER_ID_SUBSTITUTION + ":" + XarContext.createSubstitution(FLOW_REPORT_ID_SUBST); diff --git a/flow/src/org/labkey/flow/reports/editPositivityReport.jsp b/flow/src/org/labkey/flow/reports/editPositivityReport.jsp index 35d94445af..8e0be27351 100644 --- a/flow/src/org/labkey/flow/reports/editPositivityReport.jsp +++ b/flow/src/org/labkey/flow/reports/editPositivityReport.jsp @@ -138,7 +138,7 @@ function Form_onCancel() function Form_onDelete() { <% - ActionURL url = null; + ActionURL url ; if (d.getReportId() != null) { url = urlFor(DeleteAction.class).addParameter("reportId", report.getReportId().toString()); diff --git a/flow/src/org/labkey/flow/reports/editQCReport.jsp b/flow/src/org/labkey/flow/reports/editQCReport.jsp index 8b69802459..119ac85987 100644 --- a/flow/src/org/labkey/flow/reports/editQCReport.jsp +++ b/flow/src/org/labkey/flow/reports/editQCReport.jsp @@ -109,7 +109,7 @@ function Form_onCancel() function Form_onDelete() { <% - ActionURL url = null; + ActionURL url ; if (d.getReportId() != null) { url = urlFor(DeleteAction.class).addParameter("reportId", report.getReportId().toString()); diff --git a/flow/src/org/labkey/flow/script/AbstractExternalAnalysisJob.java b/flow/src/org/labkey/flow/script/AbstractExternalAnalysisJob.java index fa73df7ea2..c3ed81687c 100644 --- a/flow/src/org/labkey/flow/script/AbstractExternalAnalysisJob.java +++ b/flow/src/org/labkey/flow/script/AbstractExternalAnalysisJob.java @@ -291,7 +291,7 @@ protected void doRun() throws Throwable try { // Create a new keyword run job for the selected FCS file directory - if (getKeywordDirectories() != null && getKeywordDirectories().size() > 0) + if (getKeywordDirectories() != null && !getKeywordDirectories().isEmpty()) { // CONSIDER: Only import FCSFiles in keyword directories that are in selectedFCSFiles if not null List runs = KeywordsTask.importFlowRuns(this, _protocol, getKeywordDirectories(), getTargetStudy()); @@ -304,9 +304,8 @@ protected void doRun() throws Throwable { for (FlowWell well : run.getWells()) { - if (well instanceof FlowFCSFile) + if (well instanceof FlowFCSFile file) { - FlowFCSFile file = (FlowFCSFile)well; if (file.isOriginalFCSFile()) newWells.add(file); } @@ -389,7 +388,7 @@ protected FlowRun saveAnalysis(User user, Container container, FlowExperiment ex // Prepare comp matrices for saving Map compMatrixMap = new HashMap<>(); Set comps = new HashSet<>(sampleCompMatrixMap.values()); - if (comps.size() > 0) + if (!comps.isEmpty()) info("Preparing " + comps.size() + " comp. matrices..."); for (CompensationMatrix comp : comps) { @@ -433,7 +432,7 @@ protected FlowRun saveAnalysis(User user, Container container, FlowExperiment ex return null; Collection sampleNames = sampleIdToNameMap.get(sampleId); - if (sampleNames.size() == 0) + if (sampleNames.isEmpty()) { error("Sample name not found for id '" + sampleId + "'."); continue; diff --git a/flow/src/org/labkey/flow/script/AnalyzeJob.java b/flow/src/org/labkey/flow/script/AnalyzeJob.java index 307aca43e0..574c4bf6cf 100644 --- a/flow/src/org/labkey/flow/script/AnalyzeJob.java +++ b/flow/src/org/labkey/flow/script/AnalyzeJob.java @@ -33,7 +33,7 @@ public class AnalyzeJob extends ScriptJob { - private static Logger _log = LogManager.getLogger(AnalyzeJob.class); + private static final Logger _log = LogManager.getLogger(AnalyzeJob.class); int[] _runIds; diff --git a/flow/src/org/labkey/flow/script/BaseHandler.java b/flow/src/org/labkey/flow/script/BaseHandler.java index ffe1cf2186..96b551eddc 100644 --- a/flow/src/org/labkey/flow/script/BaseHandler.java +++ b/flow/src/org/labkey/flow/script/BaseHandler.java @@ -25,7 +25,6 @@ import org.labkey.flow.persist.InputRole; import java.io.File; -import java.sql.SQLException; import java.util.List; abstract public class BaseHandler @@ -82,14 +81,12 @@ synchronized public void addResults(DataBaseType dbt, AttributeSet attrs, List wellResults = result.getResults(); - if (wellResults.size() != 0) + if (!wellResults.isEmpty()) { DataBaseType dbtWell = duplicateWell(app, well, FlowDataType.CompensationControl); String name = result.getChannelName(); diff --git a/flow/src/org/labkey/flow/script/FlowAnalyzer.java b/flow/src/org/labkey/flow/script/FlowAnalyzer.java index c0aea7b24c..917da9aaef 100644 --- a/flow/src/org/labkey/flow/script/FlowAnalyzer.java +++ b/flow/src/org/labkey/flow/script/FlowAnalyzer.java @@ -25,9 +25,7 @@ import java.io.File; import java.net.URI; -import java.sql.SQLException; import java.util.*; -import java.util.List; public class FlowAnalyzer { diff --git a/flow/src/org/labkey/flow/script/FlowJob.java b/flow/src/org/labkey/flow/script/FlowJob.java index 65b1f66ac2..113837c702 100644 --- a/flow/src/org/labkey/flow/script/FlowJob.java +++ b/flow/src/org/labkey/flow/script/FlowJob.java @@ -17,28 +17,23 @@ package org.labkey.flow.script; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; -import org.labkey.api.action.UrlProvider; import org.labkey.api.exp.api.ExpMaterial; import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.pipeline.PipelineJobService; import org.labkey.api.pipeline.PipelineService; -import org.labkey.api.pipeline.PipelineStatusFile; import org.labkey.api.pipeline.PipelineStatusUrls; import org.labkey.api.util.DateUtil; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.ActionURL; import org.labkey.api.view.ViewBackgroundInfo; import org.labkey.flow.controllers.FlowController; -import org.labkey.flow.controllers.FlowParam; import org.labkey.flow.data.FlowProtocol; import org.labkey.flow.data.SampleKey; import org.labkey.flow.persist.FlowManager; import org.labkey.flow.reports.FlowReportJob; import org.labkey.flow.reports.FlowReportManager; -import java.io.File; import java.util.Date; import java.util.List; import java.util.Map; @@ -85,7 +80,7 @@ public void run() catch (Throwable e) { _log.error("Exception", e); - addStatus("Error " + e.toString()); + addStatus("Error " + e); setStatus(TaskStatus.error, e.toString()); return; } @@ -203,7 +198,7 @@ protected void runPostAnalysisJobs() info = new ViewBackgroundInfo(info.getContainer(), info.getUser(), new ActionURL(FlowController.BeginAction.class, info.getContainer())); List jobs = FlowReportManager.createReportJobs(info, getPipeRoot()); - if (jobs.size() > 0) + if (!jobs.isEmpty()) info("Running post-analysis jobs..."); for (FlowReportJob job : jobs) { diff --git a/flow/src/org/labkey/flow/script/FlowPipelineProvider.java b/flow/src/org/labkey/flow/script/FlowPipelineProvider.java index e9e7ced0d6..744a6e83ae 100644 --- a/flow/src/org/labkey/flow/script/FlowPipelineProvider.java +++ b/flow/src/org/labkey/flow/script/FlowPipelineProvider.java @@ -55,7 +55,7 @@ private boolean hasFlowModule(ViewContext context) return FlowModule.isActive(context.getContainer()); } - private class IsFlowJoWorkspaceFilter extends FileEntryFilter + private static class IsFlowJoWorkspaceFilter extends FileEntryFilter { @Override public boolean accept(File pathname) @@ -139,7 +139,7 @@ public boolean accept(File dir) } // UNDONE: walk directory once instead of multiple times - File[] workspaces = directory.listFiles((FileFilter)new IsFlowJoWorkspaceFilter()); + File[] workspaces = directory.listFiles(new IsFlowJoWorkspaceFilter()); if (includeAll || (workspaces != null && workspaces.length > 0)) { ActionURL importWorkspaceURL = new ActionURL(AnalysisScriptController.ImportAnalysisFromPipelineAction.class, context.getContainer()); diff --git a/flow/src/org/labkey/flow/script/FlowTaskSet.java b/flow/src/org/labkey/flow/script/FlowTaskSet.java index a82cb3c3da..8501f70636 100644 --- a/flow/src/org/labkey/flow/script/FlowTaskSet.java +++ b/flow/src/org/labkey/flow/script/FlowTaskSet.java @@ -21,8 +21,8 @@ public class FlowTaskSet { - private LinkedList _pendingTasks; - private LinkedList _runningTasks; + private final LinkedList _pendingTasks; + private final LinkedList _runningTasks; public FlowTaskSet(Runnable[] tasks) { diff --git a/flow/src/org/labkey/flow/script/FlowThreadPool.java b/flow/src/org/labkey/flow/script/FlowThreadPool.java index 27f58eadf1..f940e0949a 100644 --- a/flow/src/org/labkey/flow/script/FlowThreadPool.java +++ b/flow/src/org/labkey/flow/script/FlowThreadPool.java @@ -21,8 +21,8 @@ public class FlowThreadPool { private static FlowThreadPool instance; - private Thread[] _threads; - private LinkedList _taskSets = new LinkedList<>(); + private final Thread[] _threads; + private final LinkedList _taskSets = new LinkedList<>(); private boolean _alive = true; private int _idleCount; @@ -78,7 +78,7 @@ static public void runTaskSet(FlowTaskSet taskSet) synchronized private FlowTaskSet[] getTaskSets() { - return _taskSets.toArray(new FlowTaskSet[_taskSets.size()]); + return _taskSets.toArray(new FlowTaskSet[0]); } class FlowThreadRunner implements Runnable diff --git a/flow/src/org/labkey/flow/script/ImportResultsJob.java b/flow/src/org/labkey/flow/script/ImportResultsJob.java index 394b08423e..7cd95b4a82 100644 --- a/flow/src/org/labkey/flow/script/ImportResultsJob.java +++ b/flow/src/org/labkey/flow/script/ImportResultsJob.java @@ -151,7 +151,7 @@ protected FlowRun createExperimentRun() throws Exception SampleIdMap selectedFCSFiles = resolveSelectedFCSFiles(workspace, getSelectedFCSFiles(), getNewlyImportedFCSFiles()); - if (keywordsMap.size() > 0) + if (!keywordsMap.isEmpty()) info("Preparing keywords for " + (selectedFCSFiles != null ? selectedFCSFiles.size() : keywordsMap.size()) + " samples..."); for (String id : keywordsMap.idSet()) { @@ -192,7 +192,7 @@ else if (getRunFilePathRoot() != null) AttributeSetHelper.prepareForSave(sampleLabel, keywordAttrs, getContainer(), false); } - if (resultsMap.size() > 0) + if (!resultsMap.isEmpty()) info("Preparing results for " + (selectedFCSFiles != null ? selectedFCSFiles.size() : resultsMap.size()) + " samples..."); for (String id : resultsMap.idSet()) { diff --git a/flow/src/org/labkey/flow/script/KeywordsHandler.java b/flow/src/org/labkey/flow/script/KeywordsHandler.java index 2f0071920b..6c9341284d 100644 --- a/flow/src/org/labkey/flow/script/KeywordsHandler.java +++ b/flow/src/org/labkey/flow/script/KeywordsHandler.java @@ -96,7 +96,7 @@ protected boolean isSupportedFCSVersion(File file){ private boolean isEmpty(String str) { - return str == null || str.length() == 0; + return str == null || str.isEmpty(); } protected void addStatus(String status) @@ -123,7 +123,7 @@ protected FlowRun addRun(File directory, List data) throws Excep { ExperimentArchiveDocument xarDoc = _job.createExperimentArchive(); ExperimentArchiveType xar = xarDoc.getExperimentArchive(); - String runName = null; + String runName; File runDirectory = _job.createAnalysisDirectory(directory, FlowProtocolStep.keywords); runName = directory.getName(); @@ -212,7 +212,7 @@ protected FlowRun importRun(File directory, Container targetStudy) throws Except addStatus("Reading keywords from file " + file.getName()); lstFileData.add( getAnalyzer().readAllKeywords(file.toURI())); } - if (lstFileData.size() == 0) + if (lstFileData.isEmpty()) { warn("No FCS files found"); return null; diff --git a/flow/src/org/labkey/flow/script/KeywordsTask.java b/flow/src/org/labkey/flow/script/KeywordsTask.java index 8b7fde266e..b4d4dae921 100644 --- a/flow/src/org/labkey/flow/script/KeywordsTask.java +++ b/flow/src/org/labkey/flow/script/KeywordsTask.java @@ -21,7 +21,6 @@ import org.labkey.api.pipeline.AbstractTaskFactorySettings; import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; -import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.pipeline.PipelineService; import org.labkey.api.pipeline.RecordedActionSet; import org.labkey.api.pipeline.file.FileAnalysisJobSupport; diff --git a/flow/src/org/labkey/flow/script/ScriptJob.java b/flow/src/org/labkey/flow/script/ScriptJob.java index dcf5433140..06ca421f9d 100644 --- a/flow/src/org/labkey/flow/script/ScriptJob.java +++ b/flow/src/org/labkey/flow/script/ScriptJob.java @@ -405,7 +405,7 @@ public void importRuns(ExperimentArchiveDocument xardoc, File root, File working } catch (Throwable t) { - _log.debug("Xar file contents:\n" + xardoc.toString()); + _log.debug("Xar file contents:\n" + xardoc); error("Error loading XAR", t); throw UnexpectedException.wrap(t); } diff --git a/flow/src/org/labkey/flow/script/ScriptXarSource.java b/flow/src/org/labkey/flow/script/ScriptXarSource.java index 80814f1376..26071919cb 100644 --- a/flow/src/org/labkey/flow/script/ScriptXarSource.java +++ b/flow/src/org/labkey/flow/script/ScriptXarSource.java @@ -18,18 +18,13 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import org.apache.xmlbeans.XmlException; import org.fhcrc.cpas.exp.xml.ExperimentArchiveDocument; -import org.labkey.api.data.Container; -import org.labkey.api.exp.XarFormatException; import org.labkey.api.exp.XarSource; -import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.util.FileUtil; import java.io.File; import java.io.FileWriter; -import java.io.IOException; import java.nio.file.Path; public class ScriptXarSource extends XarSource diff --git a/flow/src/org/labkey/flow/script/WorkspaceJob.java b/flow/src/org/labkey/flow/script/WorkspaceJob.java index f8395493ed..7965d2c023 100644 --- a/flow/src/org/labkey/flow/script/WorkspaceJob.java +++ b/flow/src/org/labkey/flow/script/WorkspaceJob.java @@ -286,7 +286,7 @@ private boolean extractAnalysis(Container container, return true; iSample++; - String description = "sample " + iSample + "/" + sampleIDs.size() + ": " + sample.toString(); + String description = "sample " + iSample + "/" + sampleIDs.size() + ": " + sample; addStatus("Preparing " + description); AttributeSet attrs = new AttributeSet(ObjectType.fcsKeywords, null); @@ -369,11 +369,11 @@ else if (runFilePathRoot != null) } else { - debug("No sample analysis for " + sample.toString()); + debug("No sample analysis for " + sample); } debug("Analysis results contains " + results.getStatistics().size() + " statistics, " + results.getGraphs().size() + " graphs"); - if (results.getStatistics().size() == 0) + if (results.getStatistics().isEmpty()) warn("No sample analysis results for '" + sample + "'. The sample may be marked as deleted in the FlowJo workspace or has no gating and statistics"); else if (results.getStatistics().size() == 1) warn("Analysis results only contains '" + results.getStatistics().keySet().iterator().next() + "' statistic for '" + sample + "'."); @@ -383,7 +383,7 @@ else if (results.getStatistics().size() == 1) } else { - warn("No sample analysis results for '" + sample.toString() + "'. The sample may be marked as deleted in the FlowJo workspace or has no gating and statistics"); + warn("No sample analysis results for '" + sample + "'. The sample may be marked as deleted in the FlowJo workspace or has no gating and statistics"); } if (comp != null) diff --git a/flow/src/org/labkey/flow/util/SampleUtil.java b/flow/src/org/labkey/flow/util/SampleUtil.java index cdd5080634..d9828732d1 100644 --- a/flow/src/org/labkey/flow/util/SampleUtil.java +++ b/flow/src/org/labkey/flow/util/SampleUtil.java @@ -112,7 +112,7 @@ public static Map>> resolveSamp List partialMatches = new ArrayList<>(10); Map keywords = sample.getKeywords(); - if (keywords.size() == 0) + if (keywords.isEmpty()) { // No keywords available. Match only based on name FlowFCSFile file = originalFileMap.get(sample.getSampleName()); @@ -129,7 +129,7 @@ public static Map>> resolveSamp { // Match based on keyword values String name = sample.getSampleName(); - if (name == null || name.length() == 0) + if (name == null || name.isEmpty()) name = sample.getFilename(); String[] values = keywordValues(name, keywords); diff --git a/flow/src/org/labkey/flow/webparts/AnalysisScriptTypeColumn.java b/flow/src/org/labkey/flow/webparts/AnalysisScriptTypeColumn.java index 6345e2f080..d2e3eb197f 100644 --- a/flow/src/org/labkey/flow/webparts/AnalysisScriptTypeColumn.java +++ b/flow/src/org/labkey/flow/webparts/AnalysisScriptTypeColumn.java @@ -69,7 +69,6 @@ public HtmlString getFormattedHtml(RenderContext ctx) { ret += and; ret += "Analysis"; - and = " and "; } return HtmlString.of(ret); } diff --git a/flow/src/org/labkey/flow/webparts/FlowSummary.jsp b/flow/src/org/labkey/flow/webparts/FlowSummary.jsp index 3f1e3706ac..abc58bf8e6 100644 --- a/flow/src/org/labkey/flow/webparts/FlowSummary.jsp +++ b/flow/src/org/labkey/flow/webparts/FlowSummary.jsp @@ -221,7 +221,7 @@ <% } %><%-- end if (_compensationMatrixCount > 0) --%> - <% if (_sampleTypeSamples != null && _sampleTypeSamples.size() > 0) { %> + <% if (_sampleTypeSamples != null && !_sampleTypeSamples.isEmpty()) { %> \n"); + String sb = "\n" + + "\n"; VBox vbox = new VBox(); vbox.addView(HtmlView.unsafe("")); vbox.addView(view); - vbox.addView(HtmlView.unsafe(sb.toString())); + vbox.addView(HtmlView.unsafe(sb)); return vbox; } diff --git a/viability/src/org/labkey/viability/ViabilityController.java b/viability/src/org/labkey/viability/ViabilityController.java index 88723c1f77..f612e552dd 100644 --- a/viability/src/org/labkey/viability/ViabilityController.java +++ b/viability/src/org/labkey/viability/ViabilityController.java @@ -47,7 +47,7 @@ public ViabilityController() } @RequiresPermission(ReadPermission.class) - public class BeginAction extends SimpleRedirectAction + public static class BeginAction extends SimpleRedirectAction { @Override public ActionURL getRedirectURL(Object o) @@ -57,7 +57,7 @@ public ActionURL getRedirectURL(Object o) } @RequiresSiteAdmin - public class RecalculateSpecimenAggregatesAction extends ConfirmAction + public static class RecalculateSpecimenAggregatesAction extends ConfirmAction { @Override public ModelAndView getConfirmView(ProtocolIdForm protocolIdForm, BindException errors) diff --git a/viability/src/org/labkey/viability/ViabilityManager.java b/viability/src/org/labkey/viability/ViabilityManager.java index 701563f7dc..7f1d79413b 100644 --- a/viability/src/org/labkey/viability/ViabilityManager.java +++ b/viability/src/org/labkey/viability/ViabilityManager.java @@ -704,7 +704,7 @@ public void testViability() throws Exception // verify { Map properties = OntologyManager.getProperties(c, objectURI); - assertTrue(properties.size() == 0); + assertTrue(properties.isEmpty()); String[] specimens = ViabilityManager.getSpecimens(resultId); assertTrue(specimens.length == 0); diff --git a/viability/src/org/labkey/viability/ViabilityResult.java b/viability/src/org/labkey/viability/ViabilityResult.java index ab1a980923..d41b5bf867 100644 --- a/viability/src/org/labkey/viability/ViabilityResult.java +++ b/viability/src/org/labkey/viability/ViabilityResult.java @@ -18,12 +18,10 @@ import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; -import org.labkey.api.data.RuntimeSQLException; import org.labkey.api.exp.PropertyDescriptor; import org.labkey.api.collections.CaseInsensitiveHashMap; import java.util.*; -import java.sql.SQLException; /** * User: kevink diff --git a/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java b/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java index 7da474bebe..1654e2000e 100644 --- a/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java +++ b/viability/src/org/labkey/viability/ViabilitySpecimenChangeListener.java @@ -16,7 +16,6 @@ package org.labkey.viability; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; import org.labkey.api.data.BaseSelector; import org.labkey.api.data.Container; import org.labkey.api.data.SQLFragment; @@ -53,7 +52,7 @@ public void specimensChanged(Container c, User user, Logger logger) SqlExecutor executor = new SqlExecutor(resultsTable.getSchema()); final List protocolIds = new ArrayList<>(); - executor.executeWithResults(frag, new BaseSelector.ResultSetHandler() + executor.executeWithResults(frag, new BaseSelector.ResultSetHandler<>() { @Override public Object handle(ResultSet rs, Connection conn) throws SQLException From 4e12b9be6e1c51ed8324d6e62ac1a94b5199469d Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 10 Jun 2025 16:42:01 -0700 Subject: [PATCH 2/2] More cleanup --- .../elisa/actions/ElisaUploadWizardAction.java | 6 ++---- .../labkey/flow/analysis/chart/DensityPlot.java | 16 ++-------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java index 0a90b67070..f4712535f4 100644 --- a/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java +++ b/elisa/src/org/labkey/elisa/actions/ElisaUploadWizardAction.java @@ -29,7 +29,6 @@ import org.labkey.api.data.DataRegion; import org.labkey.api.exp.ExperimentException; import org.labkey.api.exp.api.ExpProtocol; -import org.labkey.api.exp.api.ExpRun; import org.labkey.api.exp.api.ExperimentService; import org.labkey.api.exp.property.DomainProperty; import org.labkey.api.query.PropertyValidationError; @@ -117,7 +116,7 @@ public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws } @Override - public ModelAndView getNextStep(ElisaRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ElisaRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getRunPropertiesView(form, !form.isResetDefaultValues(), false, errors); @@ -230,7 +229,6 @@ public void validateStep(ElisaRunUploadForm form, Errors errors) @Override public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException { - ExpRun run; try { PlateConcentrationPropertyHelper helper = createConcentrationPropertyHelper(form.getContainer(), form.getProtocol(), form.getProvider()); @@ -263,7 +261,7 @@ public boolean executeStep(ElisaRunUploadForm form, BindException errors) throws } @Override - public ModelAndView getNextStep(ElisaRunUploadForm form, BindException errors) throws ServletException, SQLException, ExperimentException + public ModelAndView getNextStep(ElisaRunUploadForm form, BindException errors) throws ExperimentException { if (form.isResetDefaultValues() || errors.hasErrors()) return getConcentrationsView(form, !form.isResetDefaultValues(), errors); diff --git a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java index 11d0ae0c52..4029734811 100644 --- a/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java +++ b/flow/enginesrc/org/labkey/flow/analysis/chart/DensityPlot.java @@ -19,7 +19,6 @@ import org.jfree.chart.plot.*; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.axis.ColorBar; -import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.entity.EntityCollection; import org.jfree.chart.entity.ContourEntity; import org.jfree.ui.RectangleEdge; @@ -50,7 +49,7 @@ public PolygonData(String label, Polygon poly) Polygon _poly; } - List _polyDatas = new ArrayList(); + List _polyDatas = new ArrayList<>(); public DensityPlot(DensityDataset dataset, ValueAxis domainAxis, ValueAxis rangeAxis, ColorBar colorBar) { @@ -157,9 +156,8 @@ public void render(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, { super.render(g2, dataArea, info, crosshairState); g2.setColor(PlotFactory.COLOR_GATE); - for (Iterator it = _polyDatas.iterator(); it.hasNext();) + for (PolygonData data : _polyDatas) { - PolygonData data = (PolygonData) it.next(); drawPolygon(g2, dataArea, data); } } @@ -248,14 +246,6 @@ public void contourRenderer(Graphics2D g2, Object antiAlias = g2.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); - int[] xIndex = data.indexX(); - int[] indexX = data.getXIndices(); - boolean vertInverted = verticalAxis.isInverted(); - boolean horizInverted = false; - if (horizontalAxis instanceof NumberAxis) - { - horizontalAxis.isInverted(); - } double[] arrX = data.getPossibleXValues(); double[] arrY = data.getPossibleYValues(); double[] arrTransX = getTranslatedValues(arrX, horizontalAxis, dataArea, RectangleEdge.BOTTOM); @@ -338,8 +328,6 @@ else if (this.getMissingPaint() != null) g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antiAlias); - return; - } public void addPolygon(String label, Polygon poly)