package edu.ualberta.med.biobank.common.wrappers;
import edu.ualberta.med.biobank.common.util.DispatchSpecimenState;
import edu.ualberta.med.biobank.common.wrappers.base.DispatchSpecimenBaseWrapper;
import edu.ualberta.med.biobank.model.DispatchSpecimen;
import gov.nih.nci.system.applicationservice.WritableApplicationService;
public class DispatchSpecimenWrapper extends DispatchSpecimenBaseWrapper
implements ItemWrapper {
public DispatchSpecimenWrapper(WritableApplicationService appService) {
super(appService);
}
public DispatchSpecimenWrapper(WritableApplicationService appService,
DispatchSpecimen DispatchSpecimen) {
super(appService, DispatchSpecimen);
}
@Override
public int compareTo(ModelWrapper<DispatchSpecimen> object) {
if (object instanceof DispatchSpecimenWrapper) {
DispatchSpecimenWrapper da = (DispatchSpecimenWrapper) object;
return getSpecimen().compareTo(da.getSpecimen());
}
return super.compareTo(object);
}
// TODO: uhhhh, don't override equals?
@Override
public boolean equals(Object object) {
if (object instanceof DispatchSpecimenWrapper) {
DispatchSpecimenWrapper dsa = (DispatchSpecimenWrapper) object;
if (isNew() && dsa.isNew()) {
return getSpecimen() != null && dsa.getSpecimen() != null
&& getSpecimen().equals(dsa.getSpecimen())
&& getDispatch() != null && dsa.getDispatch() != null
&& getDispatch().equals(dsa.getDispatch());
}
}
return super.equals(object);
}
@Override
public DispatchSpecimenState getSpecimenState() {
return DispatchSpecimenState.getState(getState());
}
public void setDispatchSpecimenState(DispatchSpecimenState ds) {
setState(ds.getId());
}
@Override
public String getStateDescription() {
return DispatchSpecimenState.getState(getState()).getLabel();
}
}