case THREADSAFE :
return new ThreadSafeLocalContextProvider(behavior, lazy);
case CONCURRENT :
return new ConcurrentLocalContextProvider(behavior, lazy);
case SINGLETHREAD :
return new SingleThreadLocalContextProvider(behavior, lazy);
case SINGLETON :
default :
LocalVariableBehavior b = SingletonLocalContextProvider.getLocalVariableBehaviorOrNull();
if (b == null) return new SingletonLocalContextProvider(behavior, lazy);
else return new SingletonLocalContextProvider(b, lazy);