/**
*
*/
package org.openntf.domino.thread;
import java.io.Serializable;
import java.util.Observable;
import java.util.concurrent.Callable;
import java.util.logging.Logger;
import org.openntf.domino.session.ISessionFactory;
import org.openntf.domino.utils.Factory;
import org.openntf.domino.xots.Tasklet;
/**
* An observable callable implementation. In your implementation you should check {@link #shouldStop()} periodically
*
* @author Nathan T. Freeman
*/
@SuppressWarnings("unused")
public abstract class AbstractDominoCallable<T> extends Observable implements Tasklet.Interface, Callable<T>, Serializable {
private static final Logger log_ = Logger.getLogger(AbstractDominoCallable.class.getName());
private static final long serialVersionUID = 1L;
private boolean shouldStop_ = false;
private Thread runningThread_;
@Override
public ISessionFactory getSessionFactory() {
return null;
}
@Override
public Tasklet.Context getContext() {
return null;
}
@Override
public Tasklet.Scope getScope() {
return null;
}
@Override
public String[] getDynamicSchedule() {
return null;
}
/**
* Returns true Method should be queried in loops to determine if we should stop
*
* @return
*/
protected synchronized boolean shouldStop() {
return shouldStop_;
}
@Override
public synchronized void stop() {
shouldStop_ = true;
}
@Override
public Factory.ThreadConfig getThreadConfig() {
return null;
}
@Override
public String getDescription() {
return getClass().getSimpleName();
}
}