package edu.ualberta.med.biobank.test.reports; import edu.ualberta.med.biobank.common.util.RowColPos; import edu.ualberta.med.biobank.common.wrappers.ContainerLabelingSchemeWrapper; import edu.ualberta.med.biobank.common.wrappers.ContainerWrapper; import edu.ualberta.med.biobank.common.wrappers.SpecimenWrapper; import edu.ualberta.med.biobank.model.Container; import gov.nih.nci.system.applicationservice.WritableApplicationService; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; public class ContainerEmptyLocationsPostProcessTester implements PostProcessTester { @Override public List<Object> postProcess(WritableApplicationService appService, Collection<Object> results) { List<Object> processedResults = new ArrayList<Object>(); for (Object c : results) { try { ContainerWrapper container = new ContainerWrapper(appService, (Container) c); Map<RowColPos, SpecimenWrapper> aliquots = container .getSpecimens(); for (int i = 0, numRows = container.getRowCapacity(); i < numRows; i++) { for (int j = 0, numCols = container.getColCapacity(); j < numCols; j++) { RowColPos rowColPos = new RowColPos(i, j); if (!aliquots.containsKey(rowColPos)) { processedResults.add(new Object[] { container.getLabel() + ContainerLabelingSchemeWrapper .getPositionString(rowColPos, container .getContainerType() .getChildLabelingSchemeId(), numRows, numCols), container.getContainerType().getNameShort() }); } } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return processedResults; } }