All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.eurodyn.qlack.fuse.aaa.mappers.UserDetailsMapper Maven / Gradle / Ivy

There is a newer version: 3.8.9
Show newest version
package com.eurodyn.qlack.fuse.aaa.mappers;

import com.eurodyn.qlack.fuse.aaa.dto.UserDetailsDTO;
import com.eurodyn.qlack.fuse.aaa.dto.UserGroupHasOperationDTO;
import com.eurodyn.qlack.fuse.aaa.model.User;
import com.eurodyn.qlack.fuse.aaa.model.UserGroup;
import org.mapstruct.Context;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @author EUROPEAN DYNAMICS SA
 */
@Mapper(componentModel = "spring",
        unmappedTargetPolicy = ReportingPolicy.IGNORE,
        uses = {UserGroupHasOperationMapper.class})
public interface UserDetailsMapper {

    @Mapping(target = "userGroupHasOperations", source = "userGroups", qualifiedByName = "mapUserGroupHasOperations")
    UserDetailsDTO mapToDTO(User user, @Context UserGroupHasOperationMapper userGroupHasOperationMapper);

    @Named("mapUserGroupHasOperations")
    default List mapUserGroupHasOperations(List userGroups, @Context UserGroupHasOperationMapper userGroupHasOperationMapper){
        return userGroups.stream()
                .map(g -> userGroupHasOperationMapper.mapToDTO(g.getUserGroupHasOperations()))
                .flatMap(List::stream)
                .collect(Collectors.toList());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy