class UserUpdater {

    void updateUserData(@NonNull Collection<LdapUserNode> nodes) {
        var userData = nodes.stream()
                .map(node -> {
                    var user = repoUserService.getOrCreateUserById(node.getId());

                    return new UserData(user, node.getGivenName(), node.getSurname(), node.getMail(), node.getDivision());
                })
                .distinct()
                .collect(Collectors.toList());

        normalizeAndSaveUserData(userData);
    }

    public  UserUpdater(HierarchyTreeNodeRepository hierarchyTreeNodeRepo,
                       RepositoryUserService repoUserService,
                       UserDataRepository userDataRepo,
                       LdapAdapter ldapAdapter,
                       List<Normalizer<UserData>> normalizers);

}