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 48063b947adce612ed95fd2df53a39301ba8f0ce..ce64fe2ca038bac48f22e900ab134c06a3728a0f 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 @@ -42,7 +42,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConst /** * @author Tomasz Pylak */ -class HCSDatasetUploader +public class HCSDatasetUploader { public static void upload(IImagingUploadDAO dao, ScreeningContainerDatasetInfo info, List<AcquiredPlateImage> images, Set<HCSImageFileExtractionResult.Channel> channels) @@ -132,17 +132,17 @@ class HCSDatasetUploader throw createInvalidNewChannelException(expId, existingChannels, channelName); } // a channel with a specified name already exists for an experiment, its description - // will be updated + // will be updated if (existingChannel.getWavelength().equals(channelDTO.getWavelength()) == false) - { + { throw UserFailureException.fromTemplate( - "There are already datasets registered for the experiment " - + "which use the same channel name, but with a different wavelength! " + "There are already datasets registered for the experiment " + + "which use the same channel name, but with a different wavelength! " + "Channel %s, old wavelength %d, new wavelength %d.", channelName, existingChannel.getWavelength(), channelDTO.getWavelength()); - } - channelDTO.setId(existingChannel.getId()); - dao.updateChannel(channelDTO); + } + channelDTO.setId(existingChannel.getId()); + dao.updateChannel(channelDTO); return channelDTO; } @@ -158,18 +158,18 @@ class HCSDatasetUploader } private ImgChannelDTO createChannel(long expId, HCSImageFileExtractionResult.Channel channel) - { + { ImgChannelDTO channelDTO = makeChannelDTO(channel, expId); - long channelId = dao.addChannel(channelDTO); - channelDTO.setId(channelId); + long channelId = dao.addChannel(channelDTO); + channelDTO.setId(channelId); return channelDTO; } private static ImgChannelDTO makeChannelDTO(HCSImageFileExtractionResult.Channel channel, long expId) { - return ImgChannelDTO.createExperimentChannel(channel.getName(), channel.getDescription(), - channel.getWavelength(), expId); + return ImgChannelDTO.createExperimentChannel(channel.getName(), channel.tryGetDescription(), + channel.tryGetWavelength(), expId); } private static class AcquiredImageInStack @@ -330,14 +330,14 @@ class HCSDatasetUploader ScreeningConstants.OLIGO_WELL_TYPE_CODE); } - String createCoordinate(ImgSpotDTO spot) + private static String createCoordinate(ImgSpotDTO spot) { return Location.tryCreateMatrixCoordinateFromLocation(new Location(spot.getColumn(), spot .getRow())); } - private static Boolean[][] extractNewSpots(int rows, int columns, List<AcquiredPlateImage> images, - List<ImgSpotDTO> existingSpots) + private static Boolean[][] extractNewSpots(int rows, int columns, + List<AcquiredPlateImage> images, List<ImgSpotDTO> existingSpots) { Boolean[][] spots = extractExistingSpots(rows, columns, images); unmarkSpots(existingSpots, spots); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractionResult.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractionResult.java index 25d3cd0ece4d0c2d710d7b944170136e848d52d9..5144c71ff54df321ef0c6a3f62cb7f9fc652c83b 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractionResult.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/HCSImageFileExtractionResult.java @@ -72,14 +72,14 @@ public final class HCSImageFileExtractionResult private final String description; - private final int wavelength; + private final Integer wavelength; - public Channel(String name, String description, int wavelength) + public Channel(String name, String descriptionOrNull, Integer wavelengthOrNull) { assert name != null : "name is null"; this.name = name; - this.description = description; - this.wavelength = wavelength; + this.description = descriptionOrNull; + this.wavelength = wavelengthOrNull; } public String getName() @@ -87,12 +87,12 @@ public final class HCSImageFileExtractionResult return name; } - public String getDescription() + public String tryGetDescription() { return description; } - public int getWavelength() + public Integer tryGetWavelength() { return wavelength; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java index 1f549d6f7af962b3a7dcbc782cab34fa0a94ac25..261d03e4891c38d24dc18291de33ceca21a96037 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/PlateStorageProcessor.java @@ -130,13 +130,13 @@ public final class PlateStorageProcessor extends AbstractStorageProcessor this.currentTransaction = null; } - private static String[] extractChannelNames(Properties properties) + public static String[] extractChannelNames(Properties properties) { String names = PropertyUtils.getMandatoryProperty(properties, CHANNEL_NAMES); String[] channelNames = names.split(CHANNEL_SEPARATOR); for (int i = 0; i < channelNames.length; i++) { - channelNames[i] = channelNames[i].trim(); + channelNames[i] = channelNames[i].trim().toLowerCase(); } return channelNames; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfo.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfo.java index 8c2de3f9987c3f2ca76926c96028eba4e978c0da..33b0b20009890aeace71d106fb95b4d7a0bbf29b 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfo.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/ScreeningContainerDatasetInfo.java @@ -21,7 +21,7 @@ package ch.systemsx.cisd.openbis.dss.etl; * * @author Tomasz Pylak */ -class ScreeningContainerDatasetInfo +public class ScreeningContainerDatasetInfo { private String experimentPermId;