Browse Source

Plugin support for core changes.

pull/180/head
Chris Smith 9 years ago
parent
commit
4f58e0bfa6

+ 3
- 3
dcc/src/com/dmdirc/addons/dcc/DCCCommand.java View File

@@ -115,7 +115,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
115 115
         if (args.getArguments().length > 1) {
116 116
             final String target = args.getArguments()[1];
117 117
             final Connection connection = ((ServerCommandContext) context).getConnection();
118
-            final Parser parser = connection.getParser();
118
+            final Parser parser = connection.getParser().get();
119 119
             final String myNickname = parser.getLocalClient().getNickname();
120 120
 
121 121
             if (parser.isValidChannelName(target)
@@ -242,7 +242,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
242 242
 
243 243
             if (origin.getConfigManager().getOptionBool(
244 244
                     myPlugin.getDomain(), "send.reverse")) {
245
-                final Parser parser = connection.getParser();
245
+                final Parser parser = connection.getParser().get();
246 246
                 final TransferContainer container = new TransferContainer(myPlugin, send,
247 247
                         origin.getConfigManager(), backBufferFactory, "Send: " + target,
248 248
                         target, connection, urlBuilder, eventBus);
@@ -254,7 +254,7 @@ public class DCCCommand extends Command implements IntelligentCommand {
254 254
                         + send.makeToken()
255 255
                         + (send.isTurbo() ? " T" : ""));
256 256
             } else {
257
-                final Parser parser = connection.getParser();
257
+                final Parser parser = connection.getParser().get();
258 258
                 if (myPlugin.listen(send)) {
259 259
                     final TransferContainer container = new TransferContainer(myPlugin, send,
260 260
                             origin.getConfigManager(), backBufferFactory, "*Send: "

+ 4
- 4
dcc/src/com/dmdirc/addons/dcc/DCCManager.java View File

@@ -395,13 +395,13 @@ public class DCCManager {
395 395
             final ClientInfo client, final Connection connection) {
396 396
         final String nickname = client.getNickname();
397 397
         if (dontAsk) {
398
-            handleDCCChat(connection.getParser(), nickname, ctcpData);
398
+            handleDCCChat(connection.getParser().get(), nickname, ctcpData);
399 399
         } else {
400 400
             eventBus.publish(new DccChatRequestEvent(connection, nickname));
401 401
             new StandardQuestionDialog(mainWindow, Dialog.ModalityType.APPLICATION_MODAL,
402 402
                     "DCC Chat Request", "User " + nickname + " on " + connection.getAddress()
403 403
                     + " would like to start a DCC Chat with you.\n\nDo you want to continue?",
404
-                    () -> handleDCCChat(connection.getParser(), nickname, ctcpData)).display();
404
+                    () -> handleDCCChat(connection.getParser().get(), nickname, ctcpData)).display();
405 405
         }
406 406
     }
407 407
 
@@ -518,7 +518,7 @@ public class DCCManager {
518 518
                             + " would like to send you a file over DCC.\n\nFile: "
519 519
                             + filename + "\n\nDo you want to continue?",
520 520
                     () -> handleDCCSend(token, ipLong, portInt, filename, passedSize, nickname,
521
-                            connection.getParser())).display();
521
+                            connection.getParser().get())).display();
522 522
         }
523 523
     }
524 524
 
@@ -591,7 +591,7 @@ public class DCCManager {
591 591
                         !token.equals(send.getToken())) {
592 592
                     continue;
593 593
                 }
594
-                final Parser parser = connection.getParser();
594
+                final Parser parser = connection.getParser().get();
595 595
                 final String nick = client.getNickname();
