Coverage Report - org.seasar.cubby.controller.impl.ActionProcessorImpl
 
Classes in this File Line Coverage Branch Coverage Complexity
ActionProcessorImpl
100%
1/1
N/A
2.333
 
 1  
 package org.seasar.cubby.controller.impl;
 2  
 
 3  
 import javax.servlet.FilterChain;
 4  
 import javax.servlet.http.HttpServletRequest;
 5  
 import javax.servlet.http.HttpServletResponse;
 6  
 
 7  
 import org.seasar.cubby.action.ActionResult;
 8  
 import org.seasar.cubby.controller.ActionContext;
 9  
 import org.seasar.cubby.controller.ActionDef;
 10  
 import org.seasar.cubby.controller.ActionProcessor;
 11  
 import org.seasar.cubby.convention.CubbyConvention;
 12  
 import org.seasar.cubby.exception.ActionRuntimeException;
 13  
 import org.seasar.cubby.filter.CubbyHttpServletRequestWrapper;
 14  
 import org.seasar.cubby.util.CubbyUtils;
 15  
 import org.seasar.framework.log.Logger;
 16  
 
 17  
 public class ActionProcessorImpl implements ActionProcessor {
 18  
 
 19  1
         private static final Logger logger = Logger
 20  
                         .getLogger(ActionProcessorImpl.class);
 21  
 
 22  
         private ActionContext context;
 23  
 
 24  
         private CubbyConvention cubbyConvention;
 25  
 
 26  
         public void setActionContext(final ActionContext context) {
 27  
                 this.context = context;
 28  
         }
 29  
 
 30  
         public void setCubbyConvention(final CubbyConvention cubbyConvention) {
 31  
                 this.cubbyConvention = cubbyConvention;
 32  
         }
 33  
 
 34  
         public void process(final HttpServletRequest request,
 35  
                         final HttpServletResponse response, final FilterChain chain)
 36  
                         throws Throwable {
 37  
                 final String path = CubbyUtils.getPath(request);
 38  
 
 39  
                 final ActionDef actionDef = cubbyConvention.fromPathToActionDef(
 40  
                                 request, path);
 41  
                 if (actionDef != null) {
 42  
                         context.initialize(actionDef);
 43  
                         if (logger.isDebugEnabled()) {
 44  
                                 logger.log("DCUB0004", new Object[] { path });
 45  
                                 logger.log("DCUB0005", new Object[] { context.getMethod() });
 46  
                         }
 47  
                         final ActionResult result = context.invoke();
 48  
                         if (result == null) {
 49  
                                 throw new ActionRuntimeException("ECUB0001",
 50  
                                                 new Object[] { context.getMethod() });
 51  
                         }
 52  
                         final HttpServletRequest wrappedRequest = new CubbyHttpServletRequestWrapper(
 53  
                                         request, context);
 54  
                         result.execute(context, wrappedRequest, response);
 55  
                 } else {
 56  
                         final HttpServletRequest wrappedRequest = new CubbyHttpServletRequestWrapper(
 57  
                                         request, context);
 58  
                         chain.doFilter(wrappedRequest, response);
 59  
                 }
 60  
         }
 61  
 
 62  
 }