Skip to content

Commit de511c5

Browse files
committed
Split out DefaultModeInfo - What was it doing in there?
1 parent 54cffbf commit de511c5

File tree

4 files changed

+107
-72
lines changed

4 files changed

+107
-72
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
/*
2+
* * Copyright (C) 2013-2019 Matt Baxter https://kitteh.org
3+
*
4+
* Permission is hereby granted, free of charge, to any person
5+
* obtaining a copy of this software and associated documentation
6+
* files (the "Software"), to deal in the Software without
7+
* restriction, including without limitation the rights to use, copy,
8+
* modify, merge, publish, distribute, sublicense, and/or sell copies
9+
* of the Software, and to permit persons to whom the Software is
10+
* furnished to do so, subject to the following conditions:
11+
*
12+
* The above copyright notice and this permission notice shall be
13+
* included in all copies or substantial portions of the Software.
14+
*
15+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19+
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20+
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21+
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
package org.kitteh.irc.client.library.defaults.element.mode;
25+
26+
import org.checkerframework.checker.nullness.qual.NonNull;
27+
import org.checkerframework.checker.nullness.qual.Nullable;
28+
import org.kitteh.irc.client.library.Client;
29+
import org.kitteh.irc.client.library.element.Channel;
30+
import org.kitteh.irc.client.library.element.mode.ChannelMode;
31+
import org.kitteh.irc.client.library.element.mode.ModeInfo;
32+
import org.kitteh.irc.client.library.util.Mask;
33+
import org.kitteh.irc.client.library.util.ToStringer;
34+
35+
import java.time.Instant;
36+
import java.util.Optional;
37+
38+
/**
39+
* A default ModeInfo implementation.
40+
*/
41+
public class DefaultModeInfo implements ModeInfo {
42+
private final Client client;
43+
private final Instant creationTime;
44+
private final String creator;
45+
private final Channel channel;
46+
private final Mask mask;
47+
private final ChannelMode mode;
48+
49+
/**
50+
* Constructs the mode info.
51+
*
52+
* @param client the client
53+
* @param channel channel
54+
* @param mode mode
55+
* @param mask mask
56+
* @param creator creator, if known
57+
* @param creationTime creation time, if known
58+
*/
59+
public DefaultModeInfo(@NonNull Client client, @NonNull Channel channel, @NonNull ChannelMode mode, @NonNull String mask, @Nullable String creator, @Nullable Instant creationTime) {
60+
this.client = client;
61+
this.creator = creator;
62+
this.channel = channel;
63+
this.mask = Mask.fromString(mask);
64+
this.creationTime = creationTime;
65+
this.mode = mode;
66+
}
67+
68+
@Override
69+
public @NonNull Optional<String> getCreator() {
70+
return Optional.ofNullable(this.creator);
71+
}
72+
73+
@Override
74+
public @NonNull Channel getChannel() {
75+
return this.channel;
76+
}
77+
78+
@Override
79+
public @NonNull Client getClient() {
80+
return this.client;
81+
}
82+
83+
@Override
84+
public @NonNull Mask getMask() {
85+
return this.mask;
86+
}
87+
88+
@Override
89+
public @NonNull ChannelMode getMode() {
90+
return this.mode;
91+
}
92+
93+
@Override
94+
public @NonNull Optional<Instant> getCreationTime() {
95+
return Optional.ofNullable(this.creationTime);
96+
}
97+
98+
@Override
99+
public @NonNull
100+
String toString() {
101+
return new ToStringer(this).add("client", this.client).add("channel", this.channel).add("mode", this.mode).add("mask", this.mask).add("creator", this.creator).add("creationTime", this.creationTime).toString();
102+
}
103+
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/AbstractModeInfoListenerBase.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import org.checkerframework.checker.nullness.qual.NonNull;
2727
import org.kitteh.irc.client.library.Client;
28+
import org.kitteh.irc.client.library.defaults.element.mode.DefaultModeInfo;
2829
import org.kitteh.irc.client.library.element.Channel;
2930
import org.kitteh.irc.client.library.element.ServerMessage;
3031
import org.kitteh.irc.client.library.element.mode.ChannelMode;
@@ -92,7 +93,7 @@ protected void modeInfoList(@NonNull ClientReceiveNumericEvent event, @NonNull S
9293
}
9394
Optional<ChannelMode> channelMode = this.getClient().getServerInfo().getChannelMode(mode);
9495
if (channelMode.isPresent()) {
95-
infoList.add(new ModeInfo.DefaultModeInfo(this.getClient(), channel.get(), channelMode.get(), event.getParameters().get((2 + offset)), creator, creationTime));
96+
infoList.add(new DefaultModeInfo(this.getClient(), channel.get(), channelMode.get(), event.getParameters().get((2 + offset)), creator, creationTime));
9697
} else {
9798
this.trackException(event, name + " can't list if there's no '" + mode + "' mode");
9899
}

src/main/java/org/kitteh/irc/client/library/defaults/listener/DefaultModeListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
import net.engio.mbassy.listener.Handler;
2727
import org.checkerframework.checker.nullness.qual.NonNull;
2828
import org.kitteh.irc.client.library.Client;
29+
import org.kitteh.irc.client.library.defaults.element.mode.DefaultModeInfo;
2930
import org.kitteh.irc.client.library.defaults.element.mode.DefaultModeStatusList;
3031
import org.kitteh.irc.client.library.element.Channel;
3132
import org.kitteh.irc.client.library.element.mode.ChannelMode;
32-
import org.kitteh.irc.client.library.element.mode.ModeInfo;
3333
import org.kitteh.irc.client.library.element.mode.ModeStatusList;
3434
import org.kitteh.irc.client.library.element.mode.UserMode;
3535
import org.kitteh.irc.client.library.event.channel.ChannelModeEvent;
@@ -109,7 +109,7 @@ public void mode(ClientReceiveCommandEvent event) {
109109
statusList.getAll().stream()
110110
.filter(status -> status.getMode().getType() == ChannelMode.Type.A_MASK)
111111
.forEach(status -> this.getTracker().trackChannelModeInfo(channel.getName(), status.isSetting(),
112-
new ModeInfo.DefaultModeInfo(this.getClient(), channel, status.getMode(), status.getParameter().get(), event.getActor().getName(), Instant.now())
112+
new DefaultModeInfo(this.getClient(), channel, status.getMode(), status.getParameter().get(), event.getActor().getName(), Instant.now())
113113
));
114114
this.getTracker().updateChannelModes(channel.getName(), statusList);
115115
} else {

src/main/java/org/kitteh/irc/client/library/element/mode/ModeInfo.java

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@
2424
package org.kitteh.irc.client.library.element.mode;
2525

2626
import org.checkerframework.checker.nullness.qual.NonNull;
27-
import org.checkerframework.checker.nullness.qual.Nullable;
28-
import org.kitteh.irc.client.library.Client;
2927
import org.kitteh.irc.client.library.command.ChannelModeCommand;
3028
import org.kitteh.irc.client.library.element.Channel;
3129
import org.kitteh.irc.client.library.element.ClientLinked;
3230
import org.kitteh.irc.client.library.util.Mask;
33-
import org.kitteh.irc.client.library.util.ToStringer;
3431

3532
import java.time.Instant;
3633
import java.util.Optional;
@@ -39,72 +36,6 @@
3936
* Represents a type A mode information entry.
4037
*/
4138
public interface ModeInfo extends ClientLinked {
42-
/**
43-
* A default ModeInfo implementation.
44-
*/
45-
class DefaultModeInfo implements ModeInfo {
46-
private final Client client;
47-
private final Instant creationTime;
48-
private final String creator;
49-
private final Channel channel;
50-
private final Mask mask;
51-
private final ChannelMode mode;
52-
53-
/**
54-
* Constructs the mode info.
55-
*
56-
* @param client the client
57-
* @param channel channel
58-
* @param mode mode
59-
* @param mask mask
60-
* @param creator creator, if known
61-
* @param creationTime creation time, if known
62-
*/
63-
public DefaultModeInfo(@NonNull Client client, @NonNull Channel channel, @NonNull ChannelMode mode, @NonNull String mask, @Nullable String creator, @Nullable Instant creationTime) {
64-
this.client = client;
65-
this.creator = creator;
66-
this.channel = channel;
67-
this.mask = Mask.fromString(mask);
68-
this.creationTime = creationTime;
69-
this.mode = mode;
70-
}
71-
72-
@Override
73-
public @NonNull Optional<String> getCreator() {
74-
return Optional.ofNullable(this.creator);
75-
}
76-
77-
@Override
78-
public @NonNull Channel getChannel() {
79-
return this.channel;
80-
}
81-
82-
@Override
83-
public @NonNull Client getClient() {
84-
return this.client;
85-
}
86-
87-
@Override
88-
public @NonNull Mask getMask() {
89-
return this.mask;
90-
}
91-
92-
@Override
93-
public @NonNull ChannelMode getMode() {
94-
return this.mode;
95-
}
96-
97-
@Override
98-
public @NonNull Optional<Instant> getCreationTime() {
99-
return Optional.ofNullable(this.creationTime);
100-
}
101-
102-
@Override
103-
public @NonNull String toString() {
104-
return new ToStringer(this).add("client", this.client).add("channel", this.channel).add("mode", this.mode).add("mask", this.mask).add("creator", this.creator).add("creationTime", this.creationTime).toString();
105-
}
106-
}
107-
10839
/**
10940
* Gets the name of the party listed as creating the entry. This may be a
11041
* nickname, a service name, a server name, etc.

0 commit comments

Comments
 (0)