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

com.eurodyn.qlack.fuse.aaa.mappers.UserGroupMapper 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.UserGroupDTO;
import com.eurodyn.qlack.fuse.aaa.model.UserGroup;
import org.mapstruct.Context;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface UserGroupMapper {

  @Mapping(source = "parent.id", target = "parentId")
  @Mapping(target = "children", qualifiedByName = "mapChildren")
  UserGroupDTO mapToDTO(UserGroup userGroup, @Context boolean lazyRelatives);

  List mapToDTO(List userGroups, @Context boolean lazyRelatives);

  @Mapping(source = "parentId", target = "parent.id")
  UserGroup mapToEntity(UserGroupDTO userGroupDTO);

  List mapToEntity(List userGroupsDTO);

  void mapToExistingEntity(UserGroupDTO userGroupDTO, @MappingTarget UserGroup userGroup);

  @Named("mapChildren")
  default Set mapChildren(List children, @Context boolean lazyRelatives){
    if (!lazyRelatives) {
     return new HashSet<>(mapToDTO(children, true));
    }
    return new HashSet<>();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy