package edu.illinois.keshmesh.report; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import edu.illinois.keshmesh.constants.Constants; public class FileWriterFactory implements WriterFactory { private final String filename; private final StringWriterFactory stringWriterFactory; public FileWriterFactory(String filename, StringWriterFactory stringWriterFactory) { this.filename = filename; this.stringWriterFactory = stringWriterFactory; } @Override public Writer create() { try { File keshmeshHome = new File(Constants.KESHMESH_HOME); if (!keshmeshHome.exists()) { return stringWriterFactory.create(); } return new FileWriter(new File(Constants.KESHMESH_HOME + Constants.FILE_SEPARATOR + filename)); } catch (IOException e) { throw new RuntimeException(e); } } }