Przeglądaj źródła

Fix wrapped users being totally wrong.

pull/464/head
Greg Holmes 9 lat temu
rodzic
commit
6266711f11

+ 26
- 62
src/com/dmdirc/Client.java Wyświetl plik

@@ -38,97 +38,61 @@ import java.util.Optional;
38 38
  */
39 39
 public class Client implements User {
40 40
 
41
-    private final Collection<GroupChat> groupChats;
42 41
     private final Connection connection;
43 42
     private final ClientInfo clientInfo;
44
-    private String nickname;
45
-    private Optional<String> username;
46
-    private Optional<String> hostname;
47
-    private Optional<String> realname;
48
-    private Optional<String> awayMessage;
49 43
 
50
-    public Client(final String nickname, final Connection connection, final ClientInfo clientInfo) {
51
-        this(nickname, connection, Optional.empty(), Optional.empty(), Optional.empty(), clientInfo);
52
-    }
53
-
54
-    public Client(final String nickname, final Connection connection,
55
-            final Optional<String> username,
56
-            final Optional<String> hostname,
57
-            final Optional<String> realname,
58
-            final ClientInfo clientInfo) {
59
-        this.nickname = nickname;
44
+    public Client(final Connection connection, final ClientInfo clientInfo) {
60 45
         this.connection = connection;
61
-        this.username = username;
62
-        this.hostname = hostname;
63
-        this.realname = realname;
64 46
         this.clientInfo = clientInfo;
65
-        groupChats = new ArrayList<>();
66
-        awayMessage = Optional.empty();
67 47
     }
68 48
 
69 49
     @Override
70 50
     public String getNickname() {
71
-        return nickname;
72
-    }
73
-
74
-    @Override
75
-    public void setNickname(final String nickname) {
76
-        this.nickname = nickname;
51
+        return clientInfo.getNickname();
77 52
     }
78 53
 
79 54
     @Override
80 55
     public Optional<String> getUsername() {
81
-        return username;
82
-    }
83
-
84
-    @Override
85
-    public void setUsername(final Optional<String> username) {
86
-        this.username = username;
56
+        if (clientInfo.getUsername().isEmpty()) {
57
+            return Optional.empty();
58
+        } else {
59
+            return Optional.of(clientInfo.getUsername());
60
+        }
87 61
     }
88 62
 
89 63
     @Override
90 64
     public Optional<String> getHostname() {
91
-        return hostname;
92
-    }
93
-
94
-    @Override
95
-    public void setHostname(final Optional<String> hostname) {
96
-        this.hostname = hostname;
65
+        if (clientInfo.getHostname().isEmpty()) {
66
+            return Optional.empty();
67
+        } else {
68
+            return Optional.of(clientInfo.getHostname());
69
+        }
97 70
     }
98 71
 
99 72
     @Override
100 73
     public Optional<String> getRealname() {
101
-        return realname;
102
-    }
103
-
104
-    @Override
105
-    public void setRealname(final Optional<String> realname) {
106
-        this.realname = realname;
74
+        if (clientInfo.getRealname().isEmpty()) {
75
+            return Optional.empty();
76
+        } else {
77
+            return Optional.of(clientInfo.getRealname());
78
+        }
107 79
     }
108 80
 
109 81
     @Override
110 82
     public Collection<GroupChat> getGroupChats() {
111
-        return Collections.unmodifiableCollection(groupChats);
112
-    }
113
-
114
-    @Override
115
-    public void addGroupChat(final GroupChat groupChat) {
116
-        groupChats.add(groupChat);
117
-    }
118
-
119
-    @Override
120
-    public void delGroupChat(final GroupChat groupChat) {
121
-        groupChats.remove(groupChat);
83
+        final Collection<GroupChat> channels = new ArrayList<>();
84
+        clientInfo.getChannelClients().forEach(c -> connection.getGroupChatManager()
85
+                .getChannel(c.getChannel().getName()).ifPresent(channels::add));
86
+        return Collections.unmodifiableCollection(channels);
122 87
     }
123 88
 
124 89
     @Override
125 90
     public Optional<String> getAwayMessage() {
126
-        return awayMessage;
127
-    }
128
-
129
-    @Override
130
-    public void setAwayMessage(final Optional<String> awayMessage) {
131
-        this.awayMessage = awayMessage;
91
+        if (clientInfo.getAwayReason().isEmpty()) {
92
+            return Optional.empty();
93
+        } else {
94
+            return Optional.of(clientInfo.getAwayReason());
95
+        }
132 96
     }
133 97
 
134 98
     @Override

+ 0
- 1
src/com/dmdirc/Query.java Wyświetl plik

@@ -228,7 +228,6 @@ public class Query extends FrameContainer implements PrivateActionListener,
228 228
 
229 229
             addLine(format, oldNick, client.getUsername(),
230 230
                     client.getHostname(), client.getNickname());
231
-            user.setNickname(client.getNickname());
232 231
             updateTitle();
233 232
 
234 233
             setName(client.getNickname());

+ 2
- 11
src/com/dmdirc/UserFactory.java Wyświetl plik

@@ -26,8 +26,6 @@ import com.dmdirc.interfaces.Connection;
26 26
 import com.dmdirc.interfaces.User;
27 27
 import com.dmdirc.parser.interfaces.ClientInfo;
28 28
 
29
-import java.util.Optional;
30
-
31 29
 import javax.inject.Inject;
32 30
 
33 31
 /**
@@ -39,14 +37,7 @@ public class UserFactory {
39 37
     public UserFactory() {
40 38
     }
41 39
 
42
-    public User getUser(final String nickname, final Connection connection,
43
-            final ClientInfo clientInfo) {
44
-        return new Client(nickname, connection, clientInfo);
45
-    }
46
-
47
-    public User getUser(final String nickname, final Connection connection,
48
-            final Optional<String> username, final Optional<String> hostname,
49
-            final Optional<String> realname, final ClientInfo clientInfo) {
50
-        return new Client(nickname, connection, username, hostname, realname, clientInfo);
40
+    public User getUser(final Connection connection, final ClientInfo clientInfo) {
41
+        return new Client(connection, clientInfo);
51 42
     }
52 43
 }

+ 1
- 5
src/com/dmdirc/UserManager.java Wyświetl plik

@@ -28,7 +28,6 @@ import com.dmdirc.parser.interfaces.ClientInfo;
28 28
 
29 29
 import java.util.HashMap;
30 30
 import java.util.Map;
31
-import java.util.Optional;
32 31
 
33 32
 import javax.inject.Inject;
34 33
 import javax.inject.Singleton;
@@ -49,10 +48,7 @@ public class UserManager {
49 48
     }
50 49
 
51 50
     public User getUserFromClientInfo(final ClientInfo client, final Connection connection) {
52
-        userCache.putIfAbsent(client, userFactory.getUser(client.getNickname(), connection,
53
-                Optional.ofNullable(client.getUsername()),
54
-                Optional.ofNullable(client.getHostname()),
55
-                Optional.ofNullable(client.getRealname()), client));
51
+        userCache.putIfAbsent(client, userFactory.getUser(connection,client));
56 52
         return userCache.get(client);
57 53
     }
58 54
 }

+ 0
- 49
src/com/dmdirc/interfaces/User.java Wyświetl plik

@@ -39,13 +39,6 @@ public interface User {
39 39
      */
40 40
     String getNickname();
41 41
 
42
-    /**
43
-     * Sets the nickname for this client.
44
-     *
45
-     * @param nickname New nickname for this client
46
-     */
47
-    void setNickname(final String nickname);
48
-
49 42
     /**
50 43
      * Retrieves the username or ident used by this client.
51 44
      *
@@ -53,13 +46,6 @@ public interface User {
53 46
      */
54 47
     Optional<String> getUsername();
55 48
 
56
-    /**
57
-     * Sets the username for this client.
58
-     *
59
-     * @param username New username
60
-     */
61
-    void setUsername(final Optional<String> username);
62
-
63 49
     /**
64 50
      * Retrieves the hostname that this client is connecting from.
65 51
      *
@@ -67,13 +53,6 @@ public interface User {
67 53
      */
68 54
     Optional<String> getHostname();
69 55
 
70
-    /**
71
-     * Sets the hostname for this client.
72
-     *
73
-     * @param hostname New hostname
74
-     */
75
-    void setHostname(final Optional<String> hostname);
76
-
77 56
     /**
78 57
      * Retrieves the full/real name of the client.
79 58
      *
@@ -81,13 +60,6 @@ public interface User {
81 60
      */
82 61
     Optional<String> getRealname();
83 62
 
84
-    /**
85
-     * Sets the realname for the client.
86
-     *
87
-     * @param realname New realname
88
-     */
89
-    void setRealname(final Optional<String> realname);
90
-
91 63
     /**
92 64
      * Retries the {@link GroupChat}s the client is a member of.
93 65
      *
@@ -95,20 +67,6 @@ public interface User {
95 67
      */
96 68
     Collection<GroupChat> getGroupChats();
97 69
 
98
-    /**
99
-     * Adds a {@link GroupChat} to the list of {@link GroupChat}s this user is on.
100
-     *
101
-     * @param groupChat GroupChat to add
102
-     */
103
-    void addGroupChat(final GroupChat groupChat);
104
-
105
-    /**
106
-     * Deletes a {@link GroupChat} from the list of {@link GroupChat}s this user is on.
107
-     *
108
-     * @param groupChat GroupChat to add
109
-     */
110
-    void delGroupChat(final GroupChat groupChat);
111
-
112 70
     /**
113 71
      * Returns the away message for the client, if the away message is empty the user is not away.
114 72
      *
@@ -116,13 +74,6 @@ public interface User {
116 74
      */
117 75
     Optional<String> getAwayMessage();
118 76
 
119
-    /**
120
-     * Sets the away message for the client.
121
-     *
122
-     * @param awayMessage Optional.empty if the user is not away, wrapped away reason if they are
123
-     */
124
-    void setAwayMessage(final Optional<String> awayMessage);
125
-
126 77
     /**
127 78
      * Returns the away state for this user.
128 79
      *

+ 1
- 4
test/com/dmdirc/ServerEventHandlerTest.java Wyświetl plik

@@ -83,10 +83,7 @@ public class ServerEventHandlerTest {
83 83
         when(server.getState()).thenReturn(ServerState.CONNECTED);
84 84
         when(parser.getCallbackManager()).thenReturn(callbackManager);
85 85
         when(server.getConnection()).thenReturn(Optional.ofNullable(server));
86
-        when(userFactory.getUser(anyString(), any(Connection.class), eq(clientInfo))).thenReturn(user);
87
-        when(userFactory.getUser(anyString(), any(Connection.class), Optional.of(anyString()),
88
-                        Optional.of(anyString()), Optional.of(anyString()), eq(clientInfo)))
89
-                .thenReturn(user);
86
+        when(userFactory.getUser(any(Connection.class), eq(clientInfo))).thenReturn(user);
90 87
         when(server.getUser(anyString())).thenReturn(user);
91 88
         when(server.getLocalUser()).thenReturn(Optional.of(user));
92 89
         final ServerEventHandler handler = new ServerEventHandler(server, groupChatManager,

Ładowanie…
Anuluj
Zapisz