001    package org.shiftone.jrat.provider.tree;
002    
003    
004    import org.shiftone.jrat.util.Assert;
005    
006    
007    /**
008     * Class DelegateThreadLocal
009     *
010     * @author jeff@shiftone.org (Jeff Drost)
011     */
012    public class DelegateThreadLocal extends ThreadLocal {
013    
014        private TreeMethodHandlerFactory factory = null;
015    
016        public DelegateThreadLocal(TreeMethodHandlerFactory factory) {
017    
018            Assert.assertNotNull("factory", factory);
019    
020            this.factory = factory;
021        }
022    
023    
024        protected final Object initialValue() {
025            return new Delegate(factory.getRootNode());
026        }
027    }