##################### Classes documentation ##################### Here you can found technical documentation about the implementation code of this API. * `Controllers Package`_ * `Exception Package`_ * `Implementation Package`_ * `Implementation.XXX Package`_ * `Models Package`_ !!!! !!!! Controllers Package =================== The ``Controller`` package contains controllers used to handle HTTP request. .. image:: uml/classes/images/Controllers.png .. dropdown:: XXXController Class :icon: telescope-fill :color: primary The ``XXXController`` class is a SpringBoot Controller responsible for handling HTTP GET requests to the ```` endpoint. It ... It has **two** variables : * ``logger`` : The local logger. * ``service`` : An instance of ``XXXService`` service, responsible for ... The class contains **one** constructor : .. dropdown:: ``XXXController`` - Instantiates the controller with the necessary dependencies :icon: gear The ``XXXController`` constructor is used to **instantiate the service** that will process requests to ... It initialize the ``service`` variable with the provided XXXService instance. The constructor requires **one** parameter : * ``service`` : An instance of the ``XXXService`` service, which handles the logic for ... It doesn’t return anything. It also includes **one** public method : .. dropdown:: ```` - . :icon: gear The ```` public method handles HTTP requests directed to the ```` endpoint. It ... It follows these steps : 1. 2. 3. This method requires **** parameters : * ```` : ... It returns ... !!!! Exception Package ================= The ``Exception`` package contains exceptions that can be thrown by the application. .. image:: uml/classes/images/Exception.png .. dropdown:: XXXException Class :icon: telescope-fill :color: primary The ``XXXException`` class is a custom exception used to indicate that ... It is thrown when ... It has **one** variable : * ``serialVersionUID`` : The default serial version UID used for serialization. The class includes **one** constructor : .. dropdown:: ``XXXException`` - Instantiates the exception with a specified detail message :icon: gear The constructor **initializes** the exception with a detail message explaining the reason for the exception. The constructor requires **one** parameter : * ``errorMessage``: A ``String`` containing the detail message that explains why the exception is thrown. It doesn’t return anything. .. dropdown:: GlobalExceptionHandler Class :icon: telescope-fill :color: primary The ``GlobalExceptionHandler`` class is **a global exception handler** for all controllers in the application. It handles specific exceptions that may occur during the execution of controller methods, providing a centralized mechanism for error handling and consistent responses across the application. It has **one** variable : * ``logger`` : The local logger The class includes **** exception handling methods : .. dropdown:: ``handleXXXException`` - Handles XXXException exceptions. :icon: gear This method handles ``XXXException`` exceptions that are thrown by any controller method in the application. It **returns ...** along with an error message. It logs the exception with a message indicating a status and returns the exception message in the HTTP response. The method requires **one** parameter : * ``ex`` : The exception instance that was thrown. It returns a response status along with an error message. !!!! Implementation Package ====================== The ``Implementation`` package contains the core of the application. Implementation.XXX Package ~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``Implementation.XXX`` package contains the ... classes. .. image:: uml/classes/images/ImplementationXXX.png Implementation.XXX.YYY Package ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The ``Implementation.XXX.YYY`` package contains ... .. dropdown:: XXX Class :icon: telescope-fill :color: primary ``XXX`` is an abstract class designed to ... It has one direct subclass, ``...``. It has **one** variable : * ``logger`` : The local logger The class includes **** public abstract method, implemented in the subclasses : .. dropdown:: ```` - :icon: gear The method ```` ... It is implemented in : * `YYY Class`_ : To ... .. dropdown:: YYY Class :icon: telescope-fill :color: primary :name: YYY Class ``YYY Class`` is a subclass of the ``XXX`` abstract class. It is responsible for ... It has **** variable : * ```` : ... The class includes **** public method, implementing a parent abstract method : .. dropdown:: ```` - :icon: gear This implementation of the abstract method ```` is responsible for ... It follow these steps : 1. 2. 3. The method doesn't require any parameter. It returns ... !!!! Implementation.XXX Package ~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``Implementation.XXX`` package contains the ... classes. .. image:: uml/classes/images/ImplementationXXX.png .. dropdown:: XXX Interface :icon: telescope-fill :color: primary The ``XXX`` interface serves as ... It provides methods for ... The interface defines **** methods to implement : .. dropdown:: ```` - :icon: gear The method ```` ... It is implemented in : * `YYY Class`_ : ... .. dropdown:: YYY Class (Implements XXX Interface) :icon: telescope-fill :color: primary :name: YYY Class The ``YYY Class`` implements the ``XXX`` interface. The class includes **** public methods, implementing methods from an interface : .. dropdown:: ```` - :icon: gear This implementation of the interface method ```` is responsible ... It follows these steps : 1. 2. 3. This method requires **** parameters : * ```` : ... It returns ... Implementation.Services Package ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``Implementation.Services`` package contains the services used in the application. .. image:: uml/classes/images/ImplementationServices.png .. dropdown:: XXXService Class :icon: telescope-fill :color: primary The ``XXXService`` class is a service use ... It has **** variables : * ``logger`` : The local logger. * ```` : ... The class contains **one** constructor : .. dropdown:: ``XXXService`` - Instantiates the service with the necessary dependencies :icon: gear The ``XXXService`` constructor ... The constructor requires **** parameters : * ```` : The ``...`` instance used to ... It doesn’t return anything. It includes **** public methods : .. dropdown:: ```` - :icon: gear The method ```` ... It follows these steps : 1. 2. 3. This method requires **** parameters : * ```` : It returns ... It also includes **** private methods : .. dropdown:: ```` - :icon: gear The method ```` ... It requires **** parameters : * ``