package edu.ucsb.jpregel.system; import api.MasterGraphMaker; import java.io.BufferedReader; import java.io.BufferedWriter; import static java.lang.System.err; import static java.lang.System.exit; public class MasterGraphMakerPageRank implements MasterGraphMaker { @Override public void make(FileSystem fileSystem, int numWorkers) { try { BufferedReader bufferedReader = fileSystem.getFileInputStream(); String line; while ((line = bufferedReader.readLine()) == null) { err.println("WorkerFileWriter1: Error: input file has no lines."); exit(1); } int numV = Integer.parseInt(line); int vertexNum = 0; int fileNum; for (fileNum = 1; fileNum <= numWorkers; fileNum++) { BufferedWriter bufferedWriter = fileSystem.getWorkerInputFileOutputStream(fileNum); int linesPerFile = numV / numWorkers; if (fileNum <= numV % numWorkers) { linesPerFile++; } for (int lineNum = 0; lineNum < linesPerFile; lineNum++) { // create line for vertex whose number is vertexNum StringBuilder string = new StringBuilder(); int endVertexNum = vertexNum + linesPerFile; string.append(vertexNum).append(' ').append(endVertexNum).append(' ').append(numV); String lines = new String(string); // append line to output file bufferedWriter.write(lines); bufferedWriter.newLine(); vertexNum++; } bufferedWriter.close(); } } catch (Exception exception) { err.println("G1MasterGraphMaker.read: Error:is happening here damm " + exception.getMessage()); exit(1); } } }