package grader.Main;


import java.util.Collection;

/**
 *
 * Generic JavaDoc for Main 

 *    Derived from an FMSL opaque type.
 * 
 * @author 
 * @version 
 *
 **/

public class Main {

     /** Default Constructor **/
     public Main() {

     }

     /**  AddAssignment takes the current Grades and adds in the Assignment
				   from the input, outputing the updated Grades  **/
     protected Grades addAssignment(GradedItem g, Grades a) {
          return null;
     }

     /**  Database operation that inserts a new GradeBook into a GradeBookDB, producing a new database  **/
     protected GradeBookDB addBook(GradeBook db, GradeBookDB[] gb) {
          return null;
     }

     /**  AddCategory takes the current Grades and adds in the Category
                  from the input, outputing the updated Grades  **/
     protected Grades addCategory(GradedItem g, Grades c) {
          return null;
     }

     /**  Take in a GradeScheme and add in a new Grade.
   Update the
        * GradeScheme with the new Grade.
   Using the Set functions above, se
        *t the Grade values.
   This will do error/pre-and-post checks as well.
   **/
     protected GradeScheme addGrade(Grade old, GradeScheme newnew) {
          return null;
     }

     /**  AddStudent takes the current Roster and a new pending
               Student and adds them to the pending Roster.  **/
     protected Roster addStudent(Roster r, Student s) {
          return null;
     }

     /**  Adds the user into the database, producing a new user database  **/
     protected UserDB addUser(User db, UserDB[] u) {
          return null;
     }

     /**  Adjusting a gradeline will change the data on the graph
   as well as data on the gradesheet
   **/
     protected Graph adjustLine(Grade gra, Graph move, int amt) {
          return null;
     }

     /**  Change the view of the Histogram type Graph to
   the other type of view.
   **/
     protected Graph changeHistoView(Graph current, String view) {
          return null;
     }

     /**  Collapses the items at the graded item index. If the item at the graded item index is already collapsed, nothing will happen.  **/
     protected GradeBook collapse(GradeBook gb, int i) {
          return null;
     }

     /**  Change the view of the Histogram to the original view,
   without student information.
   **/
     protected Graph collapseHistogram(Graph current, String view) {
          return null;
     }

     /**  Make a new graph that's of Histogram type out of
   a set of data from the GradeBook.
   **/
     protected Graph createHistogram(GradeBook db, GradedItem data, String type) {
          return null;
     }

     /**  Make a new graph that's of PieChart type out of
   a set of data from the GradeBook.
   **/
     protected Graph createPieChart(GradeBook db, GradedItem data, String type) {
          return null;
     }

     /**  DeleteAssignment takes the current Grades and removes the Assignment
				   from the input, outputing the updated Grades  **/
     protected Grades deleteAssignment(GradedItem g, Grades a) {
          return null;
     }

     /**  DeleteCategory takes the current Grades and removes the Category
                  from the input, outputing the updated Grades  **/
     protected Grades deleteCategory(GradedItem g, Grades c) {
          return null;
     }

     /**  Take in a GradeScheme and the Grade to delete.
   Update the GradeScheme with the Grade removed.
   **/
     protected GradeScheme deleteGrade(Grade old, Grade temp, GradeScheme g) {
          return null;
     }

     /**  DownloadRoster takes the current Gradebook and a downloade
        *d
               SIS student Roster, producing a Gradebook with pending roster
               changes.  **/
     protected Roster downloadRoster(GradeBook gb, Roster rprime) {
          return null;
     }

     /**  Expands the items at the graded item index. If the item at the graded item index is already expanded, nothing will happen.  **/
     protected GradeBook expand(GradeBook gb, int i) {
          return null;
     }

     /**  ExpandCollapse takes no inputs nor generates any outputs. I
        *t
               adds or removes the Students In Roster subwindow inside of the Add
               Students and Edit Roster windows.  **/
     protected void expandCollapse(Roster r) {
          return null;
     }

     /**  Change the view of the Histogram to also show
   student information.
   **/
     protected Graph expandHistogram(Graph current, String view) {
          return null;
     }

     /**  Filters the graded item at the given idex out of the gradebook. **/
     protected GradeBook filter(GradeBook gb, GradedItem i, int filtered) {
          return null;
     }

     /**  Filters the graded items at the given idexes out of the gradebook. **/
     protected GradeBook filter(GradeBook gb, int[] index, int filtered) {
          return null;
     }

     /**  FinalizeChanges takes the current GradeBook and current pending Roste
        *r and
               replaces the GradeBook's current Roster with the pending one.  **/
     protected GradeBook finalizeChanges(GradeBook gb, Roster rprime) {
          return null;
     }

     /**  Finds all gradebooks in the database based on the teacher  **/
     protected GradeBook findBook(GradeBookDB[] db, User t) {
          return null;
     }

     /**  Finds a gradebook in the database based on the course title and section number  **/
     protected GradeBook findBook(String db, GradeBookDB[] c, int s) {
          return null;
     }

     /**  PendingDelete takes the current Roster being edited and all Students
        * in
               the roster ready for deletion and marks those Students as pending
               for removal from the class.  **/
     protected Roster pendingDelete(Roster r, Student s) {
          return null;
     }

     /**  Removes the gradebook from the database, producing a new database  **/
     protected GradeBookDB removeBook(GradeBook db, GradeBookDB[] gb) {
          return null;
     }

     /**  Removes the user from the database, producing a new user database  **/
     protected UserDB removeUser(User db, UserDB[] u) {
          return null;
     }

     /**  SaveStudent takes the current Roster and applies pending Student dat
        *a
               changes and applies those changes to the pending Roster.  **/
     protected Roster saveStudent(Roster r, Student s) {
          return null;
     }

     /**  Take in a Grade object and modify the Color value.
   Make sure the
        * Color isn't already being used by another.
   Then, return the Grade object with the modified value.
   **/
     protected GradeScheme setColor(Color check, Grade temp, GradeScheme color) {
          return null;
     }

     /**  Take in a Grade object and modify the Range value.
   Make sure the
        * ranges don't overlap with previous Grades.
   Then, return the Grade object with the modified value.
   **/
     protected Grade setRange(Grade check, GradeScheme temp, Range range) {
          return null;
     }

     /**  Take in a Grade object and modify the Symbol value.
   Make sure the
        * symbol isn't already in the GradeScheme.
   Then, return the Grade object with the modified value.
   **/
     protected GradeScheme setSymbol(Grade check, GradeScheme temp, String symbol) {
          return null;
     }

     /**  Take in a Grade object and modify the Worth.
   Make sure the value
        * isn't already in the GradeScheme.
   Then, return the Grade object with the modified Worth.
   **/
     protected Grade setValue(Grade check, GradeScheme temp, int w) {
          return null;
     }

     /**  Sorts the column at the graded item index in the opposite of the
        * current sort. If the column is currently sorted in ascending order,
        * the sort will arrange the scores in descending order, vice versa. If
        * the column is currently not sorted, the sort will arrange the scores in descending order.  **/
     protected GradeBook sort(String gb, GradeBook index, int sort) {
          return null;
     }

     /**  UnFilters the graded item at the given idex into the gradebook. **/
     protected GradeBook unFilter(GradeBook gb, GradedItem filtered, int i) {
          return null;
     }

     /**  UpdateRoster takes the current GradeBook and an downloade
        *d
               SIS student Roster, checks for differences between
        * the two
               rosters, and produces a Gradebook with pendin
        *g roster differences.
               Note that Student options will be saved between the old and new
               Roster.  **/
     protected Roster updateRoster(GradeBook gb, Roster rprime) {
          return null;
     }

}