160 lines
3.7 KiB
Java
160 lines
3.7 KiB
Java
|
|
/**
|
|
* Represents a user of a holiday website.
|
|
*
|
|
* @George Wilkinson
|
|
* @13/11/23
|
|
*/
|
|
public class Member
|
|
{
|
|
// Creates a String for variable @email.
|
|
private String email;
|
|
|
|
// Creates an integer for variable @membershipNumber.
|
|
private int membershipNumber;
|
|
|
|
// Creates a boolean for variable @loggedInStatus.
|
|
private boolean loggedInStatus;
|
|
|
|
//Creates a new pointer to a Holiday object.
|
|
private Holiday holiday;
|
|
|
|
// Creates a new pointer to a Website object.
|
|
private Website website;
|
|
|
|
/**
|
|
* Default Constructor for objects of Class Member.
|
|
*/
|
|
public Member()
|
|
{
|
|
email = "john.doe@topstravel.co.uk";
|
|
membershipNumber = 1;
|
|
loggedInStatus = false;
|
|
}
|
|
|
|
/**
|
|
* Constructor for objects of class Member
|
|
*/
|
|
public Member( String email, int membershipNumber )
|
|
{
|
|
// initialise instance variables
|
|
this.email = email;
|
|
this.membershipNumber = membershipNumber;
|
|
loggedInStatus = false;
|
|
}
|
|
|
|
/**
|
|
* Returns the value of @email.
|
|
*/
|
|
public String getEmail()
|
|
{
|
|
return email;
|
|
}
|
|
|
|
/**
|
|
* Returns the value of @membershipNumber.
|
|
*/
|
|
public int getMembershipNumber()
|
|
{
|
|
return membershipNumber;
|
|
}
|
|
|
|
/**
|
|
* Returns the value of @loggedInStatus.
|
|
*/
|
|
public boolean getLoggedInStatus()
|
|
{
|
|
return loggedInStatus;
|
|
}
|
|
|
|
/**
|
|
* Returns the current selected holiday object.
|
|
*/
|
|
public Holiday getHoliday()
|
|
{
|
|
return holiday;
|
|
}
|
|
|
|
/**
|
|
* Returns the current logged in website object.
|
|
*/
|
|
public Website getWebsite()
|
|
{
|
|
return website;
|
|
}
|
|
|
|
/**
|
|
* Replaces the value of @email with a new value.
|
|
*/
|
|
public void setEmail( String email )
|
|
{
|
|
this.email = email;
|
|
}
|
|
|
|
/**
|
|
* Replaces the value of @membershipNumber with new value.
|
|
*/
|
|
public void setMembershipNumber( int membershipNumber )
|
|
{
|
|
this.membershipNumber = membershipNumber;
|
|
}
|
|
|
|
/**
|
|
* Replaces the value of @loggedInStatus with new value.
|
|
*/
|
|
public void setLoggedInStatus( boolean loggedInStatus )
|
|
{
|
|
this.loggedInStatus = loggedInStatus;
|
|
}
|
|
|
|
/**
|
|
* Sets the object pointed to by the member.
|
|
*/
|
|
public void setWebsite( Website website )
|
|
{
|
|
this.website = website;
|
|
}
|
|
|
|
/**
|
|
* Sets the object pointed to by the member.
|
|
* Currently used to clear the member's checkout after paying.
|
|
*/
|
|
public void setHoliday( Holiday holiday )
|
|
{
|
|
this.holiday = holiday;
|
|
}
|
|
|
|
/**
|
|
* Allows member to select a holiday object, provided they are logged into a website.
|
|
*/
|
|
public void selectHoliday( Holiday holiday )
|
|
{
|
|
if( loggedInStatus )
|
|
{
|
|
this.holiday = holiday;
|
|
System.out.println( "member ID: " + membershipNumber );
|
|
System.out.println( "holiday ref number: " + holiday.getRefNumber() );
|
|
System.out.println( "holiday type: " + holiday.getType() );
|
|
System.out.println( "holiday price: £" + holiday.getPrice() );
|
|
}
|
|
else {
|
|
System.out.println( "You are not logged in" );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Allows member to pay for a holiday, provided they are logged in, passing itself to website.checkout().
|
|
*/
|
|
public void payForHoliday()
|
|
{
|
|
if( loggedInStatus )
|
|
{
|
|
//Pass current member to the checkout method of website
|
|
website.checkout( this );
|
|
}
|
|
else {
|
|
System.out.println( "You are not logged in" );
|
|
}
|
|
}
|
|
}
|