Skip to content

Instantly share code, notes, and snippets.

@yevgnenll
Created June 25, 2020 07:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yevgnenll/8ff42a1605a472d2d494358b96621bde to your computer and use it in GitHub Desktop.
Save yevgnenll/8ff42a1605a472d2d494358b96621bde to your computer and use it in GitHub Desktop.
collector
package com.idolz.data.batch.dto;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.mapping;
import static java.util.stream.Collectors.groupingBy;
import com.idolz.data.batch.model.content.Concept;
import com.idolz.data.batch.model.content.DataMapping;
import lombok.Getter;
@Getter
public class ConceptSphere {
public ConceptSphere(List<DataThumbJsonDTO> dataThumbList, List<DataMapping> dataMappingList) {
Map<String, List<Concept>> conceptBySeqIndex = dataMappingList.stream()
.collect(groupingBy(DataMapping::getSeqIndex, mapping(DataMapping::getConcept, toList())));
this.dataThumbList = dataThumbList.stream()
.map(dataThumb -> mergeConcept(conceptBySeqIndex, dataThumb))
.filter(Objects::nonNull)
.collect(toList());
}
private List<DataThumbJsonDTO> dataThumbList;
private DataThumbJsonDTO mergeConcept(Map<String, List<Concept>> conceptBySeqIndex, DataThumbJsonDTO dataThumbJsonDTO) {
List<Concept> concepts = conceptBySeqIndex.getOrDefault(String.valueOf(dataThumbJsonDTO.getSeqIndex()), Collections
.emptyList());
return dataThumbJsonDTO.mergeWithConcept(concepts);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment