From 16f4c7940dff2b97a9b80742fb52f5ef693a1295 Mon Sep 17 00:00:00 2001 From: vagisha Date: Sun, 16 Mar 2025 09:58:34 -0700 Subject: [PATCH 1/3] Add method to update skydDataId on a TargetedMSRun --- .../api/targetedms/TargetedMSService.java | 4 ++++ .../labkey/targetedms/TargetedMSManager.java | 20 +++++++++++++++++++ .../targetedms/TargetedMSServiceImpl.java | 6 ++++++ 3 files changed, 30 insertions(+) diff --git a/api-src/org/labkey/api/targetedms/TargetedMSService.java b/api-src/org/labkey/api/targetedms/TargetedMSService.java index 0b8a44b43..50319d210 100644 --- a/api-src/org/labkey/api/targetedms/TargetedMSService.java +++ b/api-src/org/labkey/api/targetedms/TargetedMSService.java @@ -22,6 +22,7 @@ import org.labkey.api.data.TableInfo; import org.labkey.api.exp.ExperimentRunType; import org.labkey.api.exp.XarFormatException; +import org.labkey.api.exp.api.ExpData; import org.labkey.api.pipeline.PipelineValidationException; import org.labkey.api.query.UserSchema; import org.labkey.api.security.User; @@ -72,6 +73,9 @@ enum FolderType ITargetedMSRun getRunByFileName(String fileName, Container container); List getRuns(Container container); ITargetedMSRun getRunByLsid(String lsid, Container container); + + boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user); + List getReplicateAnnotations(Container container); void registerSkylineDocumentImportListener(SkylineDocumentImportListener skyLineDocumentImportListener); List getSkylineDocumentImportListener(); diff --git a/src/org/labkey/targetedms/TargetedMSManager.java b/src/org/labkey/targetedms/TargetedMSManager.java index daf9a272a..fff95cb91 100644 --- a/src/org/labkey/targetedms/TargetedMSManager.java +++ b/src/org/labkey/targetedms/TargetedMSManager.java @@ -73,6 +73,7 @@ import org.labkey.api.query.UserSchema; import org.labkey.api.security.User; import org.labkey.api.security.permissions.DeletePermission; +import org.labkey.api.targetedms.ITargetedMSRun; import org.labkey.api.targetedms.RepresentativeDataState; import org.labkey.api.targetedms.RunRepresentativeDataState; import org.labkey.api.targetedms.TargetedMSService; @@ -123,6 +124,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; @@ -861,6 +863,24 @@ public static TargetedMSRun getRunByLsid(String lsid, Container c) throw new IllegalArgumentException("More than one TargetedMS runs found for LSID "+lsid); } + public static boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user) + { + if (!(run instanceof TargetedMSRun)) + { + return false; + } + TargetedMSRun targetedRun = (TargetedMSRun) run; + + ExpRun expRun = ExperimentService.get().getExpRun(targetedRun.getExperimentRunLSID()); + if (expRun == null) return false; + + if (!Objects.equals(newSkydData.getRunId(), expRun.getRowId())) return false; + + targetedRun.setSkydDataId(newSkydData.getRowId()); + TargetedMSManager.updateRun(targetedRun, user); + return true; + } + public static List getRunIdsByInstrument(String serialNumber) { SQLFragment sql = new SQLFragment("SELECT DISTINCT r.Id FROM "); diff --git a/src/org/labkey/targetedms/TargetedMSServiceImpl.java b/src/org/labkey/targetedms/TargetedMSServiceImpl.java index 088bc1c2b..b0aa66b11 100644 --- a/src/org/labkey/targetedms/TargetedMSServiceImpl.java +++ b/src/org/labkey/targetedms/TargetedMSServiceImpl.java @@ -22,6 +22,7 @@ import org.labkey.api.data.TableInfo; import org.labkey.api.exp.ExperimentRunType; import org.labkey.api.exp.XarFormatException; +import org.labkey.api.exp.api.ExpData; import org.labkey.api.pipeline.PipelineValidationException; import org.labkey.api.query.UserSchema; import org.labkey.api.security.User; @@ -275,6 +276,11 @@ public ITargetedMSRun getRunByLsid(String lsid, Container container) return TargetedMSManager.getRunByLsid(lsid, container); } + public boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user) + { + return TargetedMSManager.updateSkydDataId(run, newSkydData, user); + } + @Override public ExperimentRunType getExperimentRunType() { From 0802d89c8210c402b65f7c247c356e7488094c36 Mon Sep 17 00:00:00 2001 From: vagisha Date: Tue, 18 Mar 2025 17:51:00 -0700 Subject: [PATCH 2/3] Added null check for newSkydData --- src/org/labkey/targetedms/TargetedMSManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/targetedms/TargetedMSManager.java b/src/org/labkey/targetedms/TargetedMSManager.java index fff95cb91..b797684c4 100644 --- a/src/org/labkey/targetedms/TargetedMSManager.java +++ b/src/org/labkey/targetedms/TargetedMSManager.java @@ -865,7 +865,7 @@ public static TargetedMSRun getRunByLsid(String lsid, Container c) public static boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user) { - if (!(run instanceof TargetedMSRun)) + if (!(run instanceof TargetedMSRun) || newSkydData == null) { return false; } From 75c3783171b101f94e615a2a13da253828a80414 Mon Sep 17 00:00:00 2001 From: vagisha Date: Fri, 21 Mar 2025 16:57:45 -0700 Subject: [PATCH 3/3] CR feedback - throw an IllegalArgumentException on null or unexpected run type, or null ExpData. --- src/org/labkey/targetedms/TargetedMSManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/targetedms/TargetedMSManager.java b/src/org/labkey/targetedms/TargetedMSManager.java index b797684c4..7f4b8df89 100644 --- a/src/org/labkey/targetedms/TargetedMSManager.java +++ b/src/org/labkey/targetedms/TargetedMSManager.java @@ -865,10 +865,16 @@ public static TargetedMSRun getRunByLsid(String lsid, Container c) public static boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user) { - if (!(run instanceof TargetedMSRun) || newSkydData == null) + if (!(run instanceof TargetedMSRun)) { - return false; + throw new IllegalArgumentException("Invalid run type. Expected TargetedMSRun but received " + + (run != null ? run.getClass().getName() : "null")); } + if (newSkydData == null) + { + throw new IllegalArgumentException("Cannot update with null newSkydData. A valid ExpData object is required"); + } + TargetedMSRun targetedRun = (TargetedMSRun) run; ExpRun expRun = ExperimentService.get().getExpRun(targetedRun.getExperimentRunLSID());