package csis626;
import java.rmi.*;
import java.util.*;

/**
   Remote Interface
*/
public interface DBInterface extends Remote 
{
   /**
      Remotely invocable method that returns true if user is valid
      and false if user is not valid
      @return the boolean indicating if user is valid
      @exception RemoteException if the remote invocation fails.
   */
	public boolean isValidUser(String id, String pw) throws RemoteException;

   /**
      Remotely invocable method that returns the HTML string
      containing the Student Personal Info
      @return the HTML string containing the Student Personal Info
      @exception RemoteException if the remote invocation fails.
   */
   public String getPersonalInfo() throws RemoteException;

   /**
      Remotely invocable method that returns the string
      containing the Student's Degree
      @return string containing the Student Degree
      @exception RemoteException if the remote invocation fails.
   */
	public String getDegree() throws RemoteException;

   /**
      Remotely invocable method that returns the HTML string
      containing the Student's Degree Evaluation
      @return the HTML string containing the Student's 
      Degree Evaluation
      @exception RemoteException if the remote invocation fails.
   */
	public String getDegreeEval() throws RemoteException;


   /**
      Remotely invocable method that returns the HTML string
      containing the Student's Transcript sorted by course number
      @return the HTML string containing the Student's Transcript
      sorted by course number
      @exception RemoteException if the remote invocation fails.
   */
	public String getTranscript_cnum() throws RemoteException;

   /**
      Remotely invocable method that returns the HTML string
      containing the Student's Transcript sorted by date
      @return the HTML string containing the Student's Transcript 
      sorted by date
      @exception RemoteException if the remote invocation fails.
   */
	public String getTranscript_date() throws RemoteException;

   /**
      Remotely invocable method that returns the HTML string
      containing the Student GPS Requirements
      @return the HTML string containing the Student GPS Requirements
      @exception RemoteException if the remote invocation fails.
   */
	public String getRequirements() throws RemoteException;

   /**
      Remotely invocable method that returns the vector
      of classes with which to plan schedule
      @return the vector of courses with their prerequisites
      @exception RemoteException if the remote invocation fails.
   */
   public Vector getPrereq() throws RemoteException;

   /**
      Remotely invocable method that returns the vector
      of classes which have been planned
      @return the vector of courses which have been planned
      @exception RemoteException if the remote invocation fails.
   */
   public Vector getPlanned() throws RemoteException;

   /**
      Remotely invocable method that returns the vector
      of classes which have been planned
      @return the vector of courses not taken
      @exception RemoteException if the remote invocation fails.
   */
   public Vector getNotTaken() throws RemoteException;

   /**
      Remotely invocable method that saves the vector
      of classes which have been planned to the database
      @param input_courses the vector of courses which have been planned
      @exception RemoteException if the remote invocation fails.
   */
   public void saveCourses(Vector input_courses) throws RemoteException;

   /**
      Remotely invocable method that returns the vector of 
      remaining required courses to take
      @return the vector of remaining required courses to take
   */
   public Vector getRemainReqCourses() throws RemoteException;

   /**
      Remotely invocable method that returns the vector of 
      optional courses that have not been taken
      @return the vector of optional courses that have
      not been taken
   */
   public Vector getRemainOptCourses() throws RemoteException;


} /* End interface DBInterface */

