📄 schedulerserviceimpl.java
字号:
package org.jbpm.service;
import java.util.*;
import org.jbpm.*;
import org.jbpm.model.definition.impl.*;
import org.jbpm.model.execution.impl.*;
import org.jbpm.model.scheduler.*;
import org.jbpm.model.scheduler.impl.*;
import org.jbpm.persistence.*;
public class SchedulerServiceImpl implements SchedulerService {
private PersistenceSessionTx sessionTx = null;
public SchedulerServiceImpl( PersistenceSessionTx sessionTx ) {
this.sessionTx = sessionTx;
}
public void schedule(Job job) {
schedule( job, null );
}
public void schedule(Job job, String reference) {
DefinitionImpl definition = null;
TokenImpl token = null;
ProcessInstanceImpl processInstance = null;
// resolve the referenced model objects
if ( job.getTokenId() != null ) {
token = (TokenImpl) sessionTx.load( TokenImpl.class, job.getTokenId() );
definition = (DefinitionImpl) token.getProcessInstance().getDefinition();
} else if ( job.getProcessInstanceId() != null ) {
processInstance = (ProcessInstanceImpl) sessionTx.load( ProcessInstanceImpl.class, job.getProcessInstanceId() );
definition = (DefinitionImpl) processInstance.getDefinition();
} else if ( job.getDefinitionId() != null ) {
definition = (DefinitionImpl) sessionTx.load( DefinitionImpl.class, job.getDefinitionId() );
}
DelegationImpl actionDelegation = new DelegationImpl( definition, job.getClassName() );
actionDelegation.setConfiguration( job.getConfiguration() );
sessionTx.save( new JobImpl( actionDelegation, token, processInstance, job.getDueDate(), reference ) );
}
public void cancel(String reference) {
Iterator iter = sessionTx.findJobsByReference( reference ).iterator();
while (iter.hasNext()) {
sessionTx.delete( iter.next() );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -