BaseExporter.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package commons.exporters.impl;
  2. import java.math.RoundingMode;
  3. import java.text.DecimalFormat;
  4. import java.text.NumberFormat;
  5. import java.util.List;
  6. public abstract class BaseExporter<T> {
  7. protected List<T> dataSet;
  8. protected abstract List<T> fetchDataToExport();
  9. protected abstract void setFileName();
  10. public abstract List<String> getFullFileName();
  11. protected abstract void exportRecord(T record);
  12. protected String baseFolder;
  13. protected String zipFileName;
  14. protected abstract boolean createFile();
  15. protected abstract void closeFile();
  16. public void setBaseFolder(String baseFolder) {
  17. this.baseFolder = baseFolder;
  18. }
  19. public void setFileName(String zipFileName) {
  20. this.zipFileName = zipFileName;
  21. }
  22. public boolean runExport() {
  23. boolean res=true;
  24. dataSet = fetchDataToExport();
  25. setFileName();
  26. if (createFile()) {
  27. for (T currentRecord:dataSet) {
  28. exportRecord(currentRecord);
  29. }
  30. } else
  31. res = false;
  32. closeFile();
  33. return res;
  34. }
  35. protected String formatNum(Float f, int dec) {
  36. if (f==null)
  37. return "0";
  38. NumberFormat format = DecimalFormat.getInstance();
  39. format.setRoundingMode(RoundingMode.FLOOR);
  40. format.setGroupingUsed(false);
  41. format.setMinimumFractionDigits(dec);
  42. format.setMaximumFractionDigits(dec);
  43. return format.format(f).replace(",","").replace(".", "");
  44. }
  45. protected String formatNumber(Float f) {
  46. if (f==null)
  47. return "0";
  48. NumberFormat format = DecimalFormat.getInstance();
  49. format.setRoundingMode(RoundingMode.FLOOR);
  50. format.setGroupingUsed(false);
  51. format.setMinimumFractionDigits(0);
  52. format.setMaximumFractionDigits(0);
  53. return format.format(f);
  54. }
  55. }