package eu.dnetlib.iis.wf.importer.infospace.converter; import java.util.List; import java.util.Map; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import eu.dnetlib.iis.wf.importer.infospace.InfoSpaceRecord; import eu.dnetlib.iis.wf.importer.infospace.QualifiedOafJsonRecord; /** * {@link InfoSpaceRecord} related utility class. * @author mhorst * */ public final class InfoSpaceRecordUtils { private InfoSpaceRecordUtils(){} /** * Maps {@link InfoSpaceRecord}s by column family. * @param records records to be mapped into columnFamily->record */ public static Map<String, List<QualifiedOafJsonRecord>> mapByColumnFamily(Iterable<InfoSpaceRecord> records) { Preconditions.checkNotNull(records); Map<String, List<QualifiedOafJsonRecord>> oafRecordsByFamilyMap = Maps.newHashMap(); for (InfoSpaceRecord record : records) { List<QualifiedOafJsonRecord> storedRecords = oafRecordsByFamilyMap.computeIfAbsent(record.getColumnFamily().toString(), k -> Lists.newArrayList()); storedRecords.add(new QualifiedOafJsonRecord(record.getQualifier().toString(), record.getOafJson().toString())); } return oafRecordsByFamilyMap; } }