Skip to content

Commit 09b8d6a

Browse files
committed
Reorganized classes to follow clean architecture
1 parent 5b6779b commit 09b8d6a

File tree

12 files changed

+74
-35
lines changed

12 files changed

+74
-35
lines changed

src/main/java/emoji_manager/msg/Sender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package main.java.emoji_manager.msg;
1+
package emoji_manager.msg;
22

33
import java.net.DatagramPacket;
44
import java.net.DatagramSocket;

src/main/java/screens/login_screen/UserLoginUI.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/** This is the screen on which the user enters his credentials in order to login **/
1010
public class UserLoginUI implements ActionListener, UserVerificationOutputBoundary {
1111

12-
private final UserLoginInputBoundary loginInteractor;
12+
private UserLoginInputBoundary loginInteractor;
1313
JTextField credentialText;
1414
JPasswordField passwordText;
1515

@@ -65,6 +65,11 @@ public void cannotVerify() {
6565

6666
}
6767

68+
@Override
69+
public void setInputBoundary(UserLoginInputBoundary loginInteractor) {
70+
this.loginInteractor = loginInteractor;
71+
}
72+
6873
@Override
6974
public void actionPerformed(ActionEvent e) {
7075
String username = credentialText.getText();

src/main/java/screens/user_registration_screen/UserRegistrationUI.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package screens.user_registration_screen;
22
import data_access.Database;
33
import data_access.UserDatabase;
4-
import use_cases.user_registration_use_cases.UserExistsInputBoundary;
5-
import use_cases.user_registration_use_cases.UserExistsInteractor;
6-
import use_cases.user_registration_use_cases.userRegCredentialsRetriever;
4+
import screens.login_screen.UserLoginUI;
5+
import use_cases.user_login_use_cases.UserLoginInputBoundary;
6+
import use_cases.user_login_use_cases.UserLoginInteractor;
7+
import use_cases.user_registration_use_cases.*;
78

89
import javax.swing.*;
910
import java.awt.event.ActionEvent;
@@ -22,8 +23,8 @@ public class UserRegistrationUI implements ActionListener, userRegCredentialsRet
2223
*/
2324
private JTextField deliveryText;
2425

25-
public UserRegistrationUI(UserExistsInputBoundary verifyUser) {
26-
this.verifyUser = verifyUser;
26+
public UserRegistrationUI(UserExistsInputBoundary existsInputBoundary) {
27+
this.verifyUser = existsInputBoundary;
2728
}
2829
@Override
2930
public void getUserCredentials(){
@@ -80,10 +81,15 @@ public void getUserCredentials(){
8081
}
8182

8283
public static void main(String[] args){
83-
//Testing purposes
84-
Database testDB = new UserDatabase(new File("test301"));
85-
UserExistsInputBoundary interactor = new UserExistsInteractor(testDB);
86-
new UserRegistrationUI(interactor).getUserCredentials();
84+
Database testDB = new UserDatabase(new File("newAccounts"));
85+
UserLoginInputBoundary userLoginInteractor = new UserLoginInteractor(testDB);
86+
UserVerificationOutputBoundary loginUI = new UserLoginUI(userLoginInteractor);
87+
UserVerificationInputBoundary verificationInteractor = new UserVerificationInteractor(testDB, loginUI);
88+
UserExistsOutputBoundary verificationScreen = new UserVerificationScreen(verificationInteractor, new verificationMethodFactory());
89+
UserExistsInputBoundary existsInteractor = new UserExistsInteractor(testDB, verificationScreen);
90+
UserRegistrationUI testUI = new UserRegistrationUI(existsInteractor);
91+
testUI.getUserCredentials();
92+
8793
}
8894
@Override
8995
public void actionPerformed(ActionEvent e) {

src/main/java/screens/user_registration_screen/UserVerificationScreen.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
package screens.user_registration_screen;
22

3-
import use_cases.user_registration_use_cases.UserExistsOutputBoundary;
4-
import use_cases.user_registration_use_cases.UserVerificationInputBoundary;
3+
import screens.login_screen.UserLoginUI;
4+
import use_cases.user_login_use_cases.UserLoginInputBoundary;
5+
import use_cases.user_registration_use_cases.*;
56

67
import javax.swing.*;
78
import java.awt.event.ActionEvent;
89
import java.awt.event.ActionListener;
910

1011
public class UserVerificationScreen implements UserExistsOutputBoundary, ActionListener {
1112
private final JTextField verText = new JTextField(20);
12-
private final UserVerificationInputBoundary verificationInputBoundary;
13+
private final verificationMethodFactory deliveryMethod;
14+
private UserVerificationInputBoundary verificationInputBoundary;
15+
private int code;
16+
private String username;
17+
private String password;
18+
private String email;
1319

14-
public UserVerificationScreen(UserVerificationInputBoundary verificationInputBoundary) {
20+
public UserVerificationScreen(UserVerificationInputBoundary verificationInputBoundary, verificationMethodFactory deliveryMethod){
1521
this.verificationInputBoundary = verificationInputBoundary;
16-
}
22+
this.deliveryMethod = deliveryMethod;
23+
};
1724

1825
@Override
1926
public void getVerificationCredentials() {
@@ -53,10 +60,24 @@ public void presentUserExistsMessage() {
5360
userExistsFrame.setVisible(true);
5461
}
5562

63+
@Override
64+
public void getCode(int code) {
65+
this.code = code;
66+
}
67+
68+
@Override
69+
public void getUserCredentials(String username, String password, String email) {
70+
this.username = username;
71+
this.password = password;
72+
this.email = email;
73+
}
74+
5675
@Override
5776
public void actionPerformed(ActionEvent e) {
5877
// Need if statements to check if code is an integer
5978
int code = Integer.parseInt(verText.getText());
79+
verificationInputBoundary.setCode(this.code);
80+
verificationInputBoundary.setCredentials(username, password, email);
6081
verificationInputBoundary.verify("Email", code);
6182
}
6283

src/main/java/use_cases/emoji_manager/ChatFrame.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package use_cases.emoji_manager;
22

3+
import emoji_manager.msg.Sender;
34
import main.java.emoji_manager.msg.MsgType;
4-
import main.java.emoji_manager.msg.Sender;
55
import main.java.emoji_manager.model.FontAndText;
66
import main.java.emoji_manager.model.EmoInfo;
77

src/main/java/use_cases/user_login_use_cases/UserLoginInteractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
import data_access.Database;
44
import entities.user_entities.User;
5+
import use_cases.user_registration_use_cases.UserVerificationOutputBoundary;
56

6-
public class UserLoginInteractor implements UserLoginInputBoundary {
7+
public class UserLoginInteractor implements UserLoginInputBoundary{
78
private String username;
89
private String password;
910
private User user;
@@ -34,4 +35,5 @@ public void setLoginCredentials(String username, String password) {
3435
this.username = username;
3536
this.password = password;
3637
}
38+
3739
}

src/main/java/use_cases/user_login_use_cases/UserVerificationOutputBoundary.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/java/use_cases/user_registration_use_cases/UserExistsInputBoundary.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ public interface UserExistsInputBoundary {
44

55
void register(String username, String password, String email);
66
void setCodeDeliveryMethod(String type);
7+
8+
void setOutputBoundary(UserExistsOutputBoundary existsOutputBoundary);
79
}

src/main/java/use_cases/user_registration_use_cases/UserExistsInteractor.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,22 @@
66
import java.util.Random;
77

88
public class UserExistsInteractor implements UserExistsInputBoundary{
9-
private final int code;
109
//May need to refactor this using facade design pattern since this class has too many responsibilities.
1110
Database database;
12-
UserVerificationInputBoundary verificationInputBoundary;
1311
UserExistsOutputBoundary existsOutputBoundary;
1412

1513
private ISendVerificationCode codeMailMan;
1614

17-
public UserExistsInteractor(Database database){
15+
public UserExistsInteractor(Database database, UserExistsOutputBoundary existsOutputBoundary){
1816
this.database = database;
19-
this.verificationInputBoundary = new UserVerificationInteractor(database);
20-
this.code = new Random().nextInt(1321512);
21-
verificationInputBoundary.setCode(code);
22-
this.existsOutputBoundary = new UserVerificationScreen(verificationInputBoundary);
17+
this.existsOutputBoundary = existsOutputBoundary;
2318
}
2419
@Override
2520
public void register(String username, String password, String email) {
2621
if(!database.UserExists(username, email)){
27-
verificationInputBoundary.setCredentials(username, password, email);
22+
int code = new Random().nextInt(12312341);
23+
existsOutputBoundary.getCode(code);
24+
existsOutputBoundary.getUserCredentials(username, password, email);
2825
existsOutputBoundary.getVerificationCredentials();
2926
codeMailMan.sendVerificationCode(email, code);
3027
}else{
@@ -36,4 +33,9 @@ public void register(String username, String password, String email) {
3633
public void setCodeDeliveryMethod(String type) {
3734
this.codeMailMan = new verificationMethodFactory().getVerificationMethod(type);
3835
}
36+
37+
@Override
38+
public void setOutputBoundary(UserExistsOutputBoundary existsOutputBoundary) {
39+
this.existsOutputBoundary = existsOutputBoundary;
40+
}
3941
}

src/main/java/use_cases/user_registration_use_cases/UserExistsOutputBoundary.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
public interface UserExistsOutputBoundary {
44
void getVerificationCredentials();
55
void presentUserExistsMessage();
6+
void getCode(int code);
7+
void getUserCredentials(String username, String password, String email);
68
}

0 commit comments

Comments
 (0)