Selaa lähdekoodia

Tidy up CallbackManager very slightly.

pull/43/head
Chris Smith 9 vuotta sitten
vanhempi
commit
481a0161cd

+ 2
- 1
common/src/com/dmdirc/parser/common/BaseParser.java Näytä tiedosto

90
             }
90
             }
91
         }
91
         }
92
 
92
 
93
-        this.callbackManager = new CallbackManager(this, implementations);
93
+        callbackManager = new CallbackManager(implementations);
94
+        callbackManager.initialise(this);
94
     }
95
     }
95
 
96
 
96
     @Override
97
     @Override

+ 11
- 13
common/src/com/dmdirc/parser/common/CallbackManager.java Näytä tiedosto

29
 import java.lang.reflect.InvocationHandler;
29
 import java.lang.reflect.InvocationHandler;
30
 import java.lang.reflect.Method;
30
 import java.lang.reflect.Method;
31
 import java.lang.reflect.Proxy;
31
 import java.lang.reflect.Proxy;
32
+import java.util.Collections;
32
 import java.util.Date;
33
 import java.util.Date;
33
 import java.util.HashMap;
34
 import java.util.HashMap;
34
 import java.util.Map;
35
 import java.util.Map;
118
     /**
119
     /**
119
      * Constructor to create a CallbackManager.
120
      * Constructor to create a CallbackManager.
120
      *
121
      *
121
-     * @param parser Parser that owns this callback manager.
122
      * @param implementationMap A map of implementations to use
122
      * @param implementationMap A map of implementations to use
123
      */
123
      */
124
-    public CallbackManager(final Parser parser, final Map<Class<?>, Class<?>> implementationMap) {
125
-        this.implementationMap = implementationMap;
126
-
127
-        initialise(parser);
124
+    public CallbackManager(final Map<Class<?>, Class<?>> implementationMap) {
125
+        this.implementationMap = Collections.unmodifiableMap(implementationMap);
128
     }
126
     }
129
 
127
 
130
     /**
128
     /**
132
      *
130
      *
133
      * @param parser The parser associated with this CallbackManager
131
      * @param parser The parser associated with this CallbackManager
134
      */
132
      */
135
-    protected void initialise(final Parser parser) {
133
+    public void initialise(final Parser parser) {
136
         for (Class<?> type : CLASSES) {
134
         for (Class<?> type : CLASSES) {
137
             if (type.isAnnotationPresent(SpecificCallback.class)) {
135
             if (type.isAnnotationPresent(SpecificCallback.class)) {
138
                 addCallbackType(getSpecificCallbackObject(parser, type));
136
                 addCallbackType(getSpecificCallbackObject(parser, type));
150
      * @return The relevant CallbackObject
148
      * @return The relevant CallbackObject
151
      */
149
      */
152
     protected CallbackObject getCallbackObject(final Parser parser, final Class<?> type) {
150
     protected CallbackObject getCallbackObject(final Parser parser, final Class<?> type) {
153
-        return new CallbackObject(parser, this, type.asSubclass(CallbackInterface.class), implementationMap);
151
+        return new CallbackObject(parser, this, type.asSubclass(CallbackInterface.class),
152
+                implementationMap);
154
     }
153
     }
155
 
154
 
156
     /**
155
     /**
160
      * @param type The type of callback to create an object for
159
      * @param type The type of callback to create an object for
161
      * @return The relevant CallbackObject
160
      * @return The relevant CallbackObject
162
      */
161
      */
163
-    protected CallbackObjectSpecific getSpecificCallbackObject(final Parser parser, final Class<?> type) {
164
-        return new CallbackObjectSpecific(parser, this, type.asSubclass(CallbackInterface.class), implementationMap);
162
+    protected CallbackObjectSpecific getSpecificCallbackObject(
163
+            final Parser parser, final Class<?> type) {
164
+        return new CallbackObjectSpecific(parser, this, type.asSubclass(CallbackInterface.class),
165
+                implementationMap);
165
     }
166
     }
166
 
167
 
167
     /**
168
     /**
202
      */
203
      */
203
     private CallbackObject getCallbackType(final Class<? extends CallbackInterface> callback) {
204
     private CallbackObject getCallbackType(final Class<? extends CallbackInterface> callback) {
204
         if (!callbackHash.containsKey(callback)) {
205
         if (!callbackHash.containsKey(callback)) {
205
-            throw new CallbackNotFoundException("Callback not found: " + callback.getName()
206
-                    + "\n\nMy class: " + getClass().getName()
207
-                    + "\nContents: " + callbackHash.keySet()
208
-                    + "\nThread: " + Thread.currentThread().getName());
206
+            throw new CallbackNotFoundException("Callback not found: " + callback.getName());
209
         }
207
         }
210
 
208
 
211
         return callbackHash.get(callback);
209
         return callbackHash.get(callback);

Loading…
Peruuta
Tallenna