aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java
new file mode 100644
index 0000000..a08b03e
--- /dev/null
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/EmployeeServiceImpl.java
@@ -0,0 +1,59 @@
+package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.service;
+
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidEmployeeException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.EmployeeDAO;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Employee;
+import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.EmployeeValidator;
+import java.util.Set;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EmployeeServiceImpl implements EmployeeService {
+
+ private final EmployeeDAO employeePersistence;
+
+ public EmployeeServiceImpl(EmployeeDAO employeePersistence) {
+ this.employeePersistence = employeePersistence;
+ }
+
+ @Override
+ public long add(Employee employee) throws InvalidEmployeeException, ServiceException {
+
+ EmployeeValidator.validate(employee);
+ try {
+ return employeePersistence.add(employee);
+ } catch (PersistenceException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public Employee update(Employee employee) throws InvalidEmployeeException, ServiceException {
+
+ EmployeeValidator.validate(employee);
+ try {
+ employeePersistence.update(employee);
+ return employee;
+ } catch (ElementNotFoundException | PersistenceException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public Set<Employee> list() throws ServiceException {
+
+ try {
+ return employeePersistence.list();
+ } catch (PersistenceException e) {
+ throw new ServiceException(e);
+ }
+ }
+
+ @Override
+ public void remove(long id) throws InvalidEmployeeException, ServiceException {
+ throw new UnsupportedOperationException();
+ }
+}