package glug.parser;
import glug.model.ThreadedSystem;
import glug.parser.logmessages.LogMessageParserRegistry;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.zip.GZIPInputStream;
public class LogLoaderFactory {
public LogLoader createLoaderFor(File logFile, ThreadedSystem threadedSystem, LogMessageParserRegistry logMessageParserRegistry) {
// System.out.println("Processing "+logFile);
LineNumberReader reader;
try {
reader = new LineNumberReader(new InputStreamReader(streamForFile(logFile)),8192*2);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
LogLoader logLoader = new LogLoader(new LogParsingReader(reader,new LogLineParser(new LogCoordinateParser(threadedSystem),logMessageParserRegistry )));
System.out.println("woo");
return logLoader;
}
private InputStream streamForFile(File logFile) throws IOException, FileNotFoundException {
FileInputStream uncompressedFileStream = new FileInputStream(logFile);
if (logFile.getName().endsWith(".gz")) {
return new GZIPInputStream(uncompressedFileStream);
}
return uncompressedFileStream;
}
}