package org.jactr.core.production.bindings;
/*
* default logging
*/
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jactr.core.production.VariableBindings;
import org.jactr.core.utils.recyclable.AbstractThreadLocalRecyclableFactory;
import org.jactr.core.utils.recyclable.RecyclableFactory;
public class VariableBindingsFactory
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(VariableBindingsFactory.class);
static private RecyclableFactory<VariableBindings> _factory = new AbstractThreadLocalRecyclableFactory<VariableBindings>(
20) {
@Override
protected void cleanUp(
VariableBindings obj)
{
obj.clear();
}
@Override
protected VariableBindings instantiate(
Object... params)
{
// explicitly
// recycle the
// bindings
return new VariableBindings(
true);
}
@Override
protected void release(
VariableBindings obj)
{
obj.clear();
}
};
static public VariableBindings newInstance()
{
return _factory.newInstance();
}
static public void recycle(VariableBindings set)
{
_factory.recycle(set);
}
}