Coverage Report - org.webslinger.Webslinger
 
Classes in this File Line Coverage Branch Coverage Complexity
Webslinger
11%
63/548
29%
2/7
0
Webslinger$1
0%
0/2
N/A
0
Webslinger$WebslingerVFSDelegate
83%
5/6
N/A
0
 
 1  
 package org.webslinger;
 2  
 
 3  
 import java.io.InputStream;
 4  
 import java.io.IOException;
 5  
 import java.io.OutputStream;
 6  
 import java.io.StringWriter;
 7  
 import java.io.Writer;
 8  
 import java.util.Collections;
 9  
 import java.util.Enumeration;
 10  
 import java.util.HashMap;
 11  
 import java.util.Map;
 12  
 import java.util.concurrent.Future;
 13  
 import javax.servlet.ServletException;
 14  
 import javax.servlet.http.HttpServletRequest;
 15  
 import javax.servlet.http.HttpServletResponse;
 16  
 
 17  
 import org.apache.commons.fileupload.FileItem;
 18  
 import org.apache.commons.vfs.FileObject;
 19  
 
 20  
 import org.webslinger.commons.fileupload.AbstractCommonsVfsFileItem;
 21  
 import org.webslinger.container.CommonsVfsFileInfo;
 22  
 import org.webslinger.container.GivenPathInfo;
 23  
 import org.webslinger.container.WebslingerContainer;
 24  
 import org.webslinger.vfs.VFSDelegate;
 25  
 import org.webslinger.vfs.VFSDelegateProxy;
 26  
 import org.webslinger.io.Charsets;
 27  
 import org.webslinger.io.IOUtil;
 28  
 import org.webslinger.lang.ObjectWrapper;
 29  
 import org.webslinger.rules.Action;
 30  
 import org.webslinger.servlet.ServletUtil;
 31  
 import org.webslinger.json.JSONWriter;
 32  
 
 33  
 /**
 34  
  * Helper class available to all called objects.  This is the main
 35  
  * interface point to be used by resources called from webslinger.
 36  
  * @author Adam Heath <a href="mailto:doogie@brainfood.com">doogie@brainfood.com</a>
 37  
  */
 38  
 public class Webslinger {
 39  
     private final Action type;
 40  
     private final WebslingerServletContext sc;
 41  
     private final WebslingerInvoker invoker;
 42  
     private final PathContext pc;
 43  
     private HttpServletRequest request;
 44  
     private HttpServletResponse response;
 45  
     private final Map<String, Object> context;
 46  
     private final String command;
 47  
     private final Object payload;
 48  
     private final TypeHandler typeHandler;
 49  
     private final ObjectWrapper<Object> initObject;
 50  
     private Webslinger parent;
 51  
     private Webslinger caller;
 52  
 
 53  
     public Webslinger(Action type, Webslinger base, PathContext pc) throws IOException, ServletException {
 54  126
         this(type, base.getWebslingerServletContext(), base.getInvoker(), pc, base.getRequest(), base.getResponse(), null, base.getCommand(), base.getPayload());
 55  126
         getContext().putAll(base.getContext());
 56  126
     }
 57  
 
 58  1598
     public Webslinger(Action type, WebslingerServletContext sc, WebslingerInvoker invoker, PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 59  1598
         this.type = type;
 60  1598
         this.sc = sc;
 61  1598
         this.invoker = invoker;
 62  1598
         this.pc = pc;
 63  1598
         this.request = request;
 64  1598
         this.response = response;
 65  1598
         this.context = context == null ? new HashMap<String, Object>() : context;
 66  1598
         this.command = command;
 67  1598
         this.payload = payload;
 68  1598
         typeHandler = sc.getTypeHandler(pc);
 69  1596
         initObject = getWebslingerServletContext().getInitObject(getPathContext(), getTypeHandler());
 70  1592
     }
 71  
 
 72  0
     public Webslinger(Action type, WebslingerServletContext sc, WebslingerInvoker invoker, PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload, final Object initObject) throws IOException, ServletException {
 73  0
         this.type = type;
 74  0
         this.sc = sc;
 75  0
         this.invoker = invoker;
 76  0
         this.pc = pc;
 77  0
         this.request = request;
 78  0
         this.response = response;
 79  0
         this.context = context == null ? new HashMap<String, Object>() : context;
 80  0
         this.command = command;
 81  0
         this.payload = payload;
 82  0
         typeHandler = sc.getTypeHandler(pc);
 83  0
         this.initObject = new ObjectWrapper<Object>() {
 84  
             public Object getObject() {
 85  0
                 return initObject;
 86  
             }
 87  
         };
 88  0
     }
 89  
 
 90  
     public void sendJSONEvent(String topic, Object data) {
 91  0
         getInvoker().sendJSONEvent(topic, data);
 92  0
     }
 93  
 
 94  
     public HttpServletRequest getTopRequest() {
 95  0
         return parent != null ? parent.getTopRequest() : getRequest();
 96  
     }
 97  
 
 98  
     public HttpServletResponse getTopResponse() {
 99  0
         return parent != null ? parent.getTopResponse() : getResponse();
 100  
     }
 101  
 
 102  
     void swapRequestResponse(HttpServletRequest[] newSavedRequest, HttpServletResponse[] newSavedResponse) {
 103  0
         HttpServletRequest savedRequest = request;
 104  0
         HttpServletResponse savedResponse = response;
 105  0
         request = newSavedRequest[0];
 106  0
         response = newSavedResponse[0];
 107  0
         newSavedRequest[0] = savedRequest;
 108  0
         newSavedResponse[0] = savedResponse;
 109  0
     }
 110  
 
 111  
     public String getParameter(String name) {
 112  0
         return getRequest().getParameter(name);
 113  
     }
 114  
 
 115  
     public String[] getParameterValues(String name) {
 116  0
         return getRequest().getParameterValues(name);
 117  
     }
 118  
 
 119  
     public Enumeration getParameterNames() {
 120  0
         return getRequest().getParameterNames();
 121  
     }
 122  
 
 123  
     public Map getParameterMap() {
 124  0
         return getRequest().getParameterMap();
 125  
     }
 126  
 
 127  
     public String getThemePath() {
 128  3
         return getInvoker().getThemePath();
 129  
     }
 130  
 
 131  
     public String[] getConfigStringSplit(String name) throws IOException {
 132  0
         return getWebslingerServletContext().getConfigStringSplit(name);
 133  
     }
 134  
 
 135  
     public String getConfigString(String name) throws IOException {
 136  35
         return getWebslingerServletContext().getConfigString(name);
 137  
     }
 138  
 
 139  
     public Object getConfigItem(String name) throws IOException {
 140  0
         return getWebslingerServletContext().getConfigItem(name);
 141  
     }
 142  
 
 143  
     public Action getType() {
 144  305
         return type;
 145  
     }
 146  
 
 147  
     public TypeHandler getTypeHandler() {
 148  3189
         return typeHandler;
 149  
     }
 150  
 
 151  
     public Object getInitObject() throws IOException, ServletException {
 152  
         try {
 153  0
             return initObject.getObject();
 154  0
         } catch (Exception e) {
 155  0
             return ServletUtil.checkException(e);
 156  
         }
 157  
     }
 158  
 
 159  
     void setParent(Webslinger parent) {
 160  1630
         this.parent = parent;
 161  1632
     }
 162  
 
 163  
     public Webslinger getParent() {
 164  2070
         return parent;
 165  
     }
 166  
 
 167  
     Webslinger setCaller(Webslinger caller) {
 168  706
         this.caller = caller;
 169  706
         return this;
 170  
     }
 171  
 
 172  
     public Webslinger getCaller() {
 173  4
         return caller;
 174  
     }
 175  
 
 176  
     HttpServletResponse pushResponse(Writer writer) {
 177  
         try {
 178  126
             return response;
 179  
         } finally {
 180  126
             response = sc.alterPaths(pc, request, response, writer);
 181  
         }
 182  
     }
 183  
 
 184  
     void popResponse(HttpServletResponse response) {
 185  126
         this.response = response;
 186  126
     }
 187  
 
 188  
     /**
 189  
      * @return The current <code>ServletRequest</code>.
 190  
      */
 191  
     public HttpServletRequest getRequest() {
 192  9515
         return request;
 193  
     }
 194  
 
 195  
     /**
 196  
      * @return The current <code>ServletResponse</code>.
 197  
      */
 198  
     public HttpServletResponse getResponse() {
 199  4196
         return response;
 200  
     }
 201  
 
 202  
     public void sendJSON(Map<String, Object> result) throws IOException {
 203  0
         getResponse().setContentType("text/x-json");
 204  0
         JSONWriter writer = new JSONWriter(getResponse().getWriter());
 205  0
         writer.write(result);
 206  0
     }
 207  
 
 208  
     /**
 209  
      * @return The current [@link WebslingerServletContext}.
 210  
      */
 211  
     public WebslingerServletContext getWebslingerServletContext() {
 212  2725
         return sc;
 213  
     }
 214  
 
 215  
     public WebslingerContainer getWebslingerContainer() {
 216  23
         return getWebslingerServletContext().getContainer();
 217  
     }
 218  
 
 219  
     public WebslingerInvoker getInvoker() {
 220  795
         return invoker;
 221  
     }
 222  
 
 223  
     public PathContext getPathContext() {
 224  12515
         return pc;
 225  
     }
 226  
 
 227  
     /**
 228  
      * Returns any extra path information associated with the path.
 229  
      * This method just calls {@link #getPathContext()}.{@link
 230  
      * PathContext#getPathInfo()}.
 231  
      * @return any extra path information.
 232  
      */
 233  
     public String getPathInfo() {
 234  198
         return getPathContext().getPathInfo();
 235  
     }
 236  
 
 237  
     public String getServletPath() {
 238  179
         return getPathContext().getServletPath();
 239  
     }
 240  
 
 241  
     /**
 242  
      * Returns any extra path information associated with the path.
 243  
      * This method just calls {@link #getPathContext()}.{@link
 244  
      * PathContext#getPathInfo()}.
 245  
      * @return any extra path information.
 246  
      */
 247  
     public FileObject getCurrentFile() throws IOException {
 248  584
         return getPathContext().getFile();
 249  
     }
 250  
 
 251  
     public Object getFileAttribute(String name) throws IOException {
 252  303
         return getPathContext().getAttribute(name);
 253  
     }
 254  
 
 255  
     public boolean attributeExists(String name) throws IOException {
 256  0
         return getPathContext().attributeExists(name);
 257  
     }
 258  
 
 259  
     public Object getAttribute(String name) throws IOException {
 260  3600
         return getPathContext().getAttribute(name);
 261  
     }
 262  
 
 263  
     public String[] getSplitAttribute(String name) throws IOException {
 264  56
         return getPathContext().getSplitAttribute(name);
 265  
     }
 266  
 
 267  
     public String[] getSplitAttribute(String name, String def) throws IOException {
 268  1603
         return getPathContext().getSplitAttribute(name, def);
 269  
     }
 270  
 
 271  
     public PathContext resolvePath(FileObject file) throws IOException {
 272  0
         return new PathContext(new CommonsVfsFileInfo(getWebslingerContainer(), file), new GivenPathInfo(""));
 273  
     }
 274  
 
 275  
     public PathContext resolvePath(Object item) throws IOException {
 276  67
         if (item instanceof FileObject) return resolvePath((FileObject) item);
 277  67
         return getPathContext().resolve(item);
 278  
     }
 279  
 
 280  
     public PathContext resolvePath(String name) throws IOException {
 281  935
         return getWebslingerServletContext().resolve(getPathContext(), name);
 282  
     }
 283  
 
 284  
     public PathContext resolvePath(String name, boolean lookForFilter) throws IOException {
 285  0
         return getWebslingerServletContext().resolve(getPathContext(), name, lookForFilter);
 286  
     }
 287  
 
 288  
     public FileObject resolveFile(String name) throws IOException {
 289  0
         return resolvePath(name).getFile();
 290  
     }
 291  
 
 292  
     public FileObject resolveFile(String name, boolean lookForFilter) throws IOException {
 293  0
         return resolvePath(name, lookForFilter).getFile();
 294  
     }
 295  
 
 296  
     public boolean exists(String name) throws IOException {
 297  0
         return resolvePath(name).exists();
 298  
     }
 299  
 
 300  
     public boolean exists(PathContext pc) throws IOException {
 301  0
         return pc.exists();
 302  
     }
 303  
 
 304  
     public boolean existsFile(String name) throws IOException {
 305  0
         return resolvePath(name).getFile().exists();
 306  
     }
 307  
 
 308  
     public String getCommand() {
 309  1180
         return command;
 310  
     }
 311  
 
 312  
     public Object getPayload() {
 313  346
         return payload;
 314  
     }
 315  
 
 316  
     public Map<String, Object> getContext() {
 317  2744
         return context;
 318  
     }
 319  
 
 320  
     public AbstractCommonsVfsFileItem createFileItem(String fieldName, String contentType, boolean isFormField, String fileName) {
 321  0
         return getWebslingerServletContext().createFileItem(fieldName, contentType, isFormField, fileName);
 322  
     }
 323  
 
 324  
     public AbstractCommonsVfsFileItem copyFileItem(FileItem item) throws IOException {
 325  0
         AbstractCommonsVfsFileItem newItem = getWebslingerServletContext().createFileItem(item.getFieldName(), item.getContentType(), item.isFormField(), item.getName());
 326  0
         IOUtil.copy(item.getInputStream(), true, newItem.getOutputStream(), true);
 327  0
         return newItem;
 328  
     }
 329  
 
 330  
     protected Map<String, Object> emptyContext() {
 331  0
         return Collections.emptyMap();
 332  
     }
 333  
 
 334  
     public String capturePath(String path) throws IOException, ServletException {
 335  0
         StringWriter writer = new StringWriter();
 336  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), null, null);
 337  0
         return writer.toString();
 338  
     }
 339  
 
 340  
     public String capturePath(String path, String command) throws IOException, ServletException {
 341  0
         StringWriter writer = new StringWriter();
 342  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), command, null);
 343  0
         return writer.toString();
 344  
     }
 345  
 
 346  
     public String capturePath(String path, Object payload) throws IOException, ServletException {
 347  0
         StringWriter writer = new StringWriter();
 348  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), null, payload);
 349  0
         return writer.toString();
 350  
     }
 351  
 
 352  
     public String capturePath(String path, String command, Object payload) throws IOException, ServletException {
 353  0
         StringWriter writer = new StringWriter();
 354  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), command, payload);
 355  0
         return writer.toString();
 356  
     }
 357  
 
 358  
     public String capturePath(String path, Map<String, Object> context) throws IOException, ServletException {
 359  0
         StringWriter writer = new StringWriter();
 360  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, null, null);
 361  0
         return writer.toString();
 362  
     }
 363  
 
 364  
     public String capturePath(String path, Map<String, Object> context, String command) throws IOException, ServletException {
 365  0
         StringWriter writer = new StringWriter();
 366  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, command, null);
 367  0
         return writer.toString();
 368  
     }
 369  
 
 370  
     public String capturePath(String path, Map<String, Object> context, Object payload) throws IOException, ServletException {
 371  0
         StringWriter writer = new StringWriter();
 372  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, null, payload);
 373  0
         return writer.toString();
 374  
     }
 375  
 
 376  
     public String capturePath(String path, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 377  0
         StringWriter writer = new StringWriter();
 378  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, command, payload);
 379  0
         return writer.toString();
 380  
     }
 381  
 
 382  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 383  0
         StringWriter writer = new StringWriter();
 384  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), null, null);
 385  0
         return writer.toString();
 386  
     }
 387  
 
 388  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 389  0
         StringWriter writer = new StringWriter();
 390  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), command, null);
 391  0
         return writer.toString();
 392  
     }
 393  
 
 394  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 395  0
         StringWriter writer = new StringWriter();
 396  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), null, payload);
 397  0
         return writer.toString();
 398  
     }
 399  
 
 400  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 401  0
         StringWriter writer = new StringWriter();
 402  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), command, payload);
 403  0
         return writer.toString();
 404  
     }
 405  
 
 406  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 407  0
         StringWriter writer = new StringWriter();
 408  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, null, null);
 409  0
         return writer.toString();
 410  
     }
 411  
 
 412  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 413  0
         StringWriter writer = new StringWriter();
 414  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, command, null);
 415  0
         return writer.toString();
 416  
     }
 417  
 
 418  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 419  0
         StringWriter writer = new StringWriter();
 420  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, null, payload);
 421  0
         return writer.toString();
 422  
     }
 423  
 
 424  
     public String capturePath(String path, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 425  0
         StringWriter writer = new StringWriter();
 426  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, command, payload);
 427  0
         return writer.toString();
 428  
     }
 429  
 
 430  
     public void capturePath(String path, Writer writer) throws IOException, ServletException {
 431  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), null, null);
 432  0
     }
 433  
 
 434  
     public void capturePath(String path, Writer writer, String command) throws IOException, ServletException {
 435  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), command, null);
 436  0
     }
 437  
 
 438  
     public void capturePath(String path, Writer writer, Object payload) throws IOException, ServletException {
 439  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), null, payload);
 440  0
     }
 441  
 
 442  
     public void capturePath(String path, Writer writer, String command, Object payload) throws IOException, ServletException {
 443  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, getContext(), command, payload);
 444  0
     }
 445  
 
 446  
     public void capturePath(String path, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 447  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, null, null);
 448  0
     }
 449  
 
 450  
     public void capturePath(String path, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 451  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, command, null);
 452  0
     }
 453  
 
 454  
     public void capturePath(String path, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 455  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, null, payload);
 456  0
     }
 457  
 
 458  
     public void capturePath(String path, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 459  0
         getInvoker().capture(resolvePath(path), null, getRequest(), getResponse(), writer, context, command, payload);
 460  0
     }
 461  
 
 462  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer) throws IOException, ServletException {
 463  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), null, null);
 464  0
     }
 465  
 
 466  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, String command) throws IOException, ServletException {
 467  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), command, null);
 468  0
     }
 469  
 
 470  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, Object payload) throws IOException, ServletException {
 471  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), null, payload);
 472  0
     }
 473  
 
 474  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, String command, Object payload) throws IOException, ServletException {
 475  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, getContext(), command, payload);
 476  0
     }
 477  
 
 478  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 479  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, null, null);
 480  0
     }
 481  
 
 482  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 483  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, command, null);
 484  0
     }
 485  
 
 486  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 487  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, null, payload);
 488  0
     }
 489  
 
 490  
     public void capturePath(String path, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 491  0
         getInvoker().capture(resolvePath(path), null, request, response, writer, context, command, payload);
 492  0
     }
 493  
 
 494  
     public String capturePath(PathContext pc) throws IOException, ServletException {
 495  0
         StringWriter writer = new StringWriter();
 496  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), null, null);
 497  0
         return writer.toString();
 498  
     }
 499  
 
 500  
     public String capturePath(PathContext pc, String command) throws IOException, ServletException {
 501  0
         StringWriter writer = new StringWriter();
 502  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), command, null);
 503  0
         return writer.toString();
 504  
     }
 505  
 
 506  
     public String capturePath(PathContext pc, Object payload) throws IOException, ServletException {
 507  0
         StringWriter writer = new StringWriter();
 508  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), null, payload);
 509  0
         return writer.toString();
 510  
     }
 511  
 
 512  
     public String capturePath(PathContext pc, String command, Object payload) throws IOException, ServletException {
 513  0
         StringWriter writer = new StringWriter();
 514  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), command, payload);
 515  0
         return writer.toString();
 516  
     }
 517  
 
 518  
     public String capturePath(PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 519  0
         StringWriter writer = new StringWriter();
 520  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, null, null);
 521  0
         return writer.toString();
 522  
     }
 523  
 
 524  
     public String capturePath(PathContext pc, Map<String, Object> context, String command) throws IOException, ServletException {
 525  0
         StringWriter writer = new StringWriter();
 526  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, command, null);
 527  0
         return writer.toString();
 528  
     }
 529  
 
 530  
     public String capturePath(PathContext pc, Map<String, Object> context, Object payload) throws IOException, ServletException {
 531  0
         StringWriter writer = new StringWriter();
 532  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, null, payload);
 533  0
         return writer.toString();
 534  
     }
 535  
 
 536  
     public String capturePath(PathContext pc, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 537  0
         StringWriter writer = new StringWriter();
 538  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, command, payload);
 539  0
         return writer.toString();
 540  
     }
 541  
 
 542  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 543  0
         StringWriter writer = new StringWriter();
 544  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), null, null);
 545  0
         return writer.toString();
 546  
     }
 547  
 
 548  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 549  0
         StringWriter writer = new StringWriter();
 550  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), command, null);
 551  0
         return writer.toString();
 552  
     }
 553  
 
 554  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 555  0
         StringWriter writer = new StringWriter();
 556  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), null, payload);
 557  0
         return writer.toString();
 558  
     }
 559  
 
 560  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 561  0
         StringWriter writer = new StringWriter();
 562  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), command, payload);
 563  0
         return writer.toString();
 564  
     }
 565  
 
 566  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 567  0
         StringWriter writer = new StringWriter();
 568  0
         getInvoker().capture(pc, null, request, response, writer, context, null, null);
 569  0
         return writer.toString();
 570  
     }
 571  
 
 572  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 573  0
         StringWriter writer = new StringWriter();
 574  0
         getInvoker().capture(pc, null, request, response, writer, context, command, null);
 575  0
         return writer.toString();
 576  
     }
 577  
 
 578  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 579  0
         StringWriter writer = new StringWriter();
 580  0
         getInvoker().capture(pc, null, request, response, writer, context, null, payload);
 581  0
         return writer.toString();
 582  
     }
 583  
 
 584  
     public String capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 585  0
         StringWriter writer = new StringWriter();
 586  0
         getInvoker().capture(pc, null, request, response, writer, context, command, payload);
 587  0
         return writer.toString();
 588  
     }
 589  
 
 590  
     public void capturePath(PathContext pc, Writer writer) throws IOException, ServletException {
 591  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), null, null);
 592  0
     }
 593  
 
 594  
     public void capturePath(PathContext pc, Writer writer, String command) throws IOException, ServletException {
 595  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), command, null);
 596  0
     }
 597  
 
 598  
     public void capturePath(PathContext pc, Writer writer, Object payload) throws IOException, ServletException {
 599  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), null, payload);
 600  0
     }
 601  
 
 602  
     public void capturePath(PathContext pc, Writer writer, String command, Object payload) throws IOException, ServletException {
 603  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, getContext(), command, payload);
 604  0
     }
 605  
 
 606  
     public void capturePath(PathContext pc, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 607  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, null, null);
 608  0
     }
 609  
 
 610  
     public void capturePath(PathContext pc, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 611  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, command, null);
 612  0
     }
 613  
 
 614  
     public void capturePath(PathContext pc, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 615  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, null, payload);
 616  0
     }
 617  
 
 618  
     public void capturePath(PathContext pc, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 619  0
         getInvoker().capture(pc, null, getRequest(), getResponse(), writer, context, command, payload);
 620  0
     }
 621  
 
 622  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer) throws IOException, ServletException {
 623  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), null, null);
 624  0
     }
 625  
 
 626  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, String command) throws IOException, ServletException {
 627  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), command, null);
 628  0
     }
 629  
 
 630  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, Object payload) throws IOException, ServletException {
 631  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), null, payload);
 632  0
     }
 633  
 
 634  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, String command, Object payload) throws IOException, ServletException {
 635  0
         getInvoker().capture(pc, null, request, response, writer, getContext(), command, payload);
 636  0
     }
 637  
 
 638  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 639  0
         getInvoker().capture(pc, null, request, response, writer, context, null, null);
 640  0
     }
 641  
 
 642  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 643  0
         getInvoker().capture(pc, null, request, response, writer, context, command, null);
 644  0
     }
 645  
 
 646  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 647  0
         getInvoker().capture(pc, null, request, response, writer, context, null, payload);
 648  0
     }
 649  
 
 650  
     public void capturePath(PathContext pc, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 651  0
         getInvoker().capture(pc, null, request, response, writer, context, command, payload);
 652  0
     }
 653  
 
 654  
     public String capture(String text) throws IOException, ServletException {
 655  0
         StringWriter writer = new StringWriter();
 656  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), null, null);
 657  0
         return writer.toString();
 658  
     }
 659  
 
 660  
     public String capture(String text, String command) throws IOException, ServletException {
 661  0
         StringWriter writer = new StringWriter();
 662  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), command, null);
 663  0
         return writer.toString();
 664  
     }
 665  
 
 666  
     public String capture(String text, Object payload) throws IOException, ServletException {
 667  0
         StringWriter writer = new StringWriter();
 668  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), null, payload);
 669  0
         return writer.toString();
 670  
     }
 671  
 
 672  
     public String capture(String text, String command, Object payload) throws IOException, ServletException {
 673  0
         StringWriter writer = new StringWriter();
 674  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), command, payload);
 675  0
         return writer.toString();
 676  
     }
 677  
 
 678  
     public String capture(String text, Map<String, Object> context) throws IOException, ServletException {
 679  0
         StringWriter writer = new StringWriter();
 680  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, null, null);
 681  0
         return writer.toString();
 682  
     }
 683  
 
 684  
     public String capture(String text, Map<String, Object> context, String command) throws IOException, ServletException {
 685  0
         StringWriter writer = new StringWriter();
 686  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, command, null);
 687  0
         return writer.toString();
 688  
     }
 689  
 
 690  
     public String capture(String text, Map<String, Object> context, Object payload) throws IOException, ServletException {
 691  0
         StringWriter writer = new StringWriter();
 692  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, null, payload);
 693  0
         return writer.toString();
 694  
     }
 695  
 
 696  
     public String capture(String text, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 697  0
         StringWriter writer = new StringWriter();
 698  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, command, payload);
 699  0
         return writer.toString();
 700  
     }
 701  
 
 702  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 703  0
         StringWriter writer = new StringWriter();
 704  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), null, null);
 705  0
         return writer.toString();
 706  
     }
 707  
 
 708  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 709  0
         StringWriter writer = new StringWriter();
 710  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), command, null);
 711  0
         return writer.toString();
 712  
     }
 713  
 
 714  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 715  0
         StringWriter writer = new StringWriter();
 716  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), null, payload);
 717  0
         return writer.toString();
 718  
     }
 719  
 
 720  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 721  0
         StringWriter writer = new StringWriter();
 722  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), command, payload);
 723  0
         return writer.toString();
 724  
     }
 725  
 
 726  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 727  0
         StringWriter writer = new StringWriter();
 728  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, null, null);
 729  0
         return writer.toString();
 730  
     }
 731  
 
 732  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 733  0
         StringWriter writer = new StringWriter();
 734  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, command, null);
 735  0
         return writer.toString();
 736  
     }
 737  
 
 738  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 739  0
         StringWriter writer = new StringWriter();
 740  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, null, payload);
 741  0
         return writer.toString();
 742  
     }
 743  
 
 744  
     public String capture(String text, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 745  0
         StringWriter writer = new StringWriter();
 746  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, command, payload);
 747  0
         return writer.toString();
 748  
     }
 749  
 
 750  
     public void capture(String text, Writer writer) throws IOException, ServletException {
 751  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), null, null);
 752  0
     }
 753  
 
 754  
     public void capture(String text, Writer writer, String command) throws IOException, ServletException {
 755  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), command, null);
 756  0
     }
 757  
 
 758  
     public void capture(String text, Writer writer, Object payload) throws IOException, ServletException {
 759  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), null, payload);
 760  0
     }
 761  
 
 762  
     public void capture(String text, Writer writer, String command, Object payload) throws IOException, ServletException {
 763  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, getContext(), command, payload);
 764  0
     }
 765  
 
 766  
     public void capture(String text, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 767  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, null, null);
 768  0
     }
 769  
 
 770  
     public void capture(String text, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 771  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, command, null);
 772  0
     }
 773  
 
 774  
     public void capture(String text, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 775  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, null, payload);
 776  0
     }
 777  
 
 778  
     public void capture(String text, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 779  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, getRequest(), getResponse(), writer, context, command, payload);
 780  0
     }
 781  
 
 782  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer) throws IOException, ServletException {
 783  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), null, null);
 784  0
     }
 785  
 
 786  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, String command) throws IOException, ServletException {
 787  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), command, null);
 788  0
     }
 789  
 
 790  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, Object payload) throws IOException, ServletException {
 791  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), null, payload);
 792  0
     }
 793  
 
 794  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, String command, Object payload) throws IOException, ServletException {
 795  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, getContext(), command, payload);
 796  0
     }
 797  
 
 798  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 799  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, null, null);
 800  0
     }
 801  
 
 802  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 803  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, command, null);
 804  0
     }
 805  
 
 806  
     public void capture(String text, HttpServletRequest request, HttpServletResponse response, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 807  0
         getInvoker().capture(pc.makeDynamicPC(this, text, emptyContext(), System.currentTimeMillis()), null, request, response, writer, context, null, payload);
 808  0
     }
 809  
 
 810  
     public Object event(String name) throws IOException, ServletException {
 811  1
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), null, null);
 812  
     }
 813  
 
 814  
     public Object event(String name, String command) throws IOException, ServletException {
 815  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), command, null);
 816  
     }
 817  
 
 818  
     public Object event(String name, Object payload) throws IOException, ServletException {
 819  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), null, payload);
 820  
     }
 821  
 
 822  
     public Object event(String name, String command, Object payload) throws IOException, ServletException {
 823  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), command, payload);
 824  
     }
 825  
 
 826  
     public Object event(String name, Map<String, Object> context) throws IOException, ServletException {
 827  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, null, null);
 828  
     }
 829  
 
 830  
     public Object event(String name, Map<String, Object> context, String command) throws IOException, ServletException {
 831  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, command, null);
 832  
     }
 833  
 
 834  
     public Object event(String name, Map<String, Object> context, Object payload) throws IOException, ServletException {
 835  0
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, null, payload);
 836  
     }
 837  
 
 838  
     public Object event(String name, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 839  109
         return getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, command, payload);
 840  
     }
 841  
 
 842  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 843  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), null, null);
 844  
     }
 845  
 
 846  
     public Object event(String name, String command, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 847  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, null);
 848  
     }
 849  
 
 850  
     public Object event(String name, Object payload, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 851  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), null, payload);
 852  
     }
 853  
 
 854  
     public Object event(String name, String command, Object payload, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 855  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, payload);
 856  
     }
 857  
 
 858  
     public Object event(String name, Map<String, Object> context, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 859  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, null, null);
 860  
     }
 861  
 
 862  
     public Object event(String name, Map<String, Object> context, String command, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 863  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, command, null);
 864  
     }
 865  
 
 866  
     public Object event(String name, Map<String, Object> context, Object payload, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 867  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, null, payload);
 868  
     }
 869  
 
 870  
     public Object event(String name, Map<String, Object> context, String command, Object payload, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 871  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, command, payload);
 872  
     }
 873  
 
 874  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 875  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, null);
 876  
     }
 877  
 
 878  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 879  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), null, payload);
 880  
     }
 881  
 
 882  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 883  0
         return getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, payload);
 884  
     }
 885  
 
 886  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 887  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, null, null);
 888  
     }
 889  
 
 890  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 891  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, command, null);
 892  
     }
 893  
 
 894  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 895  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, null, payload);
 896  
     }
 897  
 
 898  
     public Object event(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 899  0
         return getInvoker().invoke(resolvePath(name), null, request, response, context, command, payload);
 900  
     }
 901  
 
 902  
     public Object event(PathContext pc) throws IOException, ServletException {
 903  0
         return getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), null, null);
 904  
     }
 905  
 
 906  
     public Object event(PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 907  0
         return getInvoker().invoke(pc, null, getRequest(), getResponse(), context, null, null);
 908  
     }
 909  
 
 910  
     public Object event(PathContext pc, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 911  18
         return getInvoker().invoke(pc, null, getRequest(), getResponse(), context, command, payload);
 912  
     }
 913  
 
 914  
     public Object event(PathContext pc, Map<String, Object> context, String command, Object payload, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 915  0
         return getInvoker().invoke(pc, null, request, response, context, command, payload);
 916  
     }
 917  
 
 918  
     public Future eventAsync(String name) throws IOException, ServletException {
 919  0
         return getInvoker().runAsync(0, resolvePath(name), getContext(), null, null);
 920  
     }
 921  
 
 922  
     public Future eventAsync(String name, String command) throws IOException, ServletException {
 923  0
         return getInvoker().runAsync(0, resolvePath(name), getContext(), command, null);
 924  
     }
 925  
 
 926  
     public Future eventAsync(String name, Object payload) throws IOException, ServletException {
 927  0
         return getInvoker().runAsync(0, resolvePath(name), getContext(), null, payload);
 928  
     }
 929  
 
 930  
     public Future eventAsync(String name, String command, Object payload) throws IOException, ServletException {
 931  0
         return getInvoker().runAsync(0, resolvePath(name), getContext(), command, payload);
 932  
     }
 933  
 
 934  
     public Future eventAsync(String name, Map<String, Object> context) throws IOException, ServletException {
 935  65
         return getInvoker().runAsync(0, resolvePath(name), context, null, null);
 936  
     }
 937  
 
 938  
     public Future eventAsync(String name, Map<String, Object> context, String command) throws IOException, ServletException {
 939  0
         return getInvoker().runAsync(0, resolvePath(name), context, command, null);
 940  
     }
 941  
 
 942  
     public Future eventAsync(String name, Map<String, Object> context, Object payload) throws IOException, ServletException {
 943  0
         return getInvoker().runAsync(0, resolvePath(name), context, null, payload);
 944  
     }
 945  
 
 946  
     public Future eventAsync(String name, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 947  0
         return getInvoker().runAsync(0, resolvePath(name), context, command, payload);
 948  
     }
 949  
 
 950  
     public Future eventAsync(PathContext pc) throws IOException, ServletException {
 951  0
         return getInvoker().runAsync(0, pc, getContext(), null, null);
 952  
     }
 953  
 
 954  
     public Future eventAsync(PathContext pc, String command) throws IOException, ServletException {
 955  0
         return getInvoker().runAsync(0, pc, getContext(), command, null);
 956  
     }
 957  
 
 958  
     public Future eventAsync(PathContext pc, Object payload) throws IOException, ServletException {
 959  0
         return getInvoker().runAsync(0, pc, getContext(), null, payload);
 960  
     }
 961  
 
 962  
     public Future eventAsync(PathContext pc, String command, Object payload) throws IOException, ServletException {
 963  0
         return getInvoker().runAsync(0, pc, getContext(), command, payload);
 964  
     }
 965  
 
 966  
     public Future eventAsync(PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 967  0
         return getInvoker().runAsync(0, pc, context, null, null);
 968  
     }
 969  
 
 970  
     public Future eventAsync(PathContext pc, Map<String, Object> context, String command) throws IOException, ServletException {
 971  0
         return getInvoker().runAsync(0, pc, context, command, null);
 972  
     }
 973  
 
 974  
     public Future eventAsync(PathContext pc, Map<String, Object> context, Object payload) throws IOException, ServletException {
 975  0
         return getInvoker().runAsync(0, pc, context, null, payload);
 976  
     }
 977  
 
 978  
     public Future eventAsync(PathContext pc, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 979  0
         return getInvoker().runAsync(0, pc, context, command, payload);
 980  
     }
 981  
 
 982  
     public Future eventAsync(long delay, String name) throws IOException, ServletException {
 983  0
         return getInvoker().runAsync(delay, resolvePath(name), getContext(), null, null);
 984  
     }
 985  
 
 986  
     public Future eventAsync(long delay, String name, String command) throws IOException, ServletException {
 987  0
         return getInvoker().runAsync(delay, resolvePath(name), getContext(), command, null);
 988  
     }
 989  
 
 990  
     public Future eventAsync(long delay, String name, Object payload) throws IOException, ServletException {
 991  0
         return getInvoker().runAsync(delay, resolvePath(name), getContext(), null, payload);
 992  
     }
 993  
 
 994  
     public Future eventAsync(long delay, String name, String command, Object payload) throws IOException, ServletException {
 995  0
         return getInvoker().runAsync(delay, resolvePath(name), getContext(), command, payload);
 996  
     }
 997  
 
 998  
     public Future eventAsync(long delay, String name, Map<String, Object> context) throws IOException, ServletException {
 999  0
         return getInvoker().runAsync(delay, resolvePath(name), context, null, null);
 1000  
     }
 1001  
 
 1002  
     public Future eventAsync(long delay, String name, Map<String, Object> context, String command) throws IOException, ServletException {
 1003  0
         return getInvoker().runAsync(delay, resolvePath(name), context, command, null);
 1004  
     }
 1005  
 
 1006  
     public Future eventAsync(long delay, String name, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1007  0
         return getInvoker().runAsync(delay, resolvePath(name), context, null, payload);
 1008  
     }
 1009  
 
 1010  
     public Future eventAsync(long delay, String name, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1011  0
         return getInvoker().runAsync(delay, resolvePath(name), context, command, payload);
 1012  
     }
 1013  
 
 1014  
     public Future eventAsync(long delay, PathContext pc) throws IOException, ServletException {
 1015  0
         return getInvoker().runAsync(delay, pc, getContext(), null, null);
 1016  
     }
 1017  
 
 1018  
     public Future eventAsync(long delay, PathContext pc, String command) throws IOException, ServletException {
 1019  0
         return getInvoker().runAsync(delay, pc, getContext(), command, null);
 1020  
     }
 1021  
 
 1022  
     public Future eventAsync(long delay, PathContext pc, Object payload) throws IOException, ServletException {
 1023  0
         return getInvoker().runAsync(delay, pc, getContext(), null, payload);
 1024  
     }
 1025  
 
 1026  
     public Future eventAsync(long delay, PathContext pc, String command, Object payload) throws IOException, ServletException {
 1027  0
         return getInvoker().runAsync(delay, pc, getContext(), command, payload);
 1028  
     }
 1029  
 
 1030  
     public Future eventAsync(long delay, PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 1031  0
         return getInvoker().runAsync(delay, pc, context, null, null);
 1032  
     }
 1033  
 
 1034  
     public Future eventAsync(long delay, PathContext pc, Map<String, Object> context, String command) throws IOException, ServletException {
 1035  0
         return getInvoker().runAsync(delay, pc, context, command, null);
 1036  
     }
 1037  
 
 1038  
     public Future eventAsync(long delay, PathContext pc, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1039  0
         return getInvoker().runAsync(delay, pc, context, null, payload);
 1040  
     }
 1041  
 
 1042  
     public Future eventAsync(long delay, PathContext pc, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1043  0
         return getInvoker().runAsync(delay, pc, context, command, payload);
 1044  
     }
 1045  
 
 1046  
     public void merge(String name) throws IOException, ServletException {
 1047  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), "merge", null);
 1048  0
     }
 1049  
 
 1050  
     public void merge(String name, String command) throws IOException, ServletException {
 1051  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), command, null);
 1052  0
     }
 1053  
 
 1054  
     public void merge(String name, Object payload) throws IOException, ServletException {
 1055  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), "merge", payload);
 1056  0
     }
 1057  
 
 1058  
     public void merge(String name, String command, Object payload) throws IOException, ServletException {
 1059  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), command, payload);
 1060  0
     }
 1061  
 
 1062  
     public void merge(String name, Map<String, Object> context) throws IOException, ServletException {
 1063  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, "merge", null);
 1064  0
     }
 1065  
 
 1066  
     public void merge(String name, Map<String, Object> context, String command) throws IOException, ServletException {
 1067  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, command, null);
 1068  0
     }
 1069  
 
 1070  
     public void merge(String name, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1071  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, "merge", payload);
 1072  0
     }
 1073  
 
 1074  
     public void merge(String name, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1075  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, command, payload);
 1076  0
     }
 1077  
 
 1078  
     public void merge(String name, Writer writer) throws IOException, ServletException {
 1079  0
         getInvoker().run(resolvePath(name), null, getContext(), "merge", null, writer);
 1080  0
     }
 1081  
 
 1082  
     public void merge(String name, Writer writer, String command) throws IOException, ServletException {
 1083  0
         getInvoker().run(resolvePath(name), null, getContext(), command, null, writer);
 1084  0
     }
 1085  
 
 1086  
     public void merge(String name, Writer writer, Object payload) throws IOException, ServletException {
 1087  0
         getInvoker().run(resolvePath(name), null, getContext(), "merge", payload, writer);
 1088  0
     }
 1089  
 
 1090  
     public void merge(String name, Writer writer, String command, Object payload) throws IOException, ServletException {
 1091  0
         getInvoker().run(resolvePath(name), null, getContext(), command, payload, writer);
 1092  0
     }
 1093  
 
 1094  
     public void merge(String name, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 1095  0
         getInvoker().run(resolvePath(name), null, context, "merge", null, writer);
 1096  0
     }
 1097  
 
 1098  
     public void merge(String name, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 1099  0
         getInvoker().run(resolvePath(name), null, context, command, null, writer);
 1100  0
     }
 1101  
 
 1102  
     public void merge(String name, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1103  0
         getInvoker().run(resolvePath(name), null, context, "merge", payload, writer);
 1104  0
     }
 1105  
 
 1106  
     public void merge(String name, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1107  0
         getInvoker().run(resolvePath(name), null, context, command, payload, writer);
 1108  0
     }
 1109  
 
 1110  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 1111  47
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), "merge", null);
 1112  47
     }
 1113  
 
 1114  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 1115  0
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, null);
 1116  0
     }
 1117  
 
 1118  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 1119  0
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), "merge", payload);
 1120  0
     }
 1121  
 
 1122  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 1123  0
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), command, payload);
 1124  0
     }
 1125  
 
 1126  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 1127  0
         getInvoker().invoke(resolvePath(name), null, request, response, context, "merge", null);
 1128  0
     }
 1129  
 
 1130  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 1131  0
         getInvoker().invoke(resolvePath(name), null, request, response, context, command, null);
 1132  0
     }
 1133  
 
 1134  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1135  0
         getInvoker().invoke(resolvePath(name), null, request, response, context, "merge", payload);
 1136  0
     }
 1137  
 
 1138  
     public void merge(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1139  1
         getInvoker().invoke(resolvePath(name), null, request, response, context, command, payload);
 1140  1
     }
 1141  
 
 1142  
     public void merge(PathContext pc) throws IOException, ServletException {
 1143  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), "merge", null);
 1144  0
     }
 1145  
 
 1146  
     public void merge(PathContext pc, String command) throws IOException, ServletException {
 1147  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), command, null);
 1148  0
     }
 1149  
 
 1150  
     public void merge(PathContext pc, Object payload) throws IOException, ServletException {
 1151  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), "merge", payload);
 1152  0
     }
 1153  
 
 1154  
     public void merge(PathContext pc, String command, Object payload) throws IOException, ServletException {
 1155  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), command, payload);
 1156  0
     }
 1157  
 
 1158  
     public void merge(PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 1159  3
         getInvoker().invoke(pc, null, getRequest(), getResponse(), context, "merge", null);
 1160  3
     }
 1161  
 
 1162  
     public void merge(PathContext pc, Map<String, Object> context, String command) throws IOException, ServletException {
 1163  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), context, command, null);
 1164  0
     }
 1165  
 
 1166  
     public void merge(PathContext pc, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1167  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), context, "merge", payload);
 1168  0
     }
 1169  
 
 1170  
     public void merge(PathContext pc, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1171  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), context, command, payload);
 1172  0
     }
 1173  
 
 1174  
     public void merge(PathContext pc, Writer writer) throws IOException, ServletException {
 1175  0
         getInvoker().run(pc, null, getContext(), "merge", null, writer);
 1176  0
     }
 1177  
 
 1178  
     public void merge(PathContext pc, Writer writer, String command) throws IOException, ServletException {
 1179  0
         getInvoker().run(pc, null, getContext(), command, null, writer);
 1180  0
     }
 1181  
 
 1182  
     public void merge(PathContext pc, Writer writer, Object payload) throws IOException, ServletException {
 1183  0
         getInvoker().run(pc, null, getContext(), "merge", payload, writer);
 1184  0
     }
 1185  
 
 1186  
     public void merge(PathContext pc, Writer writer, String command, Object payload) throws IOException, ServletException {
 1187  0
         getInvoker().run(pc, null, getContext(), command, payload, writer);
 1188  0
     }
 1189  
 
 1190  
     public void merge(PathContext pc, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 1191  0
         getInvoker().run(pc, null, context, "merge", null, writer);
 1192  0
     }
 1193  
 
 1194  
     public void merge(PathContext pc, Writer writer, Map<String, Object> context, String command) throws IOException, ServletException {
 1195  0
         getInvoker().run(pc, null, context, command, null, writer);
 1196  0
     }
 1197  
 
 1198  
     public void merge(PathContext pc, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1199  0
         getInvoker().run(pc, null, context, "merge", payload, writer);
 1200  0
     }
 1201  
 
 1202  
     public void merge(PathContext pc, Writer writer, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1203  0
         getInvoker().run(pc, null, context, command, payload, writer);
 1204  0
     }
 1205  
 
 1206  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 1207  2
         getInvoker().invoke(pc, null, request, response, getContext(), "merge", null);
 1208  2
     }
 1209  
 
 1210  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, String command) throws IOException, ServletException {
 1211  0
         getInvoker().invoke(pc, null, request, response, getContext(), command, null);
 1212  0
     }
 1213  
 
 1214  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 1215  0
         getInvoker().invoke(pc, null, request, response, getContext(), "merge", payload);
 1216  0
     }
 1217  
 
 1218  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, String command, Object payload) throws IOException, ServletException {
 1219  0
         getInvoker().invoke(pc, null, request, response, getContext(), command, payload);
 1220  0
     }
 1221  
 
 1222  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 1223  0
         getInvoker().invoke(pc, null, request, response, context, "merge", null);
 1224  0
     }
 1225  
 
 1226  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command) throws IOException, ServletException {
 1227  0
         getInvoker().invoke(pc, null, request, response, context, command, null);
 1228  0
     }
 1229  
 
 1230  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1231  0
         getInvoker().invoke(pc, null, request, response, context, "merge", payload);
 1232  0
     }
 1233  
 
 1234  
     public void merge(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, String command, Object payload) throws IOException, ServletException {
 1235  0
         getInvoker().invoke(pc, null, request, response, context, command, payload);
 1236  0
     }
 1237  
 
 1238  
     public void forward(String name) throws IOException, ServletException {
 1239  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), "forward", null);
 1240  0
     }
 1241  
 
 1242  
     public void forward(String name, Object payload) throws IOException, ServletException {
 1243  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), getContext(), "forward", payload);
 1244  0
     }
 1245  
 
 1246  
     public void forward(String name, Map<String, Object> context) throws IOException, ServletException {
 1247  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, "forward", null);
 1248  0
     }
 1249  
 
 1250  
     public void forward(String name, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1251  0
         getInvoker().invoke(resolvePath(name), null, getRequest(), getResponse(), context, "forward", payload);
 1252  0
     }
 1253  
 
 1254  
     public void forward(String name, Writer writer) throws IOException, ServletException {
 1255  0
         getInvoker().run(resolvePath(name), null, getContext(), "forward", null, writer);
 1256  0
     }
 1257  
 
 1258  
     public void forward(String name, Writer writer, Object payload) throws IOException, ServletException {
 1259  0
         getInvoker().run(resolvePath(name), null, getContext(), "forward", payload, writer);
 1260  0
     }
 1261  
 
 1262  
     public void forward(String name, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 1263  0
         getInvoker().run(resolvePath(name), null, context, "forward", null, writer);
 1264  0
     }
 1265  
 
 1266  
     public void forward(String name, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1267  0
         getInvoker().run(resolvePath(name), null, context, "forward", payload, writer);
 1268  0
     }
 1269  
 
 1270  
     public void forward(String name, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 1271  0
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), "forward", null);
 1272  0
     }
 1273  
 
 1274  
     public void forward(String name, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 1275  0
         getInvoker().invoke(resolvePath(name), null, request, response, getContext(), "forward", payload);
 1276  0
     }
 1277  
 
 1278  
     public void forward(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 1279  0
         getInvoker().invoke(resolvePath(name), null, request, response, context, "forward", null);
 1280  0
     }
 1281  
 
 1282  
     public void forward(String name, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1283  0
         getInvoker().invoke(resolvePath(name), null, request, response, context, "forward", payload);
 1284  0
     }
 1285  
 
 1286  
     public void forward(PathContext pc) throws IOException, ServletException {
 1287  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), "forward", null);
 1288  0
     }
 1289  
 
 1290  
     public void forward(PathContext pc, Object payload) throws IOException, ServletException {
 1291  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), getContext(), "forward", payload);
 1292  0
     }
 1293  
 
 1294  
     public void forward(PathContext pc, Map<String, Object> context) throws IOException, ServletException {
 1295  0
         getInvoker().invoke(pc, null, getRequest(), getResponse(), context, "forward", null);
 1296  0
     }
 1297  
 
 1298  
     public void forward(PathContext pc, Writer writer) throws IOException, ServletException {
 1299  0
         getInvoker().run(pc, null, getContext(), "forward", null, writer);
 1300  0
     }
 1301  
 
 1302  
     public void forward(PathContext pc, Writer writer, Object payload) throws IOException, ServletException {
 1303  0
         getInvoker().run(pc, null, getContext(), "forward", payload, writer);
 1304  0
     }
 1305  
 
 1306  
     public void forward(PathContext pc, Writer writer, Map<String, Object> context) throws IOException, ServletException {
 1307  0
         getInvoker().run(pc, null, context, "forward", null, writer);
 1308  0
     }
 1309  
 
 1310  
     public void forward(PathContext pc, Writer writer, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1311  0
         getInvoker().run(pc, null, context, "forward", payload, writer);
 1312  0
     }
 1313  
 
 1314  
     public void forward(PathContext pc, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
 1315  23
         getInvoker().invoke(pc, null, request, response, getContext(), "forward", null);
 1316  23
     }
 1317  
 
 1318  
     public void forward(PathContext pc, HttpServletRequest request, HttpServletResponse response, Object payload) throws IOException, ServletException {
 1319  0
         getInvoker().invoke(pc, null, request, response, getContext(), "forward", payload);
 1320  0
     }
 1321  
 
 1322  
     public void forward(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException, ServletException {
 1323  0
         getInvoker().invoke(pc, null, request, response, context, "forward", null);
 1324  0
     }
 1325  
 
 1326  
     public void forward(PathContext pc, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context, Object payload) throws IOException, ServletException {
 1327  0
         getInvoker().invoke(pc, null, request, response, context, "forward", payload);
 1328  0
     }
 1329  
 
 1330  
     public String getText(String name) throws IOException, ServletException {
 1331  0
         return getInvoker().getText(resolvePath(name, false));
 1332  
     }
 1333  
 
 1334  
     public String getText(PathContext pc) throws IOException, ServletException {
 1335  0
         return getInvoker().getText(pc);
 1336  
     }
 1337  
 
 1338  
     public String toString() {
 1339  0
         return "Webslinger(" + getType() + ":" + getPathContext() + ":" + getCommand() + ")";
 1340  
     }
 1341  
 
 1342  
     public Object getData() throws IOException, ServletException {
 1343  0
         return getPathContext().getInfo().getCachedItem(Webslinger.class, null, org.webslinger.types.data.CREATOR);
 1344  
     }
 1345  
 
 1346  
     public Object getData(String path) throws IOException, ServletException {
 1347  0
         return resolvePath(path).getInfo().getCachedItem(Webslinger.class, null, org.webslinger.types.data.CREATOR);
 1348  
     }
 1349  
 
 1350  
     public Object getData(PathContext pc) throws IOException, ServletException {
 1351  0
         return pc.getInfo().getCachedItem(Webslinger.class, null, org.webslinger.types.data.CREATOR);
 1352  
     }
 1353  
 
 1354  
     public boolean equals(Object o) {
 1355  0
         if (!(o instanceof Webslinger)) return false;
 1356  0
         Webslinger other = (Webslinger) o;
 1357  0
         return getInvoker().equals(other.getInvoker()) && getPathContext().equals(other.getPathContext());
 1358  
     }
 1359  
 
 1360  
     public int hashCode() {
 1361  0
         return getInvoker().hashCode() ^ getPathContext().hashCode();
 1362  
     }
 1363  
 
 1364  1474
     public static class WebslingerVFSDelegate<C> extends VFSDelegateProxy<Object, Webslinger, Object, C> {
 1365  
         public WebslingerVFSDelegate(VFSDelegate<Object, Object, C> vfsDelegate) {
 1366  26
             super(vfsDelegate, Object.class);
 1367  26
         }
 1368  
 
 1369  
         protected Object getReal(Webslinger ws) throws IOException {
 1370  1474
             return ws.getPathContext();
 1371  
         }
 1372  
 
 1373  
         public boolean attributeExists(Webslinger ws, String name) throws IOException {
 1374  0
             return ws.attributeExists(name);
 1375  
         }
 1376  
 
 1377  
         public Object getAttribute(Webslinger ws, String name) throws IOException {
 1378  3
             return ws.getAttribute(name);
 1379  
         }
 1380  
     }
 1381  
 }