package edu.ualberta.med.biobank.common.wrappers;
import java.util.Arrays;
import java.util.List;
import edu.ualberta.med.biobank.common.exception.BiobankException;
import edu.ualberta.med.biobank.common.peer.EventAttrPeer;
import edu.ualberta.med.biobank.common.wrappers.WrapperTransaction.TaskList;
import edu.ualberta.med.biobank.common.wrappers.base.StudyEventAttrBaseWrapper;
import edu.ualberta.med.biobank.model.EventAttr;
import edu.ualberta.med.biobank.model.StudyEventAttr;
import gov.nih.nci.system.applicationservice.ApplicationException;
import gov.nih.nci.system.applicationservice.WritableApplicationService;
import gov.nih.nci.system.query.hibernate.HQLCriteria;
public class StudyEventAttrWrapper extends StudyEventAttrBaseWrapper {
public StudyEventAttrWrapper(WritableApplicationService appService,
StudyEventAttr wrappedObject) {
super(appService, wrappedObject);
}
public StudyEventAttrWrapper(WritableApplicationService appService) {
super(appService);
}
@SuppressWarnings("nls")
public static final String IS_USED_BY_COL_EVENTS_QRY =
"select count(ea) from "
+ EventAttr.class.getName()
+ " as ea where ea."
+ EventAttrPeer.STUDY_EVENT_ATTR.getName() + "=?)";
public boolean isUsedByCollectionEvents() throws ApplicationException,
BiobankException {
if (isNew()) {
return false;
}
HQLCriteria c = new HQLCriteria(IS_USED_BY_COL_EVENTS_QRY,
Arrays.asList(new Object[] { wrappedObject }));
return getCountResult(appService, c) > 0;
}
@SuppressWarnings("nls")
@Override
public String toString() {
return "" + getId() + ":\"" + getGlobalEventAttr().getLabel() + "\":\""
+ getPermissible() + "\":" + getActivityStatus() + ":"
+ getGlobalEventAttr().getEventAttrType().getName() + ":"
+ getStudy();
}
public static List<StudyEventAttrWrapper> getStudyEventAttrCollection(
StudyWrapper study) {
return study.getStudyEventAttrCollection(false);
}
@Deprecated
@Override
protected void addDeleteTasks(TaskList tasks) {
tasks.add(check().notUsedBy(EventAttr.class,
EventAttrPeer.STUDY_EVENT_ATTR));
super.addDeleteTasks(tasks);
}
}