Skip to content

Commit b83bf31

Browse files
committed
Sprint 1 과제 제출
1 parent 1f2dad9 commit b83bf31

File tree

12 files changed

+182
-124
lines changed

12 files changed

+182
-124
lines changed

some/path/1-sprint-mission.zip

20.6 KB
Binary file not shown.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.sprint.mission.discodeit.entity;
2+
3+
public class BaseEntity {
4+
protected final Long createdAt;
5+
protected Long updatedAt;
6+
7+
public BaseEntity() {
8+
long now = System.currentTimeMillis();
9+
this.createdAt = now;
10+
this.updatedAt = now;
11+
}
12+
13+
public Long getCreatedAt() {
14+
return createdAt;
15+
}
16+
17+
public Long getUpdatedAt() {
18+
return updatedAt;
19+
}
20+
21+
public void setUpdatedAt() {
22+
this.updatedAt = System.currentTimeMillis();
23+
}
24+
}

some/path/1-sprint-mission/src/main/java/com/sprint/mission/discodeit/entity/Channel.java

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@
77
import java.util.UUID;
88
import java.util.stream.Collectors;
99

10-
public class Channel {
10+
public class Channel extends BaseEntity {
1111
private final UUID channelId;
12-
private final Long createdAt;
13-
private final List<User> channelsUsers;
14-
private final List<Message> channelsMessages;
15-
private Long updatedAt;
12+
private List<User> users;
13+
private List<Message> messages;
1614
private String channelName;
1715

1816

1917
@Override
2018
public String toString() {
21-
String userNames = channelsUsers.stream()
19+
String userNames = users.stream()
2220
.map(User::getUserName)
2321
.collect(Collectors.joining(", "));
2422
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
@@ -36,25 +34,45 @@ public String toString() {
3634
public Channel(String channelName, User user) {
3735
channelId = UUID.randomUUID();
3836
this.channelName = channelName;
39-
this.createdAt = System.currentTimeMillis();
40-
this.updatedAt = System.currentTimeMillis();
41-
channelsUsers = new ArrayList<>();
42-
channelsUsers.add(user);
43-
channelsMessages = new ArrayList<>();
44-
user.getUsersChannels().add(this);
37+
users = new ArrayList<>();
38+
users.add(user);
39+
messages = new ArrayList<>();
40+
user.getchannels().add(this);
4541
}
4642

43+
public void addUser(User user) {
44+
if(!users.contains(user)) {
45+
users.add(user);
46+
user.addChannel(this);
47+
}
48+
}
49+
public void removeUser(User user) {
50+
if(users.contains(user)) {
51+
users.remove(user);
52+
user.removeChannel(this);
53+
}
54+
}
4755

48-
public void setUpdatedAt() {
49-
this.updatedAt = System.currentTimeMillis();
56+
public void addMessage(Message message) {
57+
if(!messages.contains(message)) {
58+
messages.add(message);
59+
message.addChannel(this);
60+
}
5061
}
62+
public void removeMessage(Message message) {
63+
if(messages.contains(message)) {
64+
messages.remove(message);
65+
message.removeChannel(this);
66+
}
67+
}
68+
5169

5270
public void setChannelName(String channelName) {
5371
this.channelName = channelName;
5472
}
5573

5674
public List<Message> getChannelMessages() {
57-
return channelsMessages;
75+
return messages;
5876
}
5977

6078
public UUID getChannelId() {
@@ -73,8 +91,8 @@ public Long getUpdatedAt() {
7391
return updatedAt;
7492
}
7593

76-
public List<User> getChannelsUsers() {
77-
return channelsUsers;
94+
public List<User> getUsers() {
95+
return users;
7896
}
7997

8098
}

some/path/1-sprint-mission/src/main/java/com/sprint/mission/discodeit/entity/Message.java

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
import java.util.Date;
55
import java.util.UUID;
66

7-
public class Message {
7+
public class Message extends BaseEntity {
88
private final UUID messageId;
9-
private final User user;
10-
private final Channel channel;
11-
private final Long createdAt;
12-
private Long updatedAt;
9+
private User user;
10+
private Channel channel;
1311
private String contents;
1412

1513

@@ -33,15 +31,35 @@ public Message(String messageContents, User user, Channel channel) {
3331
this.contents = messageContents;
3432
this.user = user;
3533
this.channel = channel;
36-
this.createdAt = System.currentTimeMillis();
37-
this.updatedAt = System.currentTimeMillis();
38-
user.getUsersMessages().add(this);
34+
user.getmessages().add(this);
3935
channel.getChannelMessages().add(this);
4036
}
4137

38+
public void addChannel(Channel channel) {
39+
if(this.channel == null) {
40+
this.channel = channel;
41+
channel.addMessage(this);
42+
}
43+
}
44+
45+
public void removeChannel(Channel channel) {
46+
if(this.channel != channel) {
47+
this.channel = null;
48+
channel.removeMessage(this);
49+
}
50+
}
4251

43-
public void setUpdatedAt() {
44-
this.updatedAt = System.currentTimeMillis();
52+
public void addUser(User user) {
53+
if(this.user == null) {
54+
this.user = user;
55+
user.addMessage(this);
56+
}
57+
}
58+
public void removeUser(User user) {
59+
if(this.user != user) {
60+
this.user = null;
61+
user.removeMessage(this);
62+
}
4563
}
4664

4765
public void setContents(String contents) {
@@ -64,11 +82,4 @@ public Channel getChannel() {
6482
return channel;
6583
}
6684

67-
public Long getUpdatedAt() {
68-
return updatedAt;
69-
}
70-
71-
public Long getCreatedAt() {
72-
return createdAt;
73-
}
7485
}

some/path/1-sprint-mission/src/main/java/com/sprint/mission/discodeit/entity/User.java

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77
import java.util.UUID;
88
import java.util.stream.Collectors;
99

10-
public class User {
10+
public class User extends BaseEntity {
1111
private final UUID userId;
12-
private final Long createdAt;
13-
private final List<Channel> usersChannels;
14-
private final List<Message> usersMessages;
15-
private Long updatedAt;
12+
private final List<Channel> channels;
13+
private final List<Message> messages;
1614
private String userName;
1715

1816
@Override
1917
public String toString() {
20-
String channelNames = usersChannels.stream()
18+
String channelNames = channels.stream()
2119
.map(Channel::getChannelName)
2220
.collect(Collectors.joining(", "));
2321
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
@@ -26,7 +24,7 @@ public String toString() {
2624

2725
return "User{" +"\n"+
2826
"userName=" + userName +"\n"+
29-
"UsersChannels=" + channelNames +"\n"+
27+
"channels=" + channelNames +"\n"+
3028
"createdAt=" + created +"\n"+
3129
"updatedAt=" + updated +"\n"+
3230
'}'+"\n";
@@ -35,24 +33,45 @@ public String toString() {
3533
public User(String userName) {
3634
this.userId = UUID.randomUUID();
3735
this.userName = userName;
38-
createdAt = System.currentTimeMillis();
39-
updatedAt = System.currentTimeMillis();
40-
usersChannels = new ArrayList<>();
41-
usersMessages = new ArrayList<>();
36+
channels = new ArrayList<>();
37+
messages = new ArrayList<>();
4238
}
4339

40+
public void addChannel(Channel channel) {
41+
if(!channels.contains(channel)) {
42+
channels.add(channel);
43+
channel.addUser(this);
44+
}
45+
}
46+
public void removeChannel(Channel channel) {
47+
if(channels.contains(channel)) {
48+
channels.remove(channel);
49+
channel.removeUser(this);
50+
}
51+
}
4452

45-
public void setUpdatedAt() {
46-
this.updatedAt = System.currentTimeMillis();;
53+
public void addMessage(Message message) {
54+
if(!messages.contains(message)) {
55+
messages.add(message);
56+
message.addUser(this);
57+
}
58+
}
59+
public void removeMessage(Message message) {
60+
if(messages.contains(message)) {
61+
messages.remove(message);
62+
message.removeUser(this);
63+
}
64+
}
65+
public void removeAllMessages(){
66+
messages.clear();
4767
}
4868

4969
public void setUserName(String userName) {
5070
this.userName = userName;
5171
}
5272

53-
54-
public List<Message> getUsersMessages() {
55-
return usersMessages;
73+
public List<Message> getmessages() {
74+
return messages;
5675
}
5776

5877
public UUID getUserId() {
@@ -63,16 +82,8 @@ public String getUserName() {
6382
return userName;
6483
}
6584

66-
public Long getCreatedAt() {
67-
return createdAt;
68-
}
69-
70-
public Long getUpdatedAt() {
71-
return updatedAt;
72-
}
73-
74-
public List<Channel> getUsersChannels() {
75-
return usersChannels;
85+
public List<Channel> getchannels() {
86+
return channels;
7687
}
7788

7889
}

0 commit comments

Comments
 (0)