ソースを参照

Tidy up a load of com.dmdirc classes.

pull/111/head
Chris Smith 9年前
コミット
78093e4dac

+ 7
- 14
src/com/dmdirc/Channel.java ファイルの表示

@@ -58,6 +58,7 @@ import java.util.Collection;
58 58
 import java.util.Collections;
59 59
 import java.util.List;
60 60
 import java.util.Map;
61
+import java.util.stream.Collectors;
61 62
 
62 63
 import javax.annotation.Nonnull;
63 64
 
@@ -136,8 +137,7 @@ public class Channel extends MessageTarget implements GroupChat {
136 137
 
137 138
         getConfigManager().getBinder().bind(this, Channel.class);
138 139
 
139
-        topics = new RollingList<>(getConfigManager().getOptionInt("channel",
140
-                "topichistorysize"));
140
+        topics = new RollingList<>(getConfigManager().getOptionInt("channel", "topichistorysize"));
141 141
 
142 142
         eventHandler = new ChannelEventHandler(this, getEventBus());
143 143
 
@@ -359,10 +359,8 @@ public class Channel extends MessageTarget implements GroupChat {
359 359
 
360 360
         getTabCompleter().clear(TabCompletionType.CHANNEL_NICK);
361 361
 
362
-        for (ChannelClientInfo client : clients) {
363
-            getTabCompleter().addEntry(TabCompletionType.CHANNEL_NICK,
364
-                    client.getClient().getNickname());
365
-        }
362
+        getTabCompleter().addEntries(TabCompletionType.CHANNEL_NICK,
363
+            clients.stream().map(c -> c.getClient().getNickname()).collect(Collectors.toList()));
366 364
     }
367 365
 
368 366
     /**
@@ -498,14 +496,9 @@ public class Channel extends MessageTarget implements GroupChat {
498 496
         }
499 497
         updateTitle();
500 498
 
501
-        new Thread(new Runnable() {
502
-
503
-            @Override
504
-            public void run() {
505
-                listenerList.getCallable(TopicChangeListener.class)
506
-                        .topicChanged(Channel.this, topic);
507
-            }
508
-        }, "Topic change listener runner").start();
499
+        new Thread(
500
+                () -> listenerList.getCallable(TopicChangeListener.class).topicChanged(this, topic),
501
+                "Topic change listener runner").start();
509 502
     }
510 503
 
511 504
     @Override

+ 4
- 17
src/com/dmdirc/ChannelMap.java ファイルの表示

@@ -112,18 +112,14 @@ public class ChannelMap {
112 112
      * Closes all channels in the map.
113 113
      */
114 114
     public void closeAll() {
115
-        for (Channel channel : channels.values()) {
116
-            channel.close();
117
-        }
115
+        channels.values().forEach(Channel::close);
118 116
     }
119 117
 
120 118
     /**
121 119
      * Resets the state of all channels in the map.
122 120
      */
123 121
     public void resetAll() {
124
-        for (Channel channel : channels.values()) {
125
-            channel.resetWindow();
126
-        }
122
+        channels.values().forEach(Channel::resetWindow);
127 123
     }
128 124
 
129 125
     /**
@@ -134,9 +130,7 @@ public class ChannelMap {
134 130
      * @param args        The arguments for the message.
135 131
      */
136 132
     public void addLineToAll(final String messageType, final Date date, final Object... args) {
137
-        for (Channel channel : channels.values()) {
138
-            channel.addLine(messageType, date, args);
139
-        }
133
+        channels.values().forEach(c -> c.addLine(messageType, date, args));
140 134
     }
141 135
 
142 136
     /**
@@ -157,14 +151,7 @@ public class ChannelMap {
157 151
      * @return A new runnable.
158 152
      */
159 153
     public Runnable getWhoRunnable() {
160
-        return new Runnable() {
161
-            @Override
162
-            public void run() {
163
-                for (Channel channel : channels.values()) {
164
-                    channel.checkWho();
165
-                }
166
-            }
167
-        };
154
+        return () -> channels.values().forEach(Channel::checkWho);
168 155
     }
169 156
 
170 157
 }

