package at.eisibaer.jbear2.service.mapper import at.eisibaer.jbear2.dto.board.BoardDto import at.eisibaer.jbear2.model.Board import at.eisibaer.jbear2.model.User import at.eisibaer.jbear2.repository.FileRepository import at.eisibaer.jbear2.repository.UserRepository import org.mapstruct.* @Mapper(uses = [UserMapper::class,QuestionMapper::class,AnswerMapper::class,BoardEntryMapper::class,CategoryMapper::class]) abstract class BoardMapper { abstract fun toDto(e: Board): BoardDto; abstract fun toDto(e: List): List; @Mapping(target = "owner", source = "owner") @Mapping(target = "id", source = "d.id") abstract fun toEntity(d: BoardDto, owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): Board; abstract fun toEntity(d: List, @Context owner: User, @Context userRepository: UserRepository, @Context fileRepository: FileRepository): List; @AfterMapping fun addBoardToCategory(source: BoardDto, @MappingTarget target: Board ): Board{ for( category in target.categories ){ category.board = target } return target } }