From 94e2403095eadb4c4c557cad216c2205f3eb5508 Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Tue, 29 Jul 2025 09:49:54 -0700 Subject: [PATCH 1/2] checkpoint - migrate to using long/Long to represent any integer ID value (rowId, objectId, etc). --- .../api-src/org/labkey/api/laboratory/LaboratoryService.java | 2 +- .../api/laboratory/assay/AbstractAssayDataProvider.java | 4 ++-- .../org/labkey/api/laboratory/assay/AssayDataProvider.java | 2 +- .../org/labkey/api/laboratory/assay/DefaultAssayParser.java | 2 +- .../org/labkey/api/laboratory/assay/PivotingAssayParser.java | 4 ++-- .../src/org/labkey/laboratory/LaboratoryServiceImpl.java | 2 +- .../src/org/labkey/laboratory/assay/RunUploadContext.java | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/laboratory/api-src/org/labkey/api/laboratory/LaboratoryService.java b/laboratory/api-src/org/labkey/api/laboratory/LaboratoryService.java index 636a6340..b468c89f 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/LaboratoryService.java +++ b/laboratory/api-src/org/labkey/api/laboratory/LaboratoryService.java @@ -76,7 +76,7 @@ static public void setInstance(LaboratoryService instance) abstract public Set getRegisteredAssayProviders(); - abstract public AssayDataProvider getDataProviderForAssay(int protocolId); + abstract public AssayDataProvider getDataProviderForAssay(long protocolId); abstract public AssayDataProvider getDataProviderForAssay(AssayProvider ap); diff --git a/laboratory/api-src/org/labkey/api/laboratory/assay/AbstractAssayDataProvider.java b/laboratory/api-src/org/labkey/api/laboratory/assay/AbstractAssayDataProvider.java index 1883fa5d..5a2c3dfa 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/assay/AbstractAssayDataProvider.java +++ b/laboratory/api-src/org/labkey/api/laboratory/assay/AbstractAssayDataProvider.java @@ -166,7 +166,7 @@ public AssayImportMethod getImportMethodByName(String methodName) } @Override - public String getDefaultImportMethodName(Container c, User u, int protocolId) + public String getDefaultImportMethodName(Container c, User u, long protocolId) { Container targetContainer = c.isWorkbook() ? c.getParent() : c; Map props = PropertyManager.getProperties(targetContainer, PROPERTY_CATEGORY); @@ -176,7 +176,7 @@ public String getDefaultImportMethodName(Container c, User u, int protocolId) return _importMethods.isEmpty() ? null : _importMethods.iterator().next().getName(); } - private String getDefaultMethodPropertyKey(int protocolId) + private String getDefaultMethodPropertyKey(long protocolId) { return getKey() + "||" + protocolId; } diff --git a/laboratory/api-src/org/labkey/api/laboratory/assay/AssayDataProvider.java b/laboratory/api-src/org/labkey/api/laboratory/assay/AssayDataProvider.java index 2b81f5fb..512cb2d0 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/assay/AssayDataProvider.java +++ b/laboratory/api-src/org/labkey/api/laboratory/assay/AssayDataProvider.java @@ -55,7 +55,7 @@ public interface AssayDataProvider extends DataProvider AssayImportMethod getImportMethodByName(String methodName); - String getDefaultImportMethodName(Container c, User u, int protocolId); + String getDefaultImportMethodName(Container c, User u, long protocolId); boolean isModuleEnabled(Container c); } diff --git a/laboratory/api-src/org/labkey/api/laboratory/assay/DefaultAssayParser.java b/laboratory/api-src/org/labkey/api/laboratory/assay/DefaultAssayParser.java index bbcd2ac4..c7bdf324 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/assay/DefaultAssayParser.java +++ b/laboratory/api-src/org/labkey/api/laboratory/assay/DefaultAssayParser.java @@ -462,7 +462,7 @@ protected void validateRows(List> rows, ImportContext contex errors.confirmNoErrors(); } - protected void saveTemplate(ViewContext ctx, int templateId, int runId) throws BatchValidationException + protected void saveTemplate(ViewContext ctx, int templateId, long runId) throws BatchValidationException { try { diff --git a/laboratory/api-src/org/labkey/api/laboratory/assay/PivotingAssayParser.java b/laboratory/api-src/org/labkey/api/laboratory/assay/PivotingAssayParser.java index 55c29341..8ef4a697 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/assay/PivotingAssayParser.java +++ b/laboratory/api-src/org/labkey/api/laboratory/assay/PivotingAssayParser.java @@ -18,6 +18,7 @@ import au.com.bytecode.opencsv.CSVWriter; import org.apache.commons.lang3.StringUtils; import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.Container; import org.labkey.api.exp.property.DomainProperty; import org.labkey.api.query.BatchValidationException; @@ -27,7 +28,6 @@ import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -122,7 +122,7 @@ protected String readRawFile(ImportContext context) throws BatchValidationExcept */ private Map inspectHeader(List header, ImportContext context) throws BatchValidationException { - Map resultMap = new HashMap<>(); + Map resultMap = new IntHashMap<>(); Map allowable = new CaseInsensitiveHashMap<>(); BatchValidationException errors = new BatchValidationException(); diff --git a/laboratory/src/org/labkey/laboratory/LaboratoryServiceImpl.java b/laboratory/src/org/labkey/laboratory/LaboratoryServiceImpl.java index 3a5144bc..df67e682 100644 --- a/laboratory/src/org/labkey/laboratory/LaboratoryServiceImpl.java +++ b/laboratory/src/org/labkey/laboratory/LaboratoryServiceImpl.java @@ -171,7 +171,7 @@ public Set getRegisteredAssayProviders() } @Override - public AssayDataProvider getDataProviderForAssay(int protocolId) + public AssayDataProvider getDataProviderForAssay(long protocolId) { ExpProtocol protocol = ExperimentService.get().getExpProtocol(protocolId); if (protocol == null) diff --git a/laboratory/src/org/labkey/laboratory/assay/RunUploadContext.java b/laboratory/src/org/labkey/laboratory/assay/RunUploadContext.java index 37839e2d..465f27eb 100644 --- a/laboratory/src/org/labkey/laboratory/assay/RunUploadContext.java +++ b/laboratory/src/org/labkey/laboratory/assay/RunUploadContext.java @@ -196,7 +196,7 @@ public void setTransformResult(TransformResult result) * The RowId for the run that is being deleted and reuploaded, or null if this is a new run */ @Override - public Integer getReRunId() + public Long getReRunId() { return null; } From d8896e4a4766280c545bf45aef8338ff04816623 Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Wed, 13 Aug 2025 11:07:58 -0700 Subject: [PATCH 2/2] instanceof Integer probably need a new helpers like isIntegerObject() // instanceof Integer or Long asIntegerOrNull() // null if not isIntegerObject() asLongOrNull() // null if not isIntegerObject() --- .../test/tests/external/labModules/LabModulesTest.java | 2 +- .../api/laboratory/query/ContainerIncrementingTable.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/LDK/test/src/org/labkey/test/tests/external/labModules/LabModulesTest.java b/LDK/test/src/org/labkey/test/tests/external/labModules/LabModulesTest.java index d1d2b32e..636563ee 100644 --- a/LDK/test/src/org/labkey/test/tests/external/labModules/LabModulesTest.java +++ b/LDK/test/src/org/labkey/test/tests/external/labModules/LabModulesTest.java @@ -494,7 +494,7 @@ else if (serverVal instanceof Date) Date d = dateFormat.parse(expectations[idx]); assertEquals("Incorrect value for: " + col + " on row " + i, d, serverVal); } - else if ((serverVal instanceof Integer || serverVal instanceof Double)) + else if ((serverVal instanceof Integer || serverVal instanceof Long || serverVal instanceof Double)) { double d = Double.parseDouble(expectations[idx]); assertEquals("Incorrect value for: " + col + " on row " + i, d, Double.parseDouble(serverVal.toString()), DELTA); diff --git a/laboratory/api-src/org/labkey/api/laboratory/query/ContainerIncrementingTable.java b/laboratory/api-src/org/labkey/api/laboratory/query/ContainerIncrementingTable.java index 904c6439..96499ff8 100644 --- a/laboratory/api-src/org/labkey/api/laboratory/query/ContainerIncrementingTable.java +++ b/laboratory/api-src/org/labkey/api/laboratory/query/ContainerIncrementingTable.java @@ -41,6 +41,8 @@ import java.util.Set; import java.util.concurrent.Callable; +import static org.labkey.api.exp.api.ExperimentService.asInteger; + /** * User: bimber * Date: 3/12/13 @@ -153,6 +155,8 @@ private Integer getInteger(Object value) throws ValidationException return null; else if (value instanceof Integer) return (Integer)value; + else if (value instanceof Long) + return asInteger(value); else if (value instanceof Double) return ((Double)value).intValue(); try @@ -326,9 +330,9 @@ public Object call() throws Exception Object selfAssignedId = it.getInputColumnValue(inputColMap.get(_incrementingCol)); if (selfAssignedId != null) { - if (selfAssignedId instanceof Integer) + if (selfAssignedId instanceof Integer || selfAssignedId instanceof Long) { - rowId = (Integer)selfAssignedId; + rowId = asInteger(selfAssignedId); if (idGen.hasRowWithId(c, rowId)) _context.getErrors().addRowError(new ValidationException("A record is already present with ID: " + rowId));