From b40191067d907bda84cb15a23467fcf0fc216e79 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Tue, 15 Jun 2010 08:18:20 +0000 Subject: [PATCH] LMS-1569 Refactored code to get/create {experiment, container, dataset}. SVN: 16492 --- .../openbis/dss/etl/HCSDatasetUploader.java | 38 ++----- .../ScreeningContainerDatasetInfoHelper.java | 103 ++++++++++++++++++ 2 files changed, 110 insertions(+), 31 deletions(-) create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java index 00f409f35a1..74bc81e66d7 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSDatasetUploader.java @@ -31,8 +31,6 @@ import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgAcquiredImageDTO; import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgChannelDTO; import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgChannelStackDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgContainerDTO; -import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgImageDTO; import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgSpotDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; @@ -239,7 +237,8 @@ public class HCSDatasetUploader private static AcquiredImageInStack makeAcquiredImageInStack(AcquiredPlateImage image) { - return new AcquiredImageInStack(image.getChannelName(), image.getImageReference(), image.getThumbnailFilePathOrNull()); + return new AcquiredImageInStack(image.getChannelName(), image.getImageReference(), image + .getThumbnailFilePathOrNull()); } private static ImgChannelStackDTO makeStackDTO(AcquiredPlateImage image, Long[][] spotIds, @@ -283,15 +282,14 @@ public class HCSDatasetUploader { long imageId = addImage(image.getImageFilePath()); Long thumbnailId = addImage(image.getThumbnailPathOrNull()); - ImgAcquiredImageDTO acquiredImage = - new ImgAcquiredImageDTO(); + ImgAcquiredImageDTO acquiredImage = new ImgAcquiredImageDTO(); acquiredImage.setImageId(imageId); acquiredImage.setThumbnailId(thumbnailId); acquiredImage.setChannelStackId(stackId); acquiredImage.setChannelId(channelTechId); dao.addAcquiredImage(acquiredImage); } - + private Long addImage(RelativeImageReference imageReferenceOrNull) { if (imageReferenceOrNull == null) @@ -423,38 +421,16 @@ public class HCSDatasetUploader private long createDataset(long contId, ScreeningContainerDatasetInfo info) { - ImgDatasetDTO dataset = - new ImgDatasetDTO(info.getDatasetPermId(), info.getTileRows(), info - .getTileColumns(), contId); - return dao.addDataset(dataset); + return ScreeningContainerDatasetInfoHelper.createDataset(dao, info, contId); } private long getOrCreateContainer(long expId, ScreeningContainerDatasetInfo info) { - String containerPermId = info.getContainerPermId(); - Long containerId = dao.tryGetContainerIdPermId(containerPermId); - if (containerId != null) - { - return containerId; - } else - { - ImgContainerDTO container = - new ImgContainerDTO(containerPermId, info.getContainerRows(), info - .getContainerColumns(), expId); - return dao.addContainer(container); - } + return ScreeningContainerDatasetInfoHelper.getOrCreateContainer(dao, info, expId); } private long getOrCreateExperiment(ScreeningContainerDatasetInfo info) { - String experimentPermId = info.getExperimentPermId(); - Long expId = dao.tryGetExperimentIdByPermId(experimentPermId); - if (expId != null) - { - return expId; - } else - { - return dao.addExperiment(experimentPermId); - } + return ScreeningContainerDatasetInfoHelper.getOrCreateExperiment(dao, info); } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java new file mode 100644 index 00000000000..8ce0d018c68 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfoHelper.java @@ -0,0 +1,103 @@ +/* + * Copyright 2010 ETH Zuerich, CISD + * + * 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 ch.systemsx.cisd.openbis.dss.etl; + +import ch.systemsx.cisd.openbis.dss.etl.dataaccess.IImagingUploadDAO; +import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgContainerDTO; +import ch.systemsx.cisd.openbis.dss.etl.dataaccess.ImgDatasetDTO; + +/** + * Helper class for retrieving and/or creating entities associated with the screening container data + * set info in the DB. + * + * @author Chandrasekhar Ramakrishnan + */ +public class ScreeningContainerDatasetInfoHelper +{ + private final ScreeningContainerDatasetInfo info; + + private final IImagingUploadDAO dao; + + public ScreeningContainerDatasetInfoHelper(IImagingUploadDAO dao, + ScreeningContainerDatasetInfo info) + { + this.dao = dao; + this.info = info; + } + + public long getOrCreateExperiment() + { + return getOrCreateExperiment(dao, info); + } + + public long getOrCreateContainer(long expId) + { + return getOrCreateContainer(dao, info, expId); + } + + public long getOrCreateDataset(long contId) + { + ImgDatasetDTO dataset = dao.tryGetDatasetByPermId(info.getDatasetPermId()); + if (null != dataset) + { + return dataset.getId(); + } else + { + return createDataset(dao, info, contId); + } + + } + + // Package-visible static methods + static long createDataset(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, long contId) + { + ImgDatasetDTO dataset = + new ImgDatasetDTO(info.getDatasetPermId(), info.getTileRows(), info + .getTileColumns(), contId); + return dao.addDataset(dataset); + } + + static long getOrCreateContainer(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, + long expId) + { + String containerPermId = info.getContainerPermId(); + Long containerId = dao.tryGetContainerIdPermId(containerPermId); + if (containerId != null) + { + return containerId; + } else + { + ImgContainerDTO container = + new ImgContainerDTO(containerPermId, info.getContainerRows(), info + .getContainerColumns(), expId); + return dao.addContainer(container); + } + } + + static long getOrCreateExperiment(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info) + { + String experimentPermId = info.getExperimentPermId(); + Long expId = dao.tryGetExperimentIdByPermId(experimentPermId); + if (expId != null) + { + return expId; + } else + { + return dao.addExperiment(experimentPermId); + } + } +} -- GitLab