More things moving over! #3
|
@ -0,0 +1,9 @@
|
||||||
|
package nl.andrewlalis.model;
|
||||||
|
|
||||||
|
public abstract class DatabaseObject {
|
||||||
|
|
||||||
|
public abstract DatabaseObject retrieve();
|
||||||
|
|
||||||
|
public abstract boolean store();
|
||||||
|
|
||||||
|
}
|
|
@ -100,49 +100,6 @@ public class Database {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves a list of preferred partners that each student has set.
|
|
||||||
* @param studentId The student id to search by.
|
|
||||||
* @return A list of student id's for all students that the given student wishes to be their partner.
|
|
||||||
*/
|
|
||||||
private List<Integer> retrievePreferredPartners(int studentId) {
|
|
||||||
try {
|
|
||||||
logger.finest("Retrieving preferred partners of student: " + studentId);
|
|
||||||
String sql = "SELECT partner_id FROM student_preferred_partners WHERE student_id=?;";
|
|
||||||
PreparedStatement stmt = this.connection.prepareStatement(sql);
|
|
||||||
stmt.setInt(1, studentId);
|
|
||||||
ResultSet results = stmt.executeQuery();
|
|
||||||
List<Integer> partners = new ArrayList<>();
|
|
||||||
while (results.next()) {
|
|
||||||
partners.add(results.getInt(1));
|
|
||||||
}
|
|
||||||
return partners;
|
|
||||||
} catch (SQLException e) {
|
|
||||||
logger.severe("SQL Exception while retrieving preferred partners of student: " + studentId + '\n' + e.getMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves a student by their id.
|
|
||||||
* @param id The id of the student (student number)
|
|
||||||
* @return The student corresponding to this number, or null if it could not be found.
|
|
||||||
*/
|
|
||||||
public Student retrieveStudent(int id) {
|
|
||||||
try {
|
|
||||||
String sql = "SELECT * FROM persons WHERE id=?";
|
|
||||||
PreparedStatement stmt = this.connection.prepareStatement(sql);
|
|
||||||
stmt.setInt(1, id);
|
|
||||||
ResultSet result = stmt.executeQuery();
|
|
||||||
return new Student(id, result.getString("name"), result.getString("email_address"), result.getString("github_username"), this.retrievePreferredPartners(id));
|
|
||||||
} catch (SQLException e) {
|
|
||||||
logger.severe("SQL Exception while retrieving Student.\n" + e.getMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores a teaching assistant without a team.
|
* Stores a teaching assistant without a team.
|
||||||
* @param ta The teaching assistant to store.
|
* @param ta The teaching assistant to store.
|
||||||
|
@ -258,4 +215,47 @@ public class Database {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a list of preferred partners that each student has set.
|
||||||
|
* @param studentId The student id to search by.
|
||||||
|
* @return A list of student id's for all students that the given student wishes to be their partner.
|
||||||
|
*/
|
||||||
|
private List<Integer> retrievePreferredPartners(int studentId) {
|
||||||
|
try {
|
||||||
|
logger.finest("Retrieving preferred partners of student: " + studentId);
|
||||||
|
String sql = "SELECT partner_id FROM student_preferred_partners WHERE student_id=?;";
|
||||||
|
PreparedStatement stmt = this.connection.prepareStatement(sql);
|
||||||
|
stmt.setInt(1, studentId);
|
||||||
|
ResultSet results = stmt.executeQuery();
|
||||||
|
List<Integer> partners = new ArrayList<>();
|
||||||
|
while (results.next()) {
|
||||||
|
partners.add(results.getInt(1));
|
||||||
|
}
|
||||||
|
return partners;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.severe("SQL Exception while retrieving preferred partners of student: " + studentId + '\n' + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a student by their id.
|
||||||
|
* @param id The id of the student (student number)
|
||||||
|
* @return The student corresponding to this number, or null if it could not be found.
|
||||||
|
*/
|
||||||
|
public Student retrieveStudent(int id) {
|
||||||
|
try {
|
||||||
|
String sql = "SELECT * FROM persons WHERE id=?";
|
||||||
|
PreparedStatement stmt = this.connection.prepareStatement(sql);
|
||||||
|
stmt.setInt(1, id);
|
||||||
|
ResultSet result = stmt.executeQuery();
|
||||||
|
return new Student(id, result.getString("name"), result.getString("email_address"), result.getString("github_username"), this.retrievePreferredPartners(id));
|
||||||
|
} catch (SQLException e) {
|
||||||
|
logger.severe("SQL Exception while retrieving Student.\n" + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package nl.andrewlalis.ui.control.command.executables;
|
||||||
|
|
||||||
|
import nl.andrewlalis.git_api.GithubManager;
|
||||||
|
|
||||||
|
|
||||||
|
public class DefineTaTeams extends GithubExecutable {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean executeWithManager(GithubManager manager, String[] args) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -35,6 +35,9 @@ public class ReadStudentsFileToDB implements Executable {
|
||||||
String filename = args[0];
|
String filename = args[0];
|
||||||
int teamSize = Integer.parseUnsignedInt(args[1]);
|
int teamSize = Integer.parseUnsignedInt(args[1]);
|
||||||
List<StudentTeam> teams = FileUtils.getStudentTeamsFromCSV(filename, teamSize);
|
List<StudentTeam> teams = FileUtils.getStudentTeamsFromCSV(filename, teamSize);
|
||||||
|
if (teams == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return this.db.storeStudentTeams(teams);
|
return this.db.storeStudentTeams(teams);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package nl.andrewlalis.ui.control.listeners;
|
||||||
|
|
||||||
|
import nl.andrewlalis.ui.control.command.CommandExecutor;
|
||||||
|
import nl.andrewlalis.ui.view.InitializerApp;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
|
public class DefineTaTeamsListener extends ExecutableListener {
|
||||||
|
|
||||||
|
public DefineTaTeamsListener(CommandExecutor executor, InitializerApp app) {
|
||||||
|
super(executor, app);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent actionEvent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -35,9 +35,6 @@ public class InitializerApp extends JFrame {
|
||||||
|
|
||||||
private JTextField organizationField = new JTextField();
|
private JTextField organizationField = new JTextField();
|
||||||
private JTextField accessTokenField = new JTextField();
|
private JTextField accessTokenField = new JTextField();
|
||||||
private JTextField assignmentsRepoField = new JTextField();
|
|
||||||
private JTextField teachingAssistantsField = new JTextField();
|
|
||||||
private JTextField studentRepoField = new JTextField();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The executor responsible for performing meaningful actions.
|
* The executor responsible for performing meaningful actions.
|
||||||
|
@ -103,12 +100,6 @@ public class InitializerApp extends JFrame {
|
||||||
this.organizationField.setText("InitializerTesting");
|
this.organizationField.setText("InitializerTesting");
|
||||||
infoInputPanel.add(generateTextFieldPanel("Access Token", this.accessTokenField));
|
infoInputPanel.add(generateTextFieldPanel("Access Token", this.accessTokenField));
|
||||||
this.accessTokenField.setText("haha get your own");
|
this.accessTokenField.setText("haha get your own");
|
||||||
infoInputPanel.add(generateTextFieldPanel("Assignments Repo Name", this.assignmentsRepoField));
|
|
||||||
this.assignmentsRepoField.setText("assignments_2018");
|
|
||||||
infoInputPanel.add(generateTextFieldPanel("TA-All Team Name", this.teachingAssistantsField));
|
|
||||||
this.teachingAssistantsField.setText("teaching-assistants");
|
|
||||||
infoInputPanel.add(generateTextFieldPanel("Student Repo Prefix", this.studentRepoField));
|
|
||||||
this.studentRepoField.setText("advoop_2018");
|
|
||||||
|
|
||||||
githubManagerPanel.add(infoInputPanel, BorderLayout.NORTH);
|
githubManagerPanel.add(infoInputPanel, BorderLayout.NORTH);
|
||||||
|
|
||||||
|
@ -128,6 +119,9 @@ public class InitializerApp extends JFrame {
|
||||||
generateAssignmentsRepoButton.addActionListener(new GenerateAssignmentsRepoListener(this.executor, this));
|
generateAssignmentsRepoButton.addActionListener(new GenerateAssignmentsRepoListener(this.executor, this));
|
||||||
commonActionsPanel.add(generateAssignmentsRepoButton);
|
commonActionsPanel.add(generateAssignmentsRepoButton);
|
||||||
|
|
||||||
|
JButton defineTaTeamsButton = new JButton("Define TA Teams");
|
||||||
|
commonActionsPanel.add(defineTaTeamsButton);
|
||||||
|
|
||||||
githubManagerPanel.add(commonActionsPanel, BorderLayout.CENTER);
|
githubManagerPanel.add(commonActionsPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
return githubManagerPanel;
|
return githubManagerPanel;
|
||||||
|
|
|
@ -54,7 +54,6 @@ public class FileUtils {
|
||||||
return studentTeams;
|
return studentTeams;
|
||||||
} catch (IOException | ArrayIndexOutOfBoundsException e) {
|
} catch (IOException | ArrayIndexOutOfBoundsException e) {
|
||||||
logger.severe("Unable to generate studentTeams from CSV file, exiting. " + e.getMessage());
|
logger.severe("Unable to generate studentTeams from CSV file, exiting. " + e.getMessage());
|
||||||
System.exit(1);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue