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.IdResult;
import edu.ualberta.med.biobank.common.action.exception.ActionException;
import edu.ualberta.med.biobank.common.permission.labelPrinting.LabelPrintingPermission;
import edu.ualberta.med.biobank.model.JasperTemplate;
public class JasperTemplateSaveAction implements Action<IdResult> {
private static final long serialVersionUID = 1L;
private Integer id = null;
private String name;
private String xml;
public JasperTemplateSaveAction(JasperTemplate jTemplate) {
this.id = jTemplate.getId();
this.name = jTemplate.getName();
this.xml = jTemplate.getXml();
}
@Override
public boolean isAllowed(ActionContext context) throws ActionException {
return new LabelPrintingPermission().isAllowed(context);
}
@Override
public IdResult run(ActionContext context) throws ActionException {
JasperTemplate jTemplate =
context.get(JasperTemplate.class, id, new JasperTemplate());
jTemplate.setId(id);
jTemplate.setName(name);
jTemplate.setXml(xml);
context.getSession().saveOrUpdate(jTemplate);
return new IdResult(jTemplate.getId());
}
}