package hu.sztaki.ilab.longneck.process.access; import hu.sztaki.ilab.longneck.Field; import hu.sztaki.ilab.longneck.Record; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.util.Collection; import java.util.Map; /** * Target that writes all fields content to a text file * * @author Bendig LorĂ¡nd * */ public class SimpleFileTarget implements Target { /** Name of the path file */ private String path; private BufferedWriter bufferedWriter; public String getPath() { return path; } public void setPath(String target) { this.path = target; } @Override public void truncate() { throw new UnsupportedOperationException("Not supported yet: files can't be truncated."); } @Override public void appendRecords(Collection<Record> records) { try { for (Record record : records) { Map<String, Field> fields = record.getFields(); for (Map.Entry<String, Field> field : fields.entrySet()) { bufferedWriter.write(field.getValue().toString()); bufferedWriter.newLine(); } bufferedWriter.newLine(); } } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } @Override public void init() { try { bufferedWriter = new BufferedWriter(new FileWriter(path)); } catch (IOException e) { throw new RuntimeException(e); } } @Override public void close() { try { if (bufferedWriter != null) { bufferedWriter.flush(); bufferedWriter.close(); } } catch (IOException e) { throw new RuntimeException(e); } } }