package ldbc.snb.datagen.serializer.small;
import ldbc.snb.datagen.dictionary.Dictionaries;
import ldbc.snb.datagen.objects.Organization;
import ldbc.snb.datagen.objects.Place;
import ldbc.snb.datagen.objects.Tag;
import ldbc.snb.datagen.objects.TagClass;
import ldbc.snb.datagen.serializer.HDFSCSVWriter;
import ldbc.snb.datagen.serializer.InvariantSerializer;
import ldbc.snb.datagen.vocabulary.DBP;
import ldbc.snb.datagen.vocabulary.DBPOWL;
import org.apache.hadoop.conf.Configuration;
import java.util.ArrayList;
/**
* Created by aprat on 12/17/14.
*/
public class CSVInvariantSerializer extends InvariantSerializer {
private HDFSCSVWriter[] writers;
private enum FileNames {
TAG ("tag");
private final String name;
private FileNames( String name ) {
this.name = name;
}
public String toString() {
return name;
}
}
public void initialize(Configuration conf, int reducerId) {
int numFiles = FileNames.values().length;
writers = new HDFSCSVWriter[numFiles];
for( int i = 0; i < numFiles; ++i) {
writers[i] = new HDFSCSVWriter(conf.get("ldbc.snb.datagen.serializer.socialNetworkDir"),FileNames.values()[i].toString()+"_"+reducerId,conf.getInt("ldbc.snb.datagen.numPartitions",1),conf.getBoolean("ldbc.snb.datagen.serializer.compressed",false),"|", conf.getBoolean("ldbc.snb.datagen.serializer.endlineSeparator",false));
}
ArrayList<String> arguments = new ArrayList<String>();
arguments.add("id");
arguments.add("name");
writers[FileNames.TAG.ordinal()].writeEntry(arguments);
}
public void close() {
int numFiles = FileNames.values().length;
for(int i = 0; i < numFiles; ++i) {
writers[i].close();
}
}
protected void serialize(final Place place) {
}
protected void serialize(final Organization organization) {
}
protected void serialize(final TagClass tagClass) {
}
protected void serialize(final Tag tag) {
ArrayList<String> arguments = new ArrayList<String>();
arguments.add(Integer.toString(tag.id));
arguments.add(tag.name);
writers[FileNames.TAG.ordinal()].writeEntry(arguments);
arguments.clear();
}
public void reset() {
}
}