package ldbc.snb.datagen.serializer; import ldbc.snb.datagen.dictionary.Dictionaries; import ldbc.snb.datagen.objects.Knows; import ldbc.snb.datagen.objects.Person; import ldbc.snb.datagen.objects.StudyAt; import ldbc.snb.datagen.objects.WorkAt; import org.apache.hadoop.conf.Configuration; import java.util.Iterator; /** * Created by aprat on 10/15/14. */ abstract public class PersonSerializer { public PersonSerializer() { } public void export(final Person person) { // System.out.println(person.maxNumKnows()); serialize(person); long universityId = Dictionaries.universities.getUniversityFromLocation(person.universityLocationId()); if (universityId != -1) { if (person.classYear() != -1) { StudyAt studyAt = new StudyAt(); studyAt.year = person.classYear(); studyAt.user = person.accountId(); studyAt.university = universityId; serialize(studyAt); } } Iterator<Long> it = person.companies().keySet().iterator(); while (it.hasNext()) { long companyId = it.next(); WorkAt workAt = new WorkAt(); workAt.company = companyId; workAt.user = person.accountId(); workAt.year = person.companies().get(companyId); serialize(workAt); } } public void export(final Person p, final Knows k ) { if( p.accountId() < k.to().accountId()) serialize(p, k); } abstract public void reset(); abstract public void initialize(Configuration conf, int reducerId); abstract public void close(); abstract protected void serialize(final Person p); abstract protected void serialize(final StudyAt studyAt); abstract protected void serialize(final WorkAt workAt); abstract protected void serialize(final Person p, final Knows knows); }