From c853c4cd4e184e6c2dd1969f0c2714903b50d94d Mon Sep 17 00:00:00 2001 From: Jacob Salvi Date: Fri, 28 Feb 2020 16:51:31 +0100 Subject: [PATCH 1/5] Added a class DeviceRepository that is needed to mirror in the database the class inheritances that are present among the various Devices. Also the method getDevices, that returns a List of the Devices present in a given room, has been added to RoomController.java --- .../smarthut/models/DeviceRepository.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DeviceRepository.java diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DeviceRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DeviceRepository.java new file mode 100644 index 0000000..fdae66e --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DeviceRepository.java @@ -0,0 +1,13 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.models; + +import java.util.List; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; + +/** + * DeviceRepository acts as a superclass for the other repositories so to mirror in the database the + * class inheritance present among the various devices. + */ +public interface DeviceRepository extends CrudRepository { + List findByRoomId(@Param("roomId") long roomId); +} From 8940489e2ed160b9fcd5612d277fb5f4cb487bd2 Mon Sep 17 00:00:00 2001 From: omenem Date: Mon, 2 Mar 2020 15:39:25 +0100 Subject: [PATCH 2/5] Removed idea files --- .idea/.name | 1 - .idea/jarRepositories.xml | 20 -------------------- .idea/misc.xml | 7 ------- .idea/vcs.xml | 6 ------ 4 files changed, 34 deletions(-) delete mode 100644 .idea/.name delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index 03128f2..0000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -smarthut \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index fdc392f..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 7c6191b..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From d8bea0015b51e0cbc0939c0db7dd54ee7e1e541c Mon Sep 17 00:00:00 2001 From: Jacob Salvi Date: Mon, 2 Mar 2020 15:41:37 +0100 Subject: [PATCH 3/5] small cahnges --- .../smarthut/controller/RoomController.java | 12 ++++++++++++ .../smarthut/models/ButtonDimmerRepository.java | 4 +--- .../smarthut/models/DimmableLightRepository.java | 4 +--- .../smarthut/models/KnobDimmerRepository.java | 4 +--- .../smarthut/models/MotionSensorRepository.java | 4 +--- .../smarthut/models/RegularLightRepository.java | 4 +--- .../smarthut/models/SensorRepository.java | 4 +--- .../smarthut/models/SmartPlugRepository.java | 4 +--- .../smarthut/models/SwitchRepository.java | 4 +--- .../inf/sa4/sanmarinoes/smarthut/models/User.java | 12 ++++++------ 10 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java index 9ff6e2e..b73c55a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java @@ -18,6 +18,8 @@ public class RoomController { @Autowired private UserRepository userRepository; + @Autowired private DeviceRepository deviceRepository; + @GetMapping public Iterable findAll() { return roomRepository.findAll(); @@ -55,4 +57,14 @@ public class RoomController { public void deleteById(@PathVariable("id") long id) { roomRepository.deleteById(id); } + + /** + * Returns a List of all Devices that are present in a given room (identified by its + * id). + */ + @GetMapping(path = "/room/{roomid}/devices") + @ResponseBody + public List getDevices(@PathVariable("roomid") long roomid) { + return deviceRepository.findByRoomId(roomid); + } } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java index a74e68f..484977a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmerRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface ButtonDimmerRepository extends CrudRepository {} +public interface ButtonDimmerRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLightRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLightRepository.java index fd3fe43..484084b 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLightRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLightRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface DimmableLightRepository extends CrudRepository {} +public interface DimmableLightRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java index 803ed90..7d7fc16 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmerRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface KnobDimmerRepository extends CrudRepository {} +public interface KnobDimmerRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensorRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensorRepository.java index e354262..aea240d 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensorRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensorRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface MotionSensorRepository extends CrudRepository {} +public interface MotionSensorRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/RegularLightRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/RegularLightRepository.java index 7f3f4a6..43c4e17 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/RegularLightRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/RegularLightRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface RegularLightRepository extends CrudRepository {} +public interface RegularLightRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SensorRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SensorRepository.java index cc4eefa..b796277 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SensorRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SensorRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface SensorRepository extends CrudRepository {} +public interface SensorRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SmartPlugRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SmartPlugRepository.java index 24897a0..0b2fd344 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SmartPlugRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SmartPlugRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface SmartPlugRepository extends CrudRepository {} +public interface SmartPlugRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java index c2e0be9..f06f465 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/SwitchRepository.java @@ -1,5 +1,3 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; -import org.springframework.data.repository.CrudRepository; - -public interface SwitchRepository extends CrudRepository {} +public interface SwitchRepository extends DeviceRepository {} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java index e4ce24e..7909fe8 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java @@ -2,11 +2,7 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; import java.util.Set; import javax.persistence.*; -import javax.validation.constraints.Email; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import javax.validation.constraints.*; /** A user of the Smarthut application */ @Entity(name = "smarthutuser") @@ -33,7 +29,11 @@ public class User { @NotNull @Column(nullable = false) @NotEmpty(message = "Please provide a password") - @Min(value = 6, message = "Your password should be at least 6 characters long") + @Size( + min = 6, + max = 255, + message = + "Your password should be at least 6 characters long and at most 255 chars long") private String password; /** From 4f0351cab9ab186c644861a39e9bcb31c7ea483a Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Mon, 2 Mar 2020 21:44:00 +0100 Subject: [PATCH 4/5] Solved recursive JSON problem in RoomController.getAllDevices() --- .../smarthut/config/SpringFoxConfig.java | 12 ++++++++- .../controller/ButtonDimmerController.java | 7 +++-- .../controller/DimmableLightController.java | 7 +++-- .../controller/KnobDimmerController.java | 7 +++-- .../controller/MotionSensorController.java | 7 +++-- .../controller/RegularLightController.java | 7 +++-- .../smarthut/controller/RoomController.java | 22 +++++++++------- .../smarthut/controller/SensorController.java | 7 +++-- .../controller/SmartPlugController.java | 7 +++-- .../smarthut/controller/SwitchController.java | 7 +++-- .../sanmarinoes/smarthut/models/Device.java | 14 ---------- .../sa4/sanmarinoes/smarthut/models/Room.java | 26 +------------------ .../sa4/sanmarinoes/smarthut/models/User.java | 10 ------- .../sa4/sanmarinoes/smarthut/utils/Utils.java | 14 ++++++++++ 14 files changed, 78 insertions(+), 76 deletions(-) create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/utils/Utils.java diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/config/SpringFoxConfig.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/config/SpringFoxConfig.java index 743d119..ae950b2 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/config/SpringFoxConfig.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/config/SpringFoxConfig.java @@ -50,6 +50,16 @@ public class SpringFoxConfig { return List.of(new ApiKey("Bearer", "Authorization", "header")); } + /** + * Return a Java functional API predicate for regex matches + * + * @param regex the regex to match on + * @return a Java functional API predicate + */ + private Predicate regexPredicate(final String regex) { + return regex(regex)::apply; + } + /** * Configures the paths the documentation must be generated for. Add a path here only when the * spec has been totally defined. @@ -57,7 +67,7 @@ public class SpringFoxConfig { * @return A predicate that tests whether a path must be included or not */ private Predicate paths() { - return regex("/auth.*")::apply; + return regexPredicate("/auth.*").or(regexPredicate("/room.*")); } /** diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index 7c2d0b7..c94f5cc 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmerRepository; +import java.util.List; import java.util.Optional; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -22,8 +25,8 @@ public class ButtonDimmerController { @Autowired private ButtonDimmerRepository buttonDimmerService; @GetMapping - public Iterable findAll() { - return buttonDimmerService.findAll(); + public List findAll() { + return toList(buttonDimmerService.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java index 5391e43..2f6900a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLightRepository; +import java.util.List; import java.util.Optional; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +26,8 @@ public class DimmableLightController { @Autowired private DimmableLightRepository dimmableLightService; @GetMapping - public Iterable findAll() { - return dimmableLightService.findAll(); + public List findAll() { + return toList(dimmableLightService.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java index 3dd53d7..0a23301 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmerRepository; +import java.util.List; import java.util.Optional; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +26,8 @@ public class KnobDimmerController { @Autowired private KnobDimmerRepository knobDimmerService; @GetMapping - public Iterable findAll() { - return knobDimmerService.findAll(); + public List findAll() { + return toList(knobDimmerService.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java index 15c964f..5b6b947 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensor; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensorRepository; +import java.util.List; import java.util.Optional; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +26,8 @@ public class MotionSensorController { @Autowired private MotionSensorRepository motionSensorService; @GetMapping - public Iterable findAll() { - return motionSensorService.findAll(); + public List findAll() { + return toList(motionSensorService.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java index 2ec1453..6b50312 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.RegularLight; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.RegularLightRepository; +import java.util.List; import java.util.Optional; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +26,8 @@ public class RegularLightController { @Autowired private RegularLightRepository regularLightService; @GetMapping - public Iterable findAll() { - return regularLightService.findAll(); + public List findAll() { + return toList(regularLightService.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java index c1a4d87..8c51b23 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RoomController.java @@ -1,5 +1,7 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.RoomSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.security.Principal; @@ -19,15 +21,15 @@ public class RoomController { @Autowired private UserRepository userRepository; - @Autowired private DeviceRepository deviceRepository; + @Autowired private DeviceRepository deviceRepository; @GetMapping - public Iterable findAll() { - return roomRepository.findAll(); + public List findAll() { + return toList(roomRepository.findAll()); } @GetMapping("/{id}") - public Optional findById(@PathVariable("id") long id) { + public @ResponseBody Optional findById(@PathVariable("id") long id) { return roomRepository.findById(id); } @@ -40,7 +42,6 @@ public class RoomController { final String icon = r.getIcon(); newRoom.setUserId(userId); - newRoom.setUser(null); if (img != null) { newRoom.setImage(img.getBytes()); } else if (setWhenNull) { @@ -56,12 +57,14 @@ public class RoomController { } @PostMapping - public Room create(@Valid @RequestBody RoomSaveRequest r, final Principal principal) { + public @ResponseBody Room create( + @Valid @RequestBody RoomSaveRequest r, final Principal principal) { return this.save(r, principal, true); } @PutMapping - public Room update(@Valid @RequestBody RoomSaveRequest r, final Principal principal) { + public @ResponseBody Room update( + @Valid @RequestBody RoomSaveRequest r, final Principal principal) { return this.save(r, principal, false); } @@ -74,9 +77,8 @@ public class RoomController { * Returns a List of all Devices that are present in a given room (identified by its * id). */ - @GetMapping(path = "/room/{roomid}/devices") - @ResponseBody - public List getDevices(@PathVariable("roomid") long roomid) { + @GetMapping(path = "/{roomId}/devices") + public @ResponseBody List getDevices(@PathVariable("roomId") long roomid) { return deviceRepository.findByRoomId(roomid); } } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java index 957328e..8a9ce92 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; +import java.util.List; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.*; @@ -15,8 +18,8 @@ public class SensorController { @Autowired private SensorRepository sensorRepository; @GetMapping - public Iterable findAll() { - return sensorRepository.findAll(); + public List findAll() { + return toList(sensorRepository.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java index a0aee71..64dc6b5 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; +import java.util.List; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.*; @@ -15,8 +18,8 @@ public class SmartPlugController { @Autowired private SmartPlugRepository smartPlugRepository; @GetMapping - public Iterable findAll() { - return smartPlugRepository.findAll(); + public List findAll() { + return toList(smartPlugRepository.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java index 7eb83a0..d13fdc2 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java @@ -1,7 +1,10 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import static ch.usi.inf.sa4.sanmarinoes.smarthut.utils.Utils.toList; + import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; +import java.util.List; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.*; @@ -15,8 +18,8 @@ public class SwitchController { @Autowired private SwitchRepository switchRepository; @GetMapping - public Iterable findAll() { - return switchRepository.findAll(); + public List findAll() { + return toList(switchRepository.findAll()); } @GetMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Device.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Device.java index 871b67c..7aa65e8 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Device.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Device.java @@ -26,12 +26,6 @@ public abstract class Device { @ApiModelProperty(hidden = true) private long id; - /** The room this device belongs in */ - @ManyToOne - @JoinColumn(name = "room_id", nullable = false, updatable = false, insertable = false) - @ApiModelProperty(hidden = true) - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -69,14 +63,6 @@ public abstract class Device { this.id = id; } - public Room getRoom() { - return room; - } - - public void setRoom(Room room) { - this.room = room; - } - public String getName() { return name; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Room.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Room.java index 4a82ab2..e15805b 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Room.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Room.java @@ -1,7 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; import io.swagger.annotations.ApiModelProperty; -import java.util.Set; import javax.persistence.*; import javax.validation.constraints.NotNull; @@ -42,17 +41,6 @@ public class Room { @Column(nullable = false) private String name; - /** Collection of devices present in this room */ - @ApiModelProperty(hidden = true) - @OneToMany(mappedBy = "room") - private Set devices; - - /** User that owns the house this room is in */ - @ManyToOne - @JoinColumn(name = "user_id", nullable = false, updatable = false, insertable = false) - @ApiModelProperty(hidden = true) - private User user; - public Long getId() { return id; } @@ -69,14 +57,6 @@ public class Room { this.userId = userId; } - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - public String getName() { return name; } @@ -85,10 +65,6 @@ public class Room { this.name = name; } - public Set getDevices() { - return devices; - } - public byte[] getIcon() { return icon; } @@ -107,6 +83,6 @@ public class Room { @Override public String toString() { - return "Room{" + "id=" + id + ", user=" + user + ", name='" + name + "\'}"; + return "Room{" + "id=" + id + ", name='" + name + "\'}"; } } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java index 4b9cb51..f7feaea 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/User.java @@ -1,7 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; import io.swagger.annotations.ApiModelProperty; -import java.util.Set; import javax.persistence.*; import javax.validation.constraints.*; @@ -49,11 +48,6 @@ public class User { @Pattern(regexp = ".+@.+\\..+", message = "Please provide a valid email address") private String email; - /** All rooms in the user's house */ - @OneToMany(mappedBy = "user") - @ApiModelProperty(hidden = true) - private Set rooms; - public Long getId() { return id; } @@ -94,10 +88,6 @@ public class User { this.password = password; } - public Set getRooms() { - return rooms; - } - @Override public String toString() { return "User{" diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/utils/Utils.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/utils/Utils.java new file mode 100644 index 0000000..d9fcf12 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/utils/Utils.java @@ -0,0 +1,14 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.utils; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +/** A class with a bunch of useful static methods */ +public class Utils { + private Utils() {} + + public static List toList(Iterable iterable) { + return StreamSupport.stream(iterable.spliterator(), false).collect(Collectors.toList()); + } +} From eecee30841f7dc5e1457f0233b973cb8ae704222 Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Mon, 2 Mar 2020 21:59:49 +0100 Subject: [PATCH 5/5] Redoing all @tommi27 work on model since git merge is now sentient and trying to delete stuff from our project --- .../smarthut/controller/ButtonDimmerController.java | 1 - .../smarthut/controller/DimmableLightController.java | 1 - .../smarthut/controller/KnobDimmerController.java | 1 - .../smarthut/controller/MotionSensorController.java | 1 - .../smarthut/controller/RegularLightController.java | 1 - .../smarthut/controller/SensorController.java | 1 - .../smarthut/controller/SmartPlugController.java | 1 - .../smarthut/controller/SwitchController.java | 1 - .../smarthut/dto/KnobDimmerSaveRequest.java | 12 ------------ .../smarthut/dto/MotionSensorSaveRequest.java | 12 ------------ .../smarthut/dto/RegularLightSaveRequest.java | 12 ------------ .../sanmarinoes/smarthut/dto/SensorSaveRequest.java | 12 ------------ .../smarthut/dto/SmartPlugSaveRequest.java | 12 ------------ .../sanmarinoes/smarthut/dto/SwitchSaveRequest.java | 12 ------------ .../sanmarinoes/smarthut/models/ButtonDimmer.java | 6 ++++++ .../sanmarinoes/smarthut/models/DimmableLight.java | 3 +++ .../sa4/sanmarinoes/smarthut/models/KnobDimmer.java | 5 +++++ 17 files changed, 14 insertions(+), 80 deletions(-) diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index 34e536b..aa8cfa4 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -34,7 +34,6 @@ public class ButtonDimmerController { newBD.setLights(bd.getLights()); newBD.setId(bd.getId()); newBD.setName(bd.getName()); - newBD.setRoom(bd.getRoom()); newBD.setRoomId(bd.getRoomId()); return buttonDimmerService.save(newBD); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java index 9ab5f29..b02a519 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java @@ -35,7 +35,6 @@ public class DimmableLightController { newDL.setIntensity(dl.getIntensity()); newDL.setId(dl.getId()); newDL.setName(dl.getName()); - newDL.setRoom(dl.getRoom()); newDL.setRoomId(dl.getRoomId()); return dimmableLightService.save(newDL); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java index 49c889b..bd02d02 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java @@ -35,7 +35,6 @@ public class KnobDimmerController { newKD.setLights(kd.getLights()); newKD.setId(kd.getId()); newKD.setName(kd.getName()); - newKD.setRoom(kd.getRoom()); newKD.setRoomId(kd.getRoomId()); return knobDimmerService.save(newKD); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java index d4bfb2a..4f9fc27 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java @@ -35,7 +35,6 @@ public class MotionSensorController { newMS.setDetected(ms.isDetected()); newMS.setId(ms.getId()); newMS.setName(ms.getName()); - newMS.setRoom(ms.getRoom()); newMS.setRoomId(ms.getRoomId()); return motionSensorService.save(newMS); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java index de00240..bc86686 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java @@ -41,7 +41,6 @@ public class RegularLightController { RegularLight newRL = new RegularLight(); newRL.setId(rl.getId()); newRL.setName(rl.getName()); - newRL.setRoom(rl.getRoom()); newRL.setRoomId(rl.getRoomId()); newRL.setOn(rl.isOn()); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java index fd4437b..3c16272 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java @@ -35,7 +35,6 @@ public class SensorController { newSensor.setValue(s.getValue()); newSensor.setId(s.getId()); newSensor.setName(s.getName()); - newSensor.setRoom(s.getRoom()); newSensor.setRoomId(s.getRoomId()); return sensorRepository.save(newSensor); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java index c50ddc3..9a45b32 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java @@ -34,7 +34,6 @@ public class SmartPlugController { newSP.setOn(sp.isOn()); newSP.setId(sp.getId()); newSP.setName(sp.getName()); - newSP.setRoom(sp.getRoom()); newSP.setRoomId(sp.getRoomId()); return smartPlugRepository.save(newSP); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java index 5207710..e7d9eef 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java @@ -33,7 +33,6 @@ public class SwitchController { Switch newSwitch = new Switch(); newSwitch.setId(s.getId()); newSwitch.setName(s.getName()); - newSwitch.setRoom(s.getRoom()); newSwitch.setRoomId(s.getRoomId()); newSwitch.setOn(s.isOn()); diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java index 530ab90..bfc3ba8 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java @@ -1,7 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import java.util.HashSet; import java.util.Set; import javax.persistence.Lob; @@ -13,9 +12,6 @@ public class KnobDimmerSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -29,10 +25,6 @@ public class KnobDimmerSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -45,10 +37,6 @@ public class KnobDimmerSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java index 9fa3c7e..50976b6 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java @@ -1,6 +1,5 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import javax.validation.constraints.NotNull; public class MotionSensorSaveRequest { @@ -9,9 +8,6 @@ public class MotionSensorSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -25,10 +21,6 @@ public class MotionSensorSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -41,10 +33,6 @@ public class MotionSensorSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java index fb7fc78..34695e2 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java @@ -1,6 +1,5 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import javax.validation.constraints.NotNull; public class RegularLightSaveRequest { @@ -10,9 +9,6 @@ public class RegularLightSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -26,10 +22,6 @@ public class RegularLightSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -42,10 +34,6 @@ public class RegularLightSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java index cbc29b0..47ca739 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java @@ -1,6 +1,5 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Sensor; import com.google.gson.annotations.SerializedName; import javax.persistence.EnumType; @@ -35,9 +34,6 @@ public class SensorSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -51,10 +47,6 @@ public class SensorSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -67,10 +59,6 @@ public class SensorSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java index 3dbb72b..7511341 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java @@ -1,6 +1,5 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import javax.validation.constraints.NotNull; public class SmartPlugSaveRequest { @@ -10,9 +9,6 @@ public class SmartPlugSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -26,10 +22,6 @@ public class SmartPlugSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -42,10 +34,6 @@ public class SmartPlugSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java index ff365fc..84142ec 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java @@ -1,6 +1,5 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; -import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import javax.validation.constraints.NotNull; public class SwitchSaveRequest { @@ -10,9 +9,6 @@ public class SwitchSaveRequest { /** Device identifier */ private long id; - /** The room this device belongs in */ - private Room room; - /** * The room this device belongs in, as a foreign key id. To use when updating and inserting from * a REST call. @@ -26,10 +22,6 @@ public class SwitchSaveRequest { this.id = id; } - public void setRoom(Room room) { - this.room = room; - } - public void setRoomId(Long roomId) { this.roomId = roomId; } @@ -42,10 +34,6 @@ public class SwitchSaveRequest { return id; } - public Room getRoom() { - return room; - } - public Long getRoomId() { return roomId; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java index 9ff5af2..1e5f702 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java @@ -1,6 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; + +import java.util.Set; import javax.persistence.Entity; +import javax.persistence.OneToMany; /** * Represents a dimmer that can only instruct an increase or decrease of intensity (i.e. like a @@ -12,6 +15,9 @@ public class ButtonDimmer extends Dimmer { super("button-dimmer"); } + @OneToMany(mappedBy = "dimmer") + private Set lights; + /** Increases the current intensity level of the dimmable light by 1 */ public void increaseIntensity() { for (DimmableLight dl : lights) { diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLight.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLight.java index 6a35248..a71afbc 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLight.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/DimmableLight.java @@ -2,6 +2,7 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.ManyToOne; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; @@ -14,6 +15,8 @@ public class DimmableLight extends Light { super("light"); } + @ManyToOne private Dimmer dimmer; + /** The light intensity value. Goes from 0 (off) to 100 (on) */ @NotNull @Column(nullable = false) diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java index d14e099..0a90998 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java @@ -1,6 +1,8 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; +import java.util.Set; import javax.persistence.Entity; +import javax.persistence.OneToMany; /** * Represents a dimmer able to set absolute intensity values (i.e. knowing the absolute intensity @@ -12,6 +14,9 @@ public class KnobDimmer extends Dimmer { super("knob-dimmer"); } + @OneToMany(mappedBy = "dimmer") + private Set lights; + /** * Increases or decreases the current intensity level by 5, moving between absolute multiples of * 5 between 0 and 100, of all dimmable lights mapped to this knob