/** * 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" ); } } }