package edu.ualberta.med.biobank.test.action.helper;
import edu.ualberta.med.biobank.common.action.collectionEvent.CollectionEventGetInfoAction;
import edu.ualberta.med.biobank.common.action.collectionEvent.CollectionEventGetInfoAction.CEventInfo;
import edu.ualberta.med.biobank.common.action.collectionEvent.CollectionEventSaveAction;
import edu.ualberta.med.biobank.common.action.specimen.SpecimenInfo;
import edu.ualberta.med.biobank.model.Specimen;
import edu.ualberta.med.biobank.test.action.IActionExecutor;
public class SpecimenHelper extends Helper {
public static void deleteSpecimen(IActionExecutor actionExecutor,
Specimen specimen) {
CEventInfo ceventInfo = actionExecutor.exec(
new CollectionEventGetInfoAction(specimen.getCollectionEvent()
.getId()));
SpecimenInfo specimenInfoToDelete = null;
for (SpecimenInfo specimenInfo : ceventInfo.sourceSpecimenInfos) {
if (specimenInfo.specimen.getId().equals(specimen.getId())) {
specimenInfoToDelete = specimenInfo;
break;
}
}
if (specimenInfoToDelete == null) {
throw new RuntimeException(
"specimen not found in collection event info");
}
ceventInfo.sourceSpecimenInfos.remove(specimenInfoToDelete);
CollectionEventSaveAction ceventSaveAction =
CollectionEventHelper.getSaveAction(ceventInfo);
actionExecutor.exec(ceventSaveAction);
}
}