KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > alt > jiapi > event > EventHook


1 /*
2  * Copyright(C) 2001 Mika Riekkinen, Joni Suominen
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or(at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */

18
19 package alt.jiapi.event;
20
21 import java.lang.reflect.Method JavaDoc;
22 import alt.jiapi.instrumentor.Hook;
23
24 /**
25  * Class used for internal purposes.
26  *
27  * @author Mika Riekkinen
28  * @author Joni Suominen
29  * @version $Revision: 1.3 $ $Date: 2002/03/20 12:00:32 $
30  */

31 abstract class EventHook implements Hook {
32     private Object JavaDoc instance;
33     private Method JavaDoc hookMethod;
34
35
36     public EventHook(EventProducer ep) {
37         this.instance = ep;
38     }
39
40     public Method JavaDoc getHookMethod() {
41         if (hookMethod == null) {
42             Class JavaDoc [] params = getMethodParameters();
43             try {
44                 this.hookMethod =
45                     instance.getClass().getMethod(getMethodName(), params);
46             }
47             catch (Exception JavaDoc e) {
48                 // not possible, but just in case
49
e.printStackTrace();
50                 throw new RuntimeException JavaDoc(e.toString());
51             }
52         }
53
54         return hookMethod;
55     }
56
57     public Object JavaDoc getInstance() {
58         return instance;
59     }
60
61     protected Class JavaDoc [] getMethodParameters() {
62         return new Class JavaDoc [] {Object JavaDoc.class, String JavaDoc.class};
63     }
64
65     /**
66      * Gets the name of the method, that is used with hook.
67      */

68     public abstract String JavaDoc getMethodName();
69 }
70
71
72
73
Popular Tags