Skip to content
Snippets Groups Projects
Commit 4edbaa17 authored by buczekp's avatar buczekp
Browse files

[LMS-1457] minor refactorings

SVN: 15535
parent 8814b375
No related branches found
No related tags found
No related merge requests found
......@@ -41,7 +41,7 @@ public class TrackingStateDTO
return alreadyTrackedSampleIdsToBeProcessed;
}
public void setAlreadyTrackedSamplesIdsToBeProcessed(
public void setAlreadyTrackedSampleIdsToBeProcessed(
Set<Long> alreadyTrackedSampleIdsToBeProcessed)
{
this.alreadyTrackedSampleIdsToBeProcessed = alreadyTrackedSampleIdsToBeProcessed;
......
......@@ -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]));
......
......@@ -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;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment