package com.cloudera.sa.hcu.io.get; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.util.zip.GZIPOutputStream; public abstract class AbstractGetter { long recordsWriten = 0; long lastTime = System.currentTimeMillis(); abstract public void getFile(String[] args) throws Exception; public BufferedWriter createBufferedWriter(String filePath) throws IOException { if (filePath.endsWith(".zip") || filePath.endsWith(".gz")) { return new BufferedWriter(new OutputStreamWriter( new GZIPOutputStream(new FileOutputStream(filePath)))); }else { return new BufferedWriter(new FileWriter(new File(filePath))); } } public void onWritenRecord() { recordsWriten++; // Give a heart beat after 10 seconds if ((System.currentTimeMillis() - lastTime) > 10000) { System.out.println(" - Records so far: " + recordsWriten); lastTime = System.currentTimeMillis(); } } public void onFinishedWriting() { System.out.println("Finished - Total Records: " + recordsWriten); } }