package jpaoletti.jpm.core.operations; import java.util.Collection; import jpaoletti.jpm.core.PMContext; import jpaoletti.jpm.core.PMException; /** * Delete operation. Call dataAccess.delete * * @author jpaoletti */ public class DeleteOperation extends OperationCommandSupport { public DeleteOperation(String operationId) { super(operationId); } public DeleteOperation() { super("delete"); } @Override protected boolean openTransaction() { return true; } @Override protected void doExecute(PMContext ctx) throws PMException { super.doExecute(ctx); final Object instance = ctx.getSelected().getInstance(); if (ctx.getEntity().isWeak()) { final Collection<Object> collection = getOwnerCollection(ctx); if (collection != null) { collection.remove(instance); } } ctx.getEntity().getDataAccess().delete(ctx, instance); ctx.getEntityContainer().setSelected(null); } @Override protected boolean checkEntity() { return true; } }