/**
*
*/
package net.conselldemallorca.helium.jbpm3.command;
import org.hibernate.Query;
import org.jbpm.JbpmContext;
import org.jbpm.command.AbstractBaseCommand;
import org.jbpm.graph.exe.ProcessInstance;
/**
* Command per a trobar els logs associats a una instància de procés
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class DeleteProcessInstanceLogsCommand extends AbstractBaseCommand {
private static final long serialVersionUID = -1908847549444051495L;
private ProcessInstance processInstance;
public DeleteProcessInstanceLogsCommand(
ProcessInstance processInstance) {
super();
this.processInstance = processInstance;
}
// @SuppressWarnings("rawtypes")
public Object execute(JbpmContext jbpmContext) throws Exception {
Query query = jbpmContext.getSession().createQuery(
"delete org.jbpm.logging.log.ProcessLog "
+ "where id in ("
+ " select pl.id "
+ " from org.jbpm.logging.log.ProcessLog as pl "
+ " where pl.token.processInstance = :processInstance)");
query.setEntity("processInstance", processInstance);
query.executeUpdate();
// Query query = jbpmContext.getSession().getNamedQuery("GraphSession.findLogsForProcessInstance");
// query.setEntity("processInstance", processInstance);
// List logs = query.list();
// Iterator iter = logs.iterator();
// while (iter.hasNext())
// {
// ProcessLog processLog = (ProcessLog)iter.next();
// jbpmContext.getSession().delete(processLog);
// }
return null;
}
public ProcessInstance getProcessInstance() {
return processInstance;
}
public void setId(ProcessInstance processInstance) {
this.processInstance = processInstance;
}
@Override
public String getAdditionalToStringInformation() {
return "processInstance=" + processInstance ;
}
}