package edu.ualberta.med.biobank.common.reports; import java.util.List; import org.hibernate.Session; import edu.ualberta.med.biobank.server.applicationservice.BiobankApplicationService; import gov.nih.nci.system.applicationservice.ApplicationException; import gov.nih.nci.system.dao.Response; public class QueryProcess { private Session s; private BiobankApplicationService appService; private QueryCommand qc; public QueryProcess(QueryCommand qc, BiobankApplicationService appService) { this.qc = qc; this.appService = appService; } public void stop() { if (s != null) s.cancelQuery(); } public synchronized Response start(Session s) throws ApplicationException { if (this.s != null) throw new ApplicationException("cannot start a query twice"); //$NON-NLS-1$ this.s = s; List<Object> obs = qc.start(s, appService); return new Response(obs); } }