Index
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form
A
- AccountController - Class in controller
-
Controller responsible for managing user accounts and authentication.
- AccountController() - Constructor for class controller.AccountController
- add(T) - Method in class entity.list.ModelList
-
Adds a single item to the end of the list and saves the list to the file.
- addApplicantID(String) - Method in class entity.project.Project
-
Adds a single applicant ID to the list of applicants who have booked a flat.
- allOptions() - Static method in class boundary.ApplicantPage
-
Displays the main menu options available to the logged-in applicant.
- allOptions() - Static method in class boundary.ManagerPage
-
Displays the main menu options available to the logged-in manager.
- allOptions() - Static method in class boundary.OfficerPage
-
Displays the main menu options available to the logged-in officer.
- AlreadyRegisteredException - Exception Class in exception
-
Custom checked exception thrown when an attempt is made to register a user whose user ID already exists within the system.
- AlreadyRegisteredException() - Constructor for exception class exception.AlreadyRegisteredException
-
Constructs a new
AlreadyRegisteredExceptionwith a default detail message. - answerEnquiries() - Static method in class boundary.ManagerPage
-
Handles the process for a manager to answer a specific enquiry.
- answerEnquiry() - Static method in class boundary.OfficerPage
-
Handles the process for an officer to answer a specific enquiry.
- answerEnquiry(String, String) - Static method in class controller.OfficerRequestController
-
Records an answer provided by the officer for a specific enquiry.
- Applicant - Class in entity.user
-
Represents an Applicant user in the housing application system.
- Applicant() - Constructor for class entity.user.Applicant
-
Default constructor.
- Applicant(String, String, String, int, MaritalStatus) - Constructor for class entity.user.Applicant
-
Parameterized constructor to create an Applicant with specified initial details.
- APPLICANT - Enum constant in enum class entity.user.UserType
-
Represents a standard applicant user seeking housing.
- ApplicantController - Class in controller
-
Controller responsible for handling business logic related to actions performed by Applicants.
- ApplicantController() - Constructor for class controller.ApplicantController
- ApplicantList - Class in entity.list
-
Manages a list of
Applicantobjects, handling data persistence and retrieval. - ApplicantList(String) - Constructor for class entity.list.ApplicantList
-
Constructs an ApplicantList instance associated with a specific file path.
- ApplicantPage - Class in boundary
-
Represents the boundary layer for handling applicant interactions and displaying the applicant menu.
- ApplicantPage() - Constructor for class boundary.ApplicantPage
- ApplicationStatus - Enum Class in entity.user
-
Represents the status of an applicant's application for a specific housing project.
- applyProject() - Static method in class boundary.ApplicantPage
-
Handles the process for an applicant to apply for a specific project.
- applyProject() - Static method in class boundary.OfficerPage
-
Handles the process for the officer (acting as an applicant) to apply for a specific project.
- applyProject(String, FlatType) - Static method in class controller.ApplicantController
-
Processes a project application request for the current applicant.
- APPROVED - Enum constant in enum class entity.user.RegistrationStatus
-
The officer's registration request has been approved by a manager; the officer is assigned to the project.
- ApprovedStatus - Enum Class in entity.request
-
Represents the approval status of a request that requires explicit approval or rejection, such as BTO applications, withdrawals, or officer registrations.
B
- BOOKED - Enum constant in enum class entity.user.ApplicationStatus
-
The applicant has successfully booked a specific flat unit after their application was approved.
- bookFlat() - Static method in class boundary.OfficerPage
-
Initiates the process for booking a flat for a specific applicant.
- bookFlat(String) - Static method in class controller.OfficerProjectController
-
Books a flat for a specified applicant.
- boundary - package boundary
- BTO_APPLICATION - Enum constant in enum class entity.request.RequestType
-
Represents a request submitted by an applicant to apply for a Build-To-Order (BTO) housing project.
- BTO_WITHDRAWAL - Enum constant in enum class entity.request.RequestType
-
Represents a request submitted by an applicant to withdraw a previously submitted BTO application.
- BTOApplication - Class in entity.request
-
Represents a specific type of request for a Build-To-Order (BTO) housing project application.
- BTOApplication() - Constructor for class entity.request.BTOApplication
-
Default constructor.
- BTOApplication(String, RequestType, String, String, RequestStatus) - Constructor for class entity.request.BTOApplication
-
Parameterized constructor to create a BTOApplication with specified initial details.
- BTOWithdrawal - Class in entity.request
-
Represents a specific type of request to withdraw a previously submitted Build-To-Order (BTO) housing application.
- BTOWithdrawal() - Constructor for class entity.request.BTOWithdrawal
-
Default constructor.
- BTOWithdrawal(String, RequestType, String, String, RequestStatus) - Constructor for class entity.request.BTOWithdrawal
-
Parameterized constructor to create a BTOWithdrawal request with specified initial details.
C
- changeApplicationStatus() - Static method in class boundary.ManagerPage
-
Allows the manager to change the approval status of an application request.
- changeApplicationStatus(String, ApprovedStatus) - Static method in class controller.ManagerRequestController
-
Changes the approval status (PENDING, SUCCESSFUL, UNSUCCESSFUL) for specific types of applications (BTO Application, BTO Withdrawal, Officer Registration) and triggers related cascading actions.
- changePassword() - Static method in class boundary.LoginPage
-
Handles the password change process for a user.
- changePassword(String, String, String) - Static method in class controller.AccountController
-
Changes the password for a given user ID after verifying the old password.
- changeRequestStatus(String, RequestStatus) - Static method in class controller.ManagerRequestController
-
Changes the overall status (e.g., PENDING, DONE) of a specific request.
- checkApplicable(String) - Static method in class controller.ApplicantController
-
Checks if the currently set applicant is eligible to apply for a given project.
- checkPassword(String, String) - Static method in class controller.AccountController
-
Checks if the provided plain text password matches the stored hashed password for the given user ID.
- checkQuery(String) - Static method in class controller.ApplicantController
-
Checks if the current applicant is allowed to modify (edit/delete) a specific enquiry.
- checkValidProject(List<String>) - Static method in class controller.OfficerProjectController
-
Helper method to check if the officer is associated with any projects.
- clear() - Method in class entity.list.ModelList
-
Removes all items from the internal list.
- clearPage() - Static method in class utils.UIController
-
Attempts to clear the console screen.
- coloredString() - Method in enum class entity.request.ApprovedStatus
-
Returns a string representation of the approval status, formatted with ANSI escape codes for colored console output.
- coloredString() - Method in enum class entity.request.RequestStatus
-
Returns a string representation of the status, formatted with ANSI escape codes for colored console output.
- coloredString() - Method in enum class entity.user.ApplicationStatus
-
Returns a string representation of the status, formatted with ANSI escape codes for colored console output.
- coloredString() - Method in enum class entity.user.RegistrationStatus
-
Returns a string representation of the status, formatted with ANSI escape codes for colored console output.
- controller - package controller
- Converter<T> - Class in utils
-
Utility class providing static methods for converting objects to and from string representations, primarily designed for CSV serialization and deserialization.
- Converter() - Constructor for class utils.Converter
- createProject() - Static method in class boundary.ManagerPage
-
Handles the creation of a new project by the manager.
- createProject(String, String, List<String>, Map<FlatType, Integer>, Map<FlatType, Integer>, LocalDate, LocalDate, int) - Static method in class controller.ManagerProjectController
-
Creates a new project and associates it with the current manager.
D
- DATE - Enum constant in enum class utils.SortType
-
Indicates that sorting should be performed based on a date attribute of the items, typically the project's open date or another relevant date.
- DATE_SEPARATOR - Static variable in class utils.Converter
-
Separator used within a CSV field to delimit parts of a LocalDate representation.
- dateToString(LocalDate) - Static method in class utils.Converter
-
Formats a
LocalDateobject into a specific string representation usingDATE_SEPARATOR. - delete(String) - Method in class entity.list.ModelList
-
Deletes an item from the list based on its ID.
- deleteProject() - Static method in class boundary.ManagerPage
-
Handles the deletion of a project by the manager.
- deleteProject(String) - Static method in class controller.ManagerProjectController
-
Deletes a project and handles cascading updates/cleanups.
- deleteQuery() - Static method in class boundary.ApplicantPage
-
Allows the applicant to delete an existing query they submitted.
- deleteQuery() - Static method in class boundary.OfficerPage
-
Allows the officer (acting as an applicant) to delete one of their own submitted queries.
- deleteQuery(String) - Static method in class controller.ApplicantController
-
Deletes an existing enquiry submitted by the current applicant.
- Display - Class in utils
-
Utility class containing static methods for displaying formatted information about various entity objects (Applicants, Officers, Managers, Projects, Requests) to the standard console output.
- Display() - Constructor for class utils.Display
- displayApplicant(Applicant, boolean) - Static method in class utils.Display
-
Displays formatted information about an Applicant.
- displayFilter() - Static method in class controller.FilterController
-
Displays the currently active filter and sort settings to the console.
- displayManager(Manager) - Static method in class utils.Display
-
Displays formatted information about a Manager.
- displayOfficer(Officer) - Static method in class utils.Display
-
Displays formatted information about an Officer.
- displayProject(Project, UserType, FlatType) - Static method in class utils.Display
-
Displays formatted information about a Project.
- displayRequest(Request, UserType) - Static method in class utils.Display
-
Displays formatted information about a Request.
- DONE - Enum constant in enum class entity.request.RequestStatus
-
The request has been fully processed and is considered complete.
E
- editProject() - Static method in class boundary.ManagerPage
-
Handles the editing of an existing project by the manager.
- editProject(String, Project) - Static method in class controller.ManagerProjectController
-
Updates an existing project's details in the
ProjectList. - editQuery() - Static method in class boundary.ApplicantPage
-
Allows the applicant to edit an existing query they submitted.
- editQuery() - Static method in class boundary.OfficerPage
-
Allows the officer (acting as an applicant) to edit one of their own submitted queries.
- editQuery(String, String) - Static method in class controller.ApplicantController
-
Edits the text content of an existing enquiry submitted by the current applicant.
- endDate - Static variable in class controller.FilterController
-
The latest acceptable project close date for filtering.
- Enquiry - Class in entity.request
-
Represents a specific type of request where a user submits an enquiry or question, typically regarding a specific project.
- Enquiry() - Constructor for class entity.request.Enquiry
-
Default constructor.
- Enquiry(String, RequestType, String, String, RequestStatus, String) - Constructor for class entity.request.Enquiry
-
Parameterized constructor to create an Enquiry request with specified initial details.
- ENQUIRY - Enum constant in enum class entity.request.RequestType
-
Represents a request submitted by a user (e.g., applicant) asking a question or seeking information, usually about a project.
- entity.list - package entity.list
- entity.project - package entity.project
- entity.request - package entity.request
- entity.user - package entity.user
- exception - package exception
- exit() - Static method in class utils.UIController
-
Clears the console screen and terminates the Java Virtual Machine, effectively exiting the application.
F
- FilterController - Class in controller
-
Controller responsible for managing filter and sort criteria for Project lists.
- FilterController() - Constructor for class controller.FilterController
- filteredList(List<Project>) - Static method in class controller.FilterController
-
Applies the currently configured filters and sorting to a given list of Projects.
- filteredListFromID(List<String>) - Static method in class controller.FilterController
-
Retrieves Project objects based on a list of project IDs and then applies the current filters.
- findUser(String) - Static method in class controller.AccountController
-
Finds a user by their user ID across all user type lists.
- flatType - Static variable in class controller.FilterController
-
The specific
FlatTypeto filter by. - FlatType - Enum Class in entity.project
-
Represents the different types of flats available within housing projects.
G
- generateReceipt() - Static method in class boundary.OfficerPage
-
Generates a general receipt (details depend on controller implementation).
- generateReceipt() - Static method in class controller.OfficerProjectController
-
Generates a 'receipt' by displaying details of all applicants who have successfully BOOKED a flat across all projects the current officer is registered for.
- generateReceiptByApplicant() - Static method in class boundary.OfficerPage
-
Generates a receipt specifically for an applicant.
- generateReceiptByApplicant(String) - Static method in class controller.OfficerProjectController
-
Generates a 'receipt' for a specific applicant ID.
- generateReceiptByProject() - Static method in class boundary.OfficerPage
-
Generates receipts related to a specific project.
- generateReceiptByProject(String) - Static method in class controller.OfficerProjectController
-
Generates a 'receipt' by displaying details of all applicants who have successfully BOOKED a flat for a specific project ID, provided the current officer is registered for that project.
- generateReport() - Static method in class boundary.ManagerPage
-
Generates a report based on project or request data (specifics depend on controller implementation).
- generateReport() - Static method in class controller.ManagerProjectController
-
Generates and displays a report of applicants for a specific project based on criteria provided by the user.
- getAge() - Method in class entity.user.Applicant
-
Gets the applicant's age.
- getAge() - Method in class entity.user.Manager
-
Gets the manager's age.
- getAge() - Method in interface entity.user.User
-
Gets the age of this user.
- getAll() - Method in class entity.list.ModelList
-
Returns a defensive copy of the internal list of items.
- getAnswer() - Method in class entity.request.Enquiry
-
Gets the text content of the answer provided for this enquiry.
- getApplicantID() - Method in class entity.project.Project
-
Gets the list of user IDs of applicants who have successfully booked a flat in this project.
- getApplicationStatus() - Method in class entity.request.BTOApplication
-
Gets the current approval status of this BTO application.
- getApplicationStatus() - Method in class entity.user.Applicant
-
Gets the map containing the application status for different projects.
- getApplicationStatusByID(String) - Method in class entity.user.Applicant
-
Gets the application status for a specific project ID from the status map.
- getAppliedFlat() - Method in class entity.user.Applicant
-
Gets the map containing the flat type applied for in different projects.
- getAppliedFlatByID(String) - Method in class entity.user.Applicant
-
Gets the flat type applied for for a specific project ID from the map.
- getAvailableOfficer() - Method in class entity.project.Project
-
Gets the number of available officer slots for this project.
- getAvailableUnit() - Method in class entity.project.Project
-
Gets the map of available units per flat type.
- getByID(String) - Method in class entity.list.ApplicantList
-
Retrieves an
Applicantfrom the list based on their unique user ID. - getByID(String) - Method in class entity.list.ManagerList
-
Retrieves a
Managerfrom the list based on their unique user ID. - getByID(String) - Method in class entity.list.ModelList
-
Retrieves an item of type
Tfrom the list based on its unique String identifier. - getByID(String) - Method in class entity.list.OfficerList
-
Retrieves an
Officerfrom the list based on their unique user ID. - getByID(String) - Method in class entity.list.ProjectList
-
Retrieves a
Projectfrom the list based on its unique project ID. - getByID(String) - Method in class entity.list.RequestList
-
Retrieves a
Request(or one of its subclasses) from the list based on its unique request ID. - getCloseDate() - Method in class entity.project.Project
-
Gets the application close date.
- getField(T) - Static method in class utils.Converter
-
Generates a comma-separated string of field names for a given object's class, including fields inherited from superclasses (up to two levels).
- getFilePath() - Method in class entity.list.ApplicantList
-
Gets the file path associated with this ApplicantList instance, indicating where the applicant data is persisted.
- getFilePath() - Method in class entity.list.ManagerList
-
Gets the file path associated with this ManagerList instance, indicating where the manager data is persisted.
- getFilePath() - Method in class entity.list.ModelList
-
Gets the specific file path used by the concrete subclass for data persistence.
- getFilePath() - Method in class entity.list.OfficerList
-
Gets the file path associated with this OfficerList instance, indicating where the officer data is persisted.
- getFilePath() - Method in class entity.list.ProjectList
- getFilePath() - Method in class entity.list.RequestList
-
Gets the file path associated with this RequestList instance, indicating where the request data is persisted.
- getHashedPassword() - Method in class entity.user.Applicant
-
Gets the applicant's hashed password.
- getHashedPassword() - Method in class entity.user.Manager
-
Gets the manager's hashed password.
- getHashedPassword() - Method in interface entity.user.User
-
Gets the securely hashed password for this user's account.
- getInstance() - Static method in class entity.list.ApplicantList
-
Provides a static factory method to get an instance of ApplicantList.
- getInstance() - Static method in class entity.list.ManagerList
-
Provides a static factory method to get an instance of ManagerList.
- getInstance() - Static method in class entity.list.OfficerList
-
Provides a static factory method to get an instance of OfficerList.
- getInstance() - Static method in class entity.list.ProjectList
-
Provides a static factory method to get an instance of ProjectList.
- getInstance() - Static method in class entity.list.RequestList
-
Provides a static factory method to get an instance of RequestList.
- getManagerID() - Method in class entity.project.Project
-
Gets the user ID of the manager responsible for this project.
- getMaritalStatus() - Method in class entity.user.Applicant
-
Gets the applicant's marital status.
- getMaritalStatus() - Method in class entity.user.Manager
-
Gets the manager's marital status.
- getMaritalStatus() - Method in interface entity.user.User
-
Gets the marital status of this user.
- getName() - Method in class entity.project.Project
-
Gets the name of the project.
- getName() - Method in class entity.user.Applicant
-
Gets the applicant's name.
- getName() - Method in class entity.user.Manager
-
Gets the manager's name.
- getName() - Method in interface entity.user.User
-
Gets the name of this user.
- getNeighborhood() - Method in class entity.project.Project
-
Gets the list of nearby neighbourhood names.
- getOfficerID() - Method in class entity.project.Project
-
Gets the list of user IDs of officers assigned to this project.
- getOfficerProject() - Method in class entity.user.Officer
-
Gets the list of project IDs the officer is assigned to or registered for.
- getOpenDate() - Method in class entity.project.Project
-
Gets the application open date.
- getPrice() - Method in class entity.project.Project
-
Gets the map of prices per flat type.
- getProject() - Method in class entity.user.Applicant
-
Gets the ID of the single project the applicant is currently actively associated with (e.g., the one they have applied to or booked).
- getProject() - Method in class entity.user.Manager
-
Gets the list of project IDs managed by this manager.
- getProjectID() - Method in class entity.project.Project
-
Gets the unique project ID.
- getProjectID() - Method in class entity.request.Request
-
Gets the project ID related to this request.
- getProjectID() - Method in interface entity.request.Requestable
-
Gets the project ID related to this request, if applicable.
- getQuery() - Method in class entity.request.Enquiry
-
Gets the text content of the user's submitted query.
- getRegistrationStatus() - Method in class entity.request.OfficerRegistration
-
Gets the current approval status of this officer registration request.
- getRegistrationStatus() - Method in class entity.user.Officer
-
Gets the map containing the officer's registration status for different projects.
- getRegistrationStatusByID(String) - Method in class entity.user.Officer
-
Gets the registration status for a specific project ID from the status map.
- getRequestClass(String) - Static method in class utils.Converter
-
Determines the specific subclass of
Requestbased on a serialized string line. - getRequestID() - Method in class entity.request.Request
-
Gets the unique identifier for this request.
- getRequestID() - Method in interface entity.request.Requestable
-
Gets the unique identifier for this request.
- getRequestStatus() - Method in class entity.request.Request
-
Gets the overall processing status of this request.
- getRequestStatus() - Method in interface entity.request.Requestable
-
Gets the overall processing status of this request (e.g., PENDING, DONE).
- getRequestType() - Method in class entity.request.Request
-
Gets the type of this request.
- getRequestType() - Method in interface entity.request.Requestable
-
Gets the type of this request.
- getUserID() - Static method in class controller.AccountController
-
Gets the user ID of the currently authenticated user.
- getUserID() - Method in class entity.request.Request
-
Gets the user ID associated with this request.
- getUserID() - Method in interface entity.request.Requestable
-
Gets the user ID associated with this request (e.g., the user who submitted it).
- getUserID() - Method in class entity.user.Applicant
-
Gets the applicant's user ID.
- getUserID() - Method in class entity.user.Manager
-
Gets the manager's user ID.
- getUserID() - Method in interface entity.user.User
-
Gets the unique identifier for this user.
- getVisibility() - Method in class entity.project.Project
-
Gets the visibility status of the project.
- getWithdrawalStatus() - Method in class entity.request.BTOWithdrawal
-
Gets the current approval status of this withdrawal request.
I
- IDController - Class in utils
- IDController() - Constructor for class utils.IDController
- init() - Static method in class controller.FilterController
-
Initializes or resets all filter criteria to their default state.
- init() - Static method in class utils.IDController
-
Initializes the static ID counters by scanning the existing Project and Request lists.
- InvalidUserFormatException - Exception Class in exception
-
Custom checked exception thrown when a provided user ID does not conform to the expected format (e.g., NRIC format).
- InvalidUserFormatException() - Constructor for exception class exception.InvalidUserFormatException
-
Constructs a new
InvalidUserFormatExceptionwith a default detail message. - IOController - Class in utils
-
Utility class providing static methods for handling console input operations.
- IOController() - Constructor for class utils.IOController
L
- LINE_SEPARATOR - Static variable in class utils.UIController
-
A constant string used as a visual separator in console output, typically for separating different sections or headers.
- LIST_SEPARATOR - Static variable in class utils.Converter
-
Separator used within a CSV field to delimit elements of a List.
- listToString(List<String>) - Static method in class utils.Converter
-
Converts a List of Strings into a single string representation using
LIST_SEPARATOR. - load(String, boolean) - Method in class entity.list.ModelList
-
Loads list data from the specified file path.
- load(String, boolean) - Method in class entity.list.RequestList
-
Overrides the load method to handle polymorphism within the Request hierarchy.
- load(String, boolean) - Method in interface entity.list.Saveable
-
Loads the object's state from the specified file path.
- location - Static variable in class controller.FilterController
-
List of desired neighbourhood locations for filtering.
- login() - Static method in class boundary.LoginPage
-
Handles the user login process.
- login(String, String) - Static method in class controller.AccountController
-
Attempts to log in a user with the provided credentials.
- LoginPage - Class in boundary
-
Represents the boundary layer for handling user login, registration, and initial interactions.
- LoginPage() - Constructor for class boundary.LoginPage
- logout() - Static method in class controller.AccountController
-
Logs out the currently authenticated user.
- loopApplicant() - Static method in class utils.UIController
-
Pauses execution, prompts the user to press Enter, and then navigates back to the main Applicant menu by calling
ApplicantPage.allOptions(). - loopManager() - Static method in class utils.UIController
-
Pauses execution, prompts the user to press Enter, and then navigates back to the main Manager menu by calling
ManagerPage.allOptions(). - loopOfficer() - Static method in class utils.UIController
-
Pauses execution, prompts the user to press Enter, and then navigates back to the main Officer menu by calling
OfficerPage.allOptions().
M
- main - package main
- main(String[]) - Static method in class main.Main
-
The main method that serves as the entry point for the application execution.
- Main - Class in main
-
The main entry point class for the housing application system.
- Main() - Constructor for class main.Main
- Manager - Class in entity.user
-
Represents a Manager user in the housing application system.
- Manager() - Constructor for class entity.user.Manager
-
Default constructor.
- Manager(String, String, String, int, MaritalStatus) - Constructor for class entity.user.Manager
-
Parameterized constructor to create a Manager with specified initial personal details.
- MANAGER - Enum constant in enum class entity.user.UserType
-
Represents a manager user, typically with higher-level responsibilities such as creating projects, managing officers, and overseeing application approvals.
- ManagerList - Class in entity.list
-
Manages a list of
Managerobjects, handling data persistence and retrieval. - ManagerList(String) - Constructor for class entity.list.ManagerList
-
Constructs a ManagerList instance associated with a specific file path.
- ManagerPage - Class in boundary
-
Represents the boundary layer for handling manager interactions and displaying the manager menu.
- ManagerPage() - Constructor for class boundary.ManagerPage
- ManagerProjectController - Class in controller
-
Controller responsible for handling project-related operations initiated by a Manager.
- ManagerProjectController() - Constructor for class controller.ManagerProjectController
- ManagerRequestController - Class in controller
-
Controller responsible for handling request-related operations from a Manager's perspective.
- ManagerRequestController() - Constructor for class controller.ManagerRequestController
- MAP_SEPARATOR - Static variable in class utils.Converter
-
Separator used within a Map entry string to separate the key from the value.
- mapToString(Map<A, B>) - Static method in class utils.Converter
-
Converts a
Map<A, B>into a single string representation. - MaritalStatus - Enum Class in entity.user
-
Represents the marital status of a user within the system.
- MARRIED - Enum constant in enum class entity.user.MaritalStatus
-
Represents the 'Married' marital status.
- ModelList<T> - Class in entity.list
-
An abstract generic base class for managing lists of model objects of type
T. - ModelList(String, Class<T>) - Constructor for class entity.list.ModelList
-
Initializes the ModelList.
N
- NAME - Enum constant in enum class utils.SortType
-
Indicates that sorting should be performed based on the name attribute of the items.
- newProjectID() - Static method in class utils.IDController
-
Generates a new, unique project ID sequentially.
- newRequestID() - Static method in class utils.IDController
-
Generates a new, unique request ID sequentially.
- nextDate() - Static method in class utils.IOController
-
Prompts the user to enter a date (day, month, year separately as integers) and constructs a
LocalDateobject. - nextInt() - Static method in class utils.IOController
-
Reads the next integer value from the console input.
- nextLine() - Static method in class utils.IOController
-
Reads the next complete line of text (up to the newline character) from the console input.
- NONE - Enum constant in enum class entity.request.RequestType
-
Represents an unspecified, default, or null request type.
O
- objToString(T) - Static method in class utils.Converter
-
Serializes an object into a single comma-separated string representation.
- Officer - Class in entity.user
-
Represents an Officer user in the housing application system.
- Officer() - Constructor for class entity.user.Officer
-
Default constructor.
- Officer(String, String, String, int, MaritalStatus) - Constructor for class entity.user.Officer
-
Parameterized constructor to create an Officer with specified initial personal details.
- OFFICER - Enum constant in enum class entity.user.UserType
-
Represents an officer user, potentially responsible for processing applications or managing specific aspects of projects.
- OfficerList - Class in entity.list
-
Manages a list of
Officerobjects, handling data persistence and retrieval. - OfficerList(String) - Constructor for class entity.list.OfficerList
-
Constructs an OfficerList instance associated with a specific file path.
- OfficerPage - Class in boundary
-
Represents the boundary layer for handling interactions for users logged in as Officers.
- OfficerPage() - Constructor for class boundary.OfficerPage
- OfficerProjectController - Class in controller
-
Controller responsible for handling project-related operations performed by an Officer.
- OfficerProjectController() - Constructor for class controller.OfficerProjectController
- OfficerRegistration - Class in entity.request
-
Represents a specific type of request where an Officer applies to register for or be assigned to a specific project.
- OfficerRegistration() - Constructor for class entity.request.OfficerRegistration
-
Default constructor.
- OfficerRegistration(String, RequestType, String, String, RequestStatus) - Constructor for class entity.request.OfficerRegistration
-
Parameterized constructor to create an OfficerRegistration request with specified initial details.
- OfficerRequestController - Class in controller
-
Controller responsible for handling request-related operations specific to Officers.
- OfficerRequestController() - Constructor for class controller.OfficerRequestController
P
- PasswordIncorrectException - Exception Class in exception
-
Custom checked exception thrown during authentication processes (like login or password change verification) when the provided password does not match the stored credentials for the user account.
- PasswordIncorrectException() - Constructor for exception class exception.PasswordIncorrectException
-
Constructs a new
PasswordIncorrectExceptionwith a default detail message. - PENDING - Enum constant in enum class entity.request.ApprovedStatus
-
The request is awaiting review and an approval decision (e.g., by a manager).
- PENDING - Enum constant in enum class entity.request.RequestStatus
-
The request is currently awaiting processing, review, or further action.
- PENDING - Enum constant in enum class entity.user.ApplicationStatus
-
The application has been submitted but is awaiting review or processing.
- PENDING - Enum constant in enum class entity.user.RegistrationStatus
-
The officer has submitted a request to register for the project, and it is awaiting review by a manager.
- PRICE - Enum constant in enum class utils.SortType
-
Indicates that sorting should be performed based on a price attribute of the items.
- priceLowerBound - Static variable in class controller.FilterController
-
The minimum desired price for filtering.
- priceUpperBound - Static variable in class controller.FilterController
-
The maximum desired price for filtering.
- Project - Class in entity.project
-
Represents a housing project entity.
- Project() - Constructor for class entity.project.Project
-
Default constructor.
- Project(String, String, List<String>, Map<FlatType, Integer>, Map<FlatType, Integer>, LocalDate, LocalDate, String, int, boolean) - Constructor for class entity.project.Project
-
Parameterized constructor to create a Project with specified initial values.
- ProjectList - Class in entity.list
-
Manages a list of
Projectobjects, handling data persistence and retrieval. - ProjectList() - Constructor for class entity.list.ProjectList
-
Constructs a ProjectList instance.
- ProjectNotFoundException - Exception Class in exception
-
Custom checked exception thrown when an operation attempts to access or modify a project using an identifier (Project ID) that does not correspond to any existing project in the system's data store (e.g.,
ProjectList). - ProjectNotFoundException() - Constructor for exception class exception.ProjectNotFoundException
-
Constructs a new
ProjectNotFoundExceptionwith a default detail message.
Q
- query() - Static method in class boundary.ApplicantPage
-
Allows the applicant to submit a query regarding a specific project.
- query() - Static method in class boundary.OfficerPage
-
Allows the officer (acting as an applicant) to submit a personal query about a specific project.
- query(String, String) - Static method in class controller.ApplicantController
-
Submits an enquiry from the current applicant regarding a specific project.
R
- readPassword() - Static method in class utils.IOController
-
Reads a password securely from the console, if available.
- register() - Static method in class boundary.LoginPage
-
Handles the user registration process.
- register(UserType, String, String, String, int, MaritalStatus) - Static method in class controller.AccountController
-
Registers a new user in the system.
- registerProject() - Static method in class boundary.OfficerPage
-
Allows the officer to register their interest in working on a specific project.
- registerProject(String) - Static method in class controller.OfficerRequestController
-
Submits a registration request for the current officer to join a specific project.
- REGISTRATION - Enum constant in enum class entity.request.RequestType
-
Represents a request submitted by an officer to register for assignment to a specific project.
- RegistrationStatus - Enum Class in entity.user
-
Represents the status of an Officer's registration request for a specific housing project.
- REJECTED - Enum constant in enum class entity.user.RegistrationStatus
-
The officer's registration request has been rejected by a manager.
- Request - Class in entity.request
-
Base entity class representing a generic request within the system.
- Request() - Constructor for class entity.request.Request
-
Default constructor.
- Request(String, RequestType, String, String, RequestStatus) - Constructor for class entity.request.Request
-
Parameterized constructor to create a Request with specified initial values.
- Requestable - Interface in entity.request
-
Defines the essential contract for any object that represents a request within the system.
- RequestList - Class in entity.list
-
Manages a list of
Requestobjects and their potential subclasses (e.g., Enquiry, BTOApplication), handling data persistence and retrieval. - RequestList(String) - Constructor for class entity.list.RequestList
-
Constructs a RequestList instance associated with a specific file path.
- RequestStatus - Enum Class in entity.request
-
Represents the overall processing status of a
Requestwithin the system. - RequestType - Enum Class in entity.request
-
Defines the different categories or types of requests that can be initiated and processed within the housing application system.
S
- save(String) - Method in class entity.list.ModelList
-
Saves the current state of the internal list to the specified file path, overwriting existing content.
- save(String) - Method in interface entity.list.Saveable
-
Saves the object's current state to the specified file path.
- Saveable - Interface in entity.list
-
Defines a contract for classes whose state can be persisted (saved to) and loaded from a storage medium, typically a file identified by a path.
- setAge(int) - Method in class entity.user.Applicant
-
Sets the applicant's age.
- setAge(int) - Method in class entity.user.Manager
-
Sets the manager's age.
- setAge(int) - Method in interface entity.user.User
-
Sets the age of this user.
- setAll(Project) - Method in class entity.project.Project
-
Copies all attribute values from another
Projectobject into this object. - setAnswer(String) - Method in class entity.request.Enquiry
-
Sets the text content of the answer for this enquiry.
- setApplicantID(String) - Static method in class controller.ApplicantController
-
Sets the applicant ID for the current session context.
- setApplicantID(List<String>) - Method in class entity.project.Project
-
Sets the list of user IDs of applicants who have successfully booked a flat in this project.
- setApplicationStatus(ApprovedStatus) - Method in class entity.request.BTOApplication
-
Sets the approval status of this BTO application.
- setApplicationStatusByID(String, ApplicationStatus) - Method in class entity.user.Applicant
-
Sets or updates the application status for a specific project ID in the status map.
- setAppliedFlatByID(String, FlatType) - Method in class entity.user.Applicant
-
Sets or updates the flat type applied for for a specific project ID in the map.
- setAvailableOfficer(int) - Method in class entity.project.Project
-
Sets the number of available officer slots for this project.
- setAvailableUnit(FlatType, Integer) - Method in class entity.project.Project
-
Sets the number of available units for a specific flat type.
- setAvailableUnit(Map<FlatType, Integer>) - Method in class entity.project.Project
-
Sets the map of available units per flat type.
- setCloseDate(LocalDate) - Method in class entity.project.Project
-
Sets the application close date.
- setHashedPassoword(String) - Method in class entity.user.Applicant
-
Sets the applicant's hashed password.
- setHashedPassoword(String) - Method in class entity.user.Manager
-
Sets the manager's hashed password.
- setHashedPassoword(String) - Method in interface entity.user.User
-
Sets the securely hashed password for this user's account.
- setManagerID(String) - Static method in class controller.ManagerProjectController
-
Sets the manager ID for the current session context.
- setManagerID(String) - Static method in class controller.ManagerRequestController
-
Sets the manager ID for the current session context.
- setManagerID(String) - Method in class entity.project.Project
-
Sets the user ID of the manager responsible for this project.
- setMaritalStatus(MaritalStatus) - Method in class entity.user.Applicant
-
Sets the applicant's marital status.
- setMaritalStatus(MaritalStatus) - Method in class entity.user.Manager
-
Sets the manager's marital status.
- setMaritalStatus(MaritalStatus) - Method in interface entity.user.User
-
Sets the marital status of this user.
- setName(String) - Method in class entity.project.Project
-
Sets the name of the project.
- setName(String) - Method in class entity.user.Applicant
-
Sets the applicant's name.
- setName(String) - Method in class entity.user.Manager
-
Sets the manager's name.
- setName(String) - Method in interface entity.user.User
-
Sets the name of this user.
- setNeighborhood(List<String>) - Method in class entity.project.Project
-
Sets the list of nearby neighbourhood names.
- setOfficerID(String) - Static method in class controller.OfficerProjectController
-
Sets the officer ID for the current session context.
- setOfficerID(String) - Static method in class controller.OfficerRequestController
-
Sets the officer ID for the current session context.
- setOfficerID(List<String>) - Method in class entity.project.Project
-
Sets the list of user IDs of officers assigned to this project.
- setOfficerProject(List<String>) - Method in class entity.user.Officer
-
Sets the list of project IDs the officer is assigned to or registered for.
- setOpenDate(LocalDate) - Method in class entity.project.Project
-
Sets the application open date.
- setPrice(Map<FlatType, Integer>) - Method in class entity.project.Project
-
Sets the map of prices per flat type.
- setProject(String) - Method in class entity.user.Applicant
-
Sets the ID of the single project the applicant is currently actively associated with.
- setProject(List<String>) - Method in class entity.user.Manager
-
Sets the list of project IDs managed by this manager.
- setProjectCount(int) - Static method in class utils.IDController
-
Manually sets the internal counter used for generating the next project ID.
- setProjectID(String) - Method in class entity.project.Project
-
Sets the unique project ID.
- setProjectID(String) - Method in class entity.request.Request
-
Sets the project ID related to this request.
- setProjectID(String) - Method in interface entity.request.Requestable
-
Sets the project ID related to this request.
- setQuery(String) - Method in class entity.request.Enquiry
-
Sets the text content of the user's submitted query.
- setRegistrationStatus(ApprovedStatus) - Method in class entity.request.OfficerRegistration
-
Sets the approval status of this officer registration request.
- setRegistrationStatusByID(String, RegistrationStatus) - Method in class entity.user.Officer
-
Sets or updates the registration status for a specific project ID in the status map.
- setRequestCount(int) - Static method in class utils.IDController
-
Manually sets the internal counter used for generating the next request ID.
- setRequestID(String) - Method in class entity.request.Request
-
Sets the unique identifier for this request.
- setRequestID(String) - Method in interface entity.request.Requestable
-
Sets the unique identifier for this request.
- setRequestStatus(RequestStatus) - Method in class entity.request.Request
-
Sets the overall processing status of this request.
- setRequestStatus(RequestStatus) - Method in interface entity.request.Requestable
-
Sets the overall processing status of this request.
- setRequestType(RequestType) - Method in class entity.request.Request
-
Sets the type of this request.
- setRequestType(RequestType) - Method in interface entity.request.Requestable
-
Sets the type of this request.
- setup() - Static method in class controller.FilterController
-
Provides a console interface for the user to set up or modify the filter criteria.
- setUserID(String) - Static method in class controller.AccountController
-
Sets the user ID for the currently authenticated user.
- setUserID(String) - Method in class entity.request.Request
-
Sets the user ID associated with this request.
- setUserID(String) - Method in interface entity.request.Requestable
-
Sets the user ID associated with this request.
- setUserID(String) - Method in class entity.user.Applicant
-
Sets the applicant's user ID.
- setUserID(String) - Method in class entity.user.Manager
-
Sets the manager's user ID.
- setUserID(String) - Method in interface entity.user.User
-
Sets the unique identifier for this user.
- setVisibility(boolean) - Method in class entity.project.Project
-
Sets the visibility status of the project.
- setWithdrawalStatus(ApprovedStatus) - Method in class entity.request.BTOWithdrawal
-
Sets the approval status of this withdrawal request.
- SINGLE - Enum constant in enum class entity.user.MaritalStatus
-
Represents the 'Single' marital status.
- size() - Method in class entity.list.ModelList
-
Returns the current number of items in the list.
- sortType - Static variable in class controller.FilterController
-
The criteria used for sorting the filtered list (e.g., by NAME, PRICE, DATE).
- SortType - Enum Class in utils
-
Represents the different criteria or fields by which a list of items (e.g.,
Projectobjects) can be sorted. - startDate - Static variable in class controller.FilterController
-
The earliest acceptable project open date for filtering.
- stringToDate(String) - Static method in class utils.Converter
-
Parses a string representation (using
DATE_SEPARATOR) into aLocalDateobject. - stringToList(String) - Static method in class utils.Converter
-
Converts a string representation (using
LIST_SEPARATOR) back into a List of Strings. - stringToMap(String, Class<A>, Class<B>) - Static method in class utils.Converter
-
Converts a string representation (using
LIST_SEPARATORfor entries andMAP_SEPARATORwithin entries) back into aMap<A, B>. - stringtoObj(String, Class<T>) - Static method in class utils.Converter
-
Deserializes a single line of comma-separated string data into an object of the specified class.
- SUCCESSFUL - Enum constant in enum class entity.request.ApprovedStatus
-
The request has been explicitly approved.
- SUCCESSFUL - Enum constant in enum class entity.user.ApplicationStatus
-
The application has been reviewed and approved; the applicant is eligible to proceed (e.g., book a flat).
T
- THREE_ROOM - Enum constant in enum class entity.project.FlatType
-
Represents a three-room flat type.
- toggleVisibility() - Static method in class boundary.ManagerPage
-
Toggles the visibility status of a project (Visible - Not Visible).
- toggleVisibility(String) - Static method in class controller.ManagerProjectController
-
Toggles the visibility status of the specified project.
- TWO_ROOM - Enum constant in enum class entity.project.FlatType
-
Represents a two-room flat type.
U
- UIController - Class in utils
-
Utility class providing static methods for controlling common console-based User Interface (UI) behaviors within the application.
- UIController() - Constructor for class utils.UIController
- UNSUCCESSFUL - Enum constant in enum class entity.request.ApprovedStatus
-
The request has been explicitly rejected or deemed unsuccessful.
- UNSUCCESSFUL - Enum constant in enum class entity.user.ApplicationStatus
-
The application has been reviewed and rejected, or potentially withdrawn by the applicant after approval.
- update(String, T) - Method in class entity.list.ModelList
-
Updates an item in the list.
- updateAll(List<T>) - Method in class entity.list.ModelList
-
Replaces the entire contents of the current list with the provided list of new items.
- User - Interface in entity.user
-
Defines the common contract for all user types within the system (e.g., Applicant, Officer, Manager).
- UserNotFoundException - Exception Class in exception
-
Custom checked exception thrown when an operation attempts to find, authenticate, or operate on a user using an identifier (User ID) that does not correspond to any existing user in the system's data stores (e.g.,
ApplicantList,OfficerList,ManagerList). - UserNotFoundException() - Constructor for exception class exception.UserNotFoundException
-
Constructs a new
UserNotFoundExceptionwith a default detail message. - UserType - Enum Class in entity.user
-
Represents the different types or roles a user can have within the system.
- utils - package utils
V
- valueOf(String) - Static method in enum class entity.project.FlatType
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.request.ApprovedStatus
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.request.RequestStatus
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.request.RequestType
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.user.ApplicationStatus
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.user.MaritalStatus
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.user.RegistrationStatus
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class entity.user.UserType
-
Returns the enum constant of this class with the specified name.
- valueOf(String) - Static method in enum class utils.SortType
-
Returns the enum constant of this class with the specified name.
- values() - Static method in enum class entity.project.FlatType
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.request.ApprovedStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.request.RequestStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.request.RequestType
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.user.ApplicationStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.user.MaritalStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.user.RegistrationStatus
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class entity.user.UserType
-
Returns an array containing the constants of this enum class, in the order they are declared.
- values() - Static method in enum class utils.SortType
-
Returns an array containing the constants of this enum class, in the order they are declared.
- viewAllEnquiries() - Static method in class boundary.ManagerPage
-
Displays all enquiries across all projects (presumably those the manager has access to view).
- viewAllEnquiries() - Static method in class controller.ManagerRequestController
-
Displays all Enquiry requests present in the system, regardless of the project or manager.
- viewApplicableProject() - Static method in class boundary.ApplicantPage
-
Displays projects that the currently logged-in applicant is eligible to apply for, potentially based on filters or eligibility criteria handled by the ApplicantController.
- viewApplicableProject() - Static method in class boundary.OfficerPage
-
Displays projects that the officer (acting as an applicant) is eligible to apply for.
- viewApplicableProject() - Static method in class controller.ApplicantController
-
Displays a list of projects that the current applicant is eligible to apply for.
- viewApplicantApplicationStatus() - Static method in class boundary.OfficerPage
-
Displays the application status of applicants, filtered for projects the officer manages.
- viewApplicantApplicationStatus() - Static method in class controller.OfficerProjectController
-
Displays the application status for all applicants across all projects the current officer is registered for.
- viewApplicantApplicationStatus(ApplicationStatus) - Static method in class controller.OfficerProjectController
-
Displays applicants with a specific
ApplicationStatusacross all projects the current officer is registered for. - viewApplicantApplicationStatus(String) - Static method in class controller.OfficerProjectController
-
Displays the application status for all applicants associated with a specific project ID.
- viewApplicantApplicationStatus(String, ApplicationStatus) - Static method in class controller.OfficerProjectController
-
Displays applicants with a specific
ApplicationStatusfor a specific project ID. - viewAppliedApplication() - Static method in class boundary.ApplicantPage
-
Displays details of the applications submitted by the currently logged-in applicant.
- viewAppliedApplication() - Static method in class controller.ApplicantController
-
Displays the current applicant's pending and historical BTO applications and withdrawals.
- viewAppliedProject() - Static method in class boundary.ApplicantPage
-
Displays the projects for which the currently logged-in applicant has submitted an application.
- viewAppliedProject() - Static method in class boundary.OfficerPage
-
Displays projects the officer (acting as an applicant) has applied for.
- viewAppliedProject() - Static method in class controller.ApplicantController
-
Displays details of the single project the applicant has currently applied to, if any.
- viewEnquiries() - Static method in class boundary.ManagerPage
-
Displays enquiries specifically assigned to or related to the current manager's projects.
- viewEnquiries() - Static method in class boundary.OfficerPage
-
Displays enquiries assigned to or related to the currently logged-in officer.
- viewEnquiries() - Static method in class controller.ManagerRequestController
-
Displays all enquiries associated with the projects managed by the currently set manager.
- viewEnquiries() - Static method in class controller.OfficerRequestController
-
Displays all enquiries associated with all projects the current officer is registered for.
- viewEnquiries(String) - Static method in class controller.OfficerRequestController
-
Displays enquiries associated with a specific project ID, but only if the current officer is registered for that project.
- viewEnquiriesByProject() - Static method in class boundary.OfficerPage
-
Displays enquiries filtered by a specific project ID.
- viewOfficerRegistrationStatus() - Static method in class boundary.ManagerPage
-
Displays the registration status of officers (details depend on controller implementation).
- viewOfficerRegistrationStatus() - Static method in class controller.ManagerProjectController
-
Displays all
OfficerRegistrationrequests found in theRequestList. - viewProjectList() - Static method in class boundary.ManagerPage
-
Displays the list of projects created by a specific manager.
- viewProjectList(String) - Static method in class controller.ManagerProjectController
-
Displays a list of projects managed by the specified manager ID, after applying current filters.
- viewQuery() - Static method in class boundary.ApplicantPage
-
Displays the queries submitted by the currently logged-in applicant.
- viewQuery() - Static method in class boundary.OfficerPage
-
Displays the personal queries submitted by the officer (acting as an applicant).
- viewQuery() - Static method in class controller.ApplicantController
-
Displays all enquiries previously submitted by the current applicant.
- viewRegisteredProject() - Static method in class boundary.OfficerPage
-
Displays the projects the officer is currently registered to work on.
- viewRegisteredProject() - Static method in class controller.OfficerRequestController
-
Displays a list of projects the current officer is successfully registered for.
- viewRegistrableProject() - Static method in class boundary.OfficerPage
-
Displays the registrable projects of applicants, filtered for projects the officer manages.
- viewRegistrableProject() - Static method in class controller.OfficerProjectController
-
Displays a list of projects that the current officer may be eligible to register for.
- viewRegistrationStatus() - Static method in class boundary.OfficerPage
-
Displays the status of the officer's applications to register for projects.
- viewRegistrationStatus() - Static method in class controller.OfficerRequestController
-
Displays the history of project registration requests submitted by the current officer.
- viewRequest() - Static method in class boundary.ManagerPage
-
Displays requests (applications, etc.) associated with the projects managed by the current manager.
- viewRequest() - Static method in class controller.ManagerRequestController
-
Stores the user ID of the manager currently interacting with the system.
- viewRequest(boolean) - Static method in class controller.ManagerRequestController
-
Displays specific types of requests using the APPLICANT display format.
W
- welcome() - Static method in class boundary.LoginPage
-
Displays the initial welcome screen and the main menu options (Login, Register, Change Password, Exit).
- withdrawApplication() - Static method in class boundary.ApplicantPage
-
Handles the process for an applicant to withdraw their application from a project.
- withdrawApplication() - Static method in class boundary.OfficerPage
-
Handles the process for the officer (acting as an applicant) to withdraw their project application.
- withdrawApplication(String) - Static method in class controller.ApplicantController
-
Submits a request for the current applicant to withdraw their application from a specific project.
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form