File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Spring_part_17/src/main/java/spring/oldboy/mapper Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ package spring .oldboy .mapper ;
2+
3+ import lombok .RequiredArgsConstructor ;
4+ import org .springframework .stereotype .Component ;
5+ import spring .oldboy .database .entity .User ;
6+ import spring .oldboy .dto .CompanyReadDto ;
7+ import spring .oldboy .dto .UserReadDto ;
8+
9+ import java .util .Optional ;
10+
11+ /* Будет bean-ом */
12+ @ Component
13+ /* При наличии final полей в классе используем аннотацию ниже */
14+ @ RequiredArgsConstructor
15+ public class UserReadMapper implements Mapper <User , UserReadDto > {
16+
17+ private final CompanyReadMapper companyReadMapper ;
18+
19+ @ Override
20+ public UserReadDto map (User object ) {
21+ /*
22+ В зависимости от ситуации у нашего User может отсутствовать запись в поле
23+ компания, и такая ситуация требует обработки - мы либо возвращаем компанию,
24+ при наличии, в противном случае отдаем null.
25+ */
26+ CompanyReadDto company = Optional .ofNullable (object .getCompany ())
27+ .map (companyReadMapper ::map )
28+ .orElse (null );
29+
30+ return new UserReadDto (
31+ object .getId (),
32+ object .getUsername (),
33+ object .getBirthDate (),
34+ object .getFirstname (),
35+ object .getLastname (),
36+ object .getRole (),
37+ company
38+ );
39+ }
40+ }
You can’t perform that action at this time.
0 commit comments