Browse Source

Pass all arguments into callbacks.

We now pass parser/date in properly, no need to drop these and
re-add them.
pull/47/head
Chris Smith 9 years ago
parent
commit
4b734e0585

+ 68
- 11
common/src/com/dmdirc/parser/common/CallbackManager.java View File

@@ -24,13 +24,78 @@ package com.dmdirc.parser.common;
24 24
 
25 25
 import com.dmdirc.parser.interfaces.Parser;
26 26
 import com.dmdirc.parser.interfaces.SpecificCallback;
27
-import com.dmdirc.parser.interfaces.callbacks.*; //NOPMD
27
+import com.dmdirc.parser.interfaces.callbacks.AuthNoticeListener;
28
+import com.dmdirc.parser.interfaces.callbacks.AwayStateListener;
29
+import com.dmdirc.parser.interfaces.callbacks.CallbackInterface;
30
+import com.dmdirc.parser.interfaces.callbacks.ChannelActionListener;
31
+import com.dmdirc.parser.interfaces.callbacks.ChannelCtcpListener;
32
+import com.dmdirc.parser.interfaces.callbacks.ChannelCtcpReplyListener;
33
+import com.dmdirc.parser.interfaces.callbacks.ChannelJoinListener;
34
+import com.dmdirc.parser.interfaces.callbacks.ChannelKickListener;
35
+import com.dmdirc.parser.interfaces.callbacks.ChannelListModeListener;
36
+import com.dmdirc.parser.interfaces.callbacks.ChannelMessageListener;
37
+import com.dmdirc.parser.interfaces.callbacks.ChannelModeChangeListener;
38
+import com.dmdirc.parser.interfaces.callbacks.ChannelModeMessageListener;
39
+import com.dmdirc.parser.interfaces.callbacks.ChannelModeNoticeListener;
40
+import com.dmdirc.parser.interfaces.callbacks.ChannelNamesListener;
41
+import com.dmdirc.parser.interfaces.callbacks.ChannelNickChangeListener;
42
+import com.dmdirc.parser.interfaces.callbacks.ChannelNonUserModeChangeListener;
43
+import com.dmdirc.parser.interfaces.callbacks.ChannelNoticeListener;
44
+import com.dmdirc.parser.interfaces.callbacks.ChannelOtherAwayStateListener;
45
+import com.dmdirc.parser.interfaces.callbacks.ChannelPartListener;
46
+import com.dmdirc.parser.interfaces.callbacks.ChannelQuitListener;
47
+import com.dmdirc.parser.interfaces.callbacks.ChannelSelfJoinListener;
48
+import com.dmdirc.parser.interfaces.callbacks.ChannelSingleModeChangeListener;
49
+import com.dmdirc.parser.interfaces.callbacks.ChannelTopicListener;
50
+import com.dmdirc.parser.interfaces.callbacks.ChannelUserModeChangeListener;
51
+import com.dmdirc.parser.interfaces.callbacks.CompositionStateChangeListener;
52
+import com.dmdirc.parser.interfaces.callbacks.ConnectErrorListener;
53
+import com.dmdirc.parser.interfaces.callbacks.DataInListener;
54
+import com.dmdirc.parser.interfaces.callbacks.DataOutListener;
55
+import com.dmdirc.parser.interfaces.callbacks.DebugInfoListener;
56
+import com.dmdirc.parser.interfaces.callbacks.ErrorInfoListener;
57
+import com.dmdirc.parser.interfaces.callbacks.GroupListEndListener;
58
+import com.dmdirc.parser.interfaces.callbacks.GroupListEntryListener;
59
+import com.dmdirc.parser.interfaces.callbacks.GroupListStartListener;
60
+import com.dmdirc.parser.interfaces.callbacks.InviteListener;
61
+import com.dmdirc.parser.interfaces.callbacks.MotdEndListener;
62
+import com.dmdirc.parser.interfaces.callbacks.MotdLineListener;
63
+import com.dmdirc.parser.interfaces.callbacks.MotdStartListener;
64
+import com.dmdirc.parser.interfaces.callbacks.NetworkDetectedListener;
65
+import com.dmdirc.parser.interfaces.callbacks.NickChangeListener;
66
+import com.dmdirc.parser.interfaces.callbacks.NickInUseListener;
67
+import com.dmdirc.parser.interfaces.callbacks.NumericListener;
68
+import com.dmdirc.parser.interfaces.callbacks.OtherAwayStateListener;
69
+import com.dmdirc.parser.interfaces.callbacks.PasswordRequiredListener;
70
+import com.dmdirc.parser.interfaces.callbacks.PingFailureListener;
71
+import com.dmdirc.parser.interfaces.callbacks.PingSentListener;
72
+import com.dmdirc.parser.interfaces.callbacks.PingSuccessListener;
73
+import com.dmdirc.parser.interfaces.callbacks.PrivateActionListener;
74
+import com.dmdirc.parser.interfaces.callbacks.PrivateCtcpListener;
75
+import com.dmdirc.parser.interfaces.callbacks.PrivateCtcpReplyListener;
76
+import com.dmdirc.parser.interfaces.callbacks.PrivateMessageListener;
77
+import com.dmdirc.parser.interfaces.callbacks.PrivateNoticeListener;
78
+import com.dmdirc.parser.interfaces.callbacks.QuitListener;
79
+import com.dmdirc.parser.interfaces.callbacks.ServerErrorListener;
80
+import com.dmdirc.parser.interfaces.callbacks.ServerNoticeListener;
81
+import com.dmdirc.parser.interfaces.callbacks.ServerReadyListener;
82
+import com.dmdirc.parser.interfaces.callbacks.SocketCloseListener;
83
+import com.dmdirc.parser.interfaces.callbacks.UnknownActionListener;
84
+import com.dmdirc.parser.interfaces.callbacks.UnknownCtcpListener;
85
+import com.dmdirc.parser.interfaces.callbacks.UnknownCtcpReplyListener;
86
+import com.dmdirc.parser.interfaces.callbacks.UnknownMessageListener;
87
+import com.dmdirc.parser.interfaces.callbacks.UnknownNoticeListener;
88
+import com.dmdirc.parser.interfaces.callbacks.UnknownServerNoticeListener;
89
+import com.dmdirc.parser.interfaces.callbacks.UserModeChangeListener;
90
+import com.dmdirc.parser.interfaces.callbacks.UserModeDiscoveryListener;
91
+import com.dmdirc.parser.interfaces.callbacks.WallDesyncListener;
92
+import com.dmdirc.parser.interfaces.callbacks.WallopListener;
93
+import com.dmdirc.parser.interfaces.callbacks.WalluserListener;
28 94
 
