Skip to content
This repository was archived by the owner on Sep 19, 2021. It is now read-only.

Commit cbe4633

Browse files
committed
Made Uuid a class
Before Uuid was an interface, but every implementation was the same. Every time someone made implemented Uuid, they would have to call Uuids.complete on it to fill in the missing functions. Making Uuid a class solves all these problems as all the methods will be implemented correctly and there only needs to be one implementation. Generators are still sepearate.
1 parent 642100f commit cbe4633

36 files changed

Lines changed: 350 additions & 504 deletions

src/codeu/chat/RelayMain.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@
1919
import java.io.IOException;
2020

2121
import codeu.chat.common.Secret;
22-
import codeu.chat.common.Uuid;
23-
import codeu.chat.common.Uuids;
2422
import codeu.chat.relay.Server;
2523
import codeu.chat.relay.ServerFrontEnd;
2624
import codeu.chat.util.Logger;
2725
import codeu.chat.util.Timeline;
26+
import codeu.chat.util.Uuid;
2827
import codeu.chat.util.connections.Connection;
2928
import codeu.chat.util.connections.ConnectionSource;
3029
import codeu.chat.util.connections.ServerConnectionSource;
@@ -71,7 +70,7 @@ public static void main(String[] args) {
7170
}
7271

7372
private static void startRelay(Server relay, ConnectionSource source) {
74-
73+
7574
final ServerFrontEnd frontEnd = new ServerFrontEnd(relay);
7675
LOG.info("Relay front end object created.");
7776

@@ -127,7 +126,7 @@ private static void loadTeamInfo(Server relay, String file) {
127126
// this line that it is not worth trying to handle ahead of time.
128127
// So instead just try to parse it and catch any exception.
129128

130-
final Uuid id = Uuids.fromString(tokens[0].trim());
129+
final Uuid id = Uuid.fromString(tokens[0].trim());
131130
final byte[] secret = Secret.parse(tokens[1].trim());
132131

133132
relay.addTeam(id, secret);

src/codeu/chat/ServerMain.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,12 @@
1919

2020
import codeu.chat.common.Relay;
2121
import codeu.chat.common.Secret;
22-
import codeu.chat.common.Uuid;
23-
import codeu.chat.common.Uuids;
2422
import codeu.chat.server.NoOpRelay;
2523
import codeu.chat.server.RemoteRelay;
2624
import codeu.chat.server.Server;
2725
import codeu.chat.util.Logger;
2826
import codeu.chat.util.RemoteAddress;
27+
import codeu.chat.util.Uuid;
2928
import codeu.chat.util.connections.ClientConnectionSource;
3029
import codeu.chat.util.connections.Connection;
3130
import codeu.chat.util.connections.ConnectionSource;
@@ -47,7 +46,7 @@ public static void main(String[] args) {
4746

4847
LOG.info("============================= START OF LOG =============================");
4948

50-
final Uuid id = Uuids.fromString(args[0]);
49+
final Uuid id = Uuid.fromString(args[0]);
5150
final byte[] secret = Secret.parse(args[1]);
5251

5352
final int myPort = Integer.parseInt(args[2]);

src/codeu/chat/client/ClientConversation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
import codeu.chat.common.Conversation;
2222
import codeu.chat.common.ConversationSummary;
23-
import codeu.chat.common.Uuid;
2423
import codeu.chat.util.Logger;
2524
import codeu.chat.util.Method;
25+
import codeu.chat.util.Uuid;
2626
import codeu.chat.util.store.Store;
2727

2828
public final class ClientConversation {

src/codeu/chat/client/ClientMessage.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
import codeu.chat.common.Conversation;
2323
import codeu.chat.common.ConversationSummary;
2424
import codeu.chat.common.Message;
25-
import codeu.chat.common.Uuid;
26-
import codeu.chat.common.Uuids;
2725
import codeu.chat.util.Logger;
2826
import codeu.chat.util.Method;
27+
import codeu.chat.util.Uuid;
2928

3029
public final class ClientMessage {
3130

@@ -204,16 +203,16 @@ public void updateMessages(ConversationSummary conversation, boolean replaceAll)
204203
Uuid nextMessageId = getCurrentMessageFetchId(replaceAll);
205204

206205
// Stay in loop until all messages read (up to safety limit)
207-
while (!nextMessageId.equals(Uuids.NULL) && conversationContents.size() < MESSAGE_MAX_COUNT) {
206+
while (!nextMessageId.equals(Uuid.NULL) && conversationContents.size() < MESSAGE_MAX_COUNT) {
208207

209208
for (final Message msg : view.getMessages(nextMessageId, MESSAGE_FETCH_COUNT)) {
210209

211210
conversationContents.add(msg);
212211

213212
// Race: message possibly added since conversation fetched. If that occurs,
214213
// pretend the newer messages do not exist - they'll get picked up next time).
215-
if (msg.next.equals(Uuids.NULL) || msg.id.equals(conversationHead.lastMessage)) {
216-
msg.next = Uuids.NULL;
214+
if (msg.next.equals(Uuid.NULL) || msg.id.equals(conversationHead.lastMessage)) {
215+
msg.next = Uuid.NULL;
217216
break;
218217
}
219218
}

src/codeu/chat/client/ClientUser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import java.util.Map;
2121

2222
import codeu.chat.common.User;
23-
import codeu.chat.common.Uuid;
2423
import codeu.chat.util.Logger;
24+
import codeu.chat.util.Uuid;
2525
import codeu.chat.util.store.Store;
2626

2727
public final class ClientUser {

src/codeu/chat/client/Controller.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@
2323
import codeu.chat.common.Message;
2424
import codeu.chat.common.NetworkCode;
2525
import codeu.chat.common.User;
26-
import codeu.chat.common.Uuid;
27-
import codeu.chat.common.Uuids;
2826
import codeu.chat.util.Logger;
2927
import codeu.chat.util.Serializers;
28+
import codeu.chat.util.Uuid;
3029
import codeu.chat.util.connections.Connection;
3130
import codeu.chat.util.connections.ConnectionSource;
3231

@@ -48,8 +47,8 @@ public Message newMessage(Uuid author, Uuid conversation, String body) {
4847
try (final Connection connection = source.connect()) {
4948

5049
Serializers.INTEGER.write(connection.out(), NetworkCode.NEW_MESSAGE_REQUEST);
51-
Uuids.SERIALIZER.write(connection.out(), author);
52-
Uuids.SERIALIZER.write(connection.out(), conversation);
50+
Uuid.SERIALIZER.write(connection.out(), author);
51+
Uuid.SERIALIZER.write(connection.out(), conversation);
5352
Serializers.STRING.write(connection.out(), body);
5453

5554
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.NEW_MESSAGE_RESPONSE) {
@@ -99,7 +98,7 @@ public Conversation newConversation(String title, Uuid owner) {
9998

10099
Serializers.INTEGER.write(connection.out(), NetworkCode.NEW_CONVERSATION_REQUEST);
101100
Serializers.STRING.write(connection.out(), title);
102-
Uuids.SERIALIZER.write(connection.out(), owner);
101+
Uuid.SERIALIZER.write(connection.out(), owner);
103102

104103
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.NEW_CONVERSATION_RESPONSE) {
105104
response = Serializers.nullable(Conversation.SERIALIZER).read(connection.in());

src/codeu/chat/client/View.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,9 @@
2525
import codeu.chat.common.NetworkCode;
2626
import codeu.chat.common.Time;
2727
import codeu.chat.common.User;
28-
import codeu.chat.common.Uuid;
29-
import codeu.chat.common.Uuids;
3028
import codeu.chat.util.Logger;
3129
import codeu.chat.util.Serializers;
30+
import codeu.chat.util.Uuid;
3231
import codeu.chat.util.connections.Connection;
3332
import codeu.chat.util.connections.ConnectionSource;
3433

@@ -55,7 +54,7 @@ public Collection<User> getUsers(Collection<Uuid> ids) {
5554
try (final Connection connection = source.connect()) {
5655

5756
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_USERS_BY_ID_REQUEST);
58-
Serializers.collection(Uuids.SERIALIZER).write(connection.out(), ids);
57+
Serializers.collection(Uuid.SERIALIZER).write(connection.out(), ids);
5958

6059
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_USERS_BY_ID_RESPONSE) {
6160
users.addAll(Serializers.collection(User.SERIALIZER).read(connection.in()));
@@ -102,7 +101,7 @@ public Collection<Conversation> getConversations(Collection<Uuid> ids) {
102101
try (final Connection connection = source.connect()) {
103102

104103
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_CONVERSATIONS_BY_ID_REQUEST);
105-
Serializers.collection(Uuids.SERIALIZER).write(connection.out(), ids);
104+
Serializers.collection(Uuid.SERIALIZER).write(connection.out(), ids);
106105

107106
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_CONVERSATIONS_BY_ID_RESPONSE) {
108107
conversations.addAll(Serializers.collection(Conversation.SERIALIZER).read(connection.in()));
@@ -125,7 +124,7 @@ public Collection<Message> getMessages(Collection<Uuid> ids) {
125124
try (final Connection connection = source.connect()) {
126125

127126
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_MESSAGES_BY_ID_REQUEST);
128-
Serializers.collection(Uuids.SERIALIZER).write(connection.out(), ids);
127+
Serializers.collection(Uuid.SERIALIZER).write(connection.out(), ids);
129128

130129
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_CONVERSATIONS_BY_ID_RESPONSE) {
131130
messages.addAll(Serializers.collection(Message.SERIALIZER).read(connection.in()));
@@ -143,14 +142,14 @@ public Collection<Message> getMessages(Collection<Uuid> ids) {
143142
@Override
144143
public Uuid getUserGeneration() {
145144

146-
Uuid generation = Uuids.NULL;
145+
Uuid generation = Uuid.NULL;
147146

148147
try (final Connection connection = source.connect()) {
149148

150149
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_USER_GENERATION_REQUEST);
151150

152151
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_USER_GENERATION_RESPONSE) {
153-
generation = Uuids.SERIALIZER.read(connection.in());
152+
generation = Uuid.SERIALIZER.read(connection.in());
154153
} else {
155154
LOG.error("Response from server failed");
156155
}
@@ -170,7 +169,7 @@ public Collection<User> getUsersExcluding(Collection<Uuid> ids) {
170169
try (final Connection connection = source.connect()) {
171170

172171
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_USERS_EXCLUDING_REQUEST);
173-
Serializers.collection(Uuids.SERIALIZER).write(connection.out(), ids);
172+
Serializers.collection(Uuid.SERIALIZER).write(connection.out(), ids);
174173

175174
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_USERS_EXCLUDING_RESPONSE) {
176175
users.addAll(Serializers.collection(User.SERIALIZER).read(connection.in()));
@@ -265,7 +264,7 @@ public Collection<Message> getMessages(Uuid rootMessage, int range) {
265264
try (final Connection connection = source.connect()) {
266265

267266
Serializers.INTEGER.write(connection.out(), NetworkCode.GET_MESSAGES_BY_RANGE_REQUEST);
268-
Uuids.SERIALIZER.write(connection.out(), rootMessage);
267+
Uuid.SERIALIZER.write(connection.out(), rootMessage);
269268
Serializers.INTEGER.write(connection.out(), range);
270269

271270
if (Serializers.INTEGER.read(connection.in()) == NetworkCode.GET_MESSAGES_BY_RANGE_RESPONSE) {

src/codeu/chat/common/BasicController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
package codeu.chat.common;
1616

17+
import codeu.chat.util.Uuid;
18+
1719
// BASIC CONTROLLER
1820
//
1921
// The controller component in the Model-View-Controller pattern. This

src/codeu/chat/common/BasicView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import codeu.chat.common.ConversationSummary;
2121
import codeu.chat.common.Message;
2222
import codeu.chat.common.User;
23-
import codeu.chat.common.Uuid;
23+
import codeu.chat.util.Uuid;
2424

2525
// BASIC VIEW
2626
//

src/codeu/chat/common/Conversation.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@
2020
import java.util.Collection;
2121
import java.util.HashSet;
2222

23-
import codeu.chat.common.Uuid;
24-
import codeu.chat.common.Uuids;
2523
import codeu.chat.util.Serializer;
2624
import codeu.chat.util.Serializers;
25+
import codeu.chat.util.Uuid;
2726

2827
public final class Conversation {
2928

@@ -32,30 +31,30 @@ public final class Conversation {
3231
@Override
3332
public void write(OutputStream out, Conversation value) throws IOException {
3433

35-
Uuids.SERIALIZER.write(out, value.id);
36-
Uuids.SERIALIZER.write(out, value.owner);
34+
Uuid.SERIALIZER.write(out, value.id);
35+
Uuid.SERIALIZER.write(out, value.owner);
3736
Time.SERIALIZER.write(out, value.creation);
3837
Serializers.STRING.write(out, value.title);
39-
Serializers.collection(Uuids.SERIALIZER).write(out, value.users);
40-
Uuids.SERIALIZER.write(out, value.firstMessage);
41-
Uuids.SERIALIZER.write(out, value.lastMessage);
38+
Serializers.collection(Uuid.SERIALIZER).write(out, value.users);
39+
Uuid.SERIALIZER.write(out, value.firstMessage);
40+
Uuid.SERIALIZER.write(out, value.lastMessage);
4241

4342
}
4443

4544
@Override
4645
public Conversation read(InputStream in) throws IOException {
4746

4847
final Conversation value = new Conversation(
49-
Uuids.SERIALIZER.read(in),
50-
Uuids.SERIALIZER.read(in),
48+
Uuid.SERIALIZER.read(in),
49+
Uuid.SERIALIZER.read(in),
5150
Time.SERIALIZER.read(in),
5251
Serializers.STRING.read(in)
5352
);
5453

55-
value.users.addAll(Serializers.collection(Uuids.SERIALIZER).read(in));
54+
value.users.addAll(Serializers.collection(Uuid.SERIALIZER).read(in));
5655

57-
value.firstMessage = Uuids.SERIALIZER.read(in);
58-
value.lastMessage = Uuids.SERIALIZER.read(in);
56+
value.firstMessage = Uuid.SERIALIZER.read(in);
57+
value.lastMessage = Uuid.SERIALIZER.read(in);
5958

6059
return value;
6160

@@ -69,8 +68,8 @@ public Conversation read(InputStream in) throws IOException {
6968
public final Time creation;
7069
public final String title;
7170
public final Collection<Uuid> users = new HashSet<>();
72-
public Uuid firstMessage = Uuids.NULL;
73-
public Uuid lastMessage = Uuids.NULL;
71+
public Uuid firstMessage = Uuid.NULL;
72+
public Uuid lastMessage = Uuid.NULL;
7473

7574
public Conversation(Uuid id, Uuid owner, Time creation, String title) {
7675

0 commit comments

Comments
 (0)