summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ecomp-sdk/.gitignore51
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java1408
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java766
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java792
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java527
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java263
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java193
7 files changed, 1791 insertions, 2209 deletions
diff --git a/ecomp-sdk/.gitignore b/ecomp-sdk/.gitignore
new file mode 100644
index 00000000..777a7cd1
--- /dev/null
+++ b/ecomp-sdk/.gitignore
@@ -0,0 +1,51 @@
+# Compiled source #
+*.class
+*/bin/*
+
+# Eclipse files
+.project
+.classpath
+.settings
+.metadata
+
+# IntelliJ IDEA files
+.idea
+*.iws
+*.ipr
+*.iml
+
+# Netbeans
+Netbeans
+nbactions.xml
+nb-configuration.xml
+
+# Test output files
+*/test-output/*
+/test-output/
+/test-output
+test-output/
+test-output/**/*
+*/test-output/**/*
+
+# Packages
+*.jar
+
+# Maven build files
+target
+reports
+application.properties
+avs-rest-service/application.properties
+
+
+# PMD
+.pmd
+
+# Merge files
+*.orig
+
+#tmp irectories
+tmp/
+
+# Windows binaries
+*.exe
+*.dll \ No newline at end of file
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java
index 56f28b54..90f3e2e1 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java
@@ -58,6 +58,11 @@
*/
package org.onap.portalsdk.analytics.model;
+import com.lowagie.text.Document;
+import com.lowagie.text.Paragraph;
+import com.lowagie.text.html.simpleparser.HTMLWorker;
+import com.lowagie.text.html.simpleparser.StyleSheet;
+import com.lowagie.text.pdf.PdfPTable;
import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.File;
@@ -102,12 +107,10 @@ import java.util.concurrent.TimeoutException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
-
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-
import org.apache.commons.io.FilenameUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
@@ -168,13 +171,6 @@ import org.onap.portalsdk.analytics.xmlobj.SemaphoreType;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.owasp.esapi.ESAPI;
-import com.lowagie.text.Document;
-import com.lowagie.text.Paragraph;
-import com.lowagie.text.html.simpleparser.HTMLWorker;
-import com.lowagie.text.html.simpleparser.StyleSheet;
-import com.lowagie.text.pdf.PdfPTable;
-//import javax.servlet.RequestDispatcher;
-
public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportHandler.class);
@@ -332,7 +328,9 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
return hashMapStyles;
}
- private void paintExcelParams(HSSFWorkbook wb,int rowNum,int col,ArrayList paramsList, String customizedParamInfo, HSSFSheet sheet, String reportTitle, String reportDescr) throws IOException {
+ private void paintExcelParams(final HSSFWorkbook wb, int rowNum, final int col, final List paramsList,
+ final String customizedParamInfo, final HSSFSheet sheet, final String reportTitle, final String reportDescr)
+ throws IOException {
//HSSFSheet sheet = wb.getSheet(getSheetName());
int cellNum = 0;
HSSFRow row = null;
@@ -569,10 +567,9 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
}
-
-
- private int paintExcelData(HSSFWorkbook wb, int rowNum, int col, ReportData rd,
- HashMap styles, ReportRuntime rr, HSSFSheet sheet, String sql_whole, OutputStream sos, HttpServletRequest request) throws RaptorException {
+ private int paintExcelData(final HSSFWorkbook wb, int rowNum, final ReportData rd, final Map styles,
+ final ReportRuntime rr, final HSSFSheet sheet, final String sql_whole,
+ final HttpServletRequest request) throws RaptorException {
int mb = 1024*1024;
Runtime runtime = Runtime.getRuntime();
int returnValue = 0;
@@ -2804,7 +2801,7 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
} // if
rowNum = sheet.getLastRowNum();
//System.out.println(" rowNum after Params " + rowNum);
- paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, "", xlsOut, request);
+ paintExcelData(wb, rowNum, rd, styles,rr, sheet, "", request);
if (Globals.getPrintFooterInDownload() ) {
rowNum = sheet.getLastRowNum();
rowNum += 2;
@@ -2825,330 +2822,269 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
}
} // saveAsExcelFile
- public void createExcelFileContent(Writer out, ReportData rd, ReportRuntime rr, HttpServletRequest request,
- HttpServletResponse response, String user_id, int type) throws IOException, RaptorException {
- // Adding utility for downloading Dashboard reports.
-
- HashMap styles = new HashMap();
- HttpSession session = request.getSession();
- ServletOutputStream sos = null;
- BufferedInputStream buf = null;
- HSSFWorkbook wb = null;
-// if(session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null)
-// ReportRuntime rrDashboard = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME);
- String formattedDate = "";
- String xlsFName = "";
- int returnValue = 0;
- boolean isDashboard = false;
- if ((session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null) && ( ((String) session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID)).equals(rr.getReportID())) ) {
- isDashboard = true;
- }
- if(isDashboard) {
- try {
- formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
- xlsFName = "dashboard"+formattedDate+user_id+".xls";
-
- FileInputStream xlsIn = null;
- POIFSFileSystem fileSystem = null;
- buf = null;
- FileOutputStream xlsOut = null;
+ public void createExcelFileContent(final Writer out, ReportData rd, final ReportRuntime rr,
+ final HttpServletRequest request, final HttpServletResponse response, final String user_id, final int type)
+ throws IOException, RaptorException {
+ // Adding utility for downloading Dashboard reports.
+
+ Map styles = new HashMap();
+ final HttpSession session = request.getSession();
+
+ HSSFWorkbook wb = null;
+
+ int returnValue = 0;
+ final boolean isDashboard = (session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID) != null) &&
+ (((String) session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID)).equals(rr.getReportID()));
+
+ if (isDashboard) {
+ final String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
+ final String xlsFName = "dashboard" + formattedDate + user_id + ".xls";
+ try {
+ FileInputStream xlsIn = null;
+
+ final Map reportRuntimeMap = (TreeMap) request.getSession()
+ .getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP);
+ final Map reportDataMap = (TreeMap) request.getSession()
+ .getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP);
+ if (reportRuntimeMap != null) {
+ final Set setReportRuntime = reportRuntimeMap.entrySet();
+ final Set setReportDataMap = reportDataMap.entrySet();
+ final Iterator iter2 = setReportDataMap.iterator();
+ int count = 0;
+
+ for (Iterator iter = setReportRuntime.iterator(); iter.hasNext(); ) {
+ count++;
+ try {
+ xlsIn =
+ new FileInputStream(FilenameUtils.normalize(AppUtils.getTempFolderPath() + xlsFName));
+ } catch (final FileNotFoundException e) {
+ System.out.println("File not found in the specified path.");
+ }
+ if (xlsIn != null) {
+ final POIFSFileSystem fileSystem = new POIFSFileSystem(xlsIn);
+ wb = new HSSFWorkbook(fileSystem);
+ } else {
+ wb = new HSSFWorkbook();
+ }
+
+ final Map.Entry entryData = (Entry) iter2.next();
+ final Map.Entry entry = (Entry) iter.next();
+ final ReportRuntime rrDashRep = (ReportRuntime) entry.getValue();
+ final ReportData rdDashRep = (ReportData) entryData.getValue();
+ int col = 0;
+ final String reportTitle = (nvl(rrDashRep.getReportTitle()).length() > 0 ? rrDashRep
+ .getReportTitle()
+ : rrDashRep.getReportName());
+ final String reportDescr = rrDashRep.getReportDescr();
+ if (!rdDashRep.reportRowHeaderCols.hasNext()) {
+ col = rdDashRep.getTotalColumnCount();
+ } else {
+ col = rdDashRep.getTotalColumnCount();
+ }
+ if (col == 0) {
+ col = 10;
+ }
+ int rowNum = 0;
+ final String formattedReportName =
+ new HtmlStripper().stripSpecialCharacters(rrDashRep.getReportName());
+
+ HSSFSheet sheet = null;
+ try {
+ sheet = wb.createSheet(formattedReportName);
+ sheet.getPrintSetup().setLandscape(true);
+ styles = loadStyles(rrDashRep, wb);
+ } catch (final IllegalArgumentException ex) {
+ try (final FileOutputStream xlsOut = new FileOutputStream(
+ FilenameUtils.normalize(AppUtils.getTempFolderPath() + xlsFName))) {
+ wb.write(xlsOut);
+ xlsOut.flush();
+ } catch (final IOException e) {
+ logger.warn("Failed to open FileOutputStream", e);
+ }
+ continue;
+ }
+
+ if (Globals.getPrintTitleInDownload() && reportTitle != null) {
+ paintExcelHeader(wb, rowNum, col, reportTitle, reportDescr, sheet);
+ rowNum = sheet.getLastRowNum();
+ } else {
+ rowNum = 0;
+ }
+ //getting ReportRuntime object from session
+ if (Globals.getPrintParamsInDownload()
+ && rrDashRep.getParamNameValuePairsforPDFExcel(request, 1) != null) {
+ if (count > 1 && Globals.showParamsInAllDashboardReports()) {
+ paintExcelParams(wb, rowNum, col,
+ rrDashRep.getParamNameValuePairsforPDFExcel(request, 1),
+ rrDashRep.getFormFieldComments(request), sheet, reportTitle, reportDescr);
+ } else if (count == 1) {
+ paintExcelParams(wb, rowNum, col,
+ rrDashRep.getParamNameValuePairsforPDFExcel(request, 1),
+ rrDashRep.getFormFieldComments(request), sheet, reportTitle, reportDescr);
+ }
+ } // if
+ rowNum = sheet.getLastRowNum();
+ final String sql_whole = rrDashRep.getWholeSQL();
+ returnValue = paintExcelData(wb, rowNum, rdDashRep, styles, rrDashRep, sheet, sql_whole,
+ request);
+ if (returnValue == 0) {
+ if (Globals.getPrintFooterInDownload()) {
+ rowNum = sheet.getLastRowNum();
+ rowNum += 2;
+ paintExcelFooter(wb, rowNum, col, sheet);
+ }
+ try (final FileOutputStream xlsOut = new FileOutputStream(
+ FilenameUtils.normalize(AppUtils.getTempFolderPath() + xlsFName))) {
+ wb.write(xlsOut);
+ //TODO Remove comment
+ xlsOut.flush();
+ } catch (final IOException e) {
+ logger.warn("Failed to open FileOutputStream", e);
+ }
+ wb = null;
+ }
+ }
+
+ response.reset();
+ response.setContentType("application/vnd.ms-excel");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + "dashboard" + formattedDate + user_id + ".xls");
+
+ xlsIn = new FileInputStream(AppUtils.getTempFolderPath() + xlsFName);
+
+ int readBytes = 0;
+ final byte[] bOut = new byte[4096];
+ try (final BufferedInputStream buf = new BufferedInputStream(xlsIn);
+ final ServletOutputStream sos = response.getOutputStream();) {
+ //read from the file; write to the ServletOutputStream
+ while ((readBytes = buf.read(bOut, 0, 4096)) > 0) {
+ buf.available();
+ sos.write(bOut, 0, readBytes);
+ }
+ } catch (final IOException e) {
+ logger.warn("Failed to open BufferedInputStream", e);
+ }
+ }
+ } catch (final IOException ex) {
+ logger.warn("Failed to open Stream", ex);
+ throw ex;
+ }
-
-/* try {
- xlsIn = new FileInputStream (AppUtils.getTempFolderPath()
- + xlsFName);
- }
- catch (FileNotFoundException e) {
- System.out.println ("File not found in the specified path.");
- e.printStackTrace ();
- }
- if(xlsIn != null) {
- fileSystem = new POIFSFileSystem (xlsIn);
- wb = new HSSFWorkbook(fileSystem);
- } else {
- xlsOut = new FileOutputStream(AppUtils.getTempFolderPath()
- + xlsFName);
- wb = new HSSFWorkbook();
+ final File f = new File(AppUtils.getTempFolderPath() + xlsFName);
+ if (f.exists()) {
+ f.delete();
}
-*/
-
- Map reportRuntimeMap = null;
- Map reportDataMap = null;
- //Map reportDisplayTypeMap = null;
- reportRuntimeMap = (TreeMap) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP);
- reportDataMap = (TreeMap) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP);
- //reportDisplayTypeMap = (TreeMap) request.getSession().getAttribute(AppConstants.SI);
- HSSFSheet sheet = null;
- if(reportRuntimeMap!=null) {
- //ServletOutputStream sos = response.getOutputStream();
- Set setReportRuntime = reportRuntimeMap.entrySet();
- Set setReportDataMap = reportDataMap.entrySet();
- Iterator iter2 = setReportDataMap.iterator();
- int count = 0;
- for(Iterator iter = setReportRuntime.iterator(); iter.hasNext(); ) {
- count++;
- try {
- xlsIn = new FileInputStream (FilenameUtils.normalize(AppUtils.getTempFolderPath()
- + xlsFName));
- }
- catch (FileNotFoundException e) {
- System.out.println ("File not found in the specified path.");
- //e.printStackTrace ();
- }
- if(xlsIn != null) {
- fileSystem = new POIFSFileSystem (xlsIn);
- wb = new HSSFWorkbook(fileSystem);
- xlsOut = new FileOutputStream(FilenameUtils.normalize(AppUtils.getTempFolderPath()
- + xlsFName));
- } else {
- xlsOut = new FileOutputStream(FilenameUtils.normalize(AppUtils.getTempFolderPath()
- + xlsFName));
- wb = new HSSFWorkbook();
- }
-
- Map.Entry entryData = (Entry) iter2.next();
- Map.Entry entry = (Entry) iter.next();
- //String rep_id = (String) entry.getKey();
- ReportRuntime rrDashRep = (ReportRuntime) entry.getValue();
- ReportData rdDashRep = (ReportData) entryData.getValue();
- //styles = loadStyles(rrDashRep, wb);
- int col = 0;
- String reportTitle = (nvl(rrDashRep.getReportTitle()).length()>0?rrDashRep.getReportTitle():rrDashRep.getReportName());
- String reportDescr = rrDashRep.getReportDescr();
- if (!rdDashRep.reportRowHeaderCols.hasNext())
- col = rdDashRep.getTotalColumnCount();
- else
- col = rdDashRep.getTotalColumnCount();
- if(col==0) col=10;
- int rowNum = 0;
- String formattedReportName = new HtmlStripper().stripSpecialCharacters(rrDashRep.getReportName());
-
- try {
- sheet = wb.createSheet(formattedReportName);
- sheet.getPrintSetup().setLandscape(true);
- styles = loadStyles(rrDashRep, wb);
- } catch (IllegalArgumentException ex) { wb.write(xlsOut);xlsOut.flush();xlsOut.close();continue;}
-
- if (Globals.getPrintTitleInDownload()&& reportTitle != null ) {
- paintExcelHeader(wb, rowNum, col, reportTitle, reportDescr, sheet);
- rowNum = sheet.getLastRowNum();
- } else
- rowNum = 0;
- //getting ReportRuntime object from session
- if (Globals.getPrintParamsInDownload() && rrDashRep.getParamNameValuePairsforPDFExcel(request, 1) != null) {
- if(count > 1 && Globals.showParamsInAllDashboardReports())
- paintExcelParams(wb,rowNum,col,rrDashRep.getParamNameValuePairsforPDFExcel(request, 1), rrDashRep.getFormFieldComments(request), sheet, reportTitle, reportDescr);
- else if (count == 1)
- paintExcelParams(wb,rowNum,col,rrDashRep.getParamNameValuePairsforPDFExcel(request, 1), rrDashRep.getFormFieldComments(request), sheet, reportTitle, reportDescr);
- } // if
- rowNum = sheet.getLastRowNum();
- String sql_whole = rrDashRep.getWholeSQL();
- returnValue = paintExcelData(wb, rowNum, col, rdDashRep, styles,rrDashRep, sheet, sql_whole, xlsOut, request);
- if( returnValue == 0 ) {
- if (Globals.getPrintFooterInDownload()) {
- rowNum = sheet.getLastRowNum();
- rowNum += 2;
- paintExcelFooter(wb, rowNum, col, sheet);
- }
- //wb.write(sos);
- wb.write(xlsOut);
- //TODO Remove comment
- xlsOut.flush();
- xlsOut.close();
- wb = null;
- } else {
- //xlsOut.flush();
- //xlsOut.close();
- //response.reset();
- //response.setContentType("application/vnd.ms-excel");
-// RequestDispatcher dispatcher = request.getRequestDispatcher("raptor.htm?r_action=report.message");
-// request.setAttribute("message", Globals.getUserDefinedMessageForMemoryLimitReached());
-// try {
-// dispatcher.forward(request, response);
-// } catch (ServletException ex) {}
- }
- }
-
- response.reset();
- response.setContentType("application/vnd.ms-excel");
- response.setHeader("Content-disposition", "attachment;filename="+"dashboard"+formattedDate+user_id+".xls");
- sos = response.getOutputStream();
- xlsIn = new FileInputStream (AppUtils.getTempFolderPath()
- + xlsFName);
- buf = new BufferedInputStream(xlsIn);
- int readBytes = 0;
- byte [] bOut = new byte [4096];
- //read from the file; write to the ServletOutputStream
- //while ((readBytes = buf.read()) != -1)
- while ((readBytes = buf.read (bOut, 0, 4096))> 0) {
- buf.available();
- sos.write (bOut, 0, readBytes);
- }
-
- //sos.write(readBytes);
- }
- } catch (IOException ex) { ex.printStackTrace(); throw ex;}
-
- finally {
- if (sos != null)
- sos.close();
- if (buf != null)
- buf.close();
- }
-
- File f = new File (AppUtils.getTempFolderPath()
- + xlsFName);
- if(f.exists()) f.delete();
-
- } else {
- wb = new HSSFWorkbook();
- // PrintWriter xlsOut = new PrintWriter(out).;
- setSheetName(Globals.getSheetName());
- //ServletOutputStream sos = response.getOutputStream();
- //PrintWriter outWriter = response.getWriter();
- if (rr != null)
- styles = loadStyles(rr, wb);
- /* int col = 0;
- if (!rd.reportRowHeaderCols.hasNext())
- col = rd.getTotalColumnCount();
- else
- col = rd.getTotalColumnCount() + 1;
- int rowNum = 0;
- String reportTitle = rr.getReportName();
- String reportDescr = rr.getReportDescr();
- // if (Globals.getPrintTitleInDownload() && reportTitle != null) {
- HSSFSheet sheet = wb.createSheet(getSheetName());
- System.out.println(" Title " + Globals.getPrintTitleInDownload());
-
- if (Globals.getPrintTitleInDownload()&& reportTitle != null ) {
- paintExcelHeader(wb, rowNum, col, reportTitle, reportDescr);
- rowNum = wb.getSheetAt(0).getLastRowNum();
- } else
- rowNum = 0;
- System.out.println(" Params " + Globals.getPrintParamsInDownload());
- if (Globals.getPrintParamsInDownload() && rr.getParamNameValuePairs() != null) {
- paintExcelParams(wb,rowNum,col,rr.getParamNameValuePairs());
- } // if
- paintExcelData(wb, rowNum, col, rd, styles);
- rowNum = wb.getSheetAt(0).getLastRowNum();
- */
- int col = 0;
- //System.out.println("Row Header Count " + rd.reportRowHeaderCols.getRowCount());
- //System.out.println("Total Count " + rd.getTotalColumnCount());
- String reportTitle = (nvl(rr.getReportTitle()).length()>0?rr.getReportTitle():rr.getReportName());
- String reportDescr = rr.getReportDescr();
-
- col = getColumnCountForDownloadFile(rr,rd);
- /*if (!rd.reportRowHeaderCols.hasNext())
- col = rd.getTotalColumnCount();
- else
- col = rd.getTotalColumnCount();
- */
- int rowNum = 0;
- HSSFSheet sheet = wb.createSheet(getSheetName());
- sheet.getPrintSetup().setLandscape(true);
-
- if (Globals.getPrintTitleInDownload()&& reportTitle != null ) {
- paintExcelHeader(wb, rowNum, col, reportTitle, reportDescr, sheet);
- rowNum = sheet.getLastRowNum();
- } else
- rowNum = 0;
- if (Globals.getPrintParamsInDownload() && rr.getParamNameValuePairsforPDFExcel(request, 1) != null) {
- ArrayList paramsList = rr.getParamNameValuePairsforPDFExcel(request, 1);
- if(paramsList.size()<=0) {
- paramsList = (ArrayList) request.getSession().getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
- }
-
- paintExcelParams(wb,rowNum,col,paramsList, rr.getFormFieldComments(request), sheet, reportTitle, reportDescr);
- } // if
- rowNum = sheet.getLastRowNum();
+ } else {
+ wb = new HSSFWorkbook();
+ setSheetName(Globals.getSheetName());
+ if (rr != null) {
+ styles = loadStyles(rr, wb);
+ }
- String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
- formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
- response.reset();
- response.setContentType("application/vnd.ms-excel");
- response.setHeader("Content-disposition", "attachment;filename="+formattedReportName+formattedDate+user_id+".xls");
- sos = response.getOutputStream();
-
- if(type == 3 && rr.getSemaphoreList()==null && !(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) ) { //type = 3 is whole
- //String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
- //String sql_whole = rr.getWholeSQL();
- String sql_whole = "";
- sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
-
- if(sql_whole==null) {
- if (!rr.getReportType().equals(AppConstants.RT_HIVE))
- sql_whole = rr.getWholeSQL();
- else
- sql_whole = rr.getReportSQL();
- }
-
- returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, sql_whole, sos, request);
- } else if(type == 2) {
- returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, "", sos, request);
- } else {
- //String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
- int downloadLimit = (rr.getMaxRowsInExcelDownload()>0)?rr.getMaxRowsInExcelDownload():Globals.getDownloadLimit();
- String action = request.getParameter(AppConstants.RI_ACTION);
- if(!(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) && !action.endsWith("session")) {
- rd = rr.loadReportData(-1, AppUtils.getUserID(request), downloadLimit,request, false /*download*/);
- }
- if(rr.getSemaphoreList()!=null) {
- if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) {
- returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, "", sos, request);
- } else {
- rd = rr.loadReportData(-1, AppUtils.getUserID(request), downloadLimit,request, true);
- returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, "", sos, request);
- }
- } else {
- String sql_whole = "";
- sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
-
- if(sql_whole==null) {
- if (!rr.getReportType().equals(AppConstants.RT_HIVE))
- sql_whole = rr.getWholeSQL();
- else
- sql_whole = rr.getReportSQL();
- }
+ final String reportTitle = (nvl(rr.getReportTitle()).length() > 0 ? rr.getReportTitle()
+ : rr.getReportName());
+ final String reportDescr = rr.getReportDescr();
- returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, sql_whole, sos, request);
- }
- }
- if( returnValue == 0 ) {
- if (Globals.getPrintFooterInDownload()) {
- rowNum = sheet.getLastRowNum();
- rowNum += 2;
- paintExcelFooter(wb, rowNum, col, sheet);
- }
- //Alternatively:
- wb.setPrintArea(
- 0, //sheet index
- 0, //start column
- col, //end column
- 0, //start row
- rowNum //end row
- );
- //TODO Remove comment
- wb.write(sos);
- sos.flush();
- sos.close();
- wb = null;
- } else {
- //sos.flush();
- //sos.close();
-/* response.reset();
-
- RequestDispatcher dispatcher = request.getRequestDispatcher("/raptor.htm?action=raptor&r_action=report.message");
- request.setAttribute("message", Globals.getUserDefinedMessageForMemoryLimitReached());
- try {
- dispatcher.forward(request, response);
- } catch (ServletException ex) {}
-*/
- }
- }
- }
+ final int col = getColumnCountForDownloadFile(rr, rd);
+ int rowNum = 0;
+ final HSSFSheet sheet = wb.createSheet(getSheetName());
+ sheet.getPrintSetup().setLandscape(true);
+
+ if (Globals.getPrintTitleInDownload() && reportTitle != null) {
+ paintExcelHeader(wb, rowNum, col, reportTitle, reportDescr, sheet);
+ rowNum = sheet.getLastRowNum();
+ } else {
+ rowNum = 0;
+ }
+ if (Globals.getPrintParamsInDownload() && rr.getParamNameValuePairsforPDFExcel(request, 1) != null) {
+ List paramsList = rr.getParamNameValuePairsforPDFExcel(request, 1);
+ if (paramsList.size() <= 0) {
+ paramsList = (ArrayList) request.getSession().getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
+ }
+
+ paintExcelParams(wb, rowNum, col, paramsList, rr.getFormFieldComments(request), sheet, reportTitle,
+ reportDescr);
+ } // if
+ rowNum = sheet.getLastRowNum();
+ final String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
+ final String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
+ response.reset();
+ response.setContentType("application/vnd.ms-excel");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + formattedReportName + formattedDate + user_id + ".xls");
+
+ if (type == 3 && rr.getSemaphoreList() == null && !(rr.getReportType()
+ .equals(AppConstants.RT_CROSSTAB))) { //type = 3 is whole
+ String sql_whole = "";
+ sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
+
+ if (sql_whole == null) {
+ if (!rr.getReportType().equals(AppConstants.RT_HIVE)) {
+ sql_whole = rr.getWholeSQL();
+ } else {
+ sql_whole = rr.getReportSQL();
+ }
+ }
+
+ returnValue = paintExcelData(wb, rowNum, rd, styles, rr, sheet, sql_whole, request);
+ } else if (type == 2) {
+ returnValue = paintExcelData(wb, rowNum, rd, styles, rr, sheet, "", request);
+ } else {
+ int downloadLimit =
+ (rr.getMaxRowsInExcelDownload() > 0) ? rr.getMaxRowsInExcelDownload() : Globals.getDownloadLimit();
+ String action = request.getParameter(AppConstants.RI_ACTION);
+ if (!(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) && !action.endsWith("session")) {
+ rd = rr.loadReportData(-1, AppUtils.getUserID(request), downloadLimit, request, false /*download*/);
+ }
+ if (rr.getSemaphoreList() != null) {
+ if (rr.getReportType().equals(AppConstants.RT_CROSSTAB)) {
+ returnValue = paintExcelData(wb, rowNum, rd, styles, rr, sheet, "", request);
+ } else {
+ rd = rr.loadReportData(-1, AppUtils.getUserID(request), downloadLimit, request, true);
+ returnValue = paintExcelData(wb, rowNum, rd, styles, rr, sheet, "", request);
+ }
+ } else {
+ String sql_whole = "";
+ sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
+
+ if (sql_whole == null) {
+ if (!rr.getReportType().equals(AppConstants.RT_HIVE)) {
+ sql_whole = rr.getWholeSQL();
+ } else {
+ sql_whole = rr.getReportSQL();
+ }
+ }
+
+ returnValue = paintExcelData(wb, rowNum, rd, styles, rr, sheet, sql_whole, request);
+ }
+ }
+ if (returnValue == 0) {
+ if (Globals.getPrintFooterInDownload()) {
+ rowNum = sheet.getLastRowNum();
+ rowNum += 2;
+ paintExcelFooter(wb, rowNum, col, sheet);
+ }
+ //Alternatively:
+ wb.setPrintArea(
+ 0, //sheet index
+ 0, //start column
+ col, //end column
+ 0, //start row
+ rowNum //end row
+ );
+ //TODO Remove comment
+ try (final ServletOutputStream sos = response.getOutputStream();) {
+ wb.write(sos);
+ sos.flush();
+ } catch (final IOException e) {
+ logger.warn("Failed to get OutputStream", e);
+ }
+ wb = null;
+ }
+ }
+ }
public void createFlatFileContent(Writer out, ReportData rd, ReportRuntime rr,
HttpServletRequest request, HttpServletResponse response, String user_id)
@@ -3606,474 +3542,355 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
}
}
-
- public void createCSVFileContent(Writer out, ReportData rd,
- ReportRuntime rr, HttpServletRequest request, HttpServletResponse response)
- throws RaptorException {
- //ArrayList reportParamNameValues = rr.getParamNameValuePairs();
- //String reportTitle = rr.getReportName();
- //String reportDescr = rr.getReportDescr();
- PrintWriter csvOut = new PrintWriter(out);
- String fileName = "";
- String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
- String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
- String fName = formattedReportName+formattedDate+AppUtils.getUserID(request);
- boolean raw = AppUtils.getRequestFlag(request, "raw");
- String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
-
- String csvFName = fName+".csv";
- String zipFName = fName+".zip";
- if(true) {
- try {
- fileName = AppUtils.getTempFolderPath()+""+csvFName;
- csvOut = new PrintWriter(new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(fileName), "UTF-8")), false);
- } catch (FileNotFoundException fex) {
- fex.printStackTrace();
- }
- catch (UnsupportedEncodingException fex1) {
- fex1.printStackTrace();
- }
- }
- HtmlStripper strip = new HtmlStripper();
- //OracleConnection conn = null;
- //OracleStatement st = null;
- //Connection conO = null;
- //Statement stO = null;
- ResultSetMetaData rsmd = null;
- ColumnHeaderRow chr = null;
- int mb = 1024*1024;
- Runtime runtime = Runtime.getRuntime();
- String valueName = "";
- if(!raw) {
- String reportTitle = (nvl(rr.getReportTitle()).length()>0?rr.getReportTitle():rr.getReportName());
- csvOut.println();
- csvOut.print("\"" + reportTitle + "\",");
- csvOut.println();
-
- if(Globals.disclaimerPositionedTopInCSVExcel()) {
- if(Globals.getShowDisclaimer()) {
- csvOut.println();
- csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
- csvOut.println();
- csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
- csvOut.println();
- csvOut.println();
- }
- }
- }
- if (Globals.getPrintParamsInCSVDownload() && !raw) {
- ArrayList paramsList = rr.getParamNameValuePairsforPDFExcel(request, 1);
- if(paramsList.size()<=0) {
- paramsList = (ArrayList) request.getSession().getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
+ public void createCSVFileContent(final Writer out, final ReportData rd, final ReportRuntime rr,
+ final HttpServletRequest request, final HttpServletResponse response) throws RaptorException {
+
+ final String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName());
+ final String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
+ final String fName = formattedReportName + formattedDate + AppUtils.getUserID(request);
+ final boolean raw = AppUtils.getRequestFlag(request, "raw");
+ String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
+
+ final String csvFName = fName + ".csv";
+ final String zipFName = fName + ".zip";
+
+ final String fileName = AppUtils.getTempFolderPath() + "" + csvFName;
+ final Runtime runtime = Runtime.getRuntime();
+ final int mb = 1024 * 1024;
+
+ try (final PrintWriter csvOut =
+ new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8")),
+ false);) {
+ final HtmlStripper strip = new HtmlStripper();
+ ColumnHeaderRow chr = null;
+ if (!raw) {
+ final String reportTitle = (nvl(rr.getReportTitle()).length() > 0 ? rr.getReportTitle()
+ : rr.getReportName());
+ csvOut.println();
+ csvOut.print("\"" + reportTitle + "\",");
+ csvOut.println();
+
+ if (Globals.disclaimerPositionedTopInCSVExcel()) {
+ if (Globals.getShowDisclaimer()) {
+ csvOut.println();
+ csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
+ csvOut.println();
+ csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
+ csvOut.println();
+ csvOut.println();
+ }
+ }
+ }
+ if (Globals.getPrintParamsInCSVDownload() && !raw) {
+ List paramsList = rr.getParamNameValuePairsforPDFExcel(request, 1);
+ if (paramsList.size() <= 0) {
+ paramsList = (ArrayList) request.getSession().getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
+ }
+ int paramSeq = 0;
+ for (final Iterator iter = paramsList.iterator(); iter.hasNext(); ) {
+ final IdNameValue value = (IdNameValue) iter.next();
+ if (nvl(value.getId()).trim().length() > 0 && (!"BLANK".equals(nvl(value.getId()).trim()))) {
+ paramSeq += 1;
+ if (paramSeq <= 1) {
+ csvOut.print("\"" + "Run-time Parameters" + "\"");
+ csvOut.println();
+ }
+ csvOut.print("\"" + value.getId() + ":" + "\",");
+ final String valueName = ESAPI.encoder().canonicalize(nvl(value.getName()));
+ if (valueName.indexOf("~") != -1 && valueName.startsWith("(")) {
+ csvOut.print("\"'" + valueName.replaceAll("~", ",") + "'\",");
+ } else {
+ if (valueName.startsWith("(") && valueName.endsWith(")")) {
+ csvOut.print(
+ "\"" + valueName.replaceAll("~", ",").substring(1, valueName.length() - 1) + "\",");
+ } else {
+ csvOut.print("\"" + valueName.replaceAll("~", ",") + "\",");
+ }
+ }
+ csvOut.println();
+ }
+ } //for
+ csvOut.println();
+ csvOut.println();
}
- int paramSeq = 0;
- for (Iterator iter = paramsList.iterator(); iter.hasNext();) {
- IdNameValue value = (IdNameValue) iter.next();
- //System.out.println("\"" + value.getId() + " = " + value.getName() + "\"");
- if(nvl(value.getId()).trim().length()>0 && (!nvl(value.getId()).trim().equals("BLANK"))) {
- paramSeq += 1;
- if(paramSeq <= 1) {
- csvOut.print("\"" + "Run-time Parameters" + "\"");
- csvOut.println();
- //strBuf.append("Run-time Parameters\n");
- }
- csvOut.print("\"" + value.getId() +":" + "\",");
- valueName = ESAPI.encoder().canonicalize(nvl(value.getName()));
- if(valueName.indexOf("~")!= -1 && valueName.startsWith("(")) {
- csvOut.print("\"'" + valueName.replaceAll("~",",")+ "'\",");
- } else {
- if(valueName.startsWith("(") && valueName.endsWith(")")) {
- csvOut.print("\"" + valueName.replaceAll("~",",").substring(1, valueName.length()-1)+ "\",");
- } else
- csvOut.print("\"" + valueName.replaceAll("~",",")+ "\",");
- }
- csvOut.println();
-
- //strBuf.append(value.getId()+": "+ value.getName()+"\n");
- }
- } //for
- csvOut.println();
- csvOut.println();
- }
-
- System.out.println("##### Heap utilization statistics [MB] #####");
- System.out.println("Used Memory:"
- + (runtime.maxMemory() - runtime.freeMemory()) / mb);
- System.out.println("Free Memory:"
- + runtime.freeMemory() / mb);
- System.out.println("Total Memory:" + runtime.totalMemory() / mb);
- System.out.println("Max Memory:" + runtime.maxMemory() / mb);
-
- sql_whole = "";
- sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
-
- if(sql_whole==null) {
- if (!rr.getReportType().equals(AppConstants.RT_HIVE))
- sql_whole = rr.getWholeSQL();
- else
- sql_whole = rr.getReportSQL();
- }
-
-
- if(nvl(sql_whole).length()>0) {
- try(Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
- Statement st = conn.createStatement();
- ResultSet rs = st.executeQuery(sql_whole)) {
-
- //conn.setDefaultRowPrefetch(1000);
- //st.setFetchDirection(ResultSet.TYPE_FORWARD_ONLY);
- //st.setFetchSize(1000);
- System.out.println("************* Map Whole SQL *************");
- System.out.println(sql_whole);
- System.out.println("*****************************************");
- //st.setFetchSize(1000);
- rsmd = rs.getMetaData();
- int numberOfColumns = rsmd.getColumnCount();
- HashMap colHash = new HashMap();
- String title = "";
-
- if(rd!=null) {
-
- /*if(rd.reportTotalRowHeaderCols!=null) {
- csvOut.print("\"" + "#" + "\",");
- }*/
-
- for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) {
- chr = rd.reportColumnHeaderRows.getNext();
- for (chr.resetNext(); chr.hasNext();) {
- ColumnHeader ch = chr.getNext();
- title = ch.getColumnTitle();
- title = Utils.replaceInString(title,"_nl_", " \n");
- if(ch.isVisible() && nvl(title).length()>0) {
- csvOut.print("\"" + title + "\",");
- for (int i = 1; i < ch.getColSpan(); i++)
- csvOut.print(",");
- }
- } // for
-
- csvOut.println();
- } // for
- int rowCount = 0;
- while(rs.next()) {
-/* if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) {
- csvOut.print(Globals.getUserDefinedMessageForMemoryLimitReached() + " " + rowCount +"records out of " + rr.getReportDataSize() + " were downloaded to CSV.");
- break;
- }
-*/ rowCount++;
- //if(!raw) {
- colHash = new HashMap();
- for (int i = 1; i <= numberOfColumns; i++) {
- colHash.put(rsmd.getColumnLabel(i).toUpperCase(), rs.getString(i));
- }
- /*if(rd.reportDataTotalRow!=null) {
- csvOut.print("\"" + rowCount + "\",");
- }*/
- for (chr.resetNext(); chr.hasNext();) {
- ColumnHeader ch = chr.getNext();
- title = ch.getColumnTitle();
- title = Utils.replaceInString(title,"_nl_", " \n");
-
- if(ch.isVisible() && nvl(title).length()>0) {
- csvOut.print("\"" + strip.stripCSVHtml(nvl((String)colHash.get(ch.getColId().toUpperCase()))) + "\",");
- }
-
- }
- csvOut.println();
- /*} else {
- for (int i = 1; i <= numberOfColumns; i++) {
- csvOut.print("\"" + strip.stripCSVHtml( rs.getString(i)) + "\",");
- }
- csvOut.println();
- }*/
-
- }
-
- if(rd.reportDataTotalRow!=null) {
- for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();) {
- DataRow dr = rd.reportDataTotalRow.getNext();
- csvOut.print("\"" + "Total" + "\",");
- dr.resetNext();dr.getNext();
- for (; dr.hasNext();) {
- DataValue dv = dr.getNext();
- if(dv.isVisible()) {
- csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
- }
- } // for
-
- csvOut.println();
- }
- }
-
- if(rowCount == 0) {
- csvOut.print("\"No Data Found \"");
- }
- } else {
- csvOut.print("\"No Data Found \"");
- }
-
- } catch (SQLException ex) {
- throw new RaptorException(ex);
- } catch (ReportSQLException ex) {
- throw new RaptorException(ex);
- } catch (Exception ex) {
- throw new RaptorException (ex);
- }
-
- if(!raw) {
- if(!Globals.disclaimerPositionedTopInCSVExcel()) {
- if(Globals.getShowDisclaimer()) {
- csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
- csvOut.println();
- csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
- csvOut.println();
- }
- }
- }
-
- // csvOut.flush();
- } else {
- boolean firstPass = true;
- if(rd!=null) {
- if(rd.reportTotalRowHeaderCols!=null) {
- csvOut.print("\"" + "#" + "\",");
- }
- for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) {
- chr = rd.reportColumnHeaderRows.getNext();
- for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) {
- RowHeaderCol rhc = rd.reportRowHeaderCols.getNext();
+ System.out.println("##### Heap utilization statistics [MB] #####");
+ System.out.println("Used Memory:" + (runtime.maxMemory() - runtime.freeMemory()) / mb);
+ System.out.println("Free Memory:" + runtime.freeMemory() / mb);
+ System.out.println("Total Memory:" + runtime.totalMemory() / mb);
+ System.out.println("Max Memory:" + runtime.maxMemory() / mb);
- if (firstPass)
- csvOut.print("\"" + rhc.getColumnTitle() + "\"");
- csvOut.print(",");
- } // for
- firstPass = false;
+ sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE);
- for (chr.resetNext(); chr.hasNext();) {
- ColumnHeader ch = chr.getNext();
- if(ch.isVisible()) {
- csvOut.print("\"" + ch.getColumnTitle() + "\",");
- for (int i = 1; i < ch.getColSpan(); i++)
- csvOut.print(",");
- }
- } // for
+ if (sql_whole == null) {
+ if (!AppConstants.RT_HIVE.equals(rr.getReportType())) {
+ sql_whole = rr.getWholeSQL();
+ } else {
+ sql_whole = rr.getReportSQL();
+ }
+ }
- csvOut.println();
- } // for
+ if (nvl(sql_whole).length() > 0) {
+ try (final Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
+ final Statement st = conn.createStatement();
+ final ResultSet rs = st.executeQuery(sql_whole)) {
+
+ System.out.println("************* Map Whole SQL *************");
+ System.out.println(sql_whole);
+ System.out.println("*****************************************");
+ final ResultSetMetaData rsmd = rs.getMetaData();
+ int numberOfColumns = rsmd.getColumnCount();
+ String title = "";
+
+ if (rd != null) {
+ for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext(); ) {
+ chr = rd.reportColumnHeaderRows.getNext();
+ for (chr.resetNext(); chr.hasNext(); ) {
+ ColumnHeader ch = chr.getNext();
+ title = ch.getColumnTitle();
+ title = Utils.replaceInString(title, "_nl_", " \n");
+ if (ch.isVisible() && nvl(title).length() > 0) {
+ csvOut.print("\"" + title + "\",");
+ for (int i = 1; i < ch.getColSpan(); i++) {
+ csvOut.print(",");
+ }
+ }
+ } // for
+
+ csvOut.println();
+ } // for
+ int rowCount = 0;
+ while (rs.next()) {
+ rowCount++;
+ final Map colHash = new HashMap();
+ for (int i = 1; i <= numberOfColumns; i++) {
+ colHash.put(rsmd.getColumnLabel(i).toUpperCase(), rs.getString(i));
+ }
+ for (chr.resetNext(); chr.hasNext(); ) {
+ final ColumnHeader ch = chr.getNext();
+ title = ch.getColumnTitle();
+ title = Utils.replaceInString(title, "_nl_", " \n");
+
+ if (ch.isVisible() && nvl(title).length() > 0) {
+ csvOut.print(
+ "\"" + strip
+ .stripCSVHtml(nvl((String) colHash.get(ch.getColId().toUpperCase())))
+ + "\",");
+ }
+
+ }
+ csvOut.println();
+ }
+
+ if (rd.reportDataTotalRow != null) {
+ for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext(); ) {
+ final DataRow dr = rd.reportDataTotalRow.getNext();
+ csvOut.print("\"" + "Total" + "\",");
+ dr.resetNext();
+ dr.getNext();
+ for (; dr.hasNext(); ) {
+ final DataValue dv = dr.getNext();
+ if (dv.isVisible()) {
+ csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
+ }
+ } // for
+
+ csvOut.println();
+ }
+ }
+
+ if (rowCount == 0) {
+ csvOut.print("\"No Data Found \"");
+ }
+ } else {
+ csvOut.print("\"No Data Found \"");
+ }
+
+ } catch (final SQLException ex) {
+ throw new RaptorException(ex);
+ } catch (final ReportSQLException ex) {
+ throw new RaptorException(ex);
+ } catch (final Exception ex) {
+ throw new RaptorException(ex);
+ }
+
+ if (!raw) {
+ if (!Globals.disclaimerPositionedTopInCSVExcel()) {
+ if (Globals.getShowDisclaimer()) {
+ csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
+ csvOut.println();
+ csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
+ csvOut.println();
+ }
+ }
+ }
+ } else {
+ boolean firstPass = true;
+ if (rd != null) {
+ if (rd.reportTotalRowHeaderCols != null) {
+ csvOut.print("\"" + "#" + "\",");
+ }
+
+ for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext(); ) {
+ chr = rd.reportColumnHeaderRows.getNext();
+ for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext(); ) {
+ RowHeaderCol rhc = rd.reportRowHeaderCols.getNext();
+
+ if (firstPass) {
+ csvOut.print("\"" + rhc.getColumnTitle() + "\"");
+ }
+ csvOut.print(",");
+ } // for
+ firstPass = false;
+
+ for (chr.resetNext(); chr.hasNext(); ) {
+ ColumnHeader ch = chr.getNext();
+ if (ch.isVisible()) {
+ csvOut.print("\"" + ch.getColumnTitle() + "\",");
+ for (int i = 1; i < ch.getColSpan(); i++) {
+ csvOut.print(",");
+ }
+ }
+ } // for
+
+ csvOut.println();
+ } // for
+
+ firstPass = true;
+ int rowCount = 0;
+ for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext(); ) {
+ if (rd.reportDataTotalRow != null) {
+ rowCount++;
+ csvOut.print("\"" + rowCount + "\",");
+ }
+
+ final DataRow dr = rd.reportDataRows.getNext();
+
+ for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext(); ) {
+ final RowHeaderCol rhc = rd.reportRowHeaderCols.getNext();
+ if (firstPass) {
+ rhc.resetNext();
+ }
+ final RowHeader rh = rhc.getNext();
+
+ csvOut.print("\"" + strip.stripCSVHtml(rh.getRowTitle()) + "\",");
+ } // for
+ firstPass = false;
+
+ for (dr.resetNext(); dr.hasNext(); ) {
+ DataValue dv = dr.getNext();
+ if (dv.isVisible()) {
+ csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
+ }
+ } // for
+
+ csvOut.println();
+ } // for
+ if (rd.reportDataTotalRow != null) {
+ for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext(); ) {
+ DataRow dr = rd.reportDataTotalRow.getNext();
+ csvOut.print("\"" + "Total" + "\",");
+ firstPass = false;
+
+ for (dr.resetNext(); dr.hasNext(); ) {
+ DataValue dv = dr.getNext();
+ if (dv.isVisible()) {
+ csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
+ }
+ } // for
+
+ csvOut.println();
+ }
+ }
+
+ if (!raw) {
+ if (!Globals.disclaimerPositionedTopInCSVExcel()) {
+ if (Globals.getShowDisclaimer()) {
+ csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
+ csvOut.println();
+ csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
+ csvOut.println();
+ }
+ }
+ }
+ } else {
+ csvOut.print("\"No Data Found \"");
+ }
+ }
+ csvOut.flush();
+ } catch (final FileNotFoundException fex) {
+ logger.warn("Failed to open/read/write file", fex);
+ } catch (final UnsupportedEncodingException fex1) {
+ logger.warn("Failed to open/read/write file", fex1);
+ }
- firstPass = true;
- int rowCount = 0;
- for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) {
- if(rd.reportDataTotalRow!=null) {
- rowCount++;
- csvOut.print("\"" + rowCount + "\",");
- }
-
- DataRow dr = rd.reportDataRows.getNext();
+ if (!raw) {
+ try (final ZipOutputStream zos =
+ new ZipOutputStream(new FileOutputStream(AppUtils.getTempFolderPath() + "" + zipFName));
+ final FileInputStream fis = new FileInputStream(fileName)) {
- for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) {
- RowHeaderCol rhc = rd.reportRowHeaderCols.getNext();
- if (firstPass)
- rhc.resetNext();
- RowHeader rh = rhc.getNext();
+ int size = 0;
+ final byte[] buffer = new byte[1024];
- csvOut.print("\"" + strip.stripCSVHtml(rh.getRowTitle()) + "\",");
- } // for
- firstPass = false;
+ final ZipEntry entry = new ZipEntry(csvFName);
+ zos.putNextEntry(entry);
- for (dr.resetNext(); dr.hasNext();) {
- DataValue dv = dr.getNext();
- if(dv.isVisible())
- csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
- } // for
+ // read data to the end of the source file and write it to the zip
+ // output stream.
+ while ((size = fis.read(buffer, 0, buffer.length)) > 0) {
+ zos.write(buffer, 0, size);
+ }
+ zos.closeEntry();
- csvOut.println();
- } // for
- if(rd.reportDataTotalRow!=null) {
- for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();) {
- DataRow dr = rd.reportDataTotalRow.getNext();
- csvOut.print("\"" + "Total" + "\",");
- firstPass = false;
-
- for (dr.resetNext(); dr.hasNext();) {
- DataValue dv = dr.getNext();
- if(dv.isVisible())
- csvOut.print("\"" + strip.stripCSVHtml(dv.getDisplayValue()) + "\",");
- } // for
-
- csvOut.println();
- }
- }
-
- if(!raw) {
- if(!Globals.disclaimerPositionedTopInCSVExcel()) {
- if(Globals.getShowDisclaimer()) {
- csvOut.print("\"" + Globals.getFooterFirstLine() + "\",");
- csvOut.println();
- csvOut.print("\"" + Globals.getFooterSecondLine() + "\",");
- csvOut.println();
- }
- }
- }
+ } catch (final Exception e) {
+ logger.warn("Failed to open/read/write file", e);
+ }
+ }
- //csvOut.flush();
+ response.reset();
+ final File file;
+
+ if (!raw) {
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-disposition", "attachment;filename=" + fName + ".zip");
+ file = new File(AppUtils.getTempFolderPath() + "" + fName + ".zip");
} else {
- csvOut.print("\"No Data Found \"");
+ response.setContentType("application/csv");
+ response.setHeader("Content-disposition", "attachment;filename=" + fName + ".csv");
+ file = new File(AppUtils.getTempFolderPath() + "" + fName + ".csv");
}
- }
- csvOut.flush();
- csvOut.close();
-
-/*
- if (Globals.getPrintTitleInDownload() && reportTitle != null) {
- csvOut.println();
- csvOut.println("\"" + reportTitle + "\"");
- csvOut.println();
- if (Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0) {
- csvOut.println("\"" + reportDescr + "\"");
- csvOut.println();
- }
- } // if
- if (Globals.getPrintParamsInDownload() && reportParamNameValues != null) {
- csvOut.println();
- for (Iterator iter = reportParamNameValues.iterator(); iter.hasNext();) {
- IdNameValue value = (IdNameValue) iter.next();
- csvOut.println("\"" + value.getId() + " = " + value.getName() + "\"");
- } // for
- csvOut.println();
- } // if
-*/
- if(!raw) {
- try(ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(AppUtils.getTempFolderPath()+""+zipFName));
- FileInputStream fis = new FileInputStream(fileName)) {
-
- //final int BUFFER = 2048;
-
- //fis.read(buf,0,buf.length);
- int size = 0;
- byte[] buffer = new byte[1024];
-
- //CRC32 crc = new CRC32();
- //PrintStream fos = new PrintStream(new WriterOutputStream(out));
- //BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);
- //ZipOutputStream s = new ZipOutputStream(dest);
-
- //s.setLevel(6);
-
- ZipEntry entry = new ZipEntry(csvFName);
- //crc.reset();
- zos.putNextEntry(entry);
-
- // read data to the end of the source file and write it to the zip
- // output stream.
- while ((size = fis.read(buffer, 0, buffer.length)) > 0) {
- zos.write(buffer, 0, size);
- }
-
- zos.closeEntry();
- fis.close();
+ try (final ServletOutputStream sos = response.getOutputStream();
+ final FileInputStream fileIn = new FileInputStream(file);
+ final BufferedInputStream buf = new BufferedInputStream(fileIn);) {
- // Finish zip process
- zos.close();
+ final byte[] bOut = new byte[4096];
+ //read from the file; write to the ServletOutputStream
+ int readBytes = 0;
+ while ((readBytes = buf.read(bOut, 0, 4096)) > 0) {
+ buf.available();
+ sos.write(bOut, 0, readBytes);
+ }
- } catch(Exception e) {
- e.printStackTrace();
- }
+ } catch (final IOException ex) {
+ logger.warn("Failed to open/read/write file", ex);
+ } catch (final Exception e) {
+ logger.warn("Failed to open/read/write file", e);
}
- response.reset();
- java.io.File file = null;
-
- if(!raw) {
- response.setContentType("application/octet-stream");
- response.setHeader("Content-disposition","attachment;filename="+fName+".zip");
- file = new java.io.File(AppUtils.getTempFolderPath()+""+fName+".zip");
- } else {
- response.setContentType("application/csv");
- response.setHeader("Content-disposition","attachment;filename="+fName+".csv");
- file = new java.io.File(AppUtils.getTempFolderPath()+""+fName+".csv");
- }
-
-
- int c;
- try(ServletOutputStream sos = response.getOutputStream();
- FileInputStream fileIn = new FileInputStream(file);
- BufferedInputStream buf = new BufferedInputStream(fileIn);) {
-
- byte [] bOut = new byte [4096];
- //read from the file; write to the ServletOutputStream
- //while ((readBytes = buf.read()) != -1)
- int readBytes = 0;
- while ((readBytes = buf.read (bOut, 0, 4096))> 0) {
- buf.available();
- sos.write (bOut, 0, readBytes);
- }
+ final File f = new File(AppUtils.getTempFolderPath() + fName);
+ if (f.exists()) {
+ f.delete();
+ }
- } catch (IOException ex) {
- ex.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- File f = new File (AppUtils.getTempFolderPath()
- + fName);
- if(f.exists()) f.delete();
- System.out.println("##### Heap utilization statistics [MB] #####");
- System.out.println("Used Memory:"
- + (runtime.maxMemory() - runtime.freeMemory()) / mb);
- logger.debug(EELFLoggerDelegate.debugLogger, ("Free Memory:"
- + runtime.freeMemory() / mb));
+ System.out.println("##### Heap utilization statistics [MB] #####");
+ System.out.println("Used Memory:" + (runtime.maxMemory() - runtime.freeMemory()) / mb);
+ logger.debug(EELFLoggerDelegate.debugLogger, ("Free Memory:" + runtime.freeMemory() / mb));
logger.debug(EELFLoggerDelegate.debugLogger, ("Total Memory:" + runtime.totalMemory() / mb));
logger.debug(EELFLoggerDelegate.debugLogger, ("Max Memory:" + runtime.maxMemory() / mb));
-
- } // createCSVFileContent
-/* public String saveCSVPageFile(HttpServletRequest request, ReportData rd,
- ArrayList reportParamNameValues, String reportTitle, String reportDescr) {
- try {
- String formattedReportName = new HtmlStripper().stripSpecialCharacters(reportTitle);
- String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date());
-
- String csvFName = formattedReportName+formattedDate+AppUtils.getUserID(request)+".csv";
- //String csvFName = AppUtils.generateFileName(request, AppConstants.FT_CSV);
-
- BufferedWriter csvOut = new BufferedWriter(new FileWriter(AppUtils
- .getTempFolderPath()
- + csvFName));
- createCSVFileContent(csvOut, rd, reportParamNameValues, reportTitle, reportDescr);
- csvOut.close();
-
- return csvFName;
- } catch (Exception e) {
- (new ErrorHandler()).processError(request, "Exception saving data to CSV file: "
- + e.getMessage());
- return null;
- }
- } // saveCSVPageFile
-*/
-
-// public String saveAsFlatFile(HttpServletRequest request, ReportData rd,
-// ReportRuntime rr, String reportTitle, String reportDescr) {
-// try {
-// String csvFName = AppUtils.generateFileName(request, AppConstants.FT_TXT);
-//
-// BufferedWriter txtOut = new BufferedWriter(new FileWriter(AppUtils
-// .getTempFolderPath()
-// + csvFName));
-// createFlatFileContent(txtOut, rd, rr, reportTitle, reportDescr);
-// txtOut.close();
-//
-// return csvFName;
-// } catch (Exception e) {
-// (new ErrorHandler()).processError(request, "Exception saving data to CSV file: "
-// + e.getMessage());
-// return null;
-// }
-// } // saveCSVPageFile
+ } // createCSVFileContent
public String saveXMLFile(HttpServletRequest request, String reportName, String reportXML) {
try {
@@ -4384,7 +4201,6 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
}
return columnCount;
}
-
private Map<String, XSSFCellStyle> loadXSSFStyles(ReportRuntime rr, XSSFWorkbook wb, Map<String, XSSFCellStyle> loadedStyles) {
XSSFCellStyle styleDefault = wb.createCellStyle();
@@ -6563,37 +6379,3 @@ public class ReportHandler extends org.onap.portalsdk.analytics.RaptorObject {
}
} // ReportHandler
-
-
-/**
- * Adapter for a Writer to behave like an OutputStream.
- *
- * Bytes are converted to chars using the platform default encoding.
- * If this encoding is not a single-byte encoding, some data may be lost.
- */
- class WriterOutputStream extends OutputStream {
-
- private final Writer writer;
-
- public WriterOutputStream(Writer writer) {
- this.writer = writer;
- }
-
- public void write(int b) throws IOException {
- // It's tempting to use writer.write((char) b), but that may get the encoding wrong
- // This is inefficient, but it works
- write(new byte[] {(byte) b}, 0, 1);
- }
-
- public void write(byte b[], int off, int len) throws IOException {
- writer.write(new String(b, off, len));
- }
-
- public void flush() throws IOException {
- writer.flush();
- }
-
- public void close() throws IOException {
- writer.close();
- }
-}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java
index 612ed960..3a50a99c 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java
@@ -55,6 +55,24 @@
*/
package org.onap.portalsdk.analytics.model.pdf;
+import com.lowagie.text.BadElementException;
+import com.lowagie.text.Chunk;
+import com.lowagie.text.Document;
+import com.lowagie.text.DocumentException;
+import com.lowagie.text.Element;
+import com.lowagie.text.ElementTags;
+import com.lowagie.text.Font;
+import com.lowagie.text.FontFactory;
+import com.lowagie.text.Image;
+import com.lowagie.text.PageSize;
+import com.lowagie.text.Paragraph;
+import com.lowagie.text.Phrase;
+import com.lowagie.text.Rectangle;
+import com.lowagie.text.html.simpleparser.HTMLWorker;
+import com.lowagie.text.html.simpleparser.StyleSheet;
+import com.lowagie.text.pdf.PdfPCell;
+import com.lowagie.text.pdf.PdfPTable;
+import com.lowagie.text.pdf.PdfWriter;
import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
@@ -80,11 +98,9 @@ import java.util.Set;
import java.util.TimeZone;
import java.util.TreeMap;
import java.util.Vector;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.model.ReportHandler;
@@ -110,25 +126,6 @@ import org.onap.portalsdk.analytics.view.RowHeaderCol;
import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import com.lowagie.text.BadElementException;
-import com.lowagie.text.Chunk;
-import com.lowagie.text.Document;
-import com.lowagie.text.DocumentException;
-import com.lowagie.text.Element;
-import com.lowagie.text.ElementTags;
-import com.lowagie.text.Font;
-import com.lowagie.text.FontFactory;
-import com.lowagie.text.Image;
-import com.lowagie.text.PageSize;
-import com.lowagie.text.Paragraph;
-import com.lowagie.text.Phrase;
-import com.lowagie.text.Rectangle;
-import com.lowagie.text.html.simpleparser.HTMLWorker;
-import com.lowagie.text.html.simpleparser.StyleSheet;
-import com.lowagie.text.pdf.PdfPCell;
-import com.lowagie.text.pdf.PdfPTable;
-import com.lowagie.text.pdf.PdfWriter;
-
/**
* @author mwliu and sundar
*
@@ -942,448 +939,297 @@ public class PdfReportHandler extends org.onap.portalsdk.analytics.RaptorObject{
*/
private final int DEFAULT_PDF_DISPLAY_WIDTH = 10;
- private int paintPdfData(HttpServletRequest request, Document document, ReportData rd, ReportRuntime rr, String sql_whole) throws DocumentException, RaptorException, IOException {
-
- int mb = 1024*1024;
- Runtime runtime = Runtime.getRuntime();
- int returnValue = 0;
- //sql_whole = rr.getWholeSQL();
- //if(rd.getDataRowCount() >= rr.getReportDataSize()) {
- //sql_whole="";
- //}
- float f[] = getRelativeWidths(rd, rr.getReportType().equals(AppConstants.RT_CROSSTAB));
- PdfPTable table = new PdfPTable(f);
- table.setWidthPercentage(100f);
- table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
- table.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM);
-
- ReportDefinition rdef = (new ReportHandler()).loadReportDefinition(request, rr.getReportID());
-
- List allColumns = rdef.getAllColumns();
-
- float[] repotWidths = new float[rdef.getVisibleColumnCount()];
- int columnIdx = 0;
- float pdfDisplayWidth = 0;
- for(Iterator iter = allColumns.iterator(); iter.hasNext();){
- DataColumnType dct = (DataColumnType) iter.next();
- if(dct.isVisible()) {
-
- if(dct.getPdfDisplayWidthInPxls() == null || dct.getPdfDisplayWidthInPxls().equals("") || dct.getPdfDisplayWidthInPxls().startsWith("null"))
- pdfDisplayWidth = DEFAULT_PDF_DISPLAY_WIDTH;
- else
- pdfDisplayWidth = Float.parseFloat(dct.getPdfDisplayWidthInPxls());
-
- repotWidths [columnIdx++] = pdfDisplayWidth;
- }
- }
-
- table.setWidths(repotWidths);
-
- //table.setH
-
- //TODO: check title and subtitle
- HttpSession session = request.getSession();
- String drilldown_index = (String) session.getAttribute("drilldown_index");
- int index = 0;
- try {
- index = Integer.parseInt(drilldown_index);
- } catch (NumberFormatException ex) {
- index = 0;
- }
- String titleRep = (String) session.getAttribute("TITLE_"+index);
- String subtitle = (String) session.getAttribute("SUBTITLE_"+index);
-
- if(nvl(titleRep).length()>0 && nvl(subtitle).length()>0)
- table.setHeaderRows(3);
- else if (nvl(titleRep).length()>0)
- table.setHeaderRows(2);
- else
- table.setHeaderRows(1);
- table = paintPdfReportHeader(request, document, table, rr, f);
- paintPdfTableHeader(document, rd, table);
-
- int idx = 0;
- int fragmentsize = 30; //for memory management
-
- ResultSet rs = null;
- Connection conn = null;
- Statement st = null;
- ResultSetMetaData rsmd = null;
+
+ private int paintPdfData(final HttpServletRequest request, final Document document, final ReportData rd,
+ final ReportRuntime rr, final String sql_whole) throws DocumentException, RaptorException, IOException {
+
+ final int mb = 1024 * 1024;
+ final Runtime runtime = Runtime.getRuntime();
+ int returnValue = 0;
+
+ final float f[] = getRelativeWidths(rd, AppConstants.RT_CROSSTAB.equals(rr.getReportType()));
+ PdfPTable table = new PdfPTable(f);
+ table.setWidthPercentage(100f);
+ table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
+ table.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM);
+
+ final ReportDefinition rdef = (new ReportHandler()).loadReportDefinition(request, rr.getReportID());
+
+ final List allColumns = rdef.getAllColumns();
+
+ final float[] repotWidths = new float[rdef.getVisibleColumnCount()];
+ int columnIdx = 0;
+ float pdfDisplayWidth = 0;
+ for (final Iterator iter = allColumns.iterator(); iter.hasNext(); ) {
+ final DataColumnType dct = (DataColumnType) iter.next();
+ if (dct.isVisible()) {
+
+ if (dct.getPdfDisplayWidthInPxls() == null || dct.getPdfDisplayWidthInPxls().isEmpty() || dct
+ .getPdfDisplayWidthInPxls().startsWith("null")) {
+ pdfDisplayWidth = DEFAULT_PDF_DISPLAY_WIDTH;
+ } else {
+ pdfDisplayWidth = Float.parseFloat(dct.getPdfDisplayWidthInPxls());
+ }
+
+ repotWidths[columnIdx++] = pdfDisplayWidth;
+ }
+ }
+
+ table.setWidths(repotWidths);
+
+ //TODO: check title and subtitle
+ final HttpSession session = request.getSession();
+ final String drilldown_index = (String) session.getAttribute("drilldown_index");
+ int index = 0;
+ try {
+ index = Integer.parseInt(drilldown_index);
+ } catch (NumberFormatException ex) {
+ index = 0;
+ }
+ final String titleRep = (String) session.getAttribute("TITLE_" + index);
+ final String subtitle = (String) session.getAttribute("SUBTITLE_" + index);
+
+ if (nvl(titleRep).length() > 0 && nvl(subtitle).length() > 0) {
+ table.setHeaderRows(3);
+ } else if (nvl(titleRep).length() > 0) {
+ table.setHeaderRows(2);
+ } else {
+ table.setHeaderRows(1);
+ }
+ table = paintPdfReportHeader(request, document, table, rr, f);
+ paintPdfTableHeader(document, rd, table);
+
+ int idx = 0;
+ final int fragmentsize = 30; //for memory management
+
rd.reportDataRows.resetNext();
DataRow dr = rd.reportDataRows.getNext();
-
- //addRowHeader(table,dr,idx,rd);
-
- //addRowColumns(table,dr,idx);
- if(nvl(sql_whole).length() >0 && rr.getReportType().equals(AppConstants.RT_LINEAR)) {
- try {
- conn = ConnectionUtils.getConnection(rr.getDbInfo());
- st = conn.createStatement();
- logger.debug(EELFLoggerDelegate.debugLogger, ("************* Map Whole SQL *************"));
- logger.debug(EELFLoggerDelegate.debugLogger, (sql_whole));
- logger.debug(EELFLoggerDelegate.debugLogger, ("*****************************************"));
- rs = st.executeQuery(sql_whole);
- rsmd = rs.getMetaData();
- int numberOfColumns = rsmd.getColumnCount();
- HashMap colHash = new HashMap();
- dr = null;
- int j = 0;
- int rowCount = 0;
- String title = "";
- while(rs.next()) {
-
-/* if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) {
- returnValue = 1;
- String cellValue = Globals.getUserDefinedMessageForMemoryLimitReached() + " "+ rowCount +" records out of " + rr.getReportDataSize() + " were downloaded to PDF.";
- Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(),
- Globals.getDataFontSize(),
- Font.NORMAL, Color.BLACK);
- PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont));
- table.addCell(cell);
- document.add(table);
- return returnValue;
- }
-*/ rowCount++;
- colHash = new HashMap();
- for (int i = 1; i <= numberOfColumns; i++) {
- colHash.put(rsmd.getColumnLabel(i).toUpperCase(), rs.getString(i));
- }
- rd.reportDataRows.resetNext();
-
- dr = rd.reportDataRows.getNext();
-
- j = 0;
- /*if(rd.reportTotalRowHeaderCols!=null) {
-
- HtmlFormatter rfmt = dr.getRowFormatter();
-
- Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(),
- Globals.getDataFontSize(),
- Font.NORMAL, Color.BLACK);
- if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
-
- String cellValue = new Integer(rowCount).toString();
- PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont));
-
- //row background color can be overwritten by cell background color
- cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- if(rfmt != null) {
- formatterCell(rfmt,cell);
- }
- table.addCell(cell);
- }*/
-
- for (dr.resetNext(); dr.hasNext();j++) {
- DataValue dv = dr.getNext();
- /*if(j == 0) {
- HtmlFormatter cfmt = dv.getCellFormatter();
- HtmlFormatter rfmt = dv.getRowFormatter();
-
- Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(),
- Globals.getDataFontSize(),
- Font.NORMAL, Color.BLACK);
- if(cfmt!= null) {
- cellFormatterFont(cfmt,cellFont);
- }
- else if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
- else {
- if(dv.isBold()) {
- cellFont.setStyle(Font.BOLD);
- }
- }
-
- //String cellValue = strip.stripHtml(value.trim());
- PdfPCell cell = new PdfPCell(new Paragraph(rowCount+"",cellFont));
-
- //row background color can be overwritten by cell background color
- cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- if(nvl(dv.getAlignment()).trim().length()>0)
- cell.setHorizontalAlignment(ElementTags.alignmentValue(dv.getAlignment()));
- else
- cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- if(cfmt!= null) {
- formatterCell(cfmt,cell);
- }
- else if(rfmt != null) {
- formatterCell(rfmt,cell);
- }
- table.addCell(cell);
- }*/
-
- //for (chr.resetNext(); chr.hasNext();) {
- //ColumnHeader ch = chr.getNext();
- String value = nvl((String)colHash.get(dv.getColId().toUpperCase()));
- if(dv.isVisible()) {
-
- HtmlFormatter cfmt = dv.getCellFormatter();
- HtmlFormatter rfmt = dv.getRowFormatter();
-
- Font cellFont = FontFactory.getFont(FONT_FAMILY,
- FONT_SIZE,
- Font.NORMAL, Color.BLACK);
- if(cfmt!= null) {
- cellFormatterFont(cfmt,cellFont);
- }
- else if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
- else {
- if(dv.isBold()) {
- cellFont.setStyle(Font.BOLD);
- }
- }
-
- String cellValue = strip.stripHtml(value.trim());
- PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont));
-
- //row background color can be overwritten by cell background color
- cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- if(nvl(dv.getAlignment()).trim().length()>0)
- cell.setHorizontalAlignment(ElementTags.alignmentValue(dv.getAlignment()));
- else
- cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- if(cfmt!= null) {
- formatterCell(cfmt,cell);
- }
- else if(rfmt != null) {
- formatterCell(rfmt,cell);
- }
-
-
-
- table.addCell(cell);
-
- }//if isVisible()
-
-
- }
-
- }
- if(rd.reportDataTotalRow!=null) {
- for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();idx++) {
- dr = rd.reportDataTotalRow.getNext();
- table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
- Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY,
- FONT_SIZE,
- Font.NORMAL, Color.BLACK);
- rowHeaderFont.setStyle(Font.BOLD);
- rowHeaderFont.setSize(FONT_SIZE+1f);
- table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx));
- table.addCell(new Paragraph("Total",rowHeaderFont));
-
-
- addTotalRowColumns(table,dr,idx);
- if (idx % fragmentsize == fragmentsize - 1) {
- document.add(table);
- table.deleteBodyRows();
- table.setSkipFirstHeader(true);
- }
-
- }
- }
- } catch (SQLException ex) {
- throw new RaptorException(ex);
- } catch (ReportSQLException ex) {
- throw new RaptorException(ex);
- } catch (Exception ex) {
- if(!(ex.getCause() instanceof java.net.SocketException) )
- throw new RaptorException (ex);
- } finally {
- try {
- if(conn!=null)
- conn.close();
- if(st!=null)
- st.close();
- if(rs!=null)
- rs.close();
- } catch (SQLException ex) {
- throw new RaptorException(ex);
- }
- }
-
-
-// if (idx % fragmentsize == fragmentsize - 1) {
-// document.add(table);
-// table.deleteBodyRows();
-// table.setSkipFirstHeader(true);
-// }
-
- //document.add(table);
- } else {
- if(rr.getReportType().equals(AppConstants.RT_LINEAR)) {
- int rowCount = 0;
- for(rd.reportDataRows.resetNext();rd.reportDataRows.hasNext();idx++)
- {
- rowCount++;
-
- /*if(rd.reportTotalRowHeaderCols!=null) {
- HtmlFormatter rfmt = dr.getRowFormatter();
-
- Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(),
- Globals.getDataFontSize(),
- Font.NORMAL, Color.BLACK);
- if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
-
- //String cellValue = new Integer(rowCount).toString();
- //PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont));
-
- //row background color can be overwritten by cell background color
- //cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- //cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- //if(rfmt != null) {
- //formatterCell(rfmt,cell);
- //}
- //table.addCell(cell);
- }*/
-
-
-
- if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) {
- returnValue = 1;
- }
-
- dr = rd.reportDataRows.getNext();
-
- addRowHeader(table,dr,idx,rd);
-
- addRowColumns(table,dr,idx);
-
- if (idx % fragmentsize == fragmentsize - 1) {
- document.add(table);
- table.deleteBodyRows();
- table.setSkipFirstHeader(true);
- }
- }
-
- if(rd.reportDataTotalRow!=null) {
- for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();idx++) {
- dr = rd.reportDataTotalRow.getNext();
- table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
- Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY,
- FONT_SIZE,
- Font.NORMAL, Color.BLACK);
- rowHeaderFont.setStyle(Font.BOLD);
- rowHeaderFont.setSize(FONT_SIZE+1f);
- table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx));
- table.addCell(new Paragraph("Total",rowHeaderFont));
-
- addTotalRowColumns(table,dr,idx);
- if (idx % fragmentsize == fragmentsize - 1) {
- document.add(table);
- table.deleteBodyRows();
- table.setSkipFirstHeader(true);
- }
-
- }
- }
-
- } else if (rr.getReportType().equals(AppConstants.RT_CROSSTAB)) {
- int rowCount = 0;
- List l = rd.getReportDataList();
- boolean first = true;
- for (int dataRow = 0; dataRow < l.size(); dataRow++) {
- first = true;
- rowCount++;
- dr = (DataRow) l.get(dataRow);
- Vector<DataValue> rowNames = dr.getRowValues();
- for(dr.resetNext(); dr.hasNext(); ) {
-
- if(first) {
- HtmlFormatter rfmt = dr.getRowFormatter();
-
- Font cellFont = FontFactory.getFont(FONT_FAMILY,
- FONT_SIZE,
- Font.NORMAL, Color.BLACK);
- if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
- String cellValue = "";
- PdfPCell cell = null;
- //String cellValue = new Integer(rowCount).toString();
- //PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont));
- //row background color can be overwritten by cell background color
- //cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- //cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- //if(rfmt != null) {
- //formatterCell(rfmt,cell);
- // }
- //table.addCell(cell);
- if(rowNames!=null) {
- for(int i=0; i<rowNames.size(); i++) {
- DataValue dv = rowNames.get(i);
- rfmt = dr.getRowFormatter();
-
- cellFont = FontFactory.getFont(FONT_FAMILY,
- FONT_SIZE,
- Font.NORMAL, Color.BLACK);
- if(rfmt != null) {
- cellFormatterFont(rfmt,cellFont);
- }
- cellValue = dv.getDisplayValue();
- if(cellValue.indexOf("|#")!=-1)
- cellValue = cellValue.substring(0,cellValue.indexOf("|"));
-
- cell = new PdfPCell(new Paragraph(cellValue,cellFont));
- //row background color can be overwritten by cell background color
- cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
-
- cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
-
- if(rfmt != null) {
- formatterCell(rfmt,cell);
- }
- table.addCell(cell);
- }
- }
- }
- first = false;
-
- if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) {
- returnValue = 1;
- }
-
- //addRowHeader(table,dr,idx,rd);
-
- addRowColumns(table,dr,idx);
-
- if (idx % fragmentsize == fragmentsize - 1) {
- document.add(table);
- table.deleteBodyRows();
- table.setSkipFirstHeader(true);
- }
- }
-
- }
- }
-
- //document.add(table);
-
- }
-
- document.add(table);
- paintPdfReportFooter(request, document, rr, f);
-
- return returnValue;
- }
-
+ if (nvl(sql_whole).length() > 0 && AppConstants.RT_LINEAR.equals(rr.getReportType())) {
+ try (final Connection conn = ConnectionUtils.getConnection(rr.getDbInfo());
+ final Statement st = conn.createStatement();
+ final ResultSet rs = st.executeQuery(sql_whole);) {
+
+ logger.debug(EELFLoggerDelegate.debugLogger, ("************* Map Whole SQL *************"));
+ logger.debug(EELFLoggerDelegate.debugLogger, (sql_whole));
+ logger.debug(EELFLoggerDelegate.debugLogger, ("*****************************************"));
+
+ final ResultSetMetaData rsmd = rs.getMetaData();
+ final int numberOfColumns = rsmd.getColumnCount();
+ dr = null;
+ int rowCount = 0;
+ while (rs.next()) {
+
+ rowCount++;
+ final Map colHash = new HashMap();
+ for (int i = 1; i <= numberOfColumns; i++) {
+ colHash.put(rsmd.getColumnLabel(i).toUpperCase(), rs.getString(i));
+ }
+ rd.reportDataRows.resetNext();
+
+ dr = rd.reportDataRows.getNext();
+
+ for (dr.resetNext(); dr.hasNext(); ) {
+ final DataValue dv = dr.getNext();
+
+ final String value = nvl((String) colHash.get(dv.getColId().toUpperCase()));
+ if (dv.isVisible()) {
+
+ final HtmlFormatter cfmt = dv.getCellFormatter();
+ final HtmlFormatter rfmt = dv.getRowFormatter();
+
+ final Font cellFont = FontFactory.getFont(FONT_FAMILY,
+ FONT_SIZE,
+ Font.NORMAL, Color.BLACK);
+ if (cfmt != null) {
+ cellFormatterFont(cfmt, cellFont);
+ } else if (rfmt != null) {
+ cellFormatterFont(rfmt, cellFont);
+ } else {
+ if (dv.isBold()) {
+ cellFont.setStyle(Font.BOLD);
+ }
+ }
+
+ final String cellValue = strip.stripHtml(value.trim());
+ final PdfPCell cell = new PdfPCell(new Paragraph(cellValue, cellFont));
+
+ //row background color can be overwritten by cell background color
+ cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
+
+ if (nvl(dv.getAlignment()).trim().length() > 0) {
+ cell.setHorizontalAlignment(ElementTags.alignmentValue(dv.getAlignment()));
+ } else {
+ cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
+ }
+
+ if (cfmt != null) {
+ formatterCell(cfmt, cell);
+ } else if (rfmt != null) {
+ formatterCell(rfmt, cell);
+ }
+
+ table.addCell(cell);
+
+ }//if isVisible()
+
+ }
+
+ }
+ if (rd.reportDataTotalRow != null) {
+ for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext(); idx++) {
+ dr = rd.reportDataTotalRow.getNext();
+ table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
+ final Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY,
+ FONT_SIZE,
+ Font.NORMAL, Color.BLACK);
+ rowHeaderFont.setStyle(Font.BOLD);
+ rowHeaderFont.setSize(FONT_SIZE + 1f);
+ table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx));
+ table.addCell(new Paragraph("Total", rowHeaderFont));
+
+ addTotalRowColumns(table, dr, idx);
+ if (idx % fragmentsize == fragmentsize - 1) {
+ document.add(table);
+ table.deleteBodyRows();
+ table.setSkipFirstHeader(true);
+ }
+
+ }
+ }
+ } catch (final SQLException | ReportSQLException ex) {
+ throw new RaptorException(ex);
+ } catch (final Exception ex) {
+ if (!(ex.getCause() instanceof java.net.SocketException)) {
+ throw new RaptorException(ex);
+ }
+ }
+ //document.add(table);
+ } else {
+ if (rr.getReportType().equals(AppConstants.RT_LINEAR)) {
+ for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext(); idx++) {
+
+ if (runtime.freeMemory() / mb <= ((runtime.maxMemory() / mb) * Globals.getMemoryThreshold()
+ / 100)) {
+ returnValue = 1;
+ }
+
+ dr = rd.reportDataRows.getNext();
+
+ addRowHeader(table, dr, idx, rd);
+
+ addRowColumns(table, dr, idx);
+
+ if (idx % fragmentsize == fragmentsize - 1) {
+ document.add(table);
+ table.deleteBodyRows();
+ table.setSkipFirstHeader(true);
+ }
+ }
+
+ if (rd.reportDataTotalRow != null) {
+ for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext(); idx++) {
+ dr = rd.reportDataTotalRow.getNext();
+ table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
+ Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY,
+ FONT_SIZE,
+ Font.NORMAL, Color.BLACK);
+ rowHeaderFont.setStyle(Font.BOLD);
+ rowHeaderFont.setSize(FONT_SIZE + 1f);
+ table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx));
+ table.addCell(new Paragraph("Total", rowHeaderFont));
+
+ addTotalRowColumns(table, dr, idx);
+ if (idx % fragmentsize == fragmentsize - 1) {
+ document.add(table);
+ table.deleteBodyRows();
+ table.setSkipFirstHeader(true);
+ }
+
+ }
+ }
+
+ } else if (AppConstants.RT_CROSSTAB.equals(rr.getReportType())) {
+ int rowCount = 0;
+ final List l = rd.getReportDataList();
+ boolean first = true;
+ for (int dataRow = 0; dataRow < l.size(); dataRow++) {
+ first = true;
+ rowCount++;
+ dr = (DataRow) l.get(dataRow);
+ final Vector<DataValue> rowNames = dr.getRowValues();
+ for (dr.resetNext(); dr.hasNext(); ) {
+
+ if (first) {
+ HtmlFormatter rfmt = dr.getRowFormatter();
+
+ Font cellFont = FontFactory.getFont(FONT_FAMILY,
+ FONT_SIZE,
+ Font.NORMAL, Color.BLACK);
+ if (rfmt != null) {
+ cellFormatterFont(rfmt, cellFont);
+ }
+
+ if (rowNames != null) {
+ for (int i = 0; i < rowNames.size(); i++) {
+ final DataValue dv = rowNames.get(i);
+ rfmt = dr.getRowFormatter();
+
+ cellFont = FontFactory.getFont(FONT_FAMILY,
+ FONT_SIZE,
+ Font.NORMAL, Color.BLACK);
+ if (rfmt != null) {
+ cellFormatterFont(rfmt, cellFont);
+ }
+ String cellValue = dv.getDisplayValue();
+ if (cellValue.indexOf("|#") != -1) {
+ cellValue = cellValue.substring(0, cellValue.indexOf("|"));
+ }
+
+ final PdfPCell cell = new PdfPCell(new Paragraph(cellValue, cellFont));
+ //row background color can be overwritten by cell background color
+ cell.setBackgroundColor(getRowBackgroundColor(dr, idx));
+
+ cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER);
+
+ if (rfmt != null) {
+ formatterCell(rfmt, cell);
+ }
+ table.addCell(cell);
+ }
+ }
+ }
+ first = false;
+
+ if (runtime.freeMemory() / mb <= ((runtime.maxMemory() / mb) * Globals.getMemoryThreshold()
+ / 100)) {
+ returnValue = 1;
+ }
+
+ //addRowHeader(table,dr,idx,rd);
+
+ addRowColumns(table, dr, idx);
+
+ if (idx % fragmentsize == fragmentsize - 1) {
+ document.add(table);
+ table.deleteBodyRows();
+ table.setSkipFirstHeader(true);
+ }
+ }
+
+ }
+ }
+
+ //document.add(table);
+
+ }
+
+ document.add(table);
+ paintPdfReportFooter(request, document, rr, f);
+
+ return returnValue;
+ }
+
private void addRowHeader(PdfPTable table, DataRow dr, int idx, ReportData rd) {
table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER);
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java
index 361f405d..d10cd1c4 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java
@@ -37,395 +37,439 @@
*/
package org.onap.portalsdk.analytics.model.runtime;
-
-
-
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.model.ReportHandler;
import org.onap.portalsdk.analytics.system.AppUtils;
import org.onap.portalsdk.analytics.util.AppConstants;
import org.onap.portalsdk.analytics.view.ReportData;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.portalsdk.core.web.support.UserUtils;
public class ChartWebRuntime implements Serializable {
-
-
- // Not used - planned to use if Hibernate used as data access layer
- private String runningDataQuery = "";
- private String runningCountQuery = "";
- //CONSTANTS FOR QUERY
- public final String QRY_COUNT_REPORT = "";
- public final String QRY_DATA_REPORT = "";
-
- // Not used planning to use when filter is used
- private StringBuilder whereClause = new StringBuilder("");
- // request used to grab request parameters
- private HttpServletRequest request;
-
-
- public ReportRuntime reportRuntime;
- public ReportData reportData;
-
- //Used to pass user information
- private final Map<String, Object> params = new HashMap<>();
-
- //from chart generator retrieves list of charts to render
- public List chartList;
- public List infoList;
-
- private String totalSql;
-
-
- //
- private String drilldown_index = "0";
-
- public List getRolesCommaSeperated(HttpServletRequest request) {
- Map roles = UserUtils.getRoles(request);
- List roleList = null;
- if( roles != null ) {
- roleList = Arrays.asList(roles.keySet().toArray());
- }
-
- return roleList;
- }
-
-
- public String getUserId(HttpServletRequest request) {
- return AppUtils.getUserID(request);
- }
-
- public String generateChart(HttpServletRequest request) {
- return generateChart(request, true);
- }
-
-
- public String generateChart(HttpServletRequest request, boolean showData) {
- //wire variables
- //processRecursive(this, this);
- long currentTime = System.currentTimeMillis();
- HttpSession session = request.getSession();
- String action = nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action"));
- boolean genReportData = (!"chart.json".equals(action) || "chart.data.json".equals(action));
-
-
-
- final Long user_id = new Long((long) UserUtils.getUserId(request));
-
-
- boolean adminUser = false;
- try {
- adminUser = AppUtils.isAdminUser(request) || AppUtils.isSuperUser(request);
- } catch (RaptorException ex) {
- ex.printStackTrace();
- }
- List roleList = getRolesCommaSeperated(request);
- //final Map<String, Object> params = new HashMap<String, Object>();
- params.put("user_id", user_id);
- params.put("role_list", roleList);
- //params.put("public_yn", "Y");
-
- //String action = request.getParameter(AppConstants.RI_ACTION);
- String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID);
-
- ReportHandler rh = new ReportHandler();
- ReportRuntime rr = null;
- try {
- if(reportID !=null)
- rr = rh.loadReportRuntime(request, reportID, true, 1);
- if(rr.getReportType().equals(AppConstants.RT_HIVE)) {
- String sql = rr.getReportSQL();
- rr.setWholeSQL(sql);
- //if(genReportData)
- //reportData = rr.loadHiveLinearReportData(rr.getWholeSQL(),user_id.toString(), 10000,request);
- } else {
- if(genReportData)
- reportData = rr.loadReportData(0, user_id.toString(), 10000,request, false /*download*/);
- }
- } catch (RaptorException ex) {
- ex.printStackTrace();
- }
- setReportRuntime(rr);
- setReportData( reportData);
-
- reportRuntime = getReportRuntime();
- reportData = getReportData();
-
-
- HashMap<String, String> chartOptionsMap = new HashMap<>();
-
- String rotateLabelsStr = "";
- rotateLabelsStr = AppUtils.nvl(reportRuntime.getLegendLabelAngle());
- if(rotateLabelsStr.toLowerCase().equals("standard")) {
- rotateLabelsStr = "0";
- } else if (rotateLabelsStr.toLowerCase().equals("up45")) {
- rotateLabelsStr = "45";
- } else if (rotateLabelsStr.toLowerCase().equals("down45")) {
- rotateLabelsStr = "-45";
- } else if (rotateLabelsStr.toLowerCase().equals("up90")) {
- rotateLabelsStr = "90";
- } else if (rotateLabelsStr.toLowerCase().equals("down90")) {
- rotateLabelsStr = "-90";
- } else
- rotateLabelsStr = "0";
-
- String width = (AppUtils.getRequestNvlValue(request, "width").length()>0?AppUtils.getRequestNvlValue(request, "width"):(AppUtils.nvl(reportRuntime.getChartWidth()).length()>0?reportRuntime.getChartWidth():"700"));
- String height = (AppUtils.getRequestNvlValue(request, "height").length()>0?AppUtils.getRequestNvlValue(request, "height"):(AppUtils.nvl(reportRuntime.getChartHeight()).length()>0?reportRuntime.getChartHeight():"300"));
- String animationStr = (AppUtils.getRequestNvlValue(request, "animation").length()>0?AppUtils.getRequestNvlValue(request, "animation"):new Boolean(reportRuntime.isAnimateAnimatedChart()).toString());
-
- String rotateLabels = (AppUtils.getRequestNvlValue(request, "rotateLabels").length()>0?AppUtils.getRequestNvlValue(request, "rotateLabels"):(rotateLabelsStr.length()>0?rotateLabelsStr:"0"));
- String staggerLabelsStr = (AppUtils.getRequestNvlValue(request, "staggerLabels").length()>0?AppUtils.getRequestNvlValue(request, "staggerLabels"):"false");
- String showMaxMinStr = (AppUtils.getRequestNvlValue(request, "showMaxMin").length()>0?AppUtils.getRequestNvlValue(request, "showMaxMin"):"false");
- String showControlsStr = (AppUtils.getRequestNvlValue(request, "showControls").length()>0?AppUtils.getRequestNvlValue(request, "showControls"):new Boolean(reportRuntime.displayBarControls()).toString());
- String showLegendStr = (AppUtils.getRequestNvlValue(request, "showLegend").length()>0?AppUtils.getRequestNvlValue(request, "showLegend"):new Boolean(!new Boolean(reportRuntime.hideChartLegend())).toString());
- String topMarginStr = AppUtils.getRequestNvlValue(request, "topMargin");
- String topMargin = (AppUtils.nvl(topMarginStr).length()<=0)?(reportRuntime.getTopMargin()!=null?reportRuntime.getTopMargin().toString():"30"):topMarginStr;
- String bottomMarginStr = AppUtils.getRequestNvlValue(request, "bottomMargin");
- String bottomMargin = (AppUtils.nvl(bottomMarginStr).length()<=0)?(reportRuntime.getBottomMargin()!=null?reportRuntime.getBottomMargin().toString():"50"):bottomMarginStr;
- String leftMarginStr = AppUtils.getRequestNvlValue(request, "leftMargin");
- String leftMargin = (AppUtils.nvl(leftMarginStr).length()<=0)?(reportRuntime.getLeftMargin()!=null?reportRuntime.getLeftMargin().toString():"100"):leftMarginStr;
- String rightMarginStr = AppUtils.getRequestNvlValue(request, "rightMargin");
- String rightMargin = (AppUtils.nvl(rightMarginStr).length()<=0)?(reportRuntime.getRightMargin()!=null?reportRuntime.getRightMargin().toString():"160"):rightMarginStr;
- String showTitleStr = (AppUtils.getRequestNvlValue(request, "showTitle").length()>0?AppUtils.getRequestNvlValue(request, "showTitle"):new Boolean(reportRuntime.displayChartTitle()).toString());
- String subType = AppUtils.getRequestNvlValue(request, "subType").length()>0?AppUtils.getRequestNvlValue(request, "subType"):(AppUtils.nvl(reportRuntime.getTimeSeriesRender()).equals("area")?reportRuntime.getTimeSeriesRender():"");
- String stackedStr = AppUtils.getRequestNvlValue(request, "stacked").length()>0?AppUtils.getRequestNvlValue(request, "stacked"):new Boolean(reportRuntime.isChartStacked()).toString();
- String horizontalBar = AppUtils.getRequestNvlValue(request, "horizontalBar").length()>0?AppUtils.getRequestNvlValue(request, "horizontalBar"):new Boolean(reportRuntime.isHorizontalOrientation()).toString();
- String barRealTimeAxis = AppUtils.getRequestNvlValue(request, "barRealTimeAxis");
- String barReduceXAxisLabels = AppUtils.getRequestNvlValue(request, "barReduceXAxisLabels").length()>0?AppUtils.getRequestNvlValue(request, "barReduceXAxisLabels"):new Boolean(reportRuntime.isLessXaxisTickers()).toString();;
- String timeAxis = AppUtils.getRequestNvlValue(request, "timeAxis").length()>0?AppUtils.getRequestNvlValue(request, "timeAxis"):new Boolean(reportRuntime.isTimeAxis()).toString();
- String logScale = AppUtils.getRequestNvlValue(request, "logScale").length()>0?AppUtils.getRequestNvlValue(request, "logScale"):new Boolean(reportRuntime.isLogScale()).toString();
- String precision = AppUtils.getRequestNvlValue(request, "precision").length()>0?AppUtils.getRequestNvlValue(request, "precision"):"2";
-
- /* boolean animation = AppUtils.getRequestFlag(request, "animation");
- boolean staggerLabels = AppUtils.getRequestFlag(request, "staggerLabels");
- boolean showMaxMin = (showMaxMinStr.length()<=0)?false:Boolean.parseBoolean(showMaxMinStr);
- boolean showControls = (showControlsStr.length()<=0)?true:Boolean.parseBoolean(showControlsStr);
- boolean showLegend = (showLegendStr.length()<=0)?true:Boolean.parseBoolean(showLegendStr);
- boolean showTitle = (showTitleStr.length()<=0)?true:Boolean.parseBoolean(showTitleStr);
- boolean stacked = (stackedStr.length()<=0)?true:Boolean.parseBoolean(stackedStr);
- */
- // Add all options to Map
- chartOptionsMap.put("width", width);
- chartOptionsMap.put("height", height);
- chartOptionsMap.put("animation", animationStr);
- chartOptionsMap.put("rotateLabels", rotateLabels);
- chartOptionsMap.put("staggerLabels", staggerLabelsStr);
- chartOptionsMap.put("showMaxMin", showMaxMinStr);
- chartOptionsMap.put("showControls", showControlsStr);
- chartOptionsMap.put("showLegend", showLegendStr);
- chartOptionsMap.put("topMargin", topMargin);
- chartOptionsMap.put("bottomMargin", bottomMargin);
- chartOptionsMap.put("leftMargin", leftMargin);
- chartOptionsMap.put("rightMargin", rightMargin);
- chartOptionsMap.put("showTitle", showTitleStr);
- chartOptionsMap.put("subType", subType);
- chartOptionsMap.put("stacked", stackedStr);
- chartOptionsMap.put("horizontalBar", horizontalBar);
- chartOptionsMap.put("timeAxis", timeAxis);
- chartOptionsMap.put("barRealTimeAxis", barRealTimeAxis);
- chartOptionsMap.put("barReduceXAxisLabels", barReduceXAxisLabels);
-
- chartOptionsMap.put("logScale", logScale);
- chartOptionsMap.put("precision", precision);
-
-
-
- if(reportRuntime!=null) {
- StringBuilder title = new StringBuilder("");
- title.append(reportRuntime.getReportName());
- }
-
- if(! ("chart.json".equals(action) || "chart.data.json".equals(action))) {
-
-
- //Chart
- String chartType = reportRuntime.getChartType();
- return drawD3Charts(chartOptionsMap, request);
- //drawD3Charts();
- } else /*if (action.equals("chart.json"))*/ {
- String chartType = reportRuntime.getChartType();
- return returnChartJSON(chartOptionsMap, request, showData);
-
-
- } /*else {
-
- return ("Internal Error Occurred.");
- }*/
-
- }
-
-
- public String nvl(String s) {
- return (s == null) ? "" : s;
- }
-
- /**
- * @return the reportRuntime
- */
- public ReportRuntime getReportRuntime() {
- return reportRuntime;
- }
-
- /**
- * @param reportRuntime the reportRuntime to set
- */
- public void setReportRuntime(ReportRuntime reportRuntime) {
- this.reportRuntime = reportRuntime;
- }
-
- /**
- * @return the reportData
- */
- public ReportData getReportData() {
- return reportData;
- }
-
- /**
- * @param reportData the reportData to set
- */
- public void setReportData(ReportData reportData) {
- this.reportData = reportData;
- }
-
- public boolean isNull(String a) {
- if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null"))
- return true;
- else
- return false;
- }
-
-
- protected String nvl(String s, String sDefault) {
- return nvl(s).equals("") ? sDefault : s;
- }
-
- protected static String nvls(String s) {
- return (s == null) ? "" : s;
- }
-
- protected static String nvls(String s, String sDefault) {
- return nvls(s).equals("") ? sDefault : s;
- }
-
- protected boolean getFlagInBoolean(String s) {
- return nvl(s).toUpperCase().startsWith("Y") || nvl(s).toLowerCase().equals("true");
- }
-
-
- /**
- * @return the chartList
- */
- public List getChartList() {
- return chartList;
- }
-
- /**
- * @param chartList the chartList to set
- */
- public void setChartList(List chartList) {
- this.chartList = chartList;
- }
-
- /**
- * @return the infoList
- */
- public List getInfoList() {
- return infoList;
- }
-
- /**
- * @param infoList the infoList to set
- */
- public void setInfoList(List infoList) {
- this.infoList = infoList;
- }
-
-
-
- private void clearReportRuntimeBackup(HttpSession session, HttpServletRequest request) {
- session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST);
- request.removeAttribute(AppConstants.DRILLDOWN_INDEX);
- session.removeAttribute(AppConstants.DRILLDOWN_INDEX);
- request.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX);
- session.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX);
- Enumeration<String> enum1 = session.getAttributeNames();
- String attributeName = "";
- while(enum1.hasMoreElements()) {
- attributeName = enum1.nextElement();
- if(attributeName.startsWith("parent_")) {
- session.removeAttribute(attributeName);
- }
- }
- session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST);
- session.removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID);
- session.removeAttribute(AppConstants.SI_COLUMN_LOOKUP);
- session.removeAttribute(AppConstants.SI_DASHBOARD_REP_ID);
- session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP);
- session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME);
- session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP);
- session.removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP);
- session.removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP);
- session.removeAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP);
- session.removeAttribute(AppConstants.SI_MAP);
- session.removeAttribute(AppConstants.SI_MAP_OBJECT);
- session.removeAttribute(AppConstants.SI_REPORT_DEFINITION);
- session.removeAttribute(AppConstants.SI_REPORT_RUNTIME);
- session.removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP);
- session.removeAttribute(AppConstants.SI_REPORT_SCHEDULE);
- session.removeAttribute(AppConstants.RI_REPORT_DATA);
- session.removeAttribute(AppConstants.RI_CHART_DATA);
- session.removeAttribute(AppConstants.SI_FORMFIELD_INFO);
- session.removeAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
- } // clearReportRuntimeBackup
-
-
- public String getTotalSql() {
- return totalSql;
- }
-
- public void setTotalSql(String totalSql) {
- this.totalSql = totalSql;
- }
-
-
-
- /* public void drawD3Charts(HashMap<String,String> chartOptionsMap) {
- drawD3Charts(chartOptionsMap);
-
- }
- */
-
- public String drawD3Charts(Map<String,String> chartOptionsMap, HttpServletRequest request) {
-
- ChartD3Helper chartHelper = new ChartD3Helper(reportRuntime);
- chartHelper.setChartType(reportRuntime.getChartType());
-
- return chartHelper.createVisualization(reportRuntime, chartOptionsMap, request);
- }
-
- public String returnChartJSON(HashMap<String,String> chartOptionsMap, HttpServletRequest request, boolean showData) {
-
- ChartJSONHelper chartJSONHelper = new ChartJSONHelper(reportRuntime);
- chartJSONHelper.setChartType(reportRuntime.getChartType());
- try {
- return chartJSONHelper.generateJSON(reportRuntime, chartOptionsMap, request, showData);
- } catch(RaptorException ex) {
- ex.printStackTrace();
- }
- return "";
-
- }
-
- }
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ChartWebRuntime.class);
+
+ // CONSTANTS FOR QUERY
+ public final String QRY_COUNT_REPORT = "";
+ public final String QRY_DATA_REPORT = "";
+
+ public ReportRuntime reportRuntime;
+ public ReportData reportData;
+
+ // Used to pass user information
+ private final transient Map<String, Object> params = new HashMap<>();
+
+ // from chart generator retrieves list of charts to render
+ public transient List chartList;
+ public transient List infoList;
+
+ private String totalSql;
+
+
+ public List getRolesCommaSeperated(HttpServletRequest request) {
+ Map roles = UserUtils.getRoles(request);
+ List roleList = null;
+ if (roles != null) {
+ roleList = Arrays.asList(roles.keySet().toArray());
+ }
+
+ return roleList;
+ }
+
+
+ public String getUserId(HttpServletRequest request) {
+ return AppUtils.getUserID(request);
+ }
+
+ public String generateChart(HttpServletRequest request) {
+ return generateChart(request, true);
+ }
+
+
+ public String generateChart(HttpServletRequest request, boolean showData) {
+ System.currentTimeMillis();
+ request.getSession();
+ String action =
+ nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action"));
+ boolean genReportData = (!"chart.json".equals(action) || "chart.data.json".equals(action));
+
+
+
+ final Long user_id = Long.valueOf(UserUtils.getUserId(request));
+
+
+ try {
+ if(AppUtils.isAdminUser(request) || AppUtils.isSuperUser(request)) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "Request by Admin or Super User");
+ }
+ } catch (RaptorException ex) {
+ logger.error(EELFLoggerDelegate.errorLogger, "RaptorException occurred in generateChart",ex);
+ }
+ List roleList = getRolesCommaSeperated(request);
+ // final Map<String, Object> params = new HashMap<String, Object>();
+ params.put("user_id", user_id);
+ params.put("role_list", roleList);
+ // params.put("public_yn", "Y");
+
+ // String action = request.getParameter(AppConstants.RI_ACTION);
+ String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID);
+
+ ReportHandler rh = new ReportHandler();
+ ReportRuntime rr = null;
+ try {
+ if (reportID != null)
+ rr = rh.loadReportRuntime(request, reportID, true, 1);
+ if (rr.getReportType().equals(AppConstants.RT_HIVE)) {
+ String sql = rr.getReportSQL();
+ rr.setWholeSQL(sql);
+ // if(genReportData)
+ // reportData = rr.loadHiveLinearReportData(rr.getWholeSQL(),user_id.toString(),
+ // 10000,request);
+ } else {
+ if (genReportData)
+ reportData = rr.loadReportData(0, user_id.toString(), 10000, request,
+ false /* download */);
+ }
+ } catch (RaptorException ex) {
+ logger.error(EELFLoggerDelegate.errorLogger, "RaptorException occurred in generateChart",ex);
+ }
+ setReportRuntime(rr);
+ setReportData(reportData);
+
+ reportRuntime = getReportRuntime();
+ reportData = getReportData();
+
+
+ HashMap<String, String> chartOptionsMap = new HashMap<>();
+
+ String rotateLabelsStr = "";
+ rotateLabelsStr = AppUtils.nvl(reportRuntime.getLegendLabelAngle());
+ if (rotateLabelsStr.equalsIgnoreCase("standard")) {
+ rotateLabelsStr = "0";
+ } else if (rotateLabelsStr.equalsIgnoreCase("up45")) {
+ rotateLabelsStr = "45";
+ } else if (rotateLabelsStr.equalsIgnoreCase("down45")) {
+ rotateLabelsStr = "-45";
+ } else if (rotateLabelsStr.equalsIgnoreCase("up90")) {
+ rotateLabelsStr = "90";
+ } else if (rotateLabelsStr.equalsIgnoreCase("down90")) {
+ rotateLabelsStr = "-90";
+ } else
+ rotateLabelsStr = "0";
+
+ String width = (AppUtils.getRequestNvlValue(request, "width").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "width")
+ : (AppUtils.nvl(reportRuntime.getChartWidth()).length() > 0
+ ? reportRuntime.getChartWidth()
+ : "700"));
+ String height = (AppUtils.getRequestNvlValue(request, "height").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "height")
+ : (AppUtils.nvl(reportRuntime.getChartHeight()).length() > 0
+ ? reportRuntime.getChartHeight()
+ : "300"));
+ String animationStr = (AppUtils.getRequestNvlValue(request, "animation").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "animation")
+ : Boolean.toString(reportRuntime.isAnimateAnimatedChart()));
+
+ String rotateLabels = (AppUtils.getRequestNvlValue(request, "rotateLabels").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "rotateLabels")
+ : (rotateLabelsStr.length() > 0 ? rotateLabelsStr : "0"));
+ String staggerLabelsStr =
+ (AppUtils.getRequestNvlValue(request, "staggerLabels").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "staggerLabels")
+ : "false");
+ String showMaxMinStr = (AppUtils.getRequestNvlValue(request, "showMaxMin").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "showMaxMin")
+ : "false");
+ String showControlsStr = (AppUtils.getRequestNvlValue(request, "showControls").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "showControls")
+ : Boolean.toString(reportRuntime.displayBarControls()));
+ String showLegendStr = (AppUtils.getRequestNvlValue(request, "showLegend").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "showLegend")
+ : Boolean.toString(!Boolean.valueOf(reportRuntime.hideChartLegend())));
+ String topMarginStr = AppUtils.getRequestNvlValue(request, "topMargin");
+ String topMargin = (AppUtils.nvl(topMarginStr).length() <= 0)
+ ? (reportRuntime.getTopMargin() != null ? reportRuntime.getTopMargin().toString()
+ : "30")
+ : topMarginStr;
+ String bottomMarginStr = AppUtils.getRequestNvlValue(request, "bottomMargin");
+ String bottomMargin = (AppUtils.nvl(bottomMarginStr).length() <= 0)
+ ? (reportRuntime.getBottomMargin() != null
+ ? reportRuntime.getBottomMargin().toString()
+ : "50")
+ : bottomMarginStr;
+ String leftMarginStr = AppUtils.getRequestNvlValue(request, "leftMargin");
+ String leftMargin = (AppUtils.nvl(leftMarginStr).length() <= 0)
+ ? (reportRuntime.getLeftMargin() != null ? reportRuntime.getLeftMargin().toString()
+ : "100")
+ : leftMarginStr;
+ String rightMarginStr = AppUtils.getRequestNvlValue(request, "rightMargin");
+ String rightMargin = (AppUtils.nvl(rightMarginStr).length() <= 0)
+ ? (reportRuntime.getRightMargin() != null
+ ? reportRuntime.getRightMargin().toString()
+ : "160")
+ : rightMarginStr;
+ String showTitleStr = (AppUtils.getRequestNvlValue(request, "showTitle").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "showTitle")
+ : Boolean.toString(reportRuntime.displayChartTitle()));
+ String subType = AppUtils.getRequestNvlValue(request, "subType").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "subType")
+ : (AppUtils.nvl(reportRuntime.getTimeSeriesRender()).equals("area")
+ ? reportRuntime.getTimeSeriesRender()
+ : "");
+ String stackedStr = AppUtils.getRequestNvlValue(request, "stacked").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "stacked")
+ : Boolean.toString(reportRuntime.isChartStacked());
+ String horizontalBar = AppUtils.getRequestNvlValue(request, "horizontalBar").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "horizontalBar")
+ : Boolean.toString(reportRuntime.isHorizontalOrientation());
+ String barRealTimeAxis = AppUtils.getRequestNvlValue(request, "barRealTimeAxis");
+ String barReduceXAxisLabels =
+ AppUtils.getRequestNvlValue(request, "barReduceXAxisLabels").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "barReduceXAxisLabels")
+ : Boolean.toString(reportRuntime.isLessXaxisTickers());
+ String timeAxis = AppUtils.getRequestNvlValue(request, "timeAxis").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "timeAxis")
+ : Boolean.toString(reportRuntime.isTimeAxis());
+ String logScale = AppUtils.getRequestNvlValue(request, "logScale").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "logScale")
+ : Boolean.toString(reportRuntime.isLogScale());
+ String precision = AppUtils.getRequestNvlValue(request, "precision").length() > 0
+ ? AppUtils.getRequestNvlValue(request, "precision")
+ : "2";
+
+ /*
+ * boolean animation = AppUtils.getRequestFlag(request, "animation"); boolean staggerLabels
+ * = AppUtils.getRequestFlag(request, "staggerLabels"); boolean showMaxMin =
+ * (showMaxMinStr.length()<=0)?false:Boolean.parseBoolean(showMaxMinStr); boolean
+ * showControls = (showControlsStr.length()<=0)?true:Boolean.parseBoolean(showControlsStr);
+ * boolean showLegend =
+ * (showLegendStr.length()<=0)?true:Boolean.parseBoolean(showLegendStr); boolean showTitle =
+ * (showTitleStr.length()<=0)?true:Boolean.parseBoolean(showTitleStr); boolean stacked =
+ * (stackedStr.length()<=0)?true:Boolean.parseBoolean(stackedStr);
+ */
+ // Add all options to Map
+ chartOptionsMap.put("width", width);
+ chartOptionsMap.put("height", height);
+ chartOptionsMap.put("animation", animationStr);
+ chartOptionsMap.put("rotateLabels", rotateLabels);
+ chartOptionsMap.put("staggerLabels", staggerLabelsStr);
+ chartOptionsMap.put("showMaxMin", showMaxMinStr);
+ chartOptionsMap.put("showControls", showControlsStr);
+ chartOptionsMap.put("showLegend", showLegendStr);
+ chartOptionsMap.put("topMargin", topMargin);
+ chartOptionsMap.put("bottomMargin", bottomMargin);
+ chartOptionsMap.put("leftMargin", leftMargin);
+ chartOptionsMap.put("rightMargin", rightMargin);
+ chartOptionsMap.put("showTitle", showTitleStr);
+ chartOptionsMap.put("subType", subType);
+ chartOptionsMap.put("stacked", stackedStr);
+ chartOptionsMap.put("horizontalBar", horizontalBar);
+ chartOptionsMap.put("timeAxis", timeAxis);
+ chartOptionsMap.put("barRealTimeAxis", barRealTimeAxis);
+ chartOptionsMap.put("barReduceXAxisLabels", barReduceXAxisLabels);
+
+ chartOptionsMap.put("logScale", logScale);
+ chartOptionsMap.put("precision", precision);
+
+
+
+ if (reportRuntime != null) {
+ StringBuilder title = new StringBuilder("");
+ title.append(reportRuntime.getReportName());
+ }
+
+ if (!("chart.json".equals(action) || "chart.data.json".equals(action))) {
+
+
+ reportRuntime.getChartType();
+ return drawD3Charts(chartOptionsMap, request);
+ // drawD3Charts();
+ } else /* if (action.equals("chart.json")) */ {
+ reportRuntime.getChartType();
+ return returnChartJSON(chartOptionsMap, request, showData);
+
+
+ } /*
+ * else {
+ *
+ * return ("Internal Error Occurred."); }
+ */
+
+ }
+
+
+ public String nvl(String s) {
+ return (s == null) ? "" : s;
+ }
+
+ /**
+ * @return the reportRuntime
+ */
+ public ReportRuntime getReportRuntime() {
+ return reportRuntime;
+ }
+
+ /**
+ * @param reportRuntime the reportRuntime to set
+ */
+ public void setReportRuntime(ReportRuntime reportRuntime) {
+ this.reportRuntime = reportRuntime;
+ }
+
+ /**
+ * @return the reportData
+ */
+ public ReportData getReportData() {
+ return reportData;
+ }
+
+ /**
+ * @param reportData the reportData to set
+ */
+ public void setReportData(ReportData reportData) {
+ this.reportData = reportData;
+ }
+
+ public boolean isNull(String a) {
+ if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null"))
+ return true;
+ else
+ return false;
+ }
+
+
+ protected String nvl(String s, String sDefault) {
+ return nvl(s).equals("") ? sDefault : s;
+ }
+
+ protected static String nvls(String s) {
+ return (s == null) ? "" : s;
+ }
+
+ protected static String nvls(String s, String sDefault) {
+ return nvls(s).equals("") ? sDefault : s;
+ }
+
+ protected boolean getFlagInBoolean(String s) {
+ return nvl(s).toUpperCase().startsWith("Y") || nvl(s).equalsIgnoreCase("true");
+ }
+
+
+ /**
+ * @return the chartList
+ */
+ public List getChartList() {
+ return chartList;
+ }
+
+ /**
+ * @param chartList the chartList to set
+ */
+ public void setChartList(List chartList) {
+ this.chartList = chartList;
+ }
+
+ /**
+ * @return the infoList
+ */
+ public List getInfoList() {
+ return infoList;
+ }
+
+ /**
+ * @param infoList the infoList to set
+ */
+ public void setInfoList(List infoList) {
+ this.infoList = infoList;
+ }
+
+
+
+ private void clearReportRuntimeBackup(HttpSession session, HttpServletRequest request) {
+ session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST);
+ request.removeAttribute(AppConstants.DRILLDOWN_INDEX);
+ session.removeAttribute(AppConstants.DRILLDOWN_INDEX);
+ request.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX);
+ session.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX);
+ Enumeration<String> enum1 = session.getAttributeNames();
+ String attributeName = "";
+ while (enum1.hasMoreElements()) {
+ attributeName = enum1.nextElement();
+ if (attributeName.startsWith("parent_")) {
+ session.removeAttribute(attributeName);
+ }
+ }
+ session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST);
+ session.removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID);
+ session.removeAttribute(AppConstants.SI_COLUMN_LOOKUP);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_REP_ID);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP);
+ session.removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP);
+ session.removeAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP);
+ session.removeAttribute(AppConstants.SI_MAP);
+ session.removeAttribute(AppConstants.SI_MAP_OBJECT);
+ session.removeAttribute(AppConstants.SI_REPORT_DEFINITION);
+ session.removeAttribute(AppConstants.SI_REPORT_RUNTIME);
+ session.removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP);
+ session.removeAttribute(AppConstants.SI_REPORT_SCHEDULE);
+ session.removeAttribute(AppConstants.RI_REPORT_DATA);
+ session.removeAttribute(AppConstants.RI_CHART_DATA);
+ session.removeAttribute(AppConstants.SI_FORMFIELD_INFO);
+ session.removeAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO);
+ } // clearReportRuntimeBackup
+
+
+ public String getTotalSql() {
+ return totalSql;
+ }
+
+ public void setTotalSql(String totalSql) {
+ this.totalSql = totalSql;
+ }
+
+
+
+ /*
+ * public void drawD3Charts(HashMap<String,String> chartOptionsMap) {
+ * drawD3Charts(chartOptionsMap);
+ *
+ * }
+ */
+
+ public String drawD3Charts(Map<String, String> chartOptionsMap, HttpServletRequest request) {
+
+ ChartD3Helper chartHelper = new ChartD3Helper(reportRuntime);
+ chartHelper.setChartType(reportRuntime.getChartType());
+
+ return chartHelper.createVisualization(reportRuntime, chartOptionsMap, request);
+ }
+
+ public String returnChartJSON(Map<String, String> chartOptionsMap,
+ HttpServletRequest request, boolean showData) {
+
+ ChartJSONHelper chartJSONHelper = new ChartJSONHelper(reportRuntime);
+ chartJSONHelper.setChartType(reportRuntime.getChartType());
+ try {
+ return chartJSONHelper.generateJSON(reportRuntime, chartOptionsMap, request, showData);
+ } catch (RaptorException ex) {
+ logger.error(EELFLoggerDelegate.errorLogger, "RaptorException occurred in returnChartJSON",ex);
+ }
+ return "";
+
+ }
+
+}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java
index 24af7e25..313f04ee 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java
@@ -33,11 +33,10 @@
*
* ============LICENSE_END============================================
*
- *
+ *
*/
package org.onap.portalsdk.analytics.scheduler;
-import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.sql.Connection;
@@ -51,338 +50,208 @@ import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
-
import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.system.DbUtils;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
-//import oracle.jdbc.*;
-//import oracle.sql.BLOB;
+public class SchedulerUtil {
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SchedulerUtil.class);
-public class SchedulerUtil {
-
- private Connection conn = null;
-
- protected Connection getConnection() {
- return conn;
- }
-
- protected void setConnection(Connection _conn) {
- conn = _conn;
- }
-
- protected Connection init() throws SQLException, ReportSQLException{
- if(conn != null)
- return conn;
- conn = DbUtils.getConnection();
- return conn;
- }
-
- protected void closeConnection() throws SQLException {
- if(conn != null) conn.close();
- }
-
- public void insertOrUpdate(String sql) throws SQLException, ReportSQLException {
-
- Statement stat = null;
- try{
- //conn = getConnection();
- stat = conn.createStatement();
- stat.executeUpdate(sql);
-
- } finally{
- if(stat!=null)
- stat.close();
- //conn.close();
- }
- }
-
- public void updateBinaryStream(String sql, BigDecimal id, InputStream is, int size) throws SQLException, ReportSQLException, IOException {
-
- // cludge hack for oracle databases
- if(conn.getMetaData().getDatabaseProductName().toLowerCase().contains("oracle")) {
-/* updateBlob(sql,id,is,size);
-*/ throw new ReportSQLException("only maria db support for this ");
-
- }
-
- PreparedStatement stat = null;
- try {
- stat = conn.prepareStatement(sql);
- stat.setBigDecimal(2, id);
- stat.setBinaryStream(1, is, size);
- stat.executeUpdate();
-
- } finally{
- if(stat!=null)
- stat.close();
- }
-
+ private Connection conn = null;
+
+ public static Date trunc_hour(final Date v_date) {
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(v_date);
+ calendar.set(Calendar.MILLISECOND, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ return calendar.getTime();
+ }
+
+ public static Date add_hours(final Date v_date, final int i) {
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(v_date);
+ cal.add(Calendar.HOUR, i);
+ return cal.getTime();
+ }
+
+ public static Date add_months(final Date v_date, final int i) {
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(v_date);
+ cal.add(Calendar.MONTH, i);
+ return cal.getTime();
+ }
+
+ public static Date add_days(final Date v_date, final int i) {
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(v_date);
+ cal.add(Calendar.DATE, i);
+ return cal.getTime();
+ }
+
+ public static Date to_date(final String input, final String format) {
+
+ Date date = null;
+ try {
+ date = new SimpleDateFormat(format, Locale.ENGLISH).parse(input);
+ } catch (final Exception e) {
+ logger.warn("Failed to Format Date", e);
+ }
+ return date;
+ }
+
+ public static String to_date_str(final Date input, final String format) {
+
+ String date = null;
+ try {
+ date = new SimpleDateFormat(format, Locale.ENGLISH).format(input);
+ } catch (final Exception e) {
+ logger.warn("Failed to Format Date", e);
+ }
+ return date;
}
-
- /*public void updateBlob(String sql, BigDecimal id, InputStream is, int size) throws SQLException, ReportSQLException, IOException {
- PreparedStatement stat = null;
- OutputStream out = null;
- BLOB blob = null;
- try {
- stat = conn.prepareStatement(sql);
- blob = BLOB.createTemporary(conn,false, BLOB.DURATION_SESSION);
- out = blob.getBinaryOutputStream();
-
- int read;
- while((read = is.read()) != -1) {
- out.write(read);
- }
- out.flush();
-
- stat.setBigDecimal(2, id);
- stat.setBlob(1, blob);
- stat.executeUpdate();
-
- }
- catch (SQLException sqL) {
- sqL.printStackTrace();
- }
- finally{
- out.close();
- stat.close();
- }
-
- }*/
-
-
- public void insertOrUpdateWithPrepared(String sql, List<Object> params, List<Integer> types) throws SQLException, ReportSQLException {
-
- PreparedStatement stat = null;
- try{
- //conn = getConnection();
- stat = conn.prepareStatement(sql);
- conn.getMetaData();
- int i2;
- int paramLength = params.size();
- for(int i = 0 ; i< paramLength ; i++) {
- i2 = i+1;
- Object param = params.get(i);
- int type = types.get(i);
-
- if(param.equals("NULL")) {
- stat.setNull(i2, type);
- }
- else if(type == Types.VARCHAR) {
- stat.setString(i2, (String)param);
- }
- else if(type == Types.INTEGER) {
- stat.setInt(i2, (Integer)param);
- }
- else if(type == Types.NUMERIC) {
- stat.setLong(i2, (Long)param);
- }
- else if(type == Types.DOUBLE) {
- stat.setDouble(i2, (Double)param);
- }
- else if(type == Types.DATE) {
- stat.setDate(i2, (java.sql.Date)param);
- }
- else if(type == Types.TIMESTAMP) {
- stat.setTimestamp(i2, (java.sql.Timestamp)param);
- }
- else if(type == Types.BIGINT) {
- stat.setBigDecimal(i2, (BigDecimal)param);
- }
- else
- throw new SQLException("Unidentified Object; Please contact admin and have this method updated with the current object type");
-
- }
-
- stat.executeUpdate();
-
- } finally{
- if(stat!=null)
- stat.close();
- //conn.close();
- }
- }
-
-
- public Object getSingleResult(String sql, String fieldname) throws SQLException, ReportSQLException{
-
- Statement stat = null;
- ResultSet rs = null;
- Object o=null;
- try{
- //conn = getConnection();
- stat = conn.createStatement();
- rs = stat.executeQuery(sql);
-
- while (rs.next()) {
- o = rs.getObject(fieldname);
- }
- }
- catch(SQLException sqlE){
- sqlE.printStackTrace();
- }
-
- finally{
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
- }
- return o;
+
+ public static String[] cr_dissecturl(final String formfields, final String delimiter) {
+ if (formfields == null || formfields.isEmpty()) {
+ return new String[]{};
+ }
+ return formfields.split("&");
+ }
+
+ protected Connection getConnection() {
+ return conn;
+ }
+
+ protected void setConnection(final Connection _conn) {
+ conn = _conn;
+ }
+
+ protected Connection init() throws ReportSQLException {
+ if (conn != null) {
+ return conn;
+ }
+ conn = DbUtils.getConnection();
+ return conn;
+ }
+
+ protected void closeConnection() throws SQLException {
+ if (conn != null) {
+ conn.close();
+ }
+ }
+
+ public void insertOrUpdate(final String sql) throws SQLException, ReportSQLException {
+
+ try (final Statement stat = conn.createStatement()) {
+ stat.executeUpdate(sql);
+ }
+ }
+
+ public void updateBinaryStream(final String sql, final BigDecimal id, final InputStream is, final int size)
+ throws SQLException, ReportSQLException {
+
+ // cludge hack for oracle databases
+ if (conn.getMetaData().getDatabaseProductName().toLowerCase().contains("oracle")) {
+ throw new ReportSQLException("only maria db support for this ");
+ }
+
+ try (final PreparedStatement stat = conn.prepareStatement(sql)) {
+ stat.setBigDecimal(2, id);
+ stat.setBinaryStream(1, is, size);
+ stat.executeUpdate();
+ }
+ }
+
+ public void insertOrUpdateWithPrepared(final String sql, final List<Object> params, final List<Integer> types)
+ throws SQLException {
+
+ try (final PreparedStatement stat = conn.prepareStatement(sql)) {
+ conn.getMetaData();
+ int i2;
+ final int paramLength = params.size();
+ for (int i = 0; i < paramLength; i++) {
+ i2 = i + 1;
+ final Object param = params.get(i);
+ final int type = types.get(i);
+
+ if ("NULL".equals(param)) {
+ stat.setNull(i2, type);
+ } else if (type == Types.VARCHAR) {
+ stat.setString(i2, (String) param);
+ } else if (type == Types.INTEGER) {
+ stat.setInt(i2, (Integer) param);
+ } else if (type == Types.NUMERIC) {
+ stat.setLong(i2, (Long) param);
+ } else if (type == Types.DOUBLE) {
+ stat.setDouble(i2, (Double) param);
+ } else if (type == Types.DATE) {
+ stat.setDate(i2, (java.sql.Date) param);
+ } else if (type == Types.TIMESTAMP) {
+ stat.setTimestamp(i2, (java.sql.Timestamp) param);
+ } else if (type == Types.BIGINT) {
+ stat.setBigDecimal(i2, (BigDecimal) param);
+ } else {
+ throw new SQLException(
+ "Unidentified Object; Please contact admin and have this method updated with the current object type");
+ }
+
+ }
+
+ stat.executeUpdate();
+ }
+ }
+
+ public Object getSingleResult(final String sql, final String fieldName) {
+ Object o = null;
+ try (final Statement stat = conn.createStatement();
+ final ResultSet rs = stat.executeQuery(sql);) {
+ while (rs.next()) {
+ o = rs.getObject(fieldName);
+ }
+ } catch (final SQLException sqlE) {
+ logger.warn("Failed to get single result", sqlE);
+ }
+ return o;
+ }
+
+ public InputStream getDBStream(final String sql, final String fieldname) throws SQLException, ReportSQLException {
+
+ // cludge hack for oracle databases
+ if (conn.getMetaData().getDatabaseProductName().toLowerCase().contains("oracle")) {
+ throw new ReportSQLException("only maria db support for this ");
+ }
+
+ InputStream o = null;
+ try (final Statement stat = conn.createStatement();
+ final ResultSet rs = stat.executeQuery(sql);) {
+
+ while (rs.next()) {
+ o = rs.getBinaryStream(fieldname);
+ }
+ } catch (SQLException sqlE) {
+ logger.warn("Failed to get DB Stream", sqlE);
+ }
+ return o;
+ }
+
+ public void getAndExecute(final String sql, final Executor executor) throws SQLException {
+ try (final Statement stat = conn.createStatement();
+ final ResultSet rs = stat.executeQuery(sql);) {
+ while (rs.next()) {
+ executor.execute(rs);
+ }
+ } catch (SQLException sqlE) {
+ logger.warn("Failed to get DB Stream", sqlE);
+ }
+ }
+
+ interface Executor {
+
+ public void execute(ResultSet rs) throws SQLException;
}
-
- public InputStream getDBStream(String sql, String fieldname) throws SQLException, ReportSQLException, IOException{
-
- // cludge hack for oracle databases
- if(conn.getMetaData().getDatabaseProductName().toLowerCase().contains("oracle")) {
- /*return getDBBlob(sql,fieldname);*/
- throw new ReportSQLException("only maria db support for this ");
-
- }
-
-
- Statement stat = null;
- ResultSet rs = null;
- InputStream o=null;
- try{
- //conn = getConnection();
- stat = conn.createStatement();
- rs = stat.executeQuery(sql);
-
- while (rs.next()) {
- o = rs.getBinaryStream(fieldname);
- }
- }
- catch(SQLException sqlE){
- sqlE.printStackTrace();
- }
-
- finally{
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
- }
- return o;
- }
-
- /*public InputStream getDBBlob(String sql, String fieldname) throws SQLException, ReportSQLException, IOException{
-
-
- Statement stat = null;
- ResultSet rs = null;
- BLOB blob=null;
- ByteArrayInputStream in = null;
- try{
- stat = conn.createStatement();
- rs = stat.executeQuery(sql);
-
- if (rs.next()) {
- blob = ((OracleResultSet) rs).getBLOB(fieldname);
- in = new ByteArrayInputStream(blob.getBytes(1,(int)blob.length()));
-
- }
- }
- catch(SQLException sqlE){
- sqlE.printStackTrace();
- }
-
- finally{
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
- }
- return in;
- }
- */
-
- public void getAndExecute(String sql, Executor executor) throws SQLException, ReportSQLException{
- //Connection conn = getConnection();
- Statement stat = conn.createStatement();
- ResultSet rs = stat.executeQuery(sql);
-
-
- while (rs.next()) {
- executor.execute(rs);
- }
-
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
- }
-
- interface Executor{
- public void execute(ResultSet rs) throws SQLException;
- }
-
-
-
-
-
-
- public static Date trunc_hour(Date v_date) {
-
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(v_date);
- calendar.set(Calendar.MILLISECOND, 0);
- calendar.set(Calendar.SECOND, 0);
- calendar.set(Calendar.MINUTE, 0);
- return calendar.getTime();
- }
-
- public static Date add_hours(Date v_date, int i) {
-
- Calendar cal = Calendar.getInstance();
- cal.setTime(v_date);
- cal.add(Calendar.HOUR, i);
- return cal.getTime();
- }
-
- public static Date add_months(Date v_date, int i) {
-
- Calendar cal = Calendar.getInstance();
- cal.setTime(v_date);
- cal.add(Calendar.MONTH, i);
- return cal.getTime();
- }
-
- public static Date add_days(Date v_date, int i) {
-
- Calendar cal = Calendar.getInstance();
- cal.setTime(v_date);
- cal.add(Calendar.DATE, i);
- return cal.getTime();
- }
-
- public static Date to_date(String input, String format) {
-
- Date date = null;
- try {
- date = new SimpleDateFormat(format, Locale.ENGLISH).parse(input);
- } catch (Exception e) {
- }
- return date;
- }
-
- public static String to_date_str(Date input, String format) {
-
- String date = null;
- try {
- date = new SimpleDateFormat(format, Locale.ENGLISH).format(input);
- } catch (Exception e) {
- }
- return date;
- }
-
- public static String[] cr_dissecturl(String formfields, String delimiter){
- if(formfields == null || formfields.isEmpty())
- return new String[]{};
- return formfields.split("&");
- }
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
index 8b9aabc2..3c871d87 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java
@@ -38,21 +38,20 @@
package org.onap.portalsdk.analytics.scheduler;
import java.math.BigDecimal;
-import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
-import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
-
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
import org.onap.portalsdk.analytics.scheduler.SchedulerUtil.Executor;
import org.onap.portalsdk.analytics.system.Globals;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
public class SendNotifications {
-
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SendNotifications.class);
SchedulerUtil schedulerUtil;
public SendEmail sendEmail;
@@ -63,7 +62,6 @@ public class SendNotifications {
init();
}
-
public void deInit() throws SQLException {
schedulerUtil.closeConnection();
}
@@ -71,133 +69,136 @@ public class SendNotifications {
public void init() throws SQLException, ReportSQLException {
schedulerUtil.init();
}
-
- public void send_notification(String p_mail_server, String p_sender, String p_system_name, String p_system_url, int connectionTimeout) throws RaptorException, Exception {
-
- System.out.println(p_mail_server + " " + p_sender + " " + p_system_name + " " + p_system_url);
- int p_time_interval = Globals.getSchedulerInterval();
- int v_num_recs = 0;
- String v_gen_key;
- BigDecimal v_id = null;
- String v_url;
- String v_r_action = "report.download.pdf";
- String v_email_msg;
- String v_formfields;
- // String error_m;
- // int transfer_timeout_limit = 1800;
- // boolean v_attach_email_yn = true;
- int v_schedule_id;
- Date v_touch_date;
- // Exception for_rec;
-
- Connection conn = schedulerUtil.getConnection();
- Statement stat = conn.createStatement();
-
- String CNotificationsql =
- /*
- "SELECT x.rep_id, x.schedule_id, x.conditional_yn, x.condition_large_sql, x.notify_type, x.max_row, x.initial_formfields, x.processed_formfields, r.title, x.user_id "
- + "FROM ("
- + "SELECT rs.rep_id, rs.schedule_id, rs.sched_user_id user_id, rs.conditional_yn, rs.condition_large_sql, "
- + "rs.notify_type, rs.max_row, rs.initial_formfields, rs.processed_formfields "
- + "FROM cr_report_schedule rs "
- + "WHERE rs.enabled_yn='Y' "
- + "AND rs.start_"
- + "date <= sysdate "
- + "AND (rs.end_date >= sysdate or rs.end_date is null ) "
- + "AND rs.run_date IS NOT NULL "
- + ") x, cr_report r "
- + "WHERE x.rep_id = r.rep_id ";
- */
-
- Globals.getAvailableSchedules().replace("[currentDate]", Globals.getCurrentDateString());
-
-
- ResultSet rs = stat.executeQuery(CNotificationsql);
-
- while (rs.next()) {
-
- v_schedule_id = rs.getInt("schedule_id");
- int offset = get_report_sched_offset(rs.getInt("rep_id"), v_schedule_id);
-
- if(offset >= p_time_interval) continue;
-
-
- v_touch_date = (Date) schedulerUtil.getSingleResult("select touch_date from cr_report_email_sent_log where schedule_id = " + v_schedule_id + " and log_id = (select max(log_id) from cr_report_email_sent_log where schedule_id = " + v_schedule_id + ")", "touch_date");
- if (v_touch_date != null) {
- if (Math.abs(System.currentTimeMillis() - v_touch_date.getTime()) /1000 < (p_time_interval - 1)) {
- return;
- }
- }
-
- if ("Y".equals(rs.getString("conditional_yn"))) {
- v_num_recs = (Integer) schedulerUtil.getSingleResult("select count(*) count from (" + rs.getString("condition_large_sql") + " )", "count");
- }
-
- if (v_num_recs > 0 || "N".equals(rs.getString("conditional_yn"))) {
-
- v_gen_key = ("Z" + UUID.randomUUID()).toString().substring(0,24); // 25 character string
- Object sequenceId = schedulerUtil.getSingleResult(Globals.getSequenceNextVal().replace("[sequenceName]", "seq_email_sent_log_id"), "id");
-
- if(sequenceId instanceof Long)
- v_id = new BigDecimal((Long)sequenceId);
- else if(sequenceId instanceof BigDecimal)
- v_id = (BigDecimal)sequenceId;
-
- schedulerUtil.insertOrUpdate("insert into cr_report_email_sent_log (log_id, gen_key, schedule_id, rep_id, user_id, touch_date) values (" + v_id + ",'" + v_gen_key + "'," + rs.getInt("schedule_id") + "," + rs.getInt("rep_id") + "," + rs.getInt("user_id") + ", " + Globals.getCurrentDateString() + " )");
-
- int notify_type = rs.getInt("notify_type");
- if (notify_type == 4)
- v_r_action = "report.download";
- else if (notify_type == 2)
- v_r_action = "report.download.pdf";
- else if (notify_type == 3)
- v_r_action = "report.csv.download";
- else if (notify_type == 5)
- v_r_action = "report.download.excel2007";
- else if (notify_type == 6)
- v_r_action = "download.all";
-
- if (rs.getObject("processed_formfields") != null)
- v_formfields = modify_formfields(v_schedule_id, rs.getString("processed_formFields"));
- else
- v_formfields = strip_formfields(v_schedule_id, rs.getString("initial_formfields"));
-
- v_url = p_system_url + "&r_action=" + v_r_action + "&log_id=" + v_id + "&user_id=" + rs.getString("user_id") + "&pdfAttachmentKey=" + v_gen_key + "&download_limit=" + rs.getInt("max_row") + v_formfields;
-
- boolean v_attach_email_yn = shouldSendAttachmentInEmail(v_schedule_id);
-
- v_email_msg = "<html><body><p><b><u><i>" + p_system_name + " System Notification</i></u></b></p>" + "<p>Report <b>" + rs.getString("title") + "</b> is available for viewing.</p><p>You can view the report if it is attached. </br>"
- + "If it is not attached, or you have problem to open it, you can log into Business Direct and run the report.</p>" + "</body></html>";
-
- if (rs.getInt("notify_type") != 6) {
-
- sendEmail.sendEmail(p_mail_server, p_sender, p_system_name + " System Notification: Report " + rs.getString("title") + " generated", v_email_msg, v_url, rs.getInt("notify_type"), v_schedule_id, p_time_interval, v_attach_email_yn,connectionTimeout);
-
- } else {
-
- // may not necessary
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "'," + "'Success: http request began.', " + Globals.getCurrentDateString() + " )");
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "'," + "'Success: http response recieved. Code resp.status_code '' desc '' resp.reason_phrase', " + Globals.getCurrentDateString() + " )");
-
- }
-
- schedulerUtil.insertOrUpdate("update cr_report_schedule set run_date = " + Globals.getCurrentDateString() +" where schedule_id=" + v_schedule_id);
-
- schedulerUtil.insertOrUpdate("update cr_report_email_sent_log set sent_date= " + Globals.getCurrentDateString() +" , access_flag='N' where log_id=" + v_id);
- schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + v_schedule_id + ",'" + v_url + "','Success: Email Sent', " + Globals.getCurrentDateString() + " )");
-
- }
-
- }
-
- if(rs!=null)
- rs.close();
- if(stat!=null)
- stat.close();
- //conn.close();
-
- }
+ public void send_notification(final String p_mail_server, final String p_sender, final String p_system_name,
+ final String p_system_url, final int connectionTimeout) throws RaptorException, Exception {
+
+ logger.info(p_mail_server + " " + p_sender + " " + p_system_name + " " + p_system_url);
+ final int p_time_interval = Globals.getSchedulerInterval();
+ int v_num_recs = 0;
+ BigDecimal v_id = null;
+ String v_r_action = "report.download.pdf";
+
+ final String CNotificationsql = Globals.getAvailableSchedules()
+ .replace("[currentDate]", Globals.getCurrentDateString());
+
+ try (final ResultSet rs = schedulerUtil.getConnection().createStatement().executeQuery(CNotificationsql);) {
+ while (rs.next()) {
+ final int v_schedule_id = rs.getInt("schedule_id");
+ final int offset = get_report_sched_offset(rs.getInt("rep_id"), v_schedule_id);
+
+ if (offset >= p_time_interval) {
+ continue;
+ }
+
+ final Date v_touch_date = (Date) schedulerUtil.getSingleResult(
+ "select touch_date from cr_report_email_sent_log where schedule_id = " + v_schedule_id
+ + " and log_id = (select max(log_id) from cr_report_email_sent_log where schedule_id = "
+ + v_schedule_id + ")", "touch_date");
+ if (v_touch_date != null) {
+ if (Math.abs(System.currentTimeMillis() - v_touch_date.getTime()) / 1000 < (p_time_interval - 1)) {
+ return;
+ }
+ }
+
+ if ("Y".equals(rs.getString("conditional_yn"))) {
+ v_num_recs = (Integer) schedulerUtil
+ .getSingleResult("select count(*) count from (" + rs.getString("condition_large_sql") + " )",
+ "count");
+ }
+
+ if (v_num_recs > 0 || "N".equals(rs.getString("conditional_yn"))) {
+ final String v_gen_key = ("Z" + UUID.randomUUID()).toString()
+ .substring(0, 24); // 25 character string
+ final Object sequenceId =
+ schedulerUtil.getSingleResult(
+ Globals.getSequenceNextVal().replace("[sequenceName]", "seq_email_sent_log_id"), "id");
+
+ if (sequenceId instanceof Long) {
+ v_id = new BigDecimal((Long) sequenceId);
+ } else if (sequenceId instanceof BigDecimal) {
+ v_id = (BigDecimal) sequenceId;
+ }
+
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_report_email_sent_log (log_id, gen_key, schedule_id, rep_id, user_id, touch_date) values ("
+ + v_id + ",'" + v_gen_key + "'," + rs.getInt("schedule_id") + "," + rs.getInt("rep_id")
+ + ","
+ + rs.getInt("user_id") + ", " + Globals.getCurrentDateString() + " )");
+
+ final int notify_type = rs.getInt("notify_type");
+ if (notify_type == 4) {
+ v_r_action = "report.download";
+ } else if (notify_type == 2) {
+ v_r_action = "report.download.pdf";
+ } else if (notify_type == 3) {
+ v_r_action = "report.csv.download";
+ } else if (notify_type == 5) {
+ v_r_action = "report.download.excel2007";
+ } else if (notify_type == 6) {
+ v_r_action = "download.all";
+ }
+
+ final String v_formfields;
+ if (rs.getObject("processed_formfields") != null) {
+ v_formfields = modify_formfields(v_schedule_id, rs.getString("processed_formFields"));
+ } else {
+ v_formfields = strip_formfields(v_schedule_id, rs.getString("initial_formfields"));
+ }
+
+ final String v_url =
+ p_system_url + "&r_action=" + v_r_action + "&log_id=" + v_id + "&user_id=" + rs
+ .getString("user_id")
+ + "&pdfAttachmentKey=" + v_gen_key + "&download_limit=" + rs.getInt("max_row")
+ + v_formfields;
+
+ final boolean v_attach_email_yn = shouldSendAttachmentInEmail(v_schedule_id);
+
+ final String v_email_msg =
+ "<html><body><p><b><u><i>" + p_system_name + " System Notification</i></u></b></p>"
+ + "<p>Report <b>" + rs.getString("title")
+ + "</b> is available for viewing.</p><p>You can view the report if it is attached. </br>"
+ + "If it is not attached, or you have problem to open it, you can log into Business Direct and run the report.</p>"
+ + "</body></html>";
+
+ if (rs.getInt("notify_type") != 6) {
+ sendEmail.sendEmail(p_mail_server, p_sender,
+ p_system_name + " System Notification: Report " + rs.getString("title") + " generated",
+ v_email_msg, v_url, rs.getInt("notify_type"), v_schedule_id, p_time_interval,
+ v_attach_email_yn,
+ connectionTimeout);
+
+ } else {
+ // may not necessary
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id + ",'" + v_url + "'," + "'Success: http request began.', " + Globals
+ .getCurrentDateString() + " )");
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id + ",'" + v_url + "',"
+ + "'Success: http response recieved. Code resp.status_code '' desc '' resp.reason_phrase', "
+ + Globals.getCurrentDateString() + " )");
+ }
+
+ schedulerUtil.insertOrUpdate(
+ "update cr_report_schedule set run_date = " + Globals.getCurrentDateString()
+ + " where schedule_id="
+ + v_schedule_id);
+
+ schedulerUtil.insertOrUpdate(
+ "update cr_report_email_sent_log set sent_date= " + Globals.getCurrentDateString()
+ + " , access_flag='N' where log_id=" + v_id);
+ schedulerUtil.insertOrUpdate(
+ "insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values ("
+ + v_schedule_id
+ + ",'" + v_url + "','Success: Email Sent', " + Globals.getCurrentDateString() + " )");
+ }
+ }
+ } catch (final SQLException e) {
+ logger.warn("Failed to open connection", e);
+ }
+ }
private boolean shouldSendAttachmentInEmail(int v_schedule_id) throws SQLException, ReportSQLException {
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java
index d2a97dfe..1f58ada3 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java
@@ -33,7 +33,7 @@
*
* ============LICENSE_END============================================
*
- *
+ *
*/
package org.onap.portalsdk.analytics.system;
@@ -44,9 +44,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
-
import javax.sql.DataSource;
-
import org.apache.commons.lang3.StringUtils;
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
@@ -61,28 +59,28 @@ public class DbUtils {
private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DbUtils.class);
- private static DataSource dataSource;
+ private DataSource dataSource;
- public DbUtils() {}
+ public DbUtils() {
+ }
public static Connection getConnection() throws ReportSQLException {
try {
return AppUtils.getDatasource().getConnection();
- } catch (SQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex));
+ } catch (final SQLException ex) {
+ logger.warn("Failed to get Connection", ex);
}
return null;
} // getConnection
- public static void clearConnection(Connection con) throws ReportSQLException {
+ public static void clearConnection(final Connection con) throws ReportSQLException {
try {
if ((con != null) && !con.isClosed()) {
Globals.getDbUtils().clearConnection(con);
}
- } catch (SQLException ex) {
+ } catch (final Exception ex) {
+ logger.warn("Failed to clear Connection", ex);
throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
- throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // clearConnection
@@ -91,52 +89,53 @@ public class DbUtils {
try {
con = getConnection();
con.setAutoCommit(false);
-
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to start Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
return con;
} // startTransaction
- public static void commitTransaction(Connection con) throws ReportSQLException {
+ public static void commitTransaction(final Connection con) throws ReportSQLException {
try {
con.commit();
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to commit Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // commitTransaction
- public static void rollbackTransaction(Connection con) throws ReportSQLException {
+ public static void rollbackTransaction(final Connection con) throws ReportSQLException {
try {
con.rollback();
clearConnection(con);
- } catch (SQLException ex) {
- throw new ReportSQLException(ex.getMessage(), ex.getCause());
- } catch (Exception ex2) {
+ } catch (final Exception ex2) {
+ logger.warn("Failed to rollback Transaction", ex2);
throw new ReportSQLException(ex2.getMessage(), ex2.getCause());
}
} // rollbackTransaction
- public static String executeCall(Connection con, String sql, boolean expectResult) throws ReportSQLException {
+ public static String executeCall(Connection con, final String sql, final boolean expectResult)
+ throws ReportSQLException {
String result = null;
try {
- if (con.isClosed())
+ if (con.isClosed()) {
con = getConnection();
+ }
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Call] " + sql));
- try (CallableStatement stmt = con.prepareCall(sql)) {
- if (expectResult)
+ try (final CallableStatement stmt = con.prepareCall(sql)) {
+ if (expectResult) {
stmt.registerOutParameter(1, Types.CHAR);
+ }
stmt.executeUpdate();
- if (expectResult)
+ if (expectResult) {
result = stmt.getString(1);
+ }
con.commit();
}
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Call", e);
throw new ReportSQLException(e.getMessage(), sql);
} finally {
clearConnection(con);
@@ -145,60 +144,66 @@ public class DbUtils {
return result;
} // executeCall
- public static String executeCall(String sql, boolean expectResult) throws RaptorException {
+ public static String executeCall(final String sql, final boolean expectResult)
+ throws RaptorException {
Connection con = null;
con = getConnection();
- String result = executeCall(con, sql, expectResult);
- return result;
+ return executeCall(con, sql, expectResult);
} // executeCall
- public static int executeUpdate(Connection con, String sql) throws ReportSQLException {
+ public static int executeUpdate(final Connection con, final String sql) throws ReportSQLException {
int rcode = -1;
try (Statement stmt = con.createStatement()) {
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Update] " + sql));
rcode = stmt.executeUpdate(sql);
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Update", e);
throw new ReportSQLException(e.getMessage(), sql);
}
return rcode;
} // executeUpdate
- public static int executeUpdate(String sql) throws ReportSQLException {
- Connection con = null;
- try {
- con = getConnection();
- int rcode = executeUpdate(con, sql);
- if (Globals.getDBType().equals("oracle"))
+ public static int executeUpdate(final String sql) throws ReportSQLException {
+ try (final Connection con = getConnection()) {
+ final int rcode = executeUpdate(con, sql);
+ if ("oracle".equals(Globals.getDBType())) {
con.commit();
-
+ }
return rcode;
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Update", e);
throw new ReportSQLException(e.getMessage(), sql);
- } finally {
- clearConnection(con);
}
} // executeUpdate
- public static DataSet executeQuery(Connection con, String sql) throws ReportSQLException {
+ public static DataSet executeQuery(final Connection con, final String sql) throws ReportSQLException {
return executeQuery(con, sql, Integer.MAX_VALUE);
} // executeQuery
- public static DataSet executeQuery(Connection con, String sql, int maxRowLimit) throws ReportSQLException {
+ public static DataSet executeQuery(Connection con, final String sql, final int maxRowLimit)
+ throws ReportSQLException {
try {
- if (con.isClosed())
+ if (con.isClosed()) {
con = getConnection();
- // con.
- try (Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql)) {
+ }
+ //con.
+ try (final Statement stmt = con.createStatement();
+ final ResultSet rs = stmt.executeQuery(sql)) {
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql));
return new DataSet(rs, maxRowLimit);
}
- } catch (SQLException e) {
+ } catch (final SQLException e) {
+ logger.warn("Failed to execute Query", e);
throw new ReportSQLException(e.getMessage(), sql);
}
} // executeQuery
- public static DataSet executeQuery(String sql, String reportName, String reportID) throws ReportSQLException {
- try (Connection con = getConnection(); PreparedStatement preparedStatement = con.prepareStatement(sql);) {
+ public static DataSet executeQuery(final String sql, final String reportName, final String reportID)
+ throws ReportSQLException {
+
+ try (final Connection con = getConnection();
+ final PreparedStatement preparedStatement = con.prepareStatement(sql);) {
+
if (StringUtils.isNotBlank(reportID)) {
preparedStatement.setString(1, reportID);
preparedStatement.setString(2, reportName);
@@ -206,95 +211,79 @@ public class DbUtils {
preparedStatement.setString(1, reportName);
}
- try (ResultSet rs = preparedStatement.executeQuery();) {
+ try (final ResultSet rs = preparedStatement.executeQuery();) {
logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql));
return new DataSet(rs, Integer.MAX_VALUE);
}
- } catch (SQLException e) {
- throw new ReportSQLException(e.getMessage(), sql);
- } catch (ReportSQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql));
- throw new ReportSQLException(ex.getMessage(), ex);
- } catch (Exception ex1) {
- throw new ReportSQLException(ex1.getMessage(), ex1.getCause());
+ } catch (final Exception e) {
+ logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql), e);
+ throw new ReportSQLException(e.getMessage(), e.getCause());
}
} // executeQuery
- public static DataSet executeQuery(String sql) throws ReportSQLException {
+ public static DataSet executeQuery(final String sql) throws ReportSQLException {
return executeQuery(sql, Integer.MAX_VALUE);
} // executeQuery
- public static DataSet executeQuery(String sql, int maxRowLimit) throws ReportSQLException {
- Connection con = null;
- try {
- con = getConnection();
+ public static DataSet executeQuery(final String sql, final int maxRowLimit) throws ReportSQLException {
+ try (final Connection con = getConnection()) {
return executeQuery(con, sql, maxRowLimit);
- } catch (ReportSQLException ex) {
+ } catch (final ReportSQLException ex) {
logger.error(EELFLoggerDelegate.debugLogger, ("Error " + sql));
throw new ReportSQLException(ex.getMessage(), ex);
- } catch (Exception ex1) {
+ } catch (final Exception ex1) {
+ logger.warn("Failed to execute Query", ex1);
throw new ReportSQLException(ex1.getMessage(), ex1.getCause());
- } finally {
- clearConnection(con);
}
} // executeQuery
- // For ZK Support
+ //For ZK Support
- public static int executeQuery(ReportRuntime rr, int dateOption) {
- Connection con = null;
- int rowCount = 0;
- try {
- con = ConnectionUtils.getConnection(rr.getDBInfo());
- String wholeSql = rr.getWholeSQL();
+ public static int executeQuery(final ReportRuntime rr, final int dateOption) {
- DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination();
+ int rowCount = 0;
+ try (final Connection con = ConnectionUtils.getConnection(rr.getDBInfo());) {
+ final String wholeSql = rr.getWholeSQL();
+ final DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination();
String date_ColId = dc.getColId();
- String dataFormat = dc.getColFormat();
- if (dataFormat != null && dataFormat.length() > 0)
+ final String dataFormat = dc.getColFormat();
+ if (dataFormat != null && dataFormat.length() > 0) {
date_ColId = "to_date(" + date_ColId + ", '" + dataFormat + "')";
+ }
String sql = "";
- if (dateOption == 1)
+ if (dateOption == 1) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM')) from (" + wholeSql + ")";
- else if (dateOption == 3)
+ } else if (dateOption == 3) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY/MM/DD')) from (" + wholeSql + ")";
- else if (dateOption == 2)
+ } else if (dateOption == 2) {
sql = "select count(distinct to_char(" + date_ColId + ", 'YYYY')) from (" + wholeSql + ")";
- DataSet ds = executeQuery(con, sql.toString());
- rowCount = ds.getInt(0, 0);
- } catch (ReportSQLException ex) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex));
- } catch (Exception ex1) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex1));
- } finally {
- try {
- clearConnection(con);
- } catch (ReportSQLException ex2) {
- logger.error(EELFLoggerDelegate.debugLogger, ("Error " + ex2));
}
+ final DataSet ds = executeQuery(con, sql);
+ rowCount = ds.getInt(0, 0);
+ } catch (final Exception ex1) {
+ logger.warn("Failed to execute Query", ex1);
}
return rowCount;
}
- public String nvl(String s) {
+ public static String nvls(final String s) {
return (s == null) ? "" : s;
}
- public static String nvls(String s) {
- return (s == null) ? "" : s;
+ public static String nvl(final String s, final String sDefault) {
+ return nvls(s).isEmpty() ? sDefault : s;
}
- public static String nvl(String s, String sDefault) {
- return nvls(s).equals("") ? sDefault : s;
+ public String nvl(final String s) {
+ return (s == null) ? "" : s;
}
- public static DataSource getDataSource() {
+ public DataSource getDataSource() {
return dataSource;
}
@Autowired
- public void setDataSource(DataSource dataSource) {
- dataSource = dataSource;
+ public void setDataSource(final DataSource dataSource) {
+ this.dataSource = dataSource;
}
-
} // DbUtils