29 95
 import java.lang.reflect.InvocationHandler;
30 96
 import java.lang.reflect.Method;
31 97
 import java.lang.reflect.Proxy;
32 98
 import java.util.Collections;
33
-import java.util.Date;
34 99
 import java.util.HashMap;
35 100
 import java.util.Map;
36 101
 
@@ -302,15 +367,7 @@ public class CallbackManager {
302 367
 
303 368
         @Override
304 369
         public Object invoke(final Object proxy, final Method method, final Object[] args) {
305
-            final Object[] modifiedArgs = new Object[args.length - 2];
306
-            System.arraycopy(args, 2, modifiedArgs, 0, args.length - 2);
307
-
308
-            if (args[1] == null) {
309
-                getCallbackType(callback).call(modifiedArgs);
310
-            } else {
311
-                getCallbackType(callback).call((Date) args[1], modifiedArgs);
312
-            }
313
-
370
+            getCallbackType(callback).call(args);
314 371
             return null;
315 372
         }
316 373
 

+ 2
- 20
common/src/com/dmdirc/parser/common/CallbackObject.java View File

@@ -31,7 +31,6 @@ import java.lang.annotation.Annotation;
31 31
 import java.lang.reflect.Constructor;
32 32
 import java.lang.reflect.InvocationTargetException;
33 33
 import java.lang.reflect.Method;
34
-import java.util.Date;
35 34
 import java.util.HashMap;
36 35
 import java.util.List;
37 36
 import java.util.Map;
@@ -142,30 +141,13 @@ public class CallbackObject {
142 141
      * @return True if a method was called, false otherwise
143 142
      */
144 143
     public boolean call(final Object... args) {
145
-        return call(new Date(), args);
146
-    }
147
-
148
-    /**
149
-     * Actually calls this callback. The specified arguments must match those
150
-     * specified in the callback's interface, or an error will be raised.
151
-     *
152
-     * @param date The date/time at which the event occured
153
-     * @param args The arguments to pass to the callback implementation
154
-     * @return True if a method was called, false otherwise
155
-     */
156
-    public boolean call(final Date date, final Object... args) {
157 144
         boolean bResult = false;
158 145
 
159
-        final Object[] newArgs = new Object[args.length + 2];
160
-        System.arraycopy(args, 0, newArgs, 2, args.length);
161
-        newArgs[0] = myParser;
162
-        newArgs[1] = date;
163
-
164
-        createFakeArgs(newArgs);
146
+        createFakeArgs(args);
165 147
 
166 148
         for (CallbackInterface iface : callbackInfo) {
167 149
             try {
168
-                type.getMethods()[0].invoke(iface, newArgs);
150
+                type.getMethods()[0].invoke(iface, args);
169 151
             } catch (SecurityException | IllegalAccessException |
170 152
                     IllegalArgumentException | InvocationTargetException e) {
171 153
                 if (getType().equals(ErrorInfoListener.class)) {

+ 3
- 9
common/src/com/dmdirc/parser/common/CallbackObjectSpecific.java View File

@@ -28,7 +28,6 @@ import com.dmdirc.parser.interfaces.SpecificCallback;
28 28
 import com.dmdirc.parser.interfaces.callbacks.CallbackInterface;
29 29
 
30 30
 import java.util.ArrayList;
31
-import java.util.Date;
32 31
 import java.util.HashMap;
33 32
 import java.util.Map;
34 33
 
@@ -136,15 +135,10 @@ public class CallbackObjectSpecific extends CallbackObject {
136 135
     }
137 136
 
138 137
     @Override
139
-    public boolean call(final Date date, final Object... args) {
138
+    public boolean call(final Object... args) {
140 139
         boolean bResult = false;
141 140
 
142
-        final Object[] newArgs = new Object[args.length + 2];
143
-        System.arraycopy(args, 0, newArgs, 2, args.length);
144
-        newArgs[0] = myParser;
145
-        newArgs[1] = date;
146
-
147
-        createFakeArgs(newArgs);
141
+        createFakeArgs(args);
148 142
 
149 143
         for (CallbackInterface iface : new ArrayList<>(callbackInfo)) {
150 144
             if (type.isAnnotationPresent(SpecificCallback.class)
@@ -160,7 +154,7 @@ public class CallbackObjectSpecific extends CallbackObject {
160 154
             }
161 155
 
162 156
             try {
163
-                type.getMethods()[0].invoke(iface, newArgs);
157
+                type.getMethods()[0].invoke(iface, args);
164 158
             } catch (ReflectiveOperationException e) {
165 159
                 final ParserError ei = new ParserError(ParserError.ERROR_ERROR,
166 160
                         "Exception in callback (" + e.getMessage() + ")",

Loading…
Cancel
Save