|
73 | 73 | import org.labkey.api.query.UserSchema; |
74 | 74 | import org.labkey.api.security.User; |
75 | 75 | import org.labkey.api.security.permissions.DeletePermission; |
| 76 | +import org.labkey.api.targetedms.ITargetedMSRun; |
76 | 77 | import org.labkey.api.targetedms.RepresentativeDataState; |
77 | 78 | import org.labkey.api.targetedms.RunRepresentativeDataState; |
78 | 79 | import org.labkey.api.targetedms.TargetedMSService; |
|
123 | 124 | import java.util.LinkedHashSet; |
124 | 125 | import java.util.List; |
125 | 126 | import java.util.Map; |
| 127 | +import java.util.Objects; |
126 | 128 | import java.util.Set; |
127 | 129 | import java.util.TreeMap; |
128 | 130 | import java.util.TreeSet; |
@@ -861,6 +863,30 @@ public static TargetedMSRun getRunByLsid(String lsid, Container c) |
861 | 863 | throw new IllegalArgumentException("More than one TargetedMS runs found for LSID "+lsid); |
862 | 864 | } |
863 | 865 |
|
| 866 | + public static boolean updateSkydDataId(ITargetedMSRun run, ExpData newSkydData, User user) |
| 867 | + { |
| 868 | + if (!(run instanceof TargetedMSRun)) |
| 869 | + { |
| 870 | + throw new IllegalArgumentException("Invalid run type. Expected TargetedMSRun but received " + |
| 871 | + (run != null ? run.getClass().getName() : "null")); |
| 872 | + } |
| 873 | + if (newSkydData == null) |
| 874 | + { |
| 875 | + throw new IllegalArgumentException("Cannot update with null newSkydData. A valid ExpData object is required"); |
| 876 | + } |
| 877 | + |
| 878 | + TargetedMSRun targetedRun = (TargetedMSRun) run; |
| 879 | + |
| 880 | + ExpRun expRun = ExperimentService.get().getExpRun(targetedRun.getExperimentRunLSID()); |
| 881 | + if (expRun == null) return false; |
| 882 | + |
| 883 | + if (!Objects.equals(newSkydData.getRunId(), expRun.getRowId())) return false; |
| 884 | + |
| 885 | + targetedRun.setSkydDataId(newSkydData.getRowId()); |
| 886 | + TargetedMSManager.updateRun(targetedRun, user); |
| 887 | + return true; |
| 888 | + } |
| 889 | + |
864 | 890 | public static List<Long> getRunIdsByInstrument(String serialNumber) |
865 | 891 | { |
866 | 892 | SQLFragment sql = new SQLFragment("SELECT DISTINCT r.Id FROM "); |
|
0 commit comments