package org.maltparser.core.pool;
import org.maltparser.core.exception.MaltChainedException;
public abstract class ObjectPool<T> {
protected int keepThreshold;
public ObjectPool() {
this(Integer.MAX_VALUE);
}
public ObjectPool(int keepThreshold) {
setKeepThreshold(keepThreshold);
}
public int getKeepThreshold() {
return keepThreshold;
}
public void setKeepThreshold(int keepThreshold) {
this.keepThreshold = keepThreshold;
}
protected abstract T create() throws MaltChainedException;
public abstract void resetObject(T o) throws MaltChainedException;
public abstract T checkOut() throws MaltChainedException;
public abstract void checkIn(T o) throws MaltChainedException;
public abstract void checkInAll() throws MaltChainedException;
}