package ldbc.snb.datagen.serializer;
import ldbc.snb.datagen.dictionary.Dictionaries;
import ldbc.snb.datagen.generator.DatagenParams;
import ldbc.snb.datagen.objects.*;
import ldbc.snb.datagen.util.FactorTable;
import java.io.IOException;
/**
* Created by aprat on 3/01/16.
*/
public class PersonActivityExporter {
protected PersonActivitySerializer personActivitySerializer_;
protected UpdateEventSerializer updateSerializer_;
protected FactorTable factorTable_;
public PersonActivityExporter(PersonActivitySerializer personActivitySerializer, UpdateEventSerializer updateEventSerializer, FactorTable factorTable) {
this.personActivitySerializer_ = personActivitySerializer;
this.updateSerializer_ = updateEventSerializer;
this.factorTable_ = factorTable;
}
public void export(final Forum forum) throws IOException {
if(forum.creationDate() < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(forum);
} else {
updateSerializer_.export(forum);
}
}
public void export(final Post post) throws IOException {
if(post.creationDate() < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(post);
factorTable_.extractFactors(post);
} else {
updateSerializer_.export(post);
}
}
public void export(final Comment comment) throws IOException {
if(comment.creationDate() < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(comment);
factorTable_.extractFactors(comment);
} else {
updateSerializer_.export(comment);
}
}
public void export(final Photo photo) throws IOException {
if(photo.creationDate() < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(photo);
factorTable_.extractFactors(photo);
} else {
updateSerializer_.export(photo);
}
}
public void export(final ForumMembership member) throws IOException {
if(member.creationDate() < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(member);
factorTable_.extractFactors(member);
} else {
updateSerializer_.export(member);
}
}
public void export(final Like like) throws IOException {
if(like.date < Dictionaries.dates.getUpdateThreshold() || !DatagenParams.updateStreams ) {
personActivitySerializer_.export(like);
factorTable_.extractFactors(like);
} else {
updateSerializer_.export(like);
}
}
}