net.sf.javagimmicks.lang.ThreadLocalCreateOnDemandObjectContainer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gimmicks Show documentation
Show all versions of gimmicks Show documentation
Utility classes, APIs and tools for Java
package net.sf.javagimmicks.lang;
/**
* An implementation of {@link ObjectContainer} that creates an own instance per
* thread when it is requested for the first time using an underlying
* {@link Factory} which is commonly known as "lazy loading" pattern.
*
* @param
* the type of object the container can carries
*/
public class ThreadLocalCreateOnDemandObjectContainer extends AbstractCreateOnDemandObjectContainer
{
private final ThreadLocal _instances = new ThreadLocal();
/**
* Creates a new instance for the given {@link Factory}
*
* @param factory
* the {@link Factory} to use for creating the instances
*/
public ThreadLocalCreateOnDemandObjectContainer(final Factory factory)
{
super(factory);
}
@Override
protected E getInstance()
{
return _instances.get();
}
@Override
protected void setInstance(final E instance)
{
_instances.set(instance);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy