package edu.ualberta.med.biobank.treeview.report;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import edu.ualberta.med.biobank.SessionManager;
import edu.ualberta.med.biobank.common.wrappers.ReportWrapper;
import edu.ualberta.med.biobank.model.Report;
import edu.ualberta.med.biobank.treeview.AdapterBase;
import gov.nih.nci.system.applicationservice.ApplicationException;
import gov.nih.nci.system.query.hibernate.HQLCriteria;
public class PrivateReportsGroup extends AbstractReportGroup {
private static final String NODE_NAME = Messages.PrivateReportsGroup_myreport_node_label;
private static final String HQL_REPORT_OF_USER = "from " //$NON-NLS-1$
+ Report.class.getName() + " where userId = ?"; //$NON-NLS-1$
public PrivateReportsGroup(AdapterBase parent, int id) {
super(parent, id, NODE_NAME);
}
@Override
protected Collection<ReportWrapper> getReports() {
List<ReportWrapper> reports = new ArrayList<ReportWrapper>();
if (SessionManager.getInstance().isConnected()) {
Integer userId = SessionManager.getUser().getId().intValue();
HQLCriteria criteria = new HQLCriteria(HQL_REPORT_OF_USER,
Arrays.asList(new Object[] { userId }));
try {
List<Report> rawReports = SessionManager.getAppService().query(
criteria);
for (Report rawReport : rawReports) {
reports.add(new ReportWrapper(SessionManager
.getAppService(), rawReport));
}
} catch (ApplicationException e) {
e.printStackTrace();
}
}
return reports;
}
}