596 596
                 if ("resume".equalsIgnoreCase(ctcpData[0])) {
597 597
                     parser.sendCTCP(nick, "DCC", "ACCEPT " + (quoted ? '"'

+ 12
- 10
dcc/src/com/dmdirc/addons/dcc/TransferContainer.java View File

@@ -43,6 +43,7 @@ import java.util.Arrays;
43 43
 import java.util.Date;
44 44
 import java.util.Optional;
45 45
 
46
+import javax.annotation.Nullable;
46 47
 import javax.swing.JOptionPane;
47 48
 
48 49
 /**
@@ -68,9 +69,11 @@ public class TransferContainer extends FrameContainer implements
68 69
     /** Plugin that this send belongs to. */
69 70
     private final DCCManager myPlugin;
70 71
     /** IRC Parser that caused this send */
71
-    private Parser parser = null;
72
+    @Nullable
73
+    private Parser parser;
72 74
     /** Connection the send was initiated on. */
73
-    private Connection connection = null;
75
+    @Nullable
76
+    private Connection connection;
74 77
     /** Show open button. */
75 78
     private final boolean showOpen = Desktop.isDesktopSupported()
76 79
             && Desktop.getDesktop().isSupported(Desktop.Action.OPEN);
@@ -83,7 +86,7 @@ public class TransferContainer extends FrameContainer implements
83 86
     public TransferContainer(final DCCManager plugin, final DCCTransfer dcc,
84 87
             final AggregateConfigProvider config,
85 88
             final BackBufferFactory backBufferFactory, final String title,
86
-            final String targetNick, final Connection connection,
89
+            final String targetNick, @Nullable final Connection connection,
87 90
             final URLBuilder urlBuilder, final DMDircMBassador eventBus) {
88 91
         super(plugin.getContainer(), dcc.getType() == DCCTransfer.TransferType.SEND
89 92
                 ? "dcc-send-inactive" : "dcc-receive-inactive",
@@ -93,7 +96,7 @@ public class TransferContainer extends FrameContainer implements
93 96
         this.dcc = dcc;
94 97
         this.connection = connection;
95 98
         this.config = config;
96
-        parser = connection == null ? null : connection.getParser();
99
+        parser = Optional.ofNullable(connection).flatMap(Connection::getParser).orElse(null);
97 100
         myPlugin = plugin;
98 101
 
99 102
         if (parser != null) {
@@ -298,11 +301,11 @@ public class TransferContainer extends FrameContainer implements
298 301
         dcc.reset();
299 302
 
300 303
         if (connection != null && connection.getState() == ServerState.CONNECTED) {
301
-            final String myNickname = connection.getParser().getLocalClient()
304
+            final String myNickname = connection.getParser().get().getLocalClient()
302 305
                     .getNickname();
303 306
             // Check again in case we have changed nickname to the same nickname
304 307
             //that this send is for.
305
-            if (connection.getParser().getStringConverter().equalsIgnoreCase(
308
+            if (connection.getParser().get().getStringConverter().equalsIgnoreCase(
306 309
                     otherNickname, myNickname)) {
307 310
                 final Thread errorThread = new Thread(() -> {
308 311
                     JOptionPane.showMessageDialog(null,
@@ -345,10 +348,9 @@ public class TransferContainer extends FrameContainer implements
345 348
     }
346 349
 
347 350
     public void addSocketCloseCallback(final SocketCloseListener listener) {
348
-        if (connection != null && connection.getParser() != null) {
349
-            connection.getParser().getCallbackManager()
350
-                    .addNonCriticalCallback(SocketCloseListener.class,
351
-                            listener);
351
+        if (connection != null) {
352
+            connection.getParser().map(Parser::getCallbackManager).ifPresent(
353
+                    cbm -> cbm.addNonCriticalCallback(SocketCloseListener.class, listener));
352 354
         }
353 355
     }
354 356
 

+ 7
- 7
debug/src/com/dmdirc/addons/debug/commands/ServerInfo.java View File

@@ -68,17 +68,17 @@ public class ServerInfo extends DebugCommand {
68 68
             sendLine(origin, args.isSilent(), FORMAT_OUTPUT, "Server name: "
69 69
                     + connection.getAddress());
70 70
             sendLine(origin, args.isSilent(), FORMAT_OUTPUT, "Actual name: "
71
-                    + connection.getParser().getServerName());
71
+                    + connection.getParser().get().getServerName());
72 72
             sendLine(origin, args.isSilent(), FORMAT_OUTPUT, "Network: "
73 73
                     + connection.getNetwork());
74 74
             sendLine(origin, args.isSilent(), FORMAT_OUTPUT, "IRCd: "
75
-                    + connection.getParser().getServerSoftware() + " - "
76
-                    + connection.getParser().getServerSoftwareType());
75
+                    + connection.getParser().get().getServerSoftware() + " - "
76
+                    + connection.getParser().get().getServerSoftwareType());
77 77
             sendLine(origin, args.isSilent(), FORMAT_OUTPUT, "Modes: "
78
-                    + connection.getParser().getBooleanChannelModes() + ' '
79
-                    + connection.getParser().getListChannelModes() + ' '
80
-                    + connection.getParser().getParameterChannelModes() + ' '
81
-                    + connection.getParser().getDoubleParameterChannelModes());
78
+                    + connection.getParser().get().getBooleanChannelModes() + ' '
79
+                    + connection.getParser().get().getListChannelModes() + ' '
80
+                    + connection.getParser().get().getParameterChannelModes() + ' '
81
+                    + connection.getParser().get().getDoubleParameterChannelModes());
82 82
         } else {
83 83
             sendLine(origin, args.isSilent(), FORMAT_ERROR,
84 84
                     "This window isn't connected to a server");

+ 3
- 3
identd/src/com/dmdirc/addons/identd/IdentClient.java View File

@@ -184,9 +184,9 @@ public class IdentClient implements Runnable {
184 184
                 != null && !customName.isEmpty() && customName.length() < 513) {
185 185
             username = customName;
186 186
         } else if (connection != null && config.getOptionBool(domain, "general.useNickname")) {
187
-            username = connection.getParser().getLocalClient().getNickname();
187
+            username = connection.getParser().get().getLocalClient().getNickname();
188 188
         } else if (connection != null && config.getOptionBool(domain, "general.useUsername")) {
189
-            username = connection.getParser().getLocalClient().getUsername();
189
+            username = connection.getParser().get().getLocalClient().getUsername();
190 190
         } else {
191 191
             username = System.getProperty("user.name");
192 192
         }
@@ -240,7 +240,7 @@ public class IdentClient implements Runnable {
240 240
      */
241 241
     protected Connection getConnectionByPort(final int port) {
242 242
         for (Connection connection : connectionManager.getConnections()) {
243
-            if (connection.getParser().getLocalPort() == port) {
243
+            if (connection.getParser().get().getLocalPort() == port) {
244 244
                 return connection;
245 245
             }
246 246
         }

+ 2
- 1
identd/test/com/dmdirc/addons/identd/IdentClientTest.java View File

@@ -31,6 +31,7 @@ import com.dmdirc.parser.irc.IRCParser;
31 31
 
32 32
 import java.util.ArrayList;
33 33
 import java.util.List;
34
+import java.util.Optional;
34 35
 
35 36
 import org.junit.Test;
36 37
 import org.junit.runner.RunWith;
@@ -57,7 +58,7 @@ public class IdentClientTest {
57 58
         servers.add(connection);
58 59
 
59 60
         when(sm.getConnections()).thenReturn(servers);
60
-        when(connection.getParser()).thenReturn(parser);
61
+        when(connection.getParser()).thenReturn(Optional.of(parser));
61 62
         when(parser.getLocalPort()).thenReturn(60);
62 63
         when(parser.getLocalClient()).thenReturn(client);
63 64
         when(client.getNickname()).thenReturn("nickname");

+ 1
- 1
lagdisplay/src/com/dmdirc/addons/lagdisplay/LagDisplayManager.java View File

@@ -257,7 +257,7 @@ public class LagDisplayManager implements ConfigChangeListener {
257 257
                 getOptionBool(domain, "usealternate")) {
258 258
             return;
259 259
         }
260
-        event.getConnection().getParser().sendRawMessage("LAGCHECK_" + new Date().getTime());
260
+        event.getConnection().getParser().get().sendRawMessage("LAGCHECK_" + new Date().getTime());
261 261
     }
262 262
 
263 263
     /**

+ 3
- 3
logging/src/com/dmdirc/addons/logging/LoggingManager.java View File

@@ -213,7 +213,7 @@ public class LoggingManager implements ConfigChangeListener {
213 213
 
214 214
     @Handler
215 215
     public void handleQueryOpened(final QueryOpenedEvent event) {
216
-        final Parser parser = event.getQuery().getConnection().get().getParser();
216
+        final Parser parser = event.getQuery().getConnection().get().getParser().get();
217 217
         final ClientInfo client = parser.getClient(event.getQuery().getHost());
218 218
         final String filename = locator.getLogFile(client);
219 219
         if (autobackbuffer) {
@@ -229,7 +229,7 @@ public class LoggingManager implements ConfigChangeListener {
229 229
 
230 230
     @Handler
231 231
     public void handleQueryClosed(final QueryClosedEvent event) {
232
-        final Parser parser = event.getQuery().getConnection().get().getParser();
232
+        final Parser parser = event.getQuery().getConnection().get().getParser().get();
233 233
         final ClientInfo client = parser.getClient(event.getQuery().getHost());
234 234
         final String filename = locator.getLogFile(client);
235 235
 
@@ -584,7 +584,7 @@ public class LoggingManager implements ConfigChangeListener {
584 584
         if (target instanceof Channel) {
585 585
             descriptor = target.getName();
586 586
         } else if (target instanceof Query) {
587
-            final Parser parser = target.getConnection().get().getParser();
587
+            final Parser parser = target.getConnection().get().getParser().get();
588 588
             descriptor = parser.getClient(((PrivateChat) target).getHost()).getNickname();
589 589
         } else {
590 590
             // Unknown component

+ 7
- 5
parserdebug/src/com/dmdirc/addons/parserdebug/ParserDebugCommand.java View File

@@ -34,6 +34,8 @@ import com.dmdirc.interfaces.CommandController;
34 34
 import com.dmdirc.interfaces.Connection;
35 35
 import com.dmdirc.parser.interfaces.Parser;
36 36
 
37
+import java.util.Optional;
38
+
37 39
 import javax.annotation.Nonnull;
38 40
 import javax.inject.Inject;
39 41
 
@@ -78,20 +80,20 @@ public final class ParserDebugCommand extends Command {
78 80
         final boolean isSilent = commandArgs.isSilent();
79 81
 
80 82
         final Connection connection = ((ServerCommandContext) context).getConnection();
81
-        final Parser parser = connection.getParser();
83
+        final Optional<Parser> parser = connection.getParser();
82 84
 
83
-        if (parser == null) {
85
+        if (!parser.isPresent()) {
84 86
             sendLine(origin, isSilent, FORMAT_ERROR, "Unable to get a parser for this window.");
85 87
             return;
86 88
         }
87
-        if (parserDebugManager.containsParser(parser)) {
88
-            if (parserDebugManager.removeParser(parser, false)) {
89
+        if (parserDebugManager.containsParser(parser.get())) {
90
+            if (parserDebugManager.removeParser(parser.get(), false)) {
89 91
                 sendLine(origin, isSilent, FORMAT_OUTPUT, "Removing callback ok");
90 92
             } else {
91 93
                 sendLine(origin, isSilent, FORMAT_ERROR, "Removing callback failed");
92 94
             }
93 95
         } else {
94
-            if (parserDebugManager.addParser(parser, connection)) {
96
+            if (parserDebugManager.addParser(parser.get(), connection)) {
95 97
                 sendLine(origin, isSilent, FORMAT_OUTPUT, "Adding callback ok");
96 98
             } else {
97 99
                 sendLine(origin, isSilent, FORMAT_ERROR, "Adding callback failed");

+ 1
- 1
parserdebug/src/com/dmdirc/addons/parserdebug/ParserDebugManager.java View File

@@ -152,7 +152,7 @@ public class ParserDebugManager implements DebugInfoListener {
152 152
 
153 153
     @Handler
154 154
     public void handleServerDisconnected(final ServerDisconnectedEvent event) {
155
-            final Parser parser = event.getConnection().getParser();
155
+            final Parser parser = event.getConnection().getParser().get();
156 156
             if (registeredParsers.containsKey(parser)) {
157 157
                 removeParser(parser, false);
158 158
             }

+ 4
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/components/modes/ChannelModesPane.java View File

@@ -64,13 +64,13 @@ public final class ChannelModesPane extends ModesPane {
64 64
 
65 65
     @Override
66 66
     public boolean isModeSettable(final String mode) {
67
-        return channel.getConnection().get().getParser().isUserSettable(
68
-                mode.toCharArray()[0]);
67
+        return channel.getConnection().get().getParser().get().isUserSettable(mode.toCharArray()
68
+                [0]);
69 69
     }
70 70
 
71 71
     @Override
72 72
     public String getAvailableBooleanModes() {
73
-        return channel.getConnection().get().getParser().getBooleanChannelModes();
73
+        return channel.getConnection().get().getParser().get().getBooleanChannelModes();
74 74
     }
75 75
 
76 76
     @Override
@@ -80,7 +80,7 @@ public final class ChannelModesPane extends ModesPane {
80 80
 
81 81
     @Override
82 82
     public String getAllParamModes() {
83
-        final Parser parser = channel.getConnection().get().getParser();
83
+        final Parser parser = channel.getConnection().get().getParser().get();
84 84
         return parser.getParameterChannelModes()
85 85
                 + parser.getDoubleParameterChannelModes();
86 86
     }

+ 4
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/components/modes/UserModesPane.java View File

@@ -68,12 +68,12 @@ public final class UserModesPane extends ModesPane {
68 68
 
69 69
     @Override
70 70
     public String getAvailableBooleanModes() {
71
-        return connection.getParser().getUserModes();
71
+        return connection.getParser().get().getUserModes();
72 72
     }
73 73
 
74 74
     @Override
75 75
     public String getOurBooleanModes() {
76
-        return connection.getParser().getLocalClient().getModes();
76
+        return connection.getParser().get().getLocalClient().getModes();
77 77
     }
78 78
 
79 79
     @Override
@@ -89,12 +89,12 @@ public final class UserModesPane extends ModesPane {
89 89
     @Override
90 90
     public void alterMode(final boolean add, final String mode,
91 91
             final String parameter) {
92
-        connection.getParser().getLocalClient().alterMode(add, mode.toCharArray()[0]);
92
+        connection.getParser().get().getLocalClient().alterMode(add, mode.toCharArray()[0]);
93 93
     }
94 94
 
95 95
     @Override
96 96
     public void flushModes() {
97
-        connection.getParser().getLocalClient().flushModes();
97
+        connection.getParser().get().getLocalClient().flushModes();
98 98
     }
99 99
 
100 100
 }

+ 2
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelListModesPane.java View File

@@ -137,7 +137,7 @@ public final class ChannelListModesPane extends JPanel implements ActionListener
137 137
         }
138 138
         listModesPanel = new JScrollPane();
139 139
         listModesPanels = new ArrayList<>();
140
-        listModesArray = channel.getConnection().get().getParser()
140
+        listModesArray = channel.getConnection().get().getParser().get()
141 141
                 .getListChannelModes().toCharArray();
142 142
         existingListItems = new MapList<>();
143 143
         listModesMenu = new JComboBox<>(new DefaultComboBoxModel<>());
@@ -355,7 +355,7 @@ public final class ChannelListModesPane extends JPanel implements ActionListener
355 355
 
356 356
         final int selected = listModesMenu.getSelectedIndex();
357 357
         final int current = listModesPanels.get(selected).getModel().getSize();
358
-        final int maxModes = channel.getConnection().get().getParser().
358
+        final int maxModes = channel.getConnection().get().getParser().get().
359 359
                 getMaxListModes(listModesArray[selected]);
360 360
 
361 361
         if (maxModes == -1) {

+ 1
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicDisplayPane.java View File

@@ -101,7 +101,7 @@ public class TopicDisplayPane extends JPanel implements DocumentListener {
101 101
         this.clipboard = clipboard;
102 102
         this.channel = channel;
103 103
         this.parent = parent;
104
-        topicLengthMax = channel.getConnection().get().getParser().getMaxTopicLength();
104
+        topicLengthMax = channel.getConnection().get().getParser().get().getMaxTopicLength();
105 105
         this.channelWindow = channelWindow;
106 106
         this.eventBus = eventBus;
107 107
 

+ 1
- 1
windowstatus/src/com/dmdirc/addons/windowstatus/WindowStatusManager.java View File

@@ -196,7 +196,7 @@ public class WindowStatusManager implements ConfigChangeListener {
196 196
         textString.append(frame.getHost());
197 197
         final Optional<Connection> connection = frame.getConnection();
198 198
         if (showname && connection.isPresent()) {
199
-            final ClientInfo client = connection.get().getParser().getClient(frame.getHost());
199
+            final ClientInfo client = connection.get().getParser().get().getClient(frame.getHost());
200 200
             final String realname = client.getRealname();
201 201
             if (realname != null && !realname.isEmpty()) {
202 202
                 textString.append(" - ");

Loading…
Cancel
Save