package user;

import java.util.Collection;
import create.Schedule;

/**
 * User is an abstract class used to model the basic User object.
 * 
 * @author sbayley
 **/

public abstract class User {
   public int ID; //represents users EMPL ID
   public Name name; //represents users Name
   public Password password; //stores users password
   
   /**
    * Creates a new User with the supplied paramaters.
    * 
    */
   /*@ 	
     ensures	
     	// 
     	// first and last are valid strings, consisting only of letters.
     	//
     	forall(int i; (i >= 0) && (i < first.length());
     	 		Character.isLetter(first.charAt(i)))
     	 		
     	 		&&
     	 		
     	forall(int i; (i >= 0) && (i < last.length());
     	 		Character.isLetter(last.charAt(i)))
     	 		
     	 		&&
     	 // 
     	 // ID is alphanumeric.
     	 //
     	 forall(int i; (i >= 0) && (i < ID.length());
     	 		Character.isLetterOrDigit(ID.charAt(i)));
    @*/
   public User(int ID, String first, String last){}
   
   /**
    * viewSchedule allows the user to view schedules in the Schedule Database.
    * All Users are allowed to view schedules.
    */
   public abstract Collection<Schedule> viewSchedule();
}