Index

A B C D E F G H I J L M O P R S T U V W 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form

A

AccountUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class for account-related UI operations in the BTO Management System.
AccountUIHelper(BaseUI, AuthenticationController) - Constructor for class com.ntu.fdae.group1.bto.views.AccountUIHelper
Constructs a new AccountUIHelper with the specified dependencies.
addApprovedOfficer(String) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Adds an officer to the list of officers approved to work on this project.
addReply(String, LocalDate) - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Adds a reply to this enquiry.
ALLOWED_SPECIAL_CHARS - Static variable in class com.ntu.fdae.group1.bto.utils.ValidationUtil
Defines the set of special characters allowed in passwords.
App - Class in com.ntu.fdae.group1.bto
Main entry point for the BTO Management System application.
App(ControllerContainer, Scanner) - Constructor for class com.ntu.fdae.group1.bto.App
Constructs a new App instance with the specified controller container and scanner.
appController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller for BTO housing applications and application processing.
Applicant - Class in com.ntu.fdae.group1.bto.models.user
Represents an Applicant in the BTO system.
Applicant(String, String, String, int, MaritalStatus) - Constructor for class com.ntu.fdae.group1.bto.models.user.Applicant
Constructs a new Applicant with the specified details.
APPLICANT - Enum constant in enum com.ntu.fdae.group1.bto.enums.UserRole
Represents a regular user who can browse BTO projects and submit applications.
ApplicantUI - Class in com.ntu.fdae.group1.bto.views
User interface for Applicant users in the BTO Management System.
ApplicantUI(Applicant, UserController, ProjectController, ApplicationController, EnquiryController, AuthenticationController, Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.ApplicantUI
Constructs a new ApplicantUI with the specified dependencies.
Application - Class in com.ntu.fdae.group1.bto.models.project
Represents an application for a BTO housing project in the system.
Application(String, String, String, LocalDate) - Constructor for class com.ntu.fdae.group1.bto.models.project.Application
Constructs a new Application with the specified details.
ApplicationController - Class in com.ntu.fdae.group1.bto.controllers.project
Controller for application-related operations
ApplicationController(IApplicationService) - Constructor for class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Constructs a new ApplicationController
ApplicationException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown for errors related to BTO housing applications.
ApplicationException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.ApplicationException
Constructs a new ApplicationException with the specified detail message.
ApplicationException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.ApplicationException
Constructs a new ApplicationException with the specified detail message and cause.
ApplicationRepository - Class in com.ntu.fdae.group1.bto.repository.project
Implementation of the IApplicationRepository interface that persists Application entities to a CSV file.
ApplicationRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Constructs a new ApplicationRepository.
ApplicationService - Class in com.ntu.fdae.group1.bto.services.project
Implementation of the IApplicationService interface that manages the application lifecycle in the BTO Management System.
ApplicationService(IApplicationRepository, IProjectRepository, IEligibilityService, IOfficerRegistrationRepository) - Constructor for class com.ntu.fdae.group1.bto.services.project.ApplicationService
Constructs a new ApplicationService with the specified repositories and services.
ApplicationStatus - Enum in com.ntu.fdae.group1.bto.enums
Defines the possible statuses for BTO housing applications in the system.
ApplicationUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class for application-related UI operations in the BTO Management System.
ApplicationUIHelper(BaseUI, ApplicationController, ProjectController, UserController) - Constructor for class com.ntu.fdae.group1.bto.views.ApplicationUIHelper
Constructs a new ApplicationUIHelper with the specified dependencies.
APPROVED - Enum constant in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Represents a registration request that has been approved by an administrator.
authController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller handling user authentication, login, and session management.
AuthenticationController - Class in com.ntu.fdae.group1.bto.controllers.user
Controller for authentication-related operations
AuthenticationController(IAuthenticationService) - Constructor for class com.ntu.fdae.group1.bto.controllers.user.AuthenticationController
Constructs a new AuthenticationController
AuthenticationException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown for errors related to user authentication in the BTO system.
AuthenticationException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.AuthenticationException
Constructs a new AuthenticationException with the specified detail message.
AuthenticationException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.AuthenticationException
Constructs a new AuthenticationException with the specified detail message and cause.
AuthenticationService - Class in com.ntu.fdae.group1.bto.services.user
Implementation of the IAuthenticationService interface that provides authentication functionality for the BTO Management System.
AuthenticationService(IUserRepository) - Constructor for class com.ntu.fdae.group1.bto.services.user.AuthenticationService
Constructs a new AuthenticationService with the specified user repository.
AuthorizationException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown when a user attempts to access a resource or perform an action for which they do not have proper authorization.
AuthorizationException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.AuthorizationException
Constructs a new AuthorizationException with the specified detail message.
AuthorizationException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.AuthorizationException
Constructs a new AuthorizationException with the specified detail message and cause.

B

BaseUI - Class in com.ntu.fdae.group1.bto.views
Abstract base class for common UI functionalities in the BTO Management System.
BaseUI(Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.BaseUI
Constructs a BaseUI with the specified Scanner for input operations.
BOOKED - Enum constant in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Represents an application where the applicant has successfully selected and booked a flat.
Booking - Class in com.ntu.fdae.group1.bto.models.booking
Represents a booking made by an applicant for a flat in a BTO project.
Booking(String, String, String, String, FlatType, LocalDate) - Constructor for class com.ntu.fdae.group1.bto.models.booking.Booking
Constructs a new Booking with all required fields.
bookingController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller managing flat booking operations including selection and confirmation.
BookingController - Class in com.ntu.fdae.group1.bto.controllers.booking
Controller class responsible for managing booking operations in the BTO Management System.
BookingController(IBookingService) - Constructor for class com.ntu.fdae.group1.bto.controllers.booking.BookingController
Constructs a new BookingController with the specified booking service.
BookingException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown when errors occur during the booking process.
BookingException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.BookingException
Constructs a new BookingException with a detailed message.
BookingException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.BookingException
Constructs a new BookingException with a detailed message and cause.
BookingReceiptInfo - Class in com.ntu.fdae.group1.bto.models.booking
Data Transfer Object (DTO) containing all information needed for a booking receipt.
BookingReceiptInfo(String, String, int, MaritalStatus, String, String, String, String, LocalDate) - Constructor for class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Constructor for BookingReceiptInfo.
BookingRepository - Class in com.ntu.fdae.group1.bto.repository.booking
Implementation of the IBookingRepository interface that persists Booking entities to a CSV file.
BookingRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Constructs a new BookingRepository.
BookingService - Class in com.ntu.fdae.group1.bto.services.booking
Implementation of the IBookingService interface that provides booking functionality for the BTO Management System.
BookingService(IApplicationRepository, IProjectRepository, IBookingRepository, IUserRepository) - Constructor for class com.ntu.fdae.group1.bto.services.booking.BookingService
Constructs a new BookingService with the specified repositories.
BookingUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class for booking-related UI operations in the BTO Management System.
BookingUIHelper(BaseUI, UserController) - Constructor for class com.ntu.fdae.group1.bto.views.BookingUIHelper
Constructs a new BookingUIHelper with the specified dependencies.

C

canApplicantApply(User, Project) - Method in class com.ntu.fdae.group1.bto.services.booking.EligibilityService
Checks if a user is eligible to apply for a specific project.
canApplicantApply(User, Project) - Method in interface com.ntu.fdae.group1.bto.services.booking.IEligibilityService
Checks if an applicant meets the eligibility criteria for a specific project.
canOfficerRegister(HDBOfficer, Project, Collection<OfficerRegistration>, Collection<Application>) - Method in class com.ntu.fdae.group1.bto.services.booking.EligibilityService
Determines if an HDB Officer is eligible to register for a specific project.
canOfficerRegister(HDBOfficer, Project, Collection<OfficerRegistration>, Collection<Application>) - Method in interface com.ntu.fdae.group1.bto.services.booking.IEligibilityService
Checks if an officer can register to work on a specific project.
changePassword(User, String) - Method in class com.ntu.fdae.group1.bto.controllers.user.AuthenticationController
Changes a user's password
changePassword(User, String) - Method in class com.ntu.fdae.group1.bto.services.user.AuthenticationService
Changes a user's password after validating its strength.
changePassword(User, String) - Method in interface com.ntu.fdae.group1.bto.services.user.IAuthenticationService
Changes a user's password.
checkManagerProjectHandlingEligibility(HDBManager, LocalDate, LocalDate, Collection<Project>) - Method in class com.ntu.fdae.group1.bto.services.booking.EligibilityService
Checks if an HDB Manager is eligible to handle a new project with the specified dates.
checkManagerProjectHandlingEligibility(HDBManager, LocalDate, LocalDate, Collection<Project>) - Method in interface com.ntu.fdae.group1.bto.services.booking.IEligibilityService
Checks if an HDB Manager is eligible to create/handle a new project based on concurrency rules.
clearConsole() - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Clears the console.
com.ntu.fdae.group1.bto - package com.ntu.fdae.group1.bto
 
com.ntu.fdae.group1.bto.controllers - package com.ntu.fdae.group1.bto.controllers
 
com.ntu.fdae.group1.bto.controllers.booking - package com.ntu.fdae.group1.bto.controllers.booking
 
com.ntu.fdae.group1.bto.controllers.enquiry - package com.ntu.fdae.group1.bto.controllers.enquiry
 
com.ntu.fdae.group1.bto.controllers.project - package com.ntu.fdae.group1.bto.controllers.project
 
com.ntu.fdae.group1.bto.controllers.user - package com.ntu.fdae.group1.bto.controllers.user
 
com.ntu.fdae.group1.bto.enums - package com.ntu.fdae.group1.bto.enums
 
com.ntu.fdae.group1.bto.exceptions - package com.ntu.fdae.group1.bto.exceptions
 
com.ntu.fdae.group1.bto.models.booking - package com.ntu.fdae.group1.bto.models.booking
 
com.ntu.fdae.group1.bto.models.enquiry - package com.ntu.fdae.group1.bto.models.enquiry
 
com.ntu.fdae.group1.bto.models.project - package com.ntu.fdae.group1.bto.models.project
 
com.ntu.fdae.group1.bto.models.user - package com.ntu.fdae.group1.bto.models.user
 
com.ntu.fdae.group1.bto.repository - package com.ntu.fdae.group1.bto.repository
 
com.ntu.fdae.group1.bto.repository.booking - package com.ntu.fdae.group1.bto.repository.booking
 
com.ntu.fdae.group1.bto.repository.enquiry - package com.ntu.fdae.group1.bto.repository.enquiry
 
com.ntu.fdae.group1.bto.repository.project - package com.ntu.fdae.group1.bto.repository.project
 
com.ntu.fdae.group1.bto.repository.user - package com.ntu.fdae.group1.bto.repository.user
 
com.ntu.fdae.group1.bto.repository.util - package com.ntu.fdae.group1.bto.repository.util
 
com.ntu.fdae.group1.bto.services.booking - package com.ntu.fdae.group1.bto.services.booking
 
com.ntu.fdae.group1.bto.services.enquiry - package com.ntu.fdae.group1.bto.services.enquiry
 
com.ntu.fdae.group1.bto.services.project - package com.ntu.fdae.group1.bto.services.project
 
com.ntu.fdae.group1.bto.services.user - package com.ntu.fdae.group1.bto.services.user
 
com.ntu.fdae.group1.bto.utils - package com.ntu.fdae.group1.bto.utils
 
com.ntu.fdae.group1.bto.views - package com.ntu.fdae.group1.bto.views
 
ControllerContainer - Class in com.ntu.fdae.group1.bto.controllers
Container class that aggregates all controllers used in the BTO application.
ControllerContainer(AuthenticationController, UserController, ProjectController, ApplicationController, OfficerRegistrationController, BookingController, ReceiptController, EnquiryController, ReportController) - Constructor for class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Constructs a new ControllerContainer with all required controller instances.
createBooking(HDBOfficer, String, FlatType) - Method in class com.ntu.fdae.group1.bto.controllers.booking.BookingController
Creates a new booking for an applicant by an HDB officer.
createEnquiry(User, String, String) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Creates a new enquiry in the system.
createEnquiry(User, String, String) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Creates a new enquiry with the specified details.
createEnquiry(User, String, String) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Creates a new enquiry in the system.
createProject(HDBManager, String, String, Map<String, ProjectFlatInfo>, LocalDate, LocalDate, int) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Creates a new project
createProject(HDBManager, String, String, Map<String, ProjectFlatInfo>, LocalDate, LocalDate, int) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Creates a new BTO project with the specified details.
createProject(HDBManager, String, String, Map<String, ProjectFlatInfo>, LocalDate, LocalDate, int) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Creates a new project with the specified details.
CsvRepositoryHelper<ID,T> - Class in com.ntu.fdae.group1.bto.repository.util
Helper class that provides common CSV file operations for repositories.
CsvRepositoryHelper(String, String[], Function<List<String[]>, Map<ID, T>>, Function<Map<ID, T>, List<String[]>>) - Constructor for class com.ntu.fdae.group1.bto.repository.util.CsvRepositoryHelper
Constructs a new CsvRepositoryHelper with the specified parameters.

D

DataAccessException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown when there are issues accessing or manipulating data in repositories.
DataAccessException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.DataAccessException
Constructs a new DataAccessException with a detailed message.
DataAccessException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.DataAccessException
Constructs a new DataAccessException with a detailed message and cause.
DataAccessException(Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.DataAccessException
Constructs a new DataAccessException with a cause.
DATE_FORMATTER - Static variable in class com.ntu.fdae.group1.bto.views.BaseUI
Standard date formatter used consistently across the UI for displaying and parsing dates in ISO format (YYYY-MM-DD).
decreaseRemainingUnits() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Decreases the number of remaining units by one, simulating a flat being reserved.
deleteById(String) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Deletes the entity with the specified ID.
deleteById(String) - Method in interface com.ntu.fdae.group1.bto.repository.enquiry.IEnquiryRepository
Deletes the entity with the specified ID.
deleteById(String) - Method in interface com.ntu.fdae.group1.bto.repository.project.IProjectRepository
Deletes the Project with the specified ID.
deleteById(String) - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Deletes the Project with the specified ID.
deleteEnquiry(String, User) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Deletes an existing enquiry from the system.
deleteEnquiry(String, User) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Deletes an enquiry with the specified ID.
deleteEnquiry(String, User) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Deletes an existing enquiry from the system.
deleteProject(HDBManager, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Deletes a project
deleteProject(HDBManager, String) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Deletes a project from the system.
deleteProject(HDBManager, String) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Deletes a project if it meets the deletion criteria.
displayApplicantProjectDetails(Project) - Method in class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Displays project details relevant to an Applicant.
displayApplicationList(List<Application>, String) - Method in class com.ntu.fdae.group1.bto.views.ApplicationUIHelper
Displays a formatted list of applications and returns a map for selection.
displayBookingReceipt(BookingReceiptInfo) - Method in class com.ntu.fdae.group1.bto.views.BookingUIHelper
Displays the formatted details of a booking receipt.
displayEnquiryDetails(Enquiry) - Method in class com.ntu.fdae.group1.bto.views.EnquiryUIHelper
Displays the full details of a single Enquiry object.
displayEnquiryList(List<Enquiry>, String) - Method in class com.ntu.fdae.group1.bto.views.EnquiryUIHelper
Displays a formatted list of enquiries, sorted by unreplied first, and returns a map for selection.
displayError(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Displays an error message, typically formatted differently.
displayFlatAvailability(Project) - Method in class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Displays the availability of different flat types for a given project.
displayHeader(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Displays a standard menu header.
displayList(List<T>, Function<T, String>) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Displays a list of items with custom formatting.
displayLogin() - Method in class com.ntu.fdae.group1.bto.views.LoginUI
Displays the login prompt and handles the login process.
displayMainMenu() - Method in class com.ntu.fdae.group1.bto.views.ApplicantUI
Displays the main menu for applicant users and handles their selections.
displayMainMenu() - Method in class com.ntu.fdae.group1.bto.views.HDBManagerUI
Displays the main menu for HDB manager users and handles their selections.
displayMainMenu() - Method in class com.ntu.fdae.group1.bto.views.HDBOfficerUI
Displays the main menu for HDB officer users and handles their selections.
displayMainMenu() - Method in class com.ntu.fdae.group1.bto.views.MainMenuUI
Displays the main menu and handles user input.
displayMessage(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Displays a standard message to the console.
displayOfficerRegistrationDetails(OfficerRegistration) - Method in class com.ntu.fdae.group1.bto.views.OfficerRegUIHelper
Displays detailed information about a specific officer registration.
displayOfficerRegList(List<OfficerRegistration>, String) - Method in class com.ntu.fdae.group1.bto.views.OfficerRegUIHelper
Displays a formatted list of officer registrations and provides a mapping for selection.
displayOfficerRegListForViewing(List<OfficerRegistration>, String) - Method in class com.ntu.fdae.group1.bto.views.OfficerRegUIHelper
Displays a formatted list of officer registrations for viewing purposes only.
displayRegister() - Method in class com.ntu.fdae.group1.bto.views.LoginUI
Displays the registration prompt and handles the registration process.
displayStaffProjectDetails(Project, int) - Method in class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Displays comprehensive project details relevant to HDB Staff (Officers/Managers).

E

editContent(String) - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Edits the content of this enquiry.
editCoreProjectDetails(HDBManager, String, String, String, LocalDate, LocalDate, int) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Edits the core details of an existing project.
editCoreProjectDetails(HDBManager, String, String, String, LocalDate, LocalDate, int) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Edits the core details of an existing project.
editEnquiry(String, String, User) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Edits an existing enquiry's content.
editEnquiry(String, String, User) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Edits the content of an existing enquiry.
editEnquiry(String, String, User) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Edits an existing enquiry's content.
editProject(HDBManager, String, String, String, LocalDate, LocalDate, int) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Edits an existing project
EligibilityService - Class in com.ntu.fdae.group1.bto.services.booking
Service class that implements eligibility checking rules for the BTO Management System.
EligibilityService(IProjectRepository) - Constructor for class com.ntu.fdae.group1.bto.services.booking.EligibilityService
Constructs a new EligibilityService with the required project repository.
Enquiry - Class in com.ntu.fdae.group1.bto.models.enquiry
Represents a customer enquiry in the BTO system.
Enquiry(String, String, String, String, LocalDate) - Constructor for class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Constructs a new Enquiry with the specified details.
enquiryController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller handling customer enquiries and support requests.
EnquiryController - Class in com.ntu.fdae.group1.bto.controllers.enquiry
Controller responsible for managing enquiry-related operations in the BTO Management System.
EnquiryController(IEnquiryService, IOfficerRegistrationService) - Constructor for class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Constructs a new EnquiryController with the specified services.
EnquiryRepository - Class in com.ntu.fdae.group1.bto.repository.enquiry
Implementation of the IEnquiryRepository interface that persists Enquiry entities to a CSV file.
EnquiryRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Constructs a new EnquiryRepository.
EnquiryService - Class in com.ntu.fdae.group1.bto.services.enquiry
Service for managing enquiries in the BTO Management System.
EnquiryService(IEnquiryRepository) - Constructor for class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Constructs an EnquiryService with the specified enquiry repository.
EnquiryUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class to manage common UI tasks related to displaying Enquiry information.
EnquiryUIHelper(BaseUI, UserController, ProjectController) - Constructor for class com.ntu.fdae.group1.bto.views.EnquiryUIHelper
Constructs a new EnquiryUIHelper with the required UI and controllers.
equals(Object) - Method in class com.ntu.fdae.group1.bto.models.project.Project
 

F

FileUtil - Class in com.ntu.fdae.group1.bto.utils
Utility class providing common file operations, CSV handling, and data parsing capabilities for the BTO Management System.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in interface com.ntu.fdae.group1.bto.repository.IRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Retrieves all entities currently managed by this repository.
findAll() - Method in class com.ntu.fdae.group1.bto.repository.user.UserRepository
Retrieves all entities currently managed by this repository.
findAllFlatInfoIds() - Method in interface com.ntu.fdae.group1.bto.repository.project.IProjectRepository
Retrieves all unique flat information IDs associated with projects across the system.
findAllFlatInfoIds() - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Retrieves all unique flat information IDs associated with projects across the system.
findApprovedHandlingProject(HDBOfficer) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Finds ALL projects an officer is currently approved to handle.
findByApplicantNric(String) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Finds all bookings made by a specific applicant.
findByApplicantNric(String) - Method in interface com.ntu.fdae.group1.bto.repository.booking.IBookingRepository
Finds all bookings made by a specific applicant.
findByApplicantNric(String) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Finds an application by the applicant's NRIC.
findByApplicantNric(String) - Method in interface com.ntu.fdae.group1.bto.repository.project.IApplicationRepository
Finds an application by the applicant's NRIC.
findByApplicationId(String) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Finds a booking by its associated application ID.
findByApplicationId(String) - Method in interface com.ntu.fdae.group1.bto.repository.booking.IBookingRepository
Finds a booking by its associated application ID.
findById(ID) - Method in interface com.ntu.fdae.group1.bto.repository.IRepository
Finds and retrieves a single entity by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Finds a booking by its unique identifier.
findById(String) - Method in interface com.ntu.fdae.group1.bto.repository.booking.IBookingRepository
Finds a booking by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Finds and retrieves a single entity by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Finds and retrieves a single entity by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Finds and retrieves a single entity by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Finds and retrieves a single entity by its unique identifier.
findById(String) - Method in class com.ntu.fdae.group1.bto.repository.user.UserRepository
Finds and retrieves a single entity by its unique identifier.
findByOfficerNric(String) - Method in interface com.ntu.fdae.group1.bto.repository.project.IOfficerRegistrationRepository
Retrieves all project registrations for a specific officer.
findByOfficerNric(String) - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Retrieves all project registrations for a specific officer.
findByProjectId(String) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Finds all bookings associated with a specific project.
findByProjectId(String) - Method in interface com.ntu.fdae.group1.bto.repository.booking.IBookingRepository
Finds all bookings associated with a specific project.
findByProjectId(String) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Retrieves all enquiries related to a specific project.
findByProjectId(String) - Method in interface com.ntu.fdae.group1.bto.repository.enquiry.IEnquiryRepository
Retrieves all enquiries related to a specific project.
findByProjectId(String) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Finds all applications associated with a specific project.
findByProjectId(String) - Method in interface com.ntu.fdae.group1.bto.repository.project.IApplicationRepository
Finds all applications associated with a specific project.
findByProjectId(String) - Method in interface com.ntu.fdae.group1.bto.repository.project.IOfficerRegistrationRepository
Retrieves all officer registrations for a specific project.
findByProjectId(String) - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Retrieves all officer registrations for a specific project.
findByStatus(ApplicationStatus) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Finds all applications with a specific status.
findByStatus(ApplicationStatus) - Method in interface com.ntu.fdae.group1.bto.repository.project.IApplicationRepository
Finds all applications with a specific status.
findByUserNric(String) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Retrieves all enquiries submitted by a specific user.
findByUserNric(String) - Method in interface com.ntu.fdae.group1.bto.repository.enquiry.IEnquiryRepository
Retrieves all enquiries submitted by a specific user.
findEnquiryById(String) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Finds an enquiry by its unique identifier.
findEnquiryById(String) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Finds an enquiry by its unique identifier.
findEnquiryById(String) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Finds an enquiry by its unique identifier.
findProjectById(String) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Finds a project by its ID
findProjectById(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves a project by its unique identifier.
findProjectById(String) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Retrieves a project by its unique identifier.
findUserById(String) - Method in interface com.ntu.fdae.group1.bto.services.user.IUserService
Finds a user by their NRIC (National Registration Identity Card).
findUserById(String) - Method in class com.ntu.fdae.group1.bto.services.user.UserService
Finds a user by their NRIC (National Registration Identity Card).
findUserNames(Collection<String>) - Method in interface com.ntu.fdae.group1.bto.services.user.IUserService
Retrieves names for a collection of users identified by their NRICs.
findUserNames(Collection<String>) - Method in class com.ntu.fdae.group1.bto.services.user.UserService
Retrieves names for a collection of users identified by their NRICs.
FlatType - Enum in com.ntu.fdae.group1.bto.enums
Represents the different types of flats available in HDB BTO projects.
formatDateSafe(LocalDate) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Formats a LocalDate safely for display, handling null values.
formatEnumName(Enum<?>) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Formats an enum constant for user-friendly display.
formatLocalDate(LocalDate) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Formats a LocalDate into a string using the predefined ISO date format.

G

generateApplicationId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique application ID.
generateBookingId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique booking ID.
generateBookingReceipt(Booking) - Method in interface com.ntu.fdae.group1.bto.services.booking.IReceiptService
Generates comprehensive receipt information for a given booking.
generateBookingReceipt(Booking) - Method in class com.ntu.fdae.group1.bto.services.booking.ReceiptService
Gathers necessary information (Applicant, Project) related to the given Booking and constructs a BookingReceiptInfo DTO.
generateBookingReport(Map<String, String>) - Method in class com.ntu.fdae.group1.bto.controllers.project.ReportController
Generates a booking report
generateBookingReport(Map<String, String>) - Method in interface com.ntu.fdae.group1.bto.services.project.IReportService
Generates a report about bookings
generateBookingReport(Map<String, String>) - Method in class com.ntu.fdae.group1.bto.services.project.ReportService
Generates a detailed booking report that can be filtered by various criteria.
generateEnquiryId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique enquiry ID.
generateFlatInfoId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique flat information ID.
generateOfficerRegId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique officer registration ID.
generateProjectId() - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Generates a new unique project ID.
getAge() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the age of this user.
getAllProjects(User, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Retrieves all projects in the system, with optional filtering.
getAllProjects(User, Map<String, Object>) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all projects accessible to a specific user, with optional filters.
getAllProjects(User, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Retrieves all projects visible to a specific user, with optional filters.
getApplicantAge() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the age of the applicant.
getApplicantMaritalStatus() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the marital status of the applicant.
getApplicantName() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the full name of the applicant.
getApplicantNric() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the NRIC of the applicant who made this booking.
getApplicantNric() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the NRIC of the applicant.
getApplicantNric() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the NRIC of the applicant who submitted this application.
getApplicationForUser(String) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Gets the application for a specific applicant
getApplicationForUser(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Gets the application for a specific applicant
getApplicationId() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the application ID associated with this booking.
getApplicationId() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the unique identifier for this application.
getApplicationsByProject(String) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Gets all applications for a specific project
getApplicationsByProject(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Gets all applications for a specific project
getApplicationsByStatus(ApplicationStatus) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Gets all applications with a specific status
getApplicationsByStatus(ApplicationStatus) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Gets all applications with a specific status
getApplicationsByStatus(HDBStaff, ApplicationStatus) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Retrieves applications with a specific status.
getApprovedOfficerNrics() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the list of NRICs of HDB officers approved to work on this project.
getBookedFlatType() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the type of flat that has been booked.
getBookedFlatType() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the type of flat that has been booked.
getBookingDate() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the date when the booking was made.
getBookingDate() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the date when the booking was made.
getBookingId() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the unique identifier for this booking.
getBookingId() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the booking ID associated with this receipt.
getBookingReceiptInfo(HDBOfficer, Booking) - Method in class com.ntu.fdae.group1.bto.controllers.booking.ReceiptController
Retrieves the consolidated information needed to generate a booking receipt.
getBookingsByProject(String) - Method in class com.ntu.fdae.group1.bto.services.booking.BookingService
Retrieves all bookings associated with a specific project.
getBookingsByProject(String) - Method in interface com.ntu.fdae.group1.bto.services.booking.IBookingService
Retrieves all bookings associated with a specific project.
getBookingsForProject(String) - Method in class com.ntu.fdae.group1.bto.controllers.booking.BookingController
Retrieves all bookings associated with a specific project.
getClosingDate() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the date when the application period closes.
getContent() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the content or question of this enquiry.
getEnquiryId() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the unique identifier for this enquiry.
getFlatInfo(FlatType) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets information about a specific flat type in this project.
getFlatType() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Gets the flat type enum value.
getFlatTypes() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the map of flat types available in this project.
getManagerNric() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the NRIC of the manager assigned to this project.
getMaritalStatus() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the marital status of this user.
getMaxOfficerSlots() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the maximum number of officer slots available for this project.
getMyApplication(User) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Gets the application for a specific applicant
getMyRegistrations(HDBOfficer) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Retrieves all registration requests submitted by the specified officer.
getMyRegistrationStatus(HDBOfficer, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Retrieves the current registration status for a specific officer regarding a specific project.
getName() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the full name of this user.
getNeighborhood() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the neighborhood of this project.
getNric() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the NRIC number of this user.
getOfficerNric() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Gets the NRIC of the officer requesting to work on the project.
getOpeningDate() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the date when the application period opens.
getPasswordHash() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the hashed password of this user.
getPendingRegistrationCountForProject(HDBStaff, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Gets the count of PENDING officer registrations specifically for a given project.
getPendingRegistrationCountForProject(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets the count of pending registration requests for a specific project.
getPendingRegistrationCountForProject(String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets the count of pending registration requests for a specific project.
getPendingRegistrations() - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets all pending registration requests across all projects.
getPendingRegistrations() - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets all pending registration requests across all projects.
getPendingRegistrations(HDBManager) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Gets a list of all officer registrations currently in the PENDING state.
getPendingRegistrationsForProject(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets all pending registration requests for a specific project.
getPendingRegistrationsForProject(String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets all pending registration requests for a specific project.
getPreferredFlatType() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the flat type preferred by the applicant.
getPrice() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Gets the price of this flat type.
getProjectApplications(HDBStaff, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Retrieves all applications for a specific project.
getProjectId() - Method in class com.ntu.fdae.group1.bto.models.booking.Booking
Gets the ID of the project where the flat is booked.
getProjectId() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the ID of the project this enquiry is related to.
getProjectId() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the ID of the BTO project being applied for.
getProjectId() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Gets the ID of the project the officer is requesting to work on.
getProjectId() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the unique identifier for this project.
getProjectName() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the name of the project.
getProjectName() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the name of this housing project.
getProjectNeighborhood() - Method in class com.ntu.fdae.group1.bto.models.booking.BookingReceiptInfo
Gets the location or address of the project.
getProjectsAvailableForOfficerRegistration(HDBOfficer) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all projects available for an HDB Officer to register for.
getProjectsAvailableForOfficerRegistration(HDBOfficer) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
 
getProjectsAvailableForRegistration(HDBOfficer) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Gets projects potentially available for the given officer to register for handling.
getProjectsManagedBy(HDBManager) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Gets projects managed by a specific HDB Manager object.
getProjectsManagedBy(HDBManager, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Retrieves projects managed by a specific HDB manager, with optional filtering.
getProjectsManagedBy(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all projects managed by a specific manager.
getProjectsManagedBy(String) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Retrieves all projects managed by a specific manager.
getProjectsManagedBy(String, Map<String, Object>) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all projects managed by a specific manager with optional filters.
getProjectsManagedBy(String, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
 
getRegistrationId() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Gets the unique identifier for this registration.
getRegistrationsByOfficer(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets all registration records for a specific officer.
getRegistrationsByOfficer(String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets all registration records for a specific officer.
getRegistrationsByProject(String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets all registration records for a specific project.
getRegistrationsByProject(String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets all registration records for a specific project.
getRegistrationStatus(HDBOfficer, String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Gets the registration status of an officer for a specific project.
getRegistrationStatus(HDBOfficer, String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Gets the current registration status for a specific officer and project.
getRemainingOfficerSlots() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the remaining number of officer slots available for this project.
getRemainingUnits() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Gets the number of units of this flat type that are still available for application.
getReply() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the reply provided by HDB staff.
getReplyDate() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the date when a reply was provided.
getRequestDate() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Gets the date when the registration request was submitted.
getRequestedWithdrawalDate() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the date when a withdrawal was requested by the applicant.
getRole() - Method in class com.ntu.fdae.group1.bto.models.user.Applicant
Gets the user role of this Applicant.
getRole() - Method in class com.ntu.fdae.group1.bto.models.user.HDBManager
Gets the user role of this HDB Manager.
getRole() - Method in class com.ntu.fdae.group1.bto.models.user.HDBOfficer
Gets the user role of this HDB Officer.
getRole() - Method in class com.ntu.fdae.group1.bto.models.user.User
Gets the role of this user in the system.
getStatus() - Method in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Gets the user-friendly display string for this marital status.
getStatus() - Method in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Gets the user-friendly display string for this registration status.
getStatus() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the current status of this application in the workflow.
getStatus() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Gets the current status of this registration request.
getSubmissionDate() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the date when this enquiry was submitted.
getSubmissionDate() - Method in class com.ntu.fdae.group1.bto.models.project.Application
Gets the date when the application was submitted.
getTotalUnits() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Gets the total number of units of this flat type in the project.
getTypeName() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Gets the name of this flat type as a string.
getUser(String) - Method in class com.ntu.fdae.group1.bto.controllers.user.UserController
Retrieves a user by their NRIC.
getUserName(String) - Method in class com.ntu.fdae.group1.bto.controllers.user.UserController
Retrieves the name of a user identified by their NRIC.
getUserNamesForList(Collection<String>) - Method in class com.ntu.fdae.group1.bto.controllers.user.UserController
Retrieves names for a collection of users identified by their NRICs.
getUserNric() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Gets the NRIC of the user who submitted this enquiry.
getVisibleProjectsForUser(User) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Gets projects visible to a user (without additional filters).
getVisibleProjectsForUser(User) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all currently visible projects for which the user is eligible to apply.
getVisibleProjectsForUser(User) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
 
getVisibleProjectsForUser(User, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Retrieves projects that are visible to a specific user, with optional filtering.
getVisibleProjectsForUser(User, Map<String, Object>) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Retrieves all currently visible projects for which the user is eligible to apply, filtered by the provided criteria.
getVisibleProjectsForUser(User, Map<String, Object>) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Gets a list of projects that are currently visible and eligible for a specific user (typically an Applicant or Officer acting as one) to potentially apply for.

H

handlePasswordChange(User) - Method in class com.ntu.fdae.group1.bto.views.AccountUIHelper
Handles the interactive workflow for a logged-in user to change their password, including password strength validation via the controller.
hashCode() - Method in class com.ntu.fdae.group1.bto.models.project.Project
 
hashPassword(String) - Static method in class com.ntu.fdae.group1.bto.utils.PasswordUtil
Hashes the given plain-text password using PBKDF2WithHmacSHA256 with a newly generated salt and configured iteration count.
HDB_MANAGER - Enum constant in enum com.ntu.fdae.group1.bto.enums.UserRole
Represents an HDB manager with administrative access to the entire system.
HDB_OFFICER - Enum constant in enum com.ntu.fdae.group1.bto.enums.UserRole
Represents an HDB officer who processes applications and manages project operations.
HDBManager - Class in com.ntu.fdae.group1.bto.models.user
Represents an HDB Manager in the BTO system.
HDBManager(String, String, String, int, MaritalStatus) - Constructor for class com.ntu.fdae.group1.bto.models.user.HDBManager
Constructs a new HDB Manager with the specified details.
HDBManagerUI - Class in com.ntu.fdae.group1.bto.views
User interface for HDB Manager users in the BTO Management System.
HDBManagerUI(HDBManager, UserController, ProjectController, ApplicationController, OfficerRegistrationController, EnquiryController, ReportController, AuthenticationController, Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.HDBManagerUI
Constructs a new HDBManagerUI with the specified dependencies.
HDBOfficer - Class in com.ntu.fdae.group1.bto.models.user
Represents an HDB Officer in the BTO system.
HDBOfficer(String, String, String, int, MaritalStatus) - Constructor for class com.ntu.fdae.group1.bto.models.user.HDBOfficer
Constructs a new HDB Officer with the specified details.
HDBOfficerUI - Class in com.ntu.fdae.group1.bto.views
User interface for HDB Officer users in the BTO Management System.
HDBOfficerUI(HDBOfficer, UserController, ProjectController, ApplicationController, OfficerRegistrationController, BookingController, ReceiptController, EnquiryController, AuthenticationController, Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.HDBOfficerUI
Constructs a new HDBOfficerUI with the specified dependencies.
HDBStaff - Class in com.ntu.fdae.group1.bto.models.user
Abstract base class representing an HDB staff member in the BTO system.
HDBStaff(String, String, String, int, MaritalStatus) - Constructor for class com.ntu.fdae.group1.bto.models.user.HDBStaff
Constructs a new HDB staff member with the specified details.

I

IApplicationRepository - Interface in com.ntu.fdae.group1.bto.repository.project
Repository interface for accessing and manipulating Application entities in the data store.
IApplicationService - Interface in com.ntu.fdae.group1.bto.services.project
Service interface defining operations for managing BTO project applications.
IAuthenticationService - Interface in com.ntu.fdae.group1.bto.services.user
Service interface for authentication operations in the BTO Management System.
IBookingRepository - Interface in com.ntu.fdae.group1.bto.repository.booking
Repository interface for accessing and manipulating Booking entities in the data store.
IBookingService - Interface in com.ntu.fdae.group1.bto.services.booking
Interface defining the service operations for handling booking functionality in the BTO Management System.
IdGenerator - Class in com.ntu.fdae.group1.bto.utils
Utility class for generating sequential IDs with a fixed prefix and zero-padding.
IEligibilityService - Interface in com.ntu.fdae.group1.bto.services.booking
Service interface for determining eligibility of users for various BTO system operations.
IEnquiryRepository - Interface in com.ntu.fdae.group1.bto.repository.enquiry
Repository interface for accessing and manipulating Enquiry entities in the BTO Management System.
IEnquiryService - Interface in com.ntu.fdae.group1.bto.services.enquiry
Interface defining the service operations for handling enquiries in the BTO Management System.
increaseRemainingUnits() - Method in class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Increases the number of remaining units by one, simulating a flat being released.
initialise(IProjectRepository, IApplicationRepository, IBookingRepository, IEnquiryRepository, IOfficerRegistrationRepository) - Static method in class com.ntu.fdae.group1.bto.utils.IdGenerator
Initialises the ID counters by scanning existing IDs from loaded repositories.
InvalidInputException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown when user input validation fails.
InvalidInputException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.InvalidInputException
Constructs a new InvalidInputException with a detailed message.
InvalidInputException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.InvalidInputException
Constructs a new InvalidInputException with a detailed message and cause.
IOfficerRegistrationRepository - Interface in com.ntu.fdae.group1.bto.repository.project
Repository interface for accessing and manipulating OfficerRegistration entities in the BTO Management System.
IOfficerRegistrationService - Interface in com.ntu.fdae.group1.bto.services.project
Service interface defining operations for managing HDB Officer registrations to projects.
IProjectRepository - Interface in com.ntu.fdae.group1.bto.repository.project
Repository interface for accessing and manipulating Project entities in the BTO Management System.
IProjectService - Interface in com.ntu.fdae.group1.bto.services.project
Service interface for project-related operations in the BTO Management System.
IReceiptService - Interface in com.ntu.fdae.group1.bto.services.booking
Service interface defining operations for generating booking receipts in the BTO Management System.
IReportService - Interface in com.ntu.fdae.group1.bto.services.project
Service interface for report generation operations in the BTO Management System.
IRepository<T,ID> - Interface in com.ntu.fdae.group1.bto.repository
Generic repository interface defining the core data access operations for all entities in the BTO Management System.
isApplicantEligibleForFlatType(User, FlatType) - Method in class com.ntu.fdae.group1.bto.services.booking.EligibilityService
Checks if a user is eligible for a specific flat type.
isApplicantEligibleForFlatType(User, FlatType) - Method in interface com.ntu.fdae.group1.bto.services.booking.IEligibilityService
Checks if an applicant is eligible for a specific flat type.
isApproved() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Checks if this registration request has been approved.
isPending() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Checks if this registration request is still pending review.
isRejected() - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Checks if this registration request has been rejected.
isReplied() - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Checks if this enquiry has been replied to.
isValidNric(String) - Static method in class com.ntu.fdae.group1.bto.utils.ValidationUtil
Validates if a string conforms to the Singapore NRIC format.
isVisible() - Method in class com.ntu.fdae.group1.bto.models.project.Project
Gets the visibility status of this project.
IUserRepository - Interface in com.ntu.fdae.group1.bto.repository.user
Repository interface for managing User entities.
IUserService - Interface in com.ntu.fdae.group1.bto.services.user
Service interface for user-related operations in the BTO Management System.

J

joinList(List<String>, String) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Joins a list of strings with a specified delimiter.

L

loadAll() - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in interface com.ntu.fdae.group1.bto.repository.IRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Loads all entities from the persistent storage into memory.
loadAll() - Method in class com.ntu.fdae.group1.bto.repository.user.UserRepository
Loads all entities from the persistent storage into memory.
loadData() - Method in class com.ntu.fdae.group1.bto.repository.util.CsvRepositoryHelper
Loads data from the CSV file and converts it to a map of entities.
login(String, String) - Method in class com.ntu.fdae.group1.bto.controllers.user.AuthenticationController
Attempts to log in a user
login(String, String) - Method in class com.ntu.fdae.group1.bto.services.user.AuthenticationService
Authenticates a user with the provided credentials.
login(String, String) - Method in interface com.ntu.fdae.group1.bto.services.user.IAuthenticationService
Authenticates a user with the provided credentials.
LoginUI - Class in com.ntu.fdae.group1.bto.views
LoginUI class for handling the login process in the BTO Management System.
LoginUI(AuthenticationController, Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.LoginUI
Constructs a new LoginUI with the specified authentication controller and scanner.

M

main(String[]) - Static method in class com.ntu.fdae.group1.bto.App
Main method that serves as the entry point for the BTO Management System.
MainMenuUI - Class in com.ntu.fdae.group1.bto.views
MainMenuUI class for handling the main menu of the BTO Management System.
MainMenuUI(AuthenticationController, Scanner) - Constructor for class com.ntu.fdae.group1.bto.views.MainMenuUI
Constructs a new MainMenuUI with the specified authentication controller and scanner.
MaritalStatus - Enum in com.ntu.fdae.group1.bto.enums
Defines the possible marital statuses for users in the BTO system.
MARRIED - Enum constant in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Represents a user who is legally married.

O

officerRegController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller handling officer registration requests and approval workflows.
OfficerRegistration - Class in com.ntu.fdae.group1.bto.models.project
Represents a registration request from an HDB officer to work on a specific BTO project.
OfficerRegistration(String, String, String, LocalDate) - Constructor for class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Constructs a new OfficerRegistration with the specified details.
OfficerRegistrationController - Class in com.ntu.fdae.group1.bto.controllers.project
Controller for officer registration operations.
OfficerRegistrationController(IOfficerRegistrationService, IProjectService) - Constructor for class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Constructs a new OfficerRegistrationController with necessary services.
OfficerRegistrationRepository - Class in com.ntu.fdae.group1.bto.repository.project
Repository implementation for managing OfficerRegistration entities in the BTO Management System.
OfficerRegistrationRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Constructs a new OfficerRegistrationRepository.
OfficerRegistrationService - Class in com.ntu.fdae.group1.bto.services.project
Service that manages the registration of HDB Officers to projects in the BTO Management System.
OfficerRegistrationService(IOfficerRegistrationRepository, IProjectRepository, IApplicationRepository, IEligibilityService) - Constructor for class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Constructs a new OfficerRegistrationService with the specified repositories and services.
OfficerRegStatus - Enum in com.ntu.fdae.group1.bto.enums
Defines the possible registration statuses for HDB officers in the BTO system.
OfficerRegUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class for officer registration related UI operations in the BTO Management System.
OfficerRegUIHelper(BaseUI, ProjectController, UserController) - Constructor for class com.ntu.fdae.group1.bto.views.OfficerRegUIHelper
Constructs a new OfficerRegUIHelper with the specified dependencies.

P

parseDoubleOrDefault(String, Double) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Safely parses a Double from a string with a fallback default value.
parseEnum(Class<E>, String) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Safely parses an enum value from a string (case-insensitive).
parseEnum(Class<E>, String, E) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Safely parses an enum value from a string (case-insensitive) with a default value.
parseIntOrDefault(String, Integer) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Safely parses an Integer from a string with a fallback default value.
parseLocalDate(String) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Safely parses a LocalDate from a string using the predefined ISO date format.
PasswordUtil - Class in com.ntu.fdae.group1.bto.utils
Utility class for handling password hashing and verification using PBKDF2WithHmacSHA256.
pause() - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Pauses execution until the user presses Enter.
PENDING - Enum constant in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Represents an application that has been submitted but not yet processed.
PENDING - Enum constant in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Represents a registration request that is awaiting review.
performApplicationSubmission(User, String) - Method in class com.ntu.fdae.group1.bto.views.ApplicationUIHelper
Guides the user through submitting an application for a specific project, including handling flat type preferences based on eligibility and availability.
performBooking(HDBOfficer, String, FlatType) - Method in class com.ntu.fdae.group1.bto.services.booking.BookingService
Performs a booking operation for an applicant by an HDB officer.
performBooking(HDBOfficer, String, FlatType) - Method in interface com.ntu.fdae.group1.bto.services.booking.IBookingService
Performs a booking operation for an applicant by an HDB officer.
performViewAndWithdraw(User) - Method in class com.ntu.fdae.group1.bto.views.ApplicationUIHelper
Displays the details of the applicant's current or most recent application and provides an option to request withdrawal if applicable.
Project - Class in com.ntu.fdae.group1.bto.models.project
Represents a BTO housing project in the system.
Project(String, String, String, Map<FlatType, ProjectFlatInfo>, LocalDate, LocalDate, String, int) - Constructor for class com.ntu.fdae.group1.bto.models.project.Project
Constructs a new Project with the specified details.
projectController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller managing BTO projects, including creation, updates, and queries.
ProjectController - Class in com.ntu.fdae.group1.bto.controllers.project
Controller for project-related operations
ProjectController(IProjectService) - Constructor for class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Constructs a new ProjectController
ProjectFlatInfo - Class in com.ntu.fdae.group1.bto.models.project
Represents detailed information about a specific flat type within a BTO project.
ProjectFlatInfo(FlatType, int, int, double) - Constructor for class com.ntu.fdae.group1.bto.models.project.ProjectFlatInfo
Constructs a new ProjectFlatInfo with the specified details.
ProjectRepository - Class in com.ntu.fdae.group1.bto.repository.project
Repository implementation for managing Project entities in the BTO Management System.
ProjectRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Constructs a new ProjectRepository.
ProjectService - Class in com.ntu.fdae.group1.bto.services.project
Service class for managing project-related operations in the BTO Management System.
ProjectService(IProjectRepository, IEligibilityService, IApplicationRepository, IOfficerRegistrationRepository) - Constructor for class com.ntu.fdae.group1.bto.services.project.ProjectService
Constructs a new ProjectService with the required dependencies.
ProjectUIHelper - Class in com.ntu.fdae.group1.bto.views
Helper class for project-related UI operations in the BTO Management System.
ProjectUIHelper(BaseUI, UserController, ProjectController) - Constructor for class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Constructs a new ProjectUIHelper with necessary UI and controllers.
promptForConfirmation(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for confirmation (Y/N).
promptForDate(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for a date input with basic error handling.
promptForDouble(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for a double input with basic error handling.
promptForEnum(String, Class<E>, List<E>) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user to select an item from a list of enum values.
promptForInput(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for string input.
promptForInt(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for an integer input with basic error handling.
promptForPassword(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for a password input, masking the input for security.
promptForPasswordWithToggle(String) - Method in class com.ntu.fdae.group1.bto.views.BaseUI
Prompts the user for potentially sensitive input (like a password), offering an option to make the input visible.
promptForProjectFilters(boolean, boolean) - Method in class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Prompts the user for project filtering criteria (Neighbourhood, Flat Type, Visibility).

R

readCsvLines(String) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Reads all lines from a CSV file, skipping the header.
receiptController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller for generating and managing booking receipts and payment records.
ReceiptController - Class in com.ntu.fdae.group1.bto.controllers.booking
Controller responsible for managing receipt generation operations in the BTO Management System.
ReceiptController(IReceiptService) - Constructor for class com.ntu.fdae.group1.bto.controllers.booking.ReceiptController
Constructs a new ReceiptController with the specified receipt service.
ReceiptService - Class in com.ntu.fdae.group1.bto.services.booking
Service for generating booking receipts in the BTO Management System.
ReceiptService(IUserRepository, IProjectRepository) - Constructor for class com.ntu.fdae.group1.bto.services.booking.ReceiptService
Constructs a ReceiptService with required repositories.
registerApplicant(String, String, int, MaritalStatus) - Method in class com.ntu.fdae.group1.bto.controllers.user.AuthenticationController
Registers a new applicant
registerApplicant(String, String, int, MaritalStatus) - Method in class com.ntu.fdae.group1.bto.services.user.AuthenticationService
Registers a new applicant user using default password.
registerApplicant(String, String, int, MaritalStatus) - Method in interface com.ntu.fdae.group1.bto.services.user.IAuthenticationService
Registers a new Applicant user.
RegistrationException - Exception in com.ntu.fdae.group1.bto.exceptions
Custom exception class for handling registration-related errors in the BTO system.
RegistrationException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.RegistrationException
Constructs a new registration exception with the specified detail message.
RegistrationException(String, Throwable) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.RegistrationException
Constructs a new registration exception with the specified detail message and cause.
REJECTED - Enum constant in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Represents a registration request that has been rejected by an administrator.
removeApprovedOfficer(String) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Removes an officer from the list of officers approved to work on this project.
replyToEnquiry(HDBStaff, String, String) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Adds an official reply to an existing enquiry.
replyToEnquiry(String, String, HDBStaff) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Adds a reply to an enquiry.
replyToEnquiry(String, String, HDBStaff) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Adds an official reply to an existing enquiry.
reportController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller for generating system reports and analytics.
ReportController - Class in com.ntu.fdae.group1.bto.controllers.project
Controller for report-related operations
ReportController(IReportService) - Constructor for class com.ntu.fdae.group1.bto.controllers.project.ReportController
Constructs a new ReportController
ReportService - Class in com.ntu.fdae.group1.bto.services.project
Implementation of the IReportService interface that provides report generation functionality for the BTO Management System.
ReportService(IBookingRepository, IProjectRepository, IUserRepository) - Constructor for class com.ntu.fdae.group1.bto.services.project.ReportService
Constructs a new ReportService with the repositories needed for report generation.
requestProjectRegistration(HDBOfficer, String) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Requests registration of an HDB officer to a project.
requestProjectRegistration(HDBOfficer, String) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Requests registration of an HDB officer to a project.
requestRegistration(HDBOfficer, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Handles an HDB Officer's request to register for a specific project.
requestWithdrawal(User) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Requests withdrawal of an application
requestWithdrawal(User) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Requests withdrawal of an existing application
requestWithdrawal(User) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Requests withdrawal of an existing application
reviewApplication(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Reviews an application
reviewApplication(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Reviews an application
reviewApplication(HDBManager, String, boolean) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Reviews an application
reviewRegistration(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.controllers.project.OfficerRegistrationController
Handles an HDB Manager's review (approval or rejection) of a pending officer registration request.
reviewRegistration(HDBManager, String, boolean) - Method in interface com.ntu.fdae.group1.bto.services.project.IOfficerRegistrationService
Reviews (approves or rejects) an officer's registration request.
reviewRegistration(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.services.project.OfficerRegistrationService
Reviews (approves or rejects) an officer's registration request.
reviewWithdrawal(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Reviews a withdrawal request
reviewWithdrawal(HDBManager, String, boolean) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Reviews a withdrawal request
reviewWithdrawal(HDBManager, String, boolean) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Reviews a withdrawal request
run() - Method in class com.ntu.fdae.group1.bto.App
Starts and runs the main application loop.

S

save(Booking) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Saves an entity to the repository.
save(Enquiry) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Saves an entity to the repository.
save(Application) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Saves an entity to the repository.
save(OfficerRegistration) - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Saves an entity to the repository.
save(Project) - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Saves an entity to the repository.
save(User) - Method in class com.ntu.fdae.group1.bto.repository.user.UserRepository
Saves an entity to the repository.
save(T) - Method in interface com.ntu.fdae.group1.bto.repository.IRepository
Saves an entity to the repository.
saveAll(Map<ID, T>) - Method in interface com.ntu.fdae.group1.bto.repository.IRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, Booking>) - Method in class com.ntu.fdae.group1.bto.repository.booking.BookingRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, Enquiry>) - Method in class com.ntu.fdae.group1.bto.repository.enquiry.EnquiryRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, Application>) - Method in class com.ntu.fdae.group1.bto.repository.project.ApplicationRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, OfficerRegistration>) - Method in class com.ntu.fdae.group1.bto.repository.project.OfficerRegistrationRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, Project>) - Method in class com.ntu.fdae.group1.bto.repository.project.ProjectRepository
Saves multiple entities to the repository in a batch operation.
saveAll(Map<String, User>) - Method in class com.ntu.fdae.group1.bto.repository.user.UserRepository
Saves multiple entities to the repository in a batch operation.
saveData(Map<ID, T>) - Method in class com.ntu.fdae.group1.bto.repository.util.CsvRepositoryHelper
Saves a map of entities to the CSV file.
scanner - Variable in class com.ntu.fdae.group1.bto.views.BaseUI
Scanner object for reading user input from the console.
selectBookingFromList(List<Booking>, String) - Method in class com.ntu.fdae.group1.bto.views.BookingUIHelper
Displays a list of bookings and prompts the user to select one.
selectEnquiryFromList(List<Enquiry>, String) - Method in class com.ntu.fdae.group1.bto.views.EnquiryUIHelper
Displays a numbered list of enquiries with summary information and prompts the user to select one.
selectProjectFromList(List<Project>, String) - Method in class com.ntu.fdae.group1.bto.views.ProjectUIHelper
Displays a numbered list of projects with basic information and prompts the user to select one.
setApprovedOfficerNrics(List<String>) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the entire list of approved officer NRICs for this project.
setClosingDate(LocalDate) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the project closing date.
setContent(String) - Method in class com.ntu.fdae.group1.bto.models.enquiry.Enquiry
Updates the content of this enquiry.
setFlatTypes(Map<FlatType, ProjectFlatInfo>) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the entire map of flat types for this project.
setMaxOfficerSlots(int) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the maximum number of officer slots available for this project.
setNeighborhood(String) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the project neighborhood.
setOpeningDate(LocalDate) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the project opening date.
setPreferredFlatType(FlatType) - Method in class com.ntu.fdae.group1.bto.models.project.Application
Sets the flat type preferred by the applicant.
setProjectName(String) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the project name.
setRequestedWithdrawalDate(LocalDate) - Method in class com.ntu.fdae.group1.bto.models.project.Application
Sets the date when a withdrawal was requested by the applicant.
setStatus(ApplicationStatus) - Method in class com.ntu.fdae.group1.bto.models.project.Application
Sets the status of this application.
setStatus(OfficerRegStatus) - Method in class com.ntu.fdae.group1.bto.models.project.OfficerRegistration
Sets the status of this registration request.
setVisibility(boolean) - Method in class com.ntu.fdae.group1.bto.models.project.Project
Sets the visibility status of this project.
SINGLE - Enum constant in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Represents a user who is not married.
splitString(String, String) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Splits a delimited string into a List of strings.
submitApplication(User, String, FlatType) - Method in class com.ntu.fdae.group1.bto.controllers.project.ApplicationController
Submits a new application
submitApplication(User, String, FlatType) - Method in class com.ntu.fdae.group1.bto.services.project.ApplicationService
Submits a new application for a project
submitApplication(User, String, FlatType) - Method in interface com.ntu.fdae.group1.bto.services.project.IApplicationService
Submits a new application for a project
SUCCESSFUL - Enum constant in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Represents an application that has been processed and selected for a flat.

T

THREE_ROOM - Enum constant in enum com.ntu.fdae.group1.bto.enums.FlatType
Represents a 3-room flat.
toggleProjectVisibility(HDBManager, String) - Method in class com.ntu.fdae.group1.bto.controllers.project.ProjectController
Toggles the visibility of a project
toggleVisibility(HDBManager, String) - Method in interface com.ntu.fdae.group1.bto.services.project.IProjectService
Toggles the visibility of a project between visible and hidden states.
toggleVisibility(HDBManager, String) - Method in class com.ntu.fdae.group1.bto.services.project.ProjectService
Toggles the visibility of a project.
toString() - Method in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Returns the user-friendly display string for this marital status.
toString() - Method in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Returns the user-friendly display string for this registration status.
toString() - Method in class com.ntu.fdae.group1.bto.models.project.Project
 
TWO_ROOM - Enum constant in enum com.ntu.fdae.group1.bto.enums.FlatType
Represents a 2-room flat.

U

UNSUCCESSFUL - Enum constant in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Represents an application that was rejected, withdrawn, or otherwise did not result in a flat booking.
updatePasswordHash(String) - Method in class com.ntu.fdae.group1.bto.models.user.User
Sets a new hashed password for this user.
User - Class in com.ntu.fdae.group1.bto.models.user
Abstract base class representing a user in the BTO system.
User(String, String, String, int, MaritalStatus) - Constructor for class com.ntu.fdae.group1.bto.models.user.User
Constructs a new User with the specified details.
userController - Variable in class com.ntu.fdae.group1.bto.controllers.ControllerContainer
Controller for user profile management and user-related operations.
UserController - Class in com.ntu.fdae.group1.bto.controllers.user
Controller class for handling user-related operations in the BTO Management System.
UserController(IUserService) - Constructor for class com.ntu.fdae.group1.bto.controllers.user.UserController
Constructs a UserController with the specified user service.
UserRepository - Class in com.ntu.fdae.group1.bto.repository.user
Implementation of the IUserRepository interface that persists User entities to a CSV file.
UserRepository() - Constructor for class com.ntu.fdae.group1.bto.repository.user.UserRepository
Constructs a new UserRepository.
UserRole - Enum in com.ntu.fdae.group1.bto.enums
Defines the roles that users can have within the BTO system.
UserService - Class in com.ntu.fdae.group1.bto.services.user
Implementation of the IUserService interface that provides user management functionality for the BTO Management System.
UserService(IUserRepository) - Constructor for class com.ntu.fdae.group1.bto.services.user.UserService
Constructs a new UserService with the specified user repository.

V

validatePasswordStrength(String) - Static method in class com.ntu.fdae.group1.bto.utils.ValidationUtil
Validates a password against the defined strength criteria.
ValidationUtil - Class in com.ntu.fdae.group1.bto.utils
Utility class providing validation methods for common data types and formats in the BTO Management System.
valueOf(String) - Static method in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.ntu.fdae.group1.bto.enums.FlatType
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Returns the enum constant of this type with the specified name.
valueOf(String) - Static method in enum com.ntu.fdae.group1.bto.enums.UserRole
Returns the enum constant of this type with the specified name.
values() - Static method in enum com.ntu.fdae.group1.bto.enums.ApplicationStatus
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.ntu.fdae.group1.bto.enums.FlatType
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.ntu.fdae.group1.bto.enums.MaritalStatus
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.ntu.fdae.group1.bto.enums.OfficerRegStatus
Returns an array containing the constants of this enum type, in the order they are declared.
values() - Static method in enum com.ntu.fdae.group1.bto.enums.UserRole
Returns an array containing the constants of this enum type, in the order they are declared.
verifyPassword(String, String) - Static method in class com.ntu.fdae.group1.bto.utils.PasswordUtil
Verifies a plain-text password against a stored combined salt, iterations, and hash string.
viewAllEnquiries() - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Retrieves all enquiries in the system.
viewAllEnquiries() - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Retrieves all enquiries in the system.
viewAllEnquiries() - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Retrieves all enquiries in the system.
viewMyEnquiries(User) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Retrieves all enquiries submitted by a specific user.
viewMyEnquiries(User) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Retrieves all enquiries made by a specific user.
viewMyEnquiries(User) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Retrieves all enquiries submitted by a specific user.
viewProjectEnquiries(HDBStaff, String) - Method in class com.ntu.fdae.group1.bto.controllers.enquiry.EnquiryController
Retrieves enquiries associated with a specific project, performing authorization checks.
viewProjectEnquiries(String) - Method in class com.ntu.fdae.group1.bto.services.enquiry.EnquiryService
Retrieves all enquiries related to a specific project.
viewProjectEnquiries(String) - Method in interface com.ntu.fdae.group1.bto.services.enquiry.IEnquiryService
Retrieves enquiries associated with a specific project.

W

WeakPasswordException - Exception in com.ntu.fdae.group1.bto.exceptions
Exception thrown when a password does not meet the required strength criteria.
WeakPasswordException(String) - Constructor for exception com.ntu.fdae.group1.bto.exceptions.WeakPasswordException
Constructs a new WeakPasswordException with the specified detail message.
writeCsvLines(String, List<String[]>, String[]) - Static method in class com.ntu.fdae.group1.bto.utils.FileUtil
Writes data to a CSV file, overwriting existing content.
A B C D E F G H I J L M O P R S T U V W 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form