Class ControllerContainer

java.lang.Object
com.ntu.fdae.group1.bto.controllers.ControllerContainer

public class ControllerContainer extends Object
Container class that aggregates all controllers used in the BTO application.

This class serves as a central repository for all controller instances, providing a convenient way to access and manage controllers throughout the application. It facilitates dependency injection and promotes clean architectural design by decoupling controller access from their implementation.

The container holds references to controllers handling various aspects of the application including:
  • User authentication and management
  • BTO project operations
  • Application processing
  • Officer registration
  • Unit booking and receipts
  • Customer enquiries
  • System reporting

All controllers are initialized through the constructor, ensuring they are properly set up when the container is created.

  • Field Details

    • authController

      public AuthenticationController authController
      Controller handling user authentication, login, and session management.
    • userController

      public UserController userController
      Controller for user profile management and user-related operations.
    • projectController

      public ProjectController projectController
      Controller managing BTO projects, including creation, updates, and queries.
    • appController

      public ApplicationController appController
      Controller for BTO housing applications and application processing.
    • officerRegController

      public OfficerRegistrationController officerRegController
      Controller handling officer registration requests and approval workflows.
    • bookingController

      public BookingController bookingController
      Controller managing flat booking operations including selection and confirmation.
    • receiptController

      public ReceiptController receiptController
      Controller for generating and managing booking receipts and payment records.
    • enquiryController

      public EnquiryController enquiryController
      Controller handling customer enquiries and support requests.
    • reportController

      public ReportController reportController
      Controller for generating system reports and analytics.
  • Constructor Details

    • ControllerContainer

      Constructs a new ControllerContainer with all required controller instances.
      Parameters:
      auth - The authentication controller for user login and session management
      user - The user management controller for profile operations
      proj - The project controller for BTO project operations
      app - The application controller for housing applications
      reg - The officer registration controller for staff onboarding
      book - The booking controller for flat selection and reservation
      receipt - The receipt controller for payment documentation
      enq - The enquiry controller for customer support requests
      report - The report controller for system analytics and reporting