From 4edbaa17cc453848170a6a3966002f71da0fbca7 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 20 Apr 2010 13:18:02 +0000 Subject: [PATCH] [LMS-1457] minor refactorings SVN: 15535 --- .../dsu/tracking/dto/TrackingStateDTO.java | 2 +- .../tracking/main/FileBasedTrackingDAO.java | 6 +- .../cisd/dsu/tracking/main/TrackingBO.java | 88 +++++++++++-------- 3 files changed, 54 insertions(+), 42 deletions(-) diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java index 7abc3bf55d9..c311de09d59 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/dto/TrackingStateDTO.java @@ -41,7 +41,7 @@ public class TrackingStateDTO return alreadyTrackedSampleIdsToBeProcessed; } - public void setAlreadyTrackedSamplesIdsToBeProcessed( + public void setAlreadyTrackedSampleIdsToBeProcessed( Set<Long> alreadyTrackedSampleIdsToBeProcessed) { this.alreadyTrackedSampleIdsToBeProcessed = alreadyTrackedSampleIdsToBeProcessed; diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java index a167891ae03..0050db9caf0 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/FileBasedTrackingDAO.java @@ -22,9 +22,9 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.TreeSet; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; @@ -75,7 +75,7 @@ public class FileBasedTrackingDAO implements ITrackingDAO String[] toBeProcessed = lines.get(1).split("\t"); String[] processed = lines.get(2).split("\t"); state.setLastSeenDatasetId(Integer.parseInt(datasetId[1])); - state.setAlreadyTrackedSamplesIdsToBeProcessed(parseIds(toBeProcessed)); + state.setAlreadyTrackedSampleIdsToBeProcessed(parseIds(toBeProcessed)); state.setAlreadyTrackedSampleIdsProcessed(parseIds(processed)); return state; } catch (Exception e) @@ -86,7 +86,7 @@ public class FileBasedTrackingDAO implements ITrackingDAO private static Set<Long> parseIds(String[] array) { - Set<Long> ids = new HashSet<Long>(); + Set<Long> ids = new TreeSet<Long>(); for (int i = 1; i < array.length; i++) { ids.add(Long.parseLong(array[i])); diff --git a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java index b1fca069bb0..39215b05a55 100644 --- a/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java +++ b/deep_sequencing_unit/source/java/ch/ethz/bsse/cisd/dsu/tracking/main/TrackingBO.java @@ -17,9 +17,9 @@ package ch.ethz.bsse.cisd.dsu.tracking.main; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.TreeSet; import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackedEntities; import ch.ethz.bsse.cisd.dsu.tracking.dto.TrackingStateDTO; @@ -33,9 +33,9 @@ import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.openbis.generic.shared.ITrackingServer; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingDataSetCriteria; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TrackingSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** @@ -158,45 +158,11 @@ public class TrackingBO private static void saveTrackingState(TrackingStateDTO prevState, TrackedEntities changedEntities, ITrackingDAO trackingDAO) { - TrackingStateDTO state = calcNewTrackingState(prevState, changedEntities); + TrackingStateDTO state = + TrackingStateUpdateHelper.calcNewTrackingState(prevState, changedEntities); trackingDAO.saveTrackingState(state); } - private static TrackingStateDTO calcNewTrackingState(TrackingStateDTO prevState, - TrackedEntities changedEntities) - { - TrackingStateDTO state = new TrackingStateDTO(); - Set<Long> sequencingSamplesProcessed = - new HashSet<Long>(prevState.getAlreadyTrackedSampleIdsProcessed()); - addNewSampleIds(sequencingSamplesProcessed, changedEntities.getSequencingSamplesProcessed()); - state.setAlreadyTrackedSampleIdsProcessed(sequencingSamplesProcessed); - - int lastSeenDatasetId = - calcMaxId(changedEntities.getDataSets(), prevState.getLastSeenDatasetId()); - state.setLastSeenDatasetId(lastSeenDatasetId); - return state; - } - - private static void addNewSampleIds(Set<Long> alreadyTrackedSampleIdsProcessed, - List<Sample> sequencingSamplesProcessed) - { - for (Sample sample : sequencingSamplesProcessed) - { - alreadyTrackedSampleIdsProcessed.add(sample.getId()); - } - } - - private static int calcMaxId(List<? extends IIdentifiable> entities, int initialValue) - { - long max = initialValue; - for (IIdentifiable entity : entities) - { - max = Math.max(max, entity.getId()); - } - // TODO 2009-12-01, Tomasz Pylak: refactor ids to long everywhere - return (int) max; - } - private static TrackedEntities fetchChangedEntities(TrackingStateDTO trackingState, ITrackingServer trackingServer, SessionContextDTO session) { @@ -226,4 +192,50 @@ public class TrackingBO Collections.EMPTY_LIST); return trackingServer.listSamples(session.getSessionToken(), criteria); } + + public static class TrackingStateUpdateHelper + { + + public static TrackingStateDTO calcNewTrackingState(TrackingStateDTO prevState, + TrackedEntities changedEntities) + { + TrackingStateDTO state = new TrackingStateDTO(); + Set<Long> sequencingSamplesToBeProcessed = + new TreeSet<Long>(prevState.getAlreadyTrackedSampleIdsToBeProcessed()); + addNewSampleIds(sequencingSamplesToBeProcessed, changedEntities + .getSequencingSamplesToBeProcessed()); + state.setAlreadyTrackedSampleIdsToBeProcessed(sequencingSamplesToBeProcessed); + + Set<Long> sequencingSamplesProcessed = + new TreeSet<Long>(prevState.getAlreadyTrackedSampleIdsProcessed()); + addNewSampleIds(sequencingSamplesProcessed, changedEntities + .getSequencingSamplesProcessed()); + state.setAlreadyTrackedSampleIdsProcessed(sequencingSamplesProcessed); + + int lastSeenDatasetId = + calcMaxId(changedEntities.getDataSets(), prevState.getLastSeenDatasetId()); + state.setLastSeenDatasetId(lastSeenDatasetId); + return state; + } + + private static void addNewSampleIds(Set<Long> alreadyTrackedSampleIdsProcessed, + List<Sample> sequencingSamplesProcessed) + { + for (Sample sample : sequencingSamplesProcessed) + { + alreadyTrackedSampleIdsProcessed.add(sample.getId()); + } + } + + private static int calcMaxId(List<? extends IIdentifiable> entities, int initialValue) + { + long max = initialValue; + for (IIdentifiable entity : entities) + { + max = Math.max(max, entity.getId()); + } + // TODO 2009-12-01, Tomasz Pylak: refactor ids to long everywhere + return (int) max; + } + } } -- GitLab