package org.jactr.core.utils.collections; /* * default logging */ import javolution.util.FastCollection; import javolution.util.FastList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.core.utils.recyclable.AbstractThreadLocalRecyclableFactory; import org.jactr.core.utils.recyclable.RecyclableFactory; public class FastCollectionFactory { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(FastCollectionFactory.class); static private RecyclableFactory<FastCollection> _factory = new AbstractThreadLocalRecyclableFactory<FastCollection>() { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected void cleanUp( FastCollection obj) { obj.clear(); } @Override protected FastCollection instantiate( Object... params) { return FastList .newInstance(); } @Override protected void release( FastCollection obj) { if (obj instanceof FastList) FastList .recycle((FastList) obj); } }; static public FastCollection newInstance() { return _factory.newInstance(); } static public void recycle(FastCollection set) { _factory.recycle(set); } }