Browse Source

Tidy up CallbackManager very slightly.

pull/43/head
Chris Smith 9 years ago
parent
commit
481a0161cd

+ 2
- 1
common/src/com/dmdirc/parser/common/BaseParser.java View File

@@ -90,7 +90,8 @@ public abstract class BaseParser extends ThreadedParser {
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 97
     @Override

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

@@ -29,6 +29,7 @@ import com.dmdirc.parser.interfaces.callbacks.*; //NOPMD
29 29
 import java.lang.reflect.InvocationHandler;
30 30
 import java.lang.reflect.Method;
31 31
 import java.lang.reflect.Proxy;
32
+import java.util.Collections;
32 33
 import java.util.Date;
33 34
 import java.util.HashMap;
34 35
 import java.util.Map;
@@ -118,13 +119,10 @@ public class CallbackManager {
118 119
     /**
119 120
      * Constructor to create a CallbackManager.
120 121
      *
121
-     * @param parser Parser that owns this callback manager.
122 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,7 +130,7 @@ public class CallbackManager {
132 130
      *
133 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 134
         for (Class<?> type : CLASSES) {
137 135
             if (type.isAnnotationPresent(SpecificCallback.class)) {
138 136
                 addCallbackType(getSpecificCallbackObject(parser, type));
@@ -150,7 +148,8 @@ public class CallbackManager {
150 148
      * @return The relevant CallbackObject
151 149
      */
152 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,8 +159,10 @@ public class CallbackManager {
160 159
      * @param type The type of callback to create an object for
161 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,10 +203,7 @@ public class CallbackManager {
202 203
      */
203 204
     private CallbackObject getCallbackType(final Class<? extends CallbackInterface> callback) {
204 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 209
         return callbackHash.get(callback);

Loading…
Cancel
Save