![JAR search and dependency download from the Maven repository](/logo.png)
org.commonjava.maven.plugins.monolith.util.TLHolder Maven / Gradle / Ivy
package org.commonjava.maven.plugins.monolith.util;
public class TLHolder
{
private final ThreadLocal tl = new ThreadLocal();
private final Initializer initializer;
public interface Initializer
{
C create();
}
public TLHolder( final Initializer initializer )
{
this.initializer = initializer;
}
public void set( final T value )
{
tl.set( value );
}
public T rawGet()
{
return tl.get();
}
public T get()
{
T value = tl.get();
if ( value == null )
{
value = initializer.create();
tl.set( value );
}
return value;
}
public T clear()
{
final T value = tl.get();
System.out.println( "Clearing thread-local value: " + value );
tl.set( null );
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy