Coverage Report - org.webslinger.types.event
 
Classes in this File Line Coverage Branch Coverage Complexity
event
82%
27/33
100%
1/1
0
 
 1  
 package org.webslinger.types;
 2  
 
 3  
 import java.io.IOException;
 4  
 import java.util.Collection;
 5  
 import java.util.Map;
 6  
 import java.util.Vector;
 7  
 import javax.servlet.ServletException;
 8  
 import javax.servlet.ServletRequest;
 9  
 import javax.servlet.ServletResponse;
 10  
 import javax.servlet.http.HttpServletRequest;
 11  
 import javax.servlet.http.HttpServletResponse;
 12  
 
 13  
 import org.apache.bsf.BSFException;
 14  
 
 15  
 import org.webslinger.PathContext;
 16  
 import org.webslinger.TypeHandler;
 17  
 import org.webslinger.Webslinger;
 18  
 import org.webslinger.WebslingerServletContext;
 19  
 import org.webslinger.bsf.LanguageManager;
 20  
 
 21  26
 public class event extends TypeHandler {
 22  
     public static final String DEFAULT_LANGUAGE = "java";
 23  
 
 24  1
     private static final String[] paramNames = new String[3];
 25  1
     private static final Class[] paramTypes = new Class[3];
 26  
 
 27  
     static {
 28  1
         paramNames[0] ="webslinger";
 29  1
         paramTypes[0] = Webslinger.class;
 30  1
         paramNames[1] = "request";
 31  1
         paramTypes[1] = HttpServletRequest.class;
 32  1
         paramNames[2] = "response";
 33  1
         paramTypes[2] = HttpServletResponse.class;
 34  1
     }
 35  
 
 36  
     protected LanguageManager languageManager;
 37  
 
 38  
     public LanguageManager getLanguageManager() {
 39  467
         return languageManager;
 40  
     }
 41  
 
 42  
     public void undeclareBean(String name) throws BSFException {
 43  0
         getLanguageManager().undeclareBean(name);
 44  0
     }
 45  
 
 46  
     public <T> void declareBean(String name, T bean, Class<T> type) throws BSFException {
 47  467
         getLanguageManager().declareBean(name, bean, type);
 48  467
     }
 49  
 
 50  
     public void init(WebslingerServletContext context, String type) throws IOException {
 51  26
         super.init(context, type);
 52  
         try {
 53  26
             languageManager = new LanguageManager(context.getVFSDelegate(), logger);
 54  26
             languageManager.setClassLoader(context.getClassLoader());
 55  0
         } catch (Exception e) {
 56  0
             throw (IOException) new IOException(e.getMessage()).initCause(e);
 57  26
         }
 58  26
     }
 59  
 
 60  
     public Object run(Webslinger webslinger) throws IOException, ServletException {
 61  
         //System.err.println(this + ".run(" + pc + ", " + request + ", " + response + ", " + initObject + ")");
 62  
         //System.err.println("E.servletPath[" + request.getServletPath() + "]");
 63  
         try {
 64  967
             ServletRequest request = webslinger.getRequest();
 65  967
             ServletResponse response = webslinger.getResponse();
 66  967
             Object[] params = new Object[3];
 67  970
             params[0] = webslinger;
 68  966
             params[1] = request;
 69  967
             params[2] = response;
 70  970
             String language = (String) webslinger.getAttribute("event-language");
 71  970
             if (language == null) language = DEFAULT_LANGUAGE;
 72  970
             return languageManager.apply(language, "top", 0, 0, webslinger, paramNames, params, paramTypes);
 73  0
         } catch (BSFException e) {
 74  0
             throw (IOException) new IOException(e.getMessage()).initCause(e);
 75  
         }
 76  
     }
 77  
 }