Merge pull request #3 from rug-advoop/repo_creation
More things moving over!
This commit is contained in:
		
						commit
						244a0d08d9
					
				| 
						 | 
					@ -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