package edu.ualberta.med.biobank.common.action.labelPrinter;
import edu.ualberta.med.biobank.common.action.Action;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.action.EmptyResult;
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 PrinterLabelTemplateDeleteAction implements Action<EmptyResult> {
private static final long serialVersionUID = 1L;
protected final Integer templateId;
public PrinterLabelTemplateDeleteAction(
PrinterLabelTemplate printerLabelTemplate) {
if (printerLabelTemplate == null) {
throw new IllegalArgumentException();
}
this.templateId = printerLabelTemplate.getId();
}
@Override
public boolean isAllowed(ActionContext context) {
return new LabelPrintingPermission().isAllowed(context);
}
@Override
public EmptyResult run(ActionContext context) throws ActionException {
PrinterLabelTemplate printerLabelTemplate =
context.load(PrinterLabelTemplate.class, templateId);
context.getSession().delete(printerLabelTemplate);
return new EmptyResult();
}
}