package edu.ualberta.med.biobank.common.action.researchGroup; 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.researchGroup.ResearchGroupDeletePermission; import edu.ualberta.med.biobank.model.ResearchGroup; public class ResearchGroupDeleteAction implements Action<EmptyResult> { private static final long serialVersionUID = 1L; protected final Integer rgId; public ResearchGroupDeleteAction(ResearchGroup researchGroup) { if (researchGroup == null) { throw new IllegalArgumentException(); } this.rgId = researchGroup.getId(); } @Override public boolean isAllowed(ActionContext context) { return new ResearchGroupDeletePermission(rgId).isAllowed(context); } @Override public EmptyResult run(ActionContext context) throws ActionException { // FIXME: this should work but doesn't ResearchGroup rg = context.get(ResearchGroup.class, rgId); context.getSession().delete(rg); return new EmptyResult(); } }