Coverage Report - org.seasar.cubby.controller.ThreadContext
 
Classes in this File Line Coverage Branch Coverage Complexity
ThreadContext
100%
13/13
N/A
0
ThreadContext$1
100%
2/2
N/A
0
 
 1  
 package org.seasar.cubby.controller;
 2  
 
 3  
 import static org.seasar.cubby.CubbyConstants.RES_MESSAGES;
 4  
 
 5  
 import java.util.Locale;
 6  
 import java.util.Map;
 7  
 import java.util.ResourceBundle;
 8  
 
 9  
 import javax.servlet.http.HttpServletRequest;
 10  
 
 11  
 import org.seasar.framework.util.ResourceBundleUtil;
 12  
 
 13  1
 public class ThreadContext {
 14  
 
 15  1
         private static final ThreadLocal<ThreadContext> CONTEXT = new ThreadLocal<ThreadContext>() {
 16  
 
 17  
                 @Override
 18  2
                 protected ThreadContext initialValue() {
 19  1
                         return new ThreadContext();
 20  
                 }
 21  
 
 22  
         };
 23  
 
 24  
         public static void remove() {
 25  
                 CONTEXT.remove();
 26  
         }
 27  
 
 28  
         public static HttpServletRequest getRequest() {
 29  
                 return CONTEXT.get().request;
 30  
         }
 31  
 
 32  
         public static void setRequest(final HttpServletRequest request) {
 33  
                 CONTEXT.get().request = request;
 34  
         }
 35  
 
 36  
         public static ResourceBundle getMessagesResourceBundle() {
 37  52
                 final ThreadContext context = CONTEXT.get();
 38  52
                 if (context.resourceBundle == null) {
 39  
                         final Locale locale;
 40  1
                         if (context.request == null) {
 41  1
                                 locale = Locale.getDefault();
 42  1
                         } else {
 43  
                                 locale = context.request.getLocale();
 44  
                         }
 45  1
                         context.resourceBundle = ResourceBundleUtil.getBundle(RES_MESSAGES,
 46  
                                         locale);
 47  
                 }
 48  52
                 return context.resourceBundle;
 49  
         }
 50  
 
 51  
         public static Map<?, ?> getMessagesMap() {
 52  
                 final ThreadContext context = CONTEXT.get();
 53  
                 if (context.messages == null) {
 54  
                         final ResourceBundle resourceBundle = getMessagesResourceBundle();
 55  
                         context.messages = ResourceBundleUtil.convertMap(resourceBundle);
 56  
                 }
 57  
                 return context.messages;
 58  
         }
 59  
 
 60  1
         private ThreadContext() {
 61  1
         }
 62  
 
 63  
         private HttpServletRequest request;
 64  
 
 65  1
         private ResourceBundle resourceBundle = null;
 66  
 
 67  1
         private Map<?, ?> messages = null;
 68  
 
 69  
 }