Aide sur tutoriel Spring Rest
Bonjour à tous,
Quelque chose m'intrigue dans ce tutoriel.
https://bnguimgo.developpez.com/tuto...tie-le-serveur
Dans la classe UserServiceImpl.java je ne comprends pas cette fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
private void addUserRole(User user) {
Set<Role> roles= new HashSet<>();
Role roleUser = new Role("ROLE_USER");//initialisation du rôle ROLE_USER
roles.add(roleUser);
user.setActive(0);
Set<Role> roleFromDB = extractRole_Java8(roles, roleRepository.getAllRolesStream());
user.setRoles(roleFromDB);
}
private Set<Role> extractRole_Java8(Set<Role> rolesSetFromUser, Stream<Role> roleStreamFromDB) {
// Collect UI role names
Set<String> uiRoleNames = rolesSetFromUser.stream()
.map(Role::getRoleName)
.collect(Collectors.toCollection(HashSet::new));
// Filter DB roles
return roleStreamFromDB
.filter(role -> uiRoleNames.contains(role.getRoleName()))
.collect(Collectors.toSet());
} |
Pourquoi addUserRole ne prend pas un rôle en paramètre d'entrée?
Je ne comprends pas non plus extractRole_Java8.
J'essaye de reproduire la même logique pour une API perso, avec des fonctions d'ajout pour des objets ayant des relations avec d'autres. Dans mon cas j'ai une classe "Musicien" avec une liaison many_to_many vers une classe "Style".
Mais ça m'ennuie un peu de recopier sans rien comprendre.
A quoi sert cette initialisation ?
Code:
Role roleUser = new Role("ROLE_USER");//initialisation du rôle ROLE_USER
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
private void addMusicianStyle(Musician musician) {
Set<Style> styles = new HashSet<>();
Style styleMusician = new Style("Style_Musician");//initialisation
styles.add(styleMusician);
Set<Style> stylesFromDB = extractStyles_Java8(styles, styleRepository.getAllStylesStream());
musician.setStyles(stylesFromDB);
private Set<Style> extractStyles_Java8(Set<Style> stylesSetFromMusician, Stream<Style> stylesStreamFromDB) {
// Collect UI subInstruments names
Set<String> uiStylesNames = stylesSetFromMusician.stream()
.map(Style::getName)
.collect(Collectors.toCollection(HashSet::new));
// Filter DB subInstruments
return stylesStreamFromDB
.filter(style -> uiStylesNames.contains(style.getName()))
.collect(Collectors.toSet());
}
} |
Merci pour votre aide !