+ 1
- 1
src/com/dmdirc/EventHandler.java ファイルの表示

@@ -55,7 +55,7 @@ public abstract class EventHandler implements CallbackInterface {
55 55
         final CallbackManager cbm = getConnection().getParser().getCallbackManager();
56 56
 
57 57
         try {
58
-            for (Class<?> iface : this.getClass().getInterfaces()) {
58
+            for (Class<?> iface : getClass().getInterfaces()) {
59 59
                 if (CallbackInterface.class.isAssignableFrom(iface)) {
60 60
                     addCallback(cbm, iface.asSubclass(CallbackInterface.class));
61 61
                 }

+ 1
- 13
src/com/dmdirc/FrameContainer.java ファイルの表示

@@ -89,7 +89,7 @@ public abstract class FrameContainer {
89 89
     /** The config manager for this container. */
90 90
     private final AggregateConfigProvider configManager;
91 91
     /** The IconChanger for this container. */
92
-    private final IconChanger changer = new IconChanger();
92
+    private final ConfigChangeListener changer = (d, k) -> iconUpdated();
93 93
     /** The UI components that this frame requires. */
94 94
     private final Set<String> components;
95 95
     /** The styliser used by this container. */
@@ -727,16 +727,4 @@ public abstract class FrameContainer {
727 727
         // composition should override this.
728 728
     }
729 729
 
730
-    /**
731
-     * Updates the icon of this frame if its config setting is changed.
732
-     */
733
-    private class IconChanger implements ConfigChangeListener {
734
-
735
-        @Override
736
-        public void configChanged(final String domain, final String key) {
737
-            iconUpdated();
738
-        }
739
-
740
-    }
741
-
742 730
 }

+ 1
- 1
src/com/dmdirc/Invite.java ファイルの表示

@@ -67,7 +67,7 @@ public class Invite {
67 67
      *
68 68
      * @return This invite's source
69 69
      *
70
-     * @see Server#parseHostmask(java.lang.String)
70
+     * @see Server#parseHostmask(String)
71 71
      */
72 72
     public String[] getSource() {
73 73
         return connection.parseHostmask(source);

+ 1
- 1
src/com/dmdirc/LauncherUtils.java ファイルの表示

@@ -43,7 +43,7 @@ public class LauncherUtils {
43 43
         final BaseDirectoryLocator locator = new BaseDirectoryLocator();
44 44
         cliParser.parse(args);
45 45
         final String configDirectory = cliParser.getConfigDirectory();
46
-        return (configDirectory == null ? locator.getDefaultBaseDirectory() : configDirectory);
46
+        return configDirectory == null ? locator.getDefaultBaseDirectory() : configDirectory;
47 47
     }
48 48
 
49 49
     /**

+ 8
- 16
src/com/dmdirc/Main.java ファイルの表示

@@ -43,6 +43,7 @@ import com.dmdirc.logger.Logger;
43 43
 import com.dmdirc.plugins.CorePluginExtractor;
44 44
 import com.dmdirc.plugins.PluginManager;
45 45
 import com.dmdirc.plugins.Service;
46
+import com.dmdirc.plugins.ServiceManager;
46 47
 import com.dmdirc.plugins.ServiceProvider;
47 48
 import com.dmdirc.ui.WarningDialog;
48 49
 
@@ -185,9 +186,7 @@ public class Main {
185 186
 
186 187
         doFirstRun();
187 188
 
188
-        for (SystemLifecycleComponent component : lifecycleComponents) {
189
-            component.startUp();
190
-        }
189
+        lifecycleComponents.forEach(SystemLifecycleComponent::startUp);
191 190
 
192 191
         actionManager.initialise(colourActionComparison);
193 192
         pluginManager.doAutoLoad();
@@ -198,18 +197,11 @@ public class Main {
198 197
 
199 198
         globalWindowManager.init();
200 199
 
201
-        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
202
-
203
-            @Override
204
-            public void run() {
205
-                for (SystemLifecycleComponent component : lifecycleComponents) {
206
-                    component.shutDown();
207
-                }
208
-
209
-                eventBus.publishAsync(new ClientClosedEvent());
210
-                connectionManager.disconnectAll("Unexpected shutdown");
211
-                identityManager.saveAll();
212
-            }
200
+        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
201
+            lifecycleComponents.forEach(SystemLifecycleComponent::shutDown);
202
+            eventBus.publishAsync(new ClientClosedEvent());
203
+            connectionManager.disconnectAll("Unexpected shutdown");
204
+            identityManager.saveAll();
213 205
         }, "Shutdown thread"));
214 206
     }
215 207
 
@@ -252,7 +244,7 @@ public class Main {
252 244
      *
253 245
      * @param pm The plugin manager to use to load plugins
254 246
      */
255
-    protected void loadUIs(final PluginManager pm) {
247
+    protected void loadUIs(final ServiceManager pm) {
256 248
         final List<Service> uis = pm.getServicesByType("ui");
257 249
 
258 250
         // First try: go for our desired service type

+ 5
- 7
src/com/dmdirc/MissingModeAliasException.java ファイルの表示

@@ -24,8 +24,6 @@ package com.dmdirc;
24 24
 
25 25
 import com.dmdirc.parser.interfaces.Parser;
26 26
 
27
-import java.util.List;
28
-
29 27
 /**
30 28
  * An exception detailing the missing modes aliases and supporting information.
31 29
  */
@@ -44,17 +42,17 @@ public class MissingModeAliasException extends Exception {
44 42
      */
45 43
     public MissingModeAliasException(final String network, final Parser parser,
46 44
             final String modeAliasesVersion, final String missingModes) {
47
-        super(missingModes + "\n"
48
-                + "Network: " + network + "\n"
49
-                + "IRCd: " + parser.getServerSoftware() + "\n"
45
+        super(missingModes + '\n'
46
+                + "Network: " + network + '\n'
47
+                + "IRCd: " + parser.getServerSoftware() + '\n'
50 48
                 + " (" + parser.getServerSoftwareType() + " )\n"
51 49
                 + "Mode alias version: "
52
-                + modeAliasesVersion + "\n"
50
+                + modeAliasesVersion + '\n'
53 51
                 + "Extra info: \n"
54 52
                 + arrayListToString(parser.getServerInformationLines()) + "\n\n");
55 53
     }
56 54
 
57
-    private static String arrayListToString(final List<String> lines) {
55
+    private static String arrayListToString(final Iterable<String> lines) {
58 56
         final StringBuilder sb = new StringBuilder();
59 57
 
60 58
         for (String line : lines) {

+ 14
- 27
src/com/dmdirc/Server.java ファイルの表示

@@ -473,15 +473,12 @@ public class Server extends FrameContainer implements ConfigChangeListener,
473 473
 
474 474
             handleNotification("connectRetry", getAddress(), delay / 1000);
475 475
 
476
-            reconnectTimerFuture = executorService.schedule(new Runnable() {
477
-                @Override
478
-                public void run() {
479
-                    synchronized (myStateLock) {
480
-                        LOG.debug("Reconnect task executing, state: {}", myState.getState());
481
-                        if (myState.getState() == ServerState.RECONNECT_WAIT) {
482
-                            myState.transition(ServerState.TRANSIENTLY_DISCONNECTED);
483
-                            reconnect();
484
-                        }
476
+            reconnectTimerFuture = executorService.schedule(() -> {
477
+                synchronized (myStateLock) {
478
+                    LOG.debug("Reconnect task executing, state: {}", myState.getState());
479
+                    if (myState.getState() == ServerState.RECONNECT_WAIT) {
480
+                        myState.transition(ServerState.TRANSIENTLY_DISCONNECTED);
481
+                        reconnect();
485 482
                     }
486 483
                 }
487 484
             }, delay, TimeUnit.MILLISECONDS);
@@ -634,9 +631,7 @@ public class Server extends FrameContainer implements ConfigChangeListener,
634 631
      * Closes all open query windows associated with this server.
635 632
      */
636 633
     private void closeQueries() {
637
-        for (Query query : new ArrayList<>(queries.values())) {
638
-            query.close();
639
-        }
634
+        new ArrayList<>(queries.values()).forEach(Query::close);
640 635
     }
641 636
 
642 637
     /**
@@ -904,7 +899,7 @@ public class Server extends FrameContainer implements ConfigChangeListener,
904 899
             parserLock.readLock().lock();
905 900
             if (parser == null) {
906 901
                 throw new IllegalStateException("getNetwork called when "
907
-                        + "parser is null (state: " + getState() + ")");
902
+                        + "parser is null (state: " + getState() + ')');
908 903
             } else if (parser.getNetworkName().isEmpty()) {
909 904
                 return getNetworkFromServerName(parser.getServerName());
910 905
             } else {
@@ -1552,20 +1547,12 @@ public class Server extends FrameContainer implements ConfigChangeListener,
1552 1547
 
1553 1548
         awayMessage = message;
1554 1549
 
1555
-        new Thread(new Runnable() {
1556
-
1557
-            @Override
1558
-            public void run() {
1559
-                synchronized (listeners) {
1560
-                    if (message == null) {
1561
-                        for (AwayStateListener listener : listeners.get(AwayStateListener.class)) {
1562
-                            listener.onBack();
1563
-                        }
1564
-                    } else {
1565
-                        for (AwayStateListener listener : listeners.get(AwayStateListener.class)) {
1566
-                            listener.onAway(message);
1567
-                        }
1568
-                    }
1550
+        new Thread(() -> {
1551
+            synchronized (listeners) {
1552
+                if (message == null) {
1553
+                    listeners.get(AwayStateListener.class).forEach(AwayStateListener::onBack);
1554
+                } else {
1555
+                    listeners.get(AwayStateListener.class).forEach(a -> a.onAway(message));
1569 1556
                 }
1570 1557
             }
1571 1558
         }, "Away state listener runner").start();

+ 7
- 11
src/com/dmdirc/ServerManager.java ファイルの表示

@@ -42,6 +42,7 @@ import java.net.URISyntaxException;
42 42
 import java.util.ArrayList;
43 43
 import java.util.Collection;
44 44
 import java.util.List;
45
+import java.util.Optional;
45 46
 import java.util.Set;
46 47
 import java.util.concurrent.CopyOnWriteArraySet;
47 48
 import java.util.concurrent.Executors;
@@ -145,7 +146,7 @@ public class ServerManager implements ConnectionManager {
145 146
 
146 147
     @Override
147 148
     public List<Connection> getConnections() {
148
-        return new ArrayList<Connection>(servers);
149
+        return new ArrayList<>(servers);
149 150
     }
150 151
 
151 152
     @Override
@@ -184,21 +185,16 @@ public class ServerManager implements ConnectionManager {
184 185
     @Override
185 186
     public Connection connectToAddress(final URI uri, final ConfigProvider profile) {
186 187
         checkArgument(profile.isProfile());
187
-        Connection server = null;
188
+        final Optional<Server> existingServer = servers.stream()
189
+                .filter(s -> s.compareURI(uri)).findAny();
188 190
 
189
-        for (Server loopServer : servers) {
190
-            if (loopServer.compareURI(uri)) {
191
-                server = loopServer;
192
-                break;
193
-            }
194
-        }
195
-
196
-        if (server == null) {
197
-            server = createServer(uri, profile);
191
+        if (!existingServer.isPresent()) {
192
+            final Server server = createServer(uri, profile);
198 193
             server.connect();
199 194
             return server;
200 195
         }
201 196
 
197
+        final Server server = existingServer.get();
202 198
         if (server.getState().isDisconnected()) {
203 199
             server.connect(uri, profile);
204 200
         } else {

+ 1
- 0
src/com/dmdirc/interfaces/config/ConfigChangeListener.java ファイルの表示

@@ -25,6 +25,7 @@ package com.dmdirc.interfaces.config;
25 25
 /**
26 26
  * Defines the method required for config change listeners.
27 27
  */
28
+@FunctionalInterface
28 29
 public interface ConfigChangeListener {
29 30
 
30 31
     /**

読み込み中…
キャンセル
保存