package edu.ualberta.med.biobank.common.action.request; 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.request.RequestDeletePermission; import edu.ualberta.med.biobank.model.Request; public class RequestDeleteAction implements Action<EmptyResult> { private static final long serialVersionUID = 1L; protected final Integer requestId; public RequestDeleteAction(Request request) { if (request == null) { throw new IllegalArgumentException(); } this.requestId = request.getId(); } @Override public boolean isAllowed(ActionContext context) { return new RequestDeletePermission(requestId).isAllowed(context); } @Override public EmptyResult run(ActionContext context) throws ActionException { Request r = context.get(Request.class, requestId); context.getSession().delete(r); return new EmptyResult(); } }