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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
Role roleUser = new Role("ROLE_USER");//initialisation du rôle ROLE_USER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !