//LogIn @Christopher Pauley 2.4.1.1.

package studentClient;

import java.util.Collection;

/**
 * Logs the student in to the class
 */
abstract class LogIn {

	/**
	 * TextBox Place for user to enter in strings
	 */
	abstract class TextBox {
		int mode;
		String st;
	}

	/**
	 * ServerConnection Connects the client to the portal server ipAddress- ip
	 * address of the portal Host name of the portal
	 */
	abstract class ServerConnection {
		int ipAddress;
		String hostName;
		Collection<Authentication> users;
		StudentInfo page;

		abstract class StudentInfo {
		}

		abstract class Authentication {
			String name;
			String password;
		}

	}

	/**
	 * Username - User enters username password - User enters password sc- the
	 * server's connection.
	 */
	String username;
	String password;
	ServerConnection sc;
	/**
	 * LogIn Checks the user-entered credentials againast the portal server. If
	 * they match, the user is taken to the landing page. Otherwise, the user has
	 * to enter in the values again.
	 */
	/*
	 * @ requires // // The username field is not empty. // (username != null &&
	 * username.length() >= 1)
	 * 
	 * &&
	 * 
	 * // // The password field is not empty. // ((password != null) &&
	 * password.length() >=1)
	 * 
	 * &&
	 * 
	 * // // If non-empty, the username field is exists on the server. // If
	 * password matches username // ( \exists Authentication a ;
	 * sc.users.contains a ; a.name.equals(username) &&
	 * a.password.equals(password)) ; ensures // // If preconds met, the program
	 * travels to the student landing screen. // (\result.equals(sc.page) );
	 * 
	 * @
	 */
	public abstract StudentLanding logIn();
}