View Javadoc

1   package com.atlassian.sal.core.executor;
2   
3   import java.util.concurrent.Executor;
4   
5   /**
6    * Executor that wraps executing runnables in a wrapper that transfers the threadlocal context
7    */
8   class ThreadLocalDelegateExecutor implements Executor
9   {
10      private final Executor delegate;
11      protected final ThreadLocalContextManager manager;
12  
13      ThreadLocalDelegateExecutor(ThreadLocalContextManager manager, Executor delegate)
14      {
15          this.delegate = delegate;
16          this.manager = manager;
17      }
18  
19      public void execute(Runnable runnable)
20      {
21          Runnable wrapper = new ThreadLocalDelegateRunnable(manager, runnable);
22  
23          delegate.execute(wrapper);
24      }
25  }