package org.jbpm.scheduler.ejbtimer;
import java.io.Serializable;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.job.Timer;
public class TimerInfo implements Serializable {
private static final long serialVersionUID = 1L;
// DON'T CHANGE THE SERIALIZED COMPATIBILITY OF THIS CLASS LIGHTLY
// unlike command messages, timers will be in the timer db for a long time.
// when they fire, they should be deserializable !
long timerId = -1;
String timerName;
long tokenId = -1;
long processInstanceId = -1;
public TimerInfo(Timer timer) {
timerId = timer.getId();
timerName = timer.getName();
Token token = timer.getToken();
tokenId = (token!=null ? token.getId() : -1);
ProcessInstance processInstance = timer.getProcessInstance();
processInstanceId = (processInstance!=null ? processInstance.getId() : -1);
}
public long getProcessInstanceId() {
return processInstanceId;
}
public long getTimerId() {
return timerId;
}
public String getTimerName() {
return timerName;
}
public long getTokenId() {
return tokenId;
}
public boolean matchesName(String timerName, Token token) {
if ( (this.timerName==null)
|| (! this.timerName.equals(timerName))
|| (this.tokenId==-1)
|| (this.tokenId!=token.getId())
) {
return false;
}
return true;
}
public boolean matchesProcessInstance(ProcessInstance processInstance) {
if ( (processInstanceId==-1)
|| (processInstance==null)
|| (processInstanceId!=processInstance.getId())
) {
return false;
}
return true;
}
}