Class BuildingController


  • @RestController
    @RequestMapping("/buildings")
    public class BuildingController
    extends Object
    Kontroler obslugujący operacje CRUD dla budynkow oraz dodatkowe obliczenia związane z ich wlaściwościami. Umozliwia zarządzanie budynkami, w tym dodawanie, aktualizowanie i usuwanie, a takze obliczanie sumarycznej powierzchni, kubatury, mocy oświetlenia i zuzycia energii.
    • Field Detail

      • buildings

        public List<Building> buildings
        Lista wszystkich budynkow zarządzanych przez kontroler.
    • Constructor Detail

      • BuildingController

        public BuildingController()
    • Method Detail

      • init

        @PostConstruct
        public void init()
        Inicjalizuje przykladowe dane dotyczące budynkow po uruchomieniu aplikacji.
      • getAllBuildings

        @GetMapping("/all-buildings")
        public List<Building> getAllBuildings()
        Pobiera liste wszystkich budynkow.
        Returns:
        lista wszystkich budynkow
      • getBuilding

        @RequestMapping(value="/{buildingId}",
                        method=GET,
                        produces="application/json")
        public Building getBuilding​(@PathVariable
                                    int buildingId)
        Pobiera szczegoly konkretnego budynku na podstawie jego identyfikatora.
        Parameters:
        buildingId - identyfikator budynku
        Returns:
        szczegoly budynku
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • addBuilding

        @RequestMapping(method=POST,
                        consumes="application/json",
                        produces="application/json")
        public Building addBuilding​(@RequestBody
                                    Building building)
        Dodaje nowy budynek do listy.
        Parameters:
        building - obiekt budynku do dodania
        Returns:
        dodany budynek
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze juz istnieje
      • updateBuilding

        @PutMapping("/{buildingId}")
        public Building updateBuilding​(@PathVariable
                                       int buildingId,
                                       @RequestBody
                                       Building updatedBuilding)
        Aktualizuje dane istniejącego budynku.
        Parameters:
        buildingId - identyfikator budynku do aktualizacji
        updatedBuilding - zaktualizowane dane budynku
        Returns:
        zaktualizowany budynek
      • deleteBuilding

        @DeleteMapping("/{buildingId}")
        public void deleteBuilding​(@PathVariable
                                   int buildingId)
        Usuwa budynek na podstawie jego identyfikatora.
        Parameters:
        buildingId - identyfikator budynku
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • getAreaOfBuilding

        @RequestMapping(value="/{buildingId}/area",
                        method=GET,
                        produces="application/json")
        public org.springframework.http.ResponseEntity<Map<String,​Object>> getAreaOfBuilding​(@PathVariable
                                                                                                   int buildingId)
        Oblicza lączną powierzchnie budynku i zwraca ją w formacie JSON.
        Parameters:
        buildingId - identyfikator budynku, dla ktorego ma zostac obliczona powierzchnia
        Returns:
        ResponseEntity zawierający wartośc sumarycznej powierzchni budynku w formacie JSON
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • getCubeOfBuilding

        @RequestMapping(value="/{buildingId}/cube",
                        method=GET,
                        produces="application/json")
        public org.springframework.http.ResponseEntity<Map<String,​Object>> getCubeOfBuilding​(@PathVariable
                                                                                                   int buildingId)
        Oblicza lączną kubature budynku i zwraca ją w formacie JSON.
        Parameters:
        buildingId - identyfikator budynku, dla ktorego ma zostac obliczona kubatura
        Returns:
        ResponseEntity zawierający wartośc sumarycznej kubatury budynku w formacie JSON
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • getLightPowerOfBuilding

        @RequestMapping(value="/{buildingId}/light-power",
                        method=GET,
                        produces="application/json")
        public org.springframework.http.ResponseEntity<Map<String,​Object>> getLightPowerOfBuilding​(@PathVariable
                                                                                                         int buildingId)
        Oblicza lączną moc oświetlenia budynku i zwraca ją w formacie JSON.
        Parameters:
        buildingId - identyfikator budynku, dla ktorego ma zostac obliczona moc oświetlenia.
        Returns:
        ResponseEntity zawierający wartośc sumarycznej mocy oświetlenia budynku w formacie JSON
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • getEnergyConsumption

        @RequestMapping(value="/{buildingId}/energy-consumption",
                        method=GET,
                        produces="application/json")
        public org.springframework.http.ResponseEntity<Map<String,​Object>> getEnergyConsumption​(@PathVariable
                                                                                                      int buildingId)
        Oblicza lączne zuzycie energii na ogrzewanie w budynku i zwraca je w formacie JSON.
        Parameters:
        buildingId - identyfikator budynku, dla ktorego ma zostac obliczone zuzycie energii na ogrzewanie.
        Returns:
        ResponseEntity zawierający wartośc sumarycznego zuzycia energii na ogrzewanie w budynku w formacie JSON
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje
      • getRoomsExceedingHeating

        @RequestMapping(value="/{buildingId}/exceeding-heating",
                        method=GET,
                        produces="application/json")
        public org.springframework.http.ResponseEntity<Map<String,​Object>> getRoomsExceedingHeating​(@PathVariable
                                                                                                          int buildingId,
                                                                                                          @RequestParam
                                                                                                          double energyLimit)
        Oblicza zuzycie energii cieplnej na m³ dla kazdego pomieszczenia w budynku i zwraca te, ktore przekraczają zadany limit.
        Parameters:
        buildingId - ID budynku.
        energyLimit - Wartośc graniczna zuzycia energii cieplnej na m³.
        Returns:
        Mapa z informacjami o pomieszczeniach przekraczających limit.
        Throws:
        org.springframework.web.server.ResponseStatusException - jeśli budynek o podanym identyfikatorze nie istnieje