001package org.maltparser.core.pool; 002 003import org.maltparser.core.exception.MaltChainedException; 004 005public abstract class ObjectPool<T> { 006 protected int keepThreshold; 007 008 public ObjectPool() { 009 this(Integer.MAX_VALUE); 010 } 011 012 public ObjectPool(int keepThreshold) { 013 setKeepThreshold(keepThreshold); 014 } 015 016 public int getKeepThreshold() { 017 return keepThreshold; 018 } 019 020 public void setKeepThreshold(int keepThreshold) { 021 this.keepThreshold = keepThreshold; 022 } 023 024 protected abstract T create() throws MaltChainedException; 025 public abstract void resetObject(T o) throws MaltChainedException; 026 public abstract T checkOut() throws MaltChainedException; 027 public abstract void checkIn(T o) throws MaltChainedException; 028 public abstract void checkInAll() throws MaltChainedException; 029}