package edu.ualberta.med.biobank.common.action.specimen; import java.util.HashSet; import java.util.List; import java.util.Set; import edu.ualberta.med.biobank.common.action.ActionResult; import edu.ualberta.med.biobank.common.action.util.InfoUtil; import edu.ualberta.med.biobank.model.Specimen; public class SpecimenInfo implements ActionResult { private static final long serialVersionUID = 1L; public Specimen specimen; public String parentLabel; public String positionString; public String topContainerTypeNameShort; public String comment; public SpecimenInfo(SpecimenInfo info) { this.specimen = info.specimen; this.parentLabel = info.parentLabel; this.positionString = info.positionString; this.comment = info.comment; } public SpecimenInfo() { this.specimen = new Specimen(); } public String getPositionString(boolean fullString, boolean addTopParentShortName) { if (positionString == null) { return null; } String position = positionString; if (fullString) { position = parentLabel + position; } if (addTopParentShortName) position += " (" + topContainerTypeNameShort + ")"; //$NON-NLS-1$ //$NON-NLS-2$ return position; } @Override public boolean equals(Object o) { if (o instanceof SpecimenInfo) { SpecimenInfo sInfo = (SpecimenInfo) o; if (this == sInfo) return true; return InfoUtil.equals(specimen, sInfo.specimen); } return false; } public static Set<Integer> getSpecimenIds(List<SpecimenInfo> specimenInfos) { HashSet<Integer> result = new HashSet<Integer>(); for (SpecimenInfo specimenInfo : specimenInfos) { result.add(specimenInfo.specimen.getId()); } return result; } }