Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7dc75eb

Browse files
Added Service folder in the MVCPractice section of a small course on Java EE
1 parent 967cc6e commit 7dc75eb

File tree

3 files changed

+115
-0
lines changed

3 files changed

+115
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package AirportSimulator.Service;
2+
3+
import AirportSimulator.DAO.FlightDao;
4+
import AirportSimulator.DTO.FlightDto;
5+
6+
import java.util.List;
7+
import java.util.stream.Collectors;
8+
9+
public class FlightService {
10+
private static final FlightService INSTANCE = new FlightService();
11+
private FlightService() {
12+
}
13+
public static FlightService getInstance() {
14+
return INSTANCE;
15+
}
16+
private final FlightDao flightDao = FlightDao.getInstance();
17+
public List<FlightDto> findAll(){
18+
return flightDao.
19+
findAll().
20+
stream().
21+
map(flight -> new FlightDto(
22+
flight.getId(),
23+
"""
24+
%s - %s - %s
25+
""".formatted(flight.getDeparture_airport_code(),
26+
flight.getArrival_airport_code(),
27+
flight.getStatus())
28+
)).
29+
collect(Collectors.toList());
30+
}
31+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package AirportSimulator.Service;
2+
3+
import AirportSimulator.DAO.TicketDao;
4+
import AirportSimulator.DTO.TicketDto;
5+
6+
import java.util.List;
7+
import java.util.stream.Collectors;
8+
9+
public class TicketService {
10+
private static final TicketService INSTANCE = new TicketService();
11+
private TicketService(){
12+
}
13+
public static TicketService getInstance(){
14+
return INSTANCE;
15+
}
16+
private final TicketDao ticketDao = TicketDao.getInstance();
17+
public List<TicketDto> findAllByFlightId(Long flightId) {
18+
return ticketDao.findAllByFlightId(flightId).
19+
stream().
20+
map(ticket -> new TicketDto(
21+
ticket.getId(),
22+
ticket.getFlight_id(),
23+
ticket.getSeat_no()
24+
)).
25+
collect(Collectors.toList());
26+
}
27+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package AirportSimulator.Service;
2+
3+
import AirportSimulator.DAO.UserDao;
4+
import AirportSimulator.DTO.CreateUserDto;
5+
import AirportSimulator.Entity.User;
6+
import AirportSimulator.Exception.ValidationException;
7+
import AirportSimulator.Mapper.CreateUserMapper;
8+
import AirportSimulator.Validator.CreateUserValidator;
9+
import AirportSimulator.Validator.ValidationResult;
10+
import lombok.AccessLevel;
11+
import lombok.NoArgsConstructor;
12+
13+
/* Конструктор без аргументов с параметрами доступа PRIVATE */
14+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
15+
public class UserService {
16+
private static final UserService INSTANCE = new UserService();
17+
/*
18+
Три объекта необходимых для реализации объекта текущего класса:
19+
- Валидация;
20+
- Преобразование DTO в DAO;
21+
- Создание DAO объекта.
22+
*/
23+
private final CreateUserValidator createUserValidator = CreateUserValidator.getInstance();
24+
private final UserDao userDao = UserDao.getInstance();
25+
private final CreateUserMapper createUserMapper = CreateUserMapper.getInstance();
26+
27+
public static UserService getInstance() {
28+
return INSTANCE;
29+
}
30+
31+
/*
32+
Для корректной работы данного метода (да и нашего приложения в целом)
33+
нужно реализовать несколько шагов:
34+
1. пройти валидацию - т.е. проверить верны ли введенные данные;
35+
2. преобразование нашей DTO в сущность;
36+
3. сохраняем нашу сущность на уровне DAO;
37+
4. возвращаем id сущности или саму сущность (в зависимости от
38+
выбранного типа возвращаемых данных методом 'create').
39+
*/
40+
public Integer create(CreateUserDto userDto){
41+
/* Получаем результат валидации */
42+
ValidationResult validationResult = createUserValidator.isValid(userDto);
43+
/* Если что-то пошло не так, генерируем наше исключение */
44+
if (!validationResult.isValid()) {
45+
throw new ValidationException(validationResult.getErrors());
46+
}
47+
/*
48+
Если валидация прошла успешно,
49+
все поля заполнены, ошибок нет,
50+
из DTO создаем DAO
51+
*/
52+
User userEntity = createUserMapper.mapFrom(userDto);
53+
userDao.save(userEntity);
54+
55+
return userEntity.getId();
56+
}
57+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /