package edu.ualberta.med.biobank.common.action.labelPrinter;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import edu.ualberta.med.biobank.common.action.Action;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.action.ListResult;
import edu.ualberta.med.biobank.common.action.exception.ActionException;
import edu.ualberta.med.biobank.common.permission.labelPrinting.LabelPrintingPermission;
import edu.ualberta.med.biobank.model.PrinterLabelTemplate;
public class PrinterLabelTemplateGetAllAction implements
Action<ListResult<PrinterLabelTemplate>> {
private static final long serialVersionUID = 1L;
private static Logger log = LoggerFactory
.getLogger(PrinterLabelTemplateGetAllAction.class.getName());
@SuppressWarnings("nls")
private static final String HQL_QRY =
"FROM " + PrinterLabelTemplate.class.getName() + " plt"
+ " INNER JOIN FETCH plt.jasperTemplate";
@Override
public boolean isAllowed(ActionContext context) throws ActionException {
return new LabelPrintingPermission().isAllowed(context);
}
@Override
public ListResult<PrinterLabelTemplate> run(ActionContext context)
throws ActionException {
log.debug("run");
ArrayList<PrinterLabelTemplate> plTemplates =
new ArrayList<PrinterLabelTemplate>(0);
Query query = context.getSession().createQuery(HQL_QRY);
@SuppressWarnings("unchecked")
List<PrinterLabelTemplate> results = query.list();
if (results != null) {
plTemplates.addAll(results);
}
return new ListResult<PrinterLabelTemplate>(plTemplates);
}
}