KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > kohsuke > stapler > NameBasedDispatcher


1 package org.kohsuke.stapler;
2
3 import javax.servlet.ServletException JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.lang.reflect.InvocationTargetException JavaDoc;
6
7 /**
8  * @author Kohsuke Kawaguchi
9  */

10 abstract class NameBasedDispatcher implements Dispatcher {
11     private final String JavaDoc name;
12     private final int argCount;
13
14     protected NameBasedDispatcher(String JavaDoc name, int argCount) {
15         this.name = name;
16         this.argCount = argCount;
17     }
18
19     protected NameBasedDispatcher(String JavaDoc name) {
20         this(name,0);
21     }
22
23     public final boolean dispatch(RequestImpl req, ResponseImpl rsp, Object JavaDoc node)
24         throws IOException JavaDoc, ServletException JavaDoc, IllegalAccessException JavaDoc, InvocationTargetException JavaDoc {
25         if(!req.tokens.hasMore() || !req.tokens.peek().equals(name))
26             return false;
27         if(req.tokens.countRemainingTokens()<=argCount)
28             return false;
29         req.tokens.next();
30         doDispatch(req,rsp,node);
31         return true;
32     }
33
34     protected abstract void doDispatch(RequestImpl req, ResponseImpl rsp, Object JavaDoc node)
35         throws IOException JavaDoc, ServletException JavaDoc, IllegalAccessException JavaDoc, InvocationTargetException JavaDoc;
36 }
37
Popular Tags