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 8d03a3f

Browse files
Added Mapper folder in the MVCPracticeAdvanced section of a small course on Java EE
1 parent f266f49 commit 8d03a3f

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package AirportSimulatorTwo.Mapper;
2+
3+
import AirportSimulatorTwo.DTO.CreateUserDto;
4+
import AirportSimulatorTwo.Entity.EntityEnum.Gender;
5+
import AirportSimulatorTwo.Entity.EntityEnum.Role;
6+
import AirportSimulatorTwo.Entity.User;
7+
import AirportSimulatorTwo.Util.LocalDateFormatter;
8+
import lombok.AccessLevel;
9+
import lombok.NoArgsConstructor;
10+
11+
/* Конструктор без аргументов с параметрами доступа PRIVATE */
12+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
13+
public class CreateUserMapper implements Mapper<CreateUserDto, User> {
14+
15+
private static final CreateUserMapper INSTANCE = new CreateUserMapper();
16+
private static final String IMAGE_USER_FOLDER = "users/";
17+
18+
public static CreateUserMapper getInstance() {
19+
return INSTANCE;
20+
}
21+
/*
22+
Для преобразования полученной из формы регистрации даты (String)
23+
из строки в дату удобную для понимания базой данных LocalDate
24+
применяем самописный утиллитный класс LocalDateFormatter
25+
*/
26+
@Override
27+
public User mapFrom(CreateUserDto object) {
28+
return User.builder().
29+
name(object.getName()).
30+
birthday(LocalDateFormatter.format(object.getBirthday())).
31+
email(object.getEmail()).
32+
image(IMAGE_USER_FOLDER + object.getImage().getSubmittedFileName()).
33+
password(object.getPassword()).
34+
gender(Gender.valueOf(object.getGender())).
35+
role(Role.valueOf(object.getRole())).
36+
build();
37+
}
38+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package AirportSimulatorTwo.Mapper;
2+
3+
public interface Mapper <F, T> {
4+
T mapFrom(F object);
5+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package AirportSimulatorTwo.Mapper;
2+
3+
import AirportSimulatorTwo.DTO.ReadUserDto;
4+
import AirportSimulatorTwo.Entity.User;
5+
import lombok.AccessLevel;
6+
import lombok.NoArgsConstructor;
7+
8+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
9+
public class ReadUserMapper implements Mapper<User, ReadUserDto> {
10+
11+
private static final ReadUserMapper INSTANCE = new ReadUserMapper();
12+
13+
public static ReadUserMapper getInstance() {
14+
return INSTANCE;
15+
}
16+
@Override
17+
public ReadUserDto mapFrom(User object) {
18+
return ReadUserDto.builder().
19+
id(object.getId()).
20+
name(object.getName()).
21+
birthday(object.getBirthday()).
22+
email(object.getEmail()).
23+
image(object.getImage()).
24+
role(object.getRole()).
25+
gender(object.getGender()).
26+
build();
27+
}
28+
}

0 commit comments

Comments
(0)

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