From 7f535078ef80a7b7efa3e3325bfccb994fbd00e8 Mon Sep 17 00:00:00 2001 From: "Christopher Lott (cl778h)" Date: Thu, 31 Aug 2017 15:16:38 -0400 Subject: Rename packages to org.onap in 1.4.0-SNAPSHOT 19 - remove openecomp 72 - remediate Sonar scan issues 79 - removed unwanted left menu under Report 90 - apply approved license text Issue: PORTAL-19, PORTAL-72, PORTAL-79, PORTAL-90 Change-Id: I41a0ef5fba623d2242574bd15f2d9fb8029a496c Signed-off-by: Christopher Lott (cl778h) --- .../org/onap/portalsdk/analytics/AntBuild.java | 109 + .../org/onap/portalsdk/analytics/RaptorObject.java | 62 + .../portalsdk/analytics/config/ConfigLoader.java | 206 + .../portalsdk/analytics/controller/Action.java | 109 + .../analytics/controller/ActionHandler.java | 2434 +++++++ .../analytics/controller/ActionMapping.java | 52 + .../portalsdk/analytics/controller/Controller.java | 144 + .../analytics/controller/ErrorHandler.java | 168 + .../analytics/controller/WizardProcessor.java | 2374 +++++++ .../analytics/controller/WizardSequence.java | 209 + .../controller/WizardSequenceCrossTab.java | 63 + .../controller/WizardSequenceDashboard.java | 58 + .../analytics/controller/WizardSequenceLinear.java | 65 + .../controller/WizardSequenceSQLBasedCrossTab.java | 62 + .../controller/WizardSequenceSQLBasedHive.java | 64 + .../controller/WizardSequenceSQLBasedLinear.java | 65 + .../WizardSequenceSQLBasedLinearDatamining.java | 64 + .../portalsdk/analytics/error/RaptorException.java | 53 + .../analytics/error/RaptorRuntimeException.java | 54 + .../analytics/error/RaptorSchedularException.java | 54 + .../analytics/error/ReportSQLException.java | 69 + .../analytics/error/UserAccessException.java | 52 + .../analytics/error/UserDefinedException.java | 54 + .../analytics/error/ValidationException.java | 60 + .../onap/portalsdk/analytics/gmap/line/Line.java | 104 + .../analytics/gmap/line/LineCollection.java | 176 + .../portalsdk/analytics/gmap/line/LineInfo.java | 208 + .../analytics/gmap/map/ColorProperties.java | 137 + .../analytics/gmap/map/GMapProperties.java | 67 + .../analytics/gmap/map/GeoCoordinate.java | 43 + .../portalsdk/analytics/gmap/map/MapConstant.java | 62 + .../onap/portalsdk/analytics/gmap/map/NovaMap.java | 521 ++ .../analytics/gmap/map/layer/SwingLayer.java | 253 + .../onap/portalsdk/analytics/gmap/node/Node.java | 196 + .../analytics/gmap/node/NodeCollection.java | 211 + .../portalsdk/analytics/gmap/node/NodeInfo.java | 228 + .../portalsdk/analytics/gmap/utils/MapUtils.java | 88 + .../analytics/gmap/utils/SwingWorker.java | 173 + .../onap/portalsdk/analytics/model/DataCache.java | 534 ++ .../portalsdk/analytics/model/ReportHandler.java | 6656 ++++++++++++++++++++ .../portalsdk/analytics/model/ReportLoader.java | 1094 ++++ .../portalsdk/analytics/model/SearchHandler.java | 497 ++ .../analytics/model/base/ChartSeqComparator.java | 67 + .../analytics/model/base/IdNameColLookup.java | 55 + .../portalsdk/analytics/model/base/IdNameList.java | 201 + .../analytics/model/base/IdNameLookup.java | 222 + .../portalsdk/analytics/model/base/IdNameSql.java | 417 ++ .../analytics/model/base/IdNameValue.java | 118 + .../analytics/model/base/NameComparator.java | 52 + .../analytics/model/base/OrderBySeqComparator.java | 55 + .../analytics/model/base/OrderSeqComparator.java | 55 + .../analytics/model/base/ReportSecurity.java | 424 ++ .../analytics/model/base/ReportUserRole.java | 135 + .../analytics/model/base/ReportWrapper.java | 5736 +++++++++++++++++ .../analytics/model/definition/DBColumnInfo.java | 94 + .../model/definition/DrillDownParamDef.java | 129 + .../analytics/model/definition/Marker.java | 97 + .../model/definition/ReportDefinition.java | 1488 +++++ .../analytics/model/definition/ReportLogEntry.java | 107 + .../analytics/model/definition/ReportMap.java | 104 + .../analytics/model/definition/ReportSchedule.java | 1424 +++++ .../analytics/model/definition/SecurityEntry.java | 62 + .../analytics/model/definition/TableJoin.java | 85 + .../analytics/model/definition/TableSource.java | 119 + .../model/definition/wizard/ColumnEditJSON.java | 137 + .../model/definition/wizard/ColumnJSON.java | 59 + .../model/definition/wizard/DefinitionJSON.java | 252 + .../model/definition/wizard/ElementJSON.java | 51 + .../model/definition/wizard/FormEditJSON.java | 149 + .../model/definition/wizard/IdNameBooleanJSON.java | 66 + .../model/definition/wizard/ImportJSON.java | 72 + .../model/definition/wizard/ListJSON.java | 58 + .../model/definition/wizard/MessageJSON.java | 73 + .../model/definition/wizard/NameBooleanJSON.java | 59 + .../model/definition/wizard/QueryJSON.java | 78 + .../model/definition/wizard/QueryResultJSON.java | 88 + .../model/definition/wizard/RaptorError.java | 49 + .../model/definition/wizard/RaptorResponse.java | 68 + .../model/definition/wizard/SearchFieldJSON.java | 59 + .../model/definition/wizard/WizardJSON.java | 47 + .../portalsdk/analytics/model/pdf/PageEvent.java | 274 + .../portalsdk/analytics/model/pdf/PdfBean.java | 260 + .../analytics/model/pdf/PdfReportHandler.java | 1914 ++++++ .../analytics/model/runtime/BarChartOptions.java | 93 + .../analytics/model/runtime/CategoryAxisJSON.java | 42 + .../analytics/model/runtime/ChartD3Helper.java | 4090 ++++++++++++ .../analytics/model/runtime/ChartJSON.java | 478 ++ .../analytics/model/runtime/ChartJSONHelper.java | 1566 +++++ .../analytics/model/runtime/ChartWebRuntime.java | 441 ++ .../model/runtime/CommonChartOptions.java | 99 + .../analytics/model/runtime/ErrorJSONRuntime.java | 76 + .../model/runtime/FlexTimeSeriesChartOptions.java | 56 + .../analytics/model/runtime/FormField.java | 2121 +++++++ .../analytics/model/runtime/FormatProcessor.java | 387 ++ .../portalsdk/analytics/model/runtime/Item.java | 72 + .../analytics/model/runtime/LookupDBInfo.java | 107 + .../analytics/model/runtime/RangeAxisJSON.java | 111 + .../analytics/model/runtime/ReportFormFields.java | 374 ++ .../analytics/model/runtime/ReportJSONRuntime.java | 727 +++ .../model/runtime/ReportParamDateValueParser.java | 214 + .../analytics/model/runtime/ReportParamValues.java | 388 ++ .../runtime/ReportParamValuesForPDFExcel.java | 437 ++ .../analytics/model/runtime/ReportRuntime.java | 3418 ++++++++++ .../model/runtime/TimeSeriesChartOptions.java | 80 + .../analytics/model/runtime/VisualManager.java | 87 + .../analytics/model/search/ReportSearchResult.java | 103 + .../model/search/ReportSearchResultJSON.java | 267 + .../analytics/model/search/SearchResult.java | 230 + .../analytics/model/search/SearchResultColumn.java | 274 + .../analytics/model/search/SearchResultField.java | 232 + .../analytics/model/search/SearchResultJSON.java | 104 + .../analytics/model/search/SearchResultRow.java | 110 + .../analytics/scheduler/SchedulerUtil.java | 387 ++ .../portalsdk/analytics/scheduler/SendEmail.java | 434 ++ .../analytics/scheduler/SendNotifications.java | 480 ++ .../onap/portalsdk/analytics/system/AppUtils.java | 362 ++ .../analytics/system/ConnectionUtils.java | 87 + .../onap/portalsdk/analytics/system/DbUtils.java | 289 + .../portalsdk/analytics/system/ExecuteQuery.java | 79 + .../onap/portalsdk/analytics/system/Globals.java | 2316 +++++++ .../onap/portalsdk/analytics/system/IAppUtils.java | 195 + .../onap/portalsdk/analytics/system/IDbUtils.java | 54 + .../onap/portalsdk/analytics/system/RDbUtils.java | 53 + .../portalsdk/analytics/system/RemDbUtils.java | 216 + .../analytics/system/fusion/AntBuild.java | 85 + .../analytics/system/fusion/AppUtils.java | 383 ++ .../portalsdk/analytics/system/fusion/DbUtils.java | 96 + .../analytics/system/fusion/RemoteDbUtils.java | 75 + .../adapter/AdapterSessionFactoryContainer.java | 57 + .../analytics/system/fusion/adapter/DateUtils.java | 305 + .../system/fusion/adapter/FusionAdapter.java | 139 + .../analytics/system/fusion/adapter/IdName.java | 85 + .../analytics/system/fusion/adapter/Item.java | 73 + .../analytics/system/fusion/adapter/Lookup.java | 103 + .../system/fusion/adapter/RaptorAdapter.java | 380 ++ .../system/fusion/adapter/SpringContext.java | 55 + .../fusion/controller/FileServletController.java | 223 + .../analytics/system/fusion/domain/CR_Report.java | 325 + .../analytics/system/fusion/domain/QuickLink.java | 79 + .../system/fusion/domain/RaptorSearch.java | 206 + .../analytics/system/fusion/domain/ReportInfo.java | 177 + .../system/fusion/service/RaptorService.java | 53 + .../system/fusion/service/RaptorServiceImpl.java | 201 + .../system/fusion/web/RaptorController.java | 208 + .../system/fusion/web/RaptorControllerAsync.java | 1787 ++++++ .../fusion/web/ReportsSearchListController.java | 95 + .../portalsdk/analytics/util/AppConstants.java | 676 ++ .../org/onap/portalsdk/analytics/util/DataSet.java | 195 + .../portalsdk/analytics/util/ExcelColorDef.java | 83 + .../portalsdk/analytics/util/HtmlStripper.java | 175 + .../org/onap/portalsdk/analytics/util/Log.java | 58 + .../onap/portalsdk/analytics/util/RemDbInfo.java | 111 + .../portalsdk/analytics/util/SQLCorrector.java | 360 ++ .../onap/portalsdk/analytics/util/Scheduler.java | 109 + .../org/onap/portalsdk/analytics/util/Utils.java | 390 ++ .../onap/portalsdk/analytics/util/XSSFilter.java | 109 + .../portalsdk/analytics/util/jar/ExtractJar.java | 255 + .../analytics/util/upgrade/SystemUpgrade.java | 145 + .../portalsdk/analytics/view/ColumnHeader.java | 259 + .../portalsdk/analytics/view/ColumnHeaderRow.java | 120 + .../portalsdk/analytics/view/ColumnVisual.java | 92 + .../analytics/view/CrossTabColumnValues.java | 93 + .../analytics/view/CrossTabOrderManager.java | 116 + .../analytics/view/CrossTabTotalValue.java | 74 + .../org/onap/portalsdk/analytics/view/DataRow.java | 186 + .../onap/portalsdk/analytics/view/DataValue.java | 379 ++ .../portalsdk/analytics/view/HtmlFormatter.java | 223 + .../analytics/view/ReportColumnHeaderRows.java | 89 + .../onap/portalsdk/analytics/view/ReportData.java | 831 +++ .../portalsdk/analytics/view/ReportDataRows.java | 90 + .../analytics/view/ReportRowHeaderCols.java | 89 + .../onap/portalsdk/analytics/view/RowHeader.java | 139 + .../portalsdk/analytics/view/RowHeaderCol.java | 176 + .../analytics/xmlobj/ChartAdditionalOptions.java | 1196 ++++ .../analytics/xmlobj/ChartDrillFormfield.java | 104 + .../analytics/xmlobj/ChartDrillOptions.java | 224 + .../portalsdk/analytics/xmlobj/ColFilterList.java | 111 + .../portalsdk/analytics/xmlobj/ColFilterType.java | 316 + .../analytics/xmlobj/CustomReportType.java | 2029 ++++++ .../analytics/xmlobj/DashboardEditorList.java | 111 + .../analytics/xmlobj/DashboardEditorReport.java | 190 + .../analytics/xmlobj/DashboardReports.java | 111 + .../analytics/xmlobj/DashboardReportsNew.java | 165 + .../portalsdk/analytics/xmlobj/DataColumnList.java | 113 + .../portalsdk/analytics/xmlobj/DataColumnType.java | 1473 +++++ .../portalsdk/analytics/xmlobj/DataSourceList.java | 111 + .../portalsdk/analytics/xmlobj/DataSourceType.java | 299 + .../analytics/xmlobj/DataminingOptions.java | 185 + .../portalsdk/analytics/xmlobj/FormFieldList.java | 138 + .../portalsdk/analytics/xmlobj/FormFieldType.java | 628 ++ .../portalsdk/analytics/xmlobj/FormatList.java | 113 + .../portalsdk/analytics/xmlobj/FormatType.java | 384 ++ .../analytics/xmlobj/JavascriptItemType.java | 162 + .../portalsdk/analytics/xmlobj/JavascriptList.java | 111 + .../onap/portalsdk/analytics/xmlobj/Marker.java | 185 + .../portalsdk/analytics/xmlobj/ObjectFactory.java | 323 + .../analytics/xmlobj/PDFAdditionalOptions.java | 358 ++ .../analytics/xmlobj/PredefinedValueList.java | 111 + .../onap/portalsdk/analytics/xmlobj/ReportMap.java | 462 ++ .../onap/portalsdk/analytics/xmlobj/Reports.java | 131 + .../portalsdk/analytics/xmlobj/SemaphoreList.java | 111 + .../portalsdk/analytics/xmlobj/SemaphoreType.java | 245 + .../openecomp/portalsdk/analytics/AntBuild.java | 91 - .../portalsdk/analytics/RaptorObject.java | 44 - .../portalsdk/analytics/config/ConfigLoader.java | 193 - .../portalsdk/analytics/controller/Action.java | 91 - .../analytics/controller/ActionHandler.java | 2417 ------- .../analytics/controller/ActionMapping.java | 34 - .../portalsdk/analytics/controller/Controller.java | 125 - .../analytics/controller/ErrorHandler.java | 151 - .../analytics/controller/WizardProcessor.java | 2356 ------- .../analytics/controller/WizardSequence.java | 191 - .../controller/WizardSequenceCrossTab.java | 45 - .../controller/WizardSequenceDashboard.java | 40 - .../analytics/controller/WizardSequenceLinear.java | 47 - .../controller/WizardSequenceSQLBasedCrossTab.java | 44 - .../controller/WizardSequenceSQLBasedHive.java | 46 - .../controller/WizardSequenceSQLBasedLinear.java | 47 - .../WizardSequenceSQLBasedLinearDatamining.java | 46 - .../portalsdk/analytics/error/RaptorException.java | 35 - .../analytics/error/RaptorRuntimeException.java | 36 - .../analytics/error/RaptorSchedularException.java | 36 - .../analytics/error/ReportSQLException.java | 51 - .../analytics/error/UserAccessException.java | 34 - .../analytics/error/UserDefinedException.java | 36 - .../analytics/error/ValidationException.java | 42 - .../portalsdk/analytics/gmap/line/Line.java | 86 - .../analytics/gmap/line/LineCollection.java | 158 - .../portalsdk/analytics/gmap/line/LineInfo.java | 190 - .../analytics/gmap/map/ColorProperties.java | 119 - .../analytics/gmap/map/GMapProperties.java | 49 - .../analytics/gmap/map/GeoCoordinate.java | 25 - .../portalsdk/analytics/gmap/map/MapConstant.java | 44 - .../portalsdk/analytics/gmap/map/NovaMap.java | 504 -- .../analytics/gmap/map/layer/SwingLayer.java | 235 - .../portalsdk/analytics/gmap/node/Node.java | 178 - .../analytics/gmap/node/NodeCollection.java | 188 - .../portalsdk/analytics/gmap/node/NodeInfo.java | 210 - .../portalsdk/analytics/gmap/utils/MapUtils.java | 70 - .../analytics/gmap/utils/SwingWorker.java | 155 - .../portalsdk/analytics/model/DataCache.java | 516 -- .../portalsdk/analytics/model/ReportHandler.java | 6638 ------------------- .../portalsdk/analytics/model/ReportLoader.java | 1079 ---- .../portalsdk/analytics/model/SearchHandler.java | 479 -- .../analytics/model/base/ChartSeqComparator.java | 49 - .../analytics/model/base/IdNameColLookup.java | 37 - .../portalsdk/analytics/model/base/IdNameList.java | 183 - .../analytics/model/base/IdNameLookup.java | 204 - .../portalsdk/analytics/model/base/IdNameSql.java | 400 -- .../analytics/model/base/IdNameValue.java | 100 - .../analytics/model/base/NameComparator.java | 34 - .../analytics/model/base/OrderBySeqComparator.java | 37 - .../analytics/model/base/OrderSeqComparator.java | 37 - .../analytics/model/base/ReportSecurity.java | 404 -- .../analytics/model/base/ReportUserRole.java | 117 - .../analytics/model/base/ReportWrapper.java | 5719 ----------------- .../analytics/model/definition/DBColumnInfo.java | 76 - .../model/definition/DrillDownParamDef.java | 111 - .../analytics/model/definition/Marker.java | 79 - .../model/definition/ReportDefinition.java | 1471 ----- .../analytics/model/definition/ReportLogEntry.java | 89 - .../analytics/model/definition/ReportMap.java | 86 - .../analytics/model/definition/ReportSchedule.java | 1407 ----- .../analytics/model/definition/SecurityEntry.java | 44 - .../analytics/model/definition/TableJoin.java | 67 - .../analytics/model/definition/TableSource.java | 101 - .../model/definition/wizard/ColumnEditJSON.java | 119 - .../model/definition/wizard/ColumnJSON.java | 41 - .../model/definition/wizard/DefinitionJSON.java | 234 - .../model/definition/wizard/ElementJSON.java | 33 - .../model/definition/wizard/FormEditJSON.java | 131 - .../model/definition/wizard/IdNameBooleanJSON.java | 48 - .../model/definition/wizard/ImportJSON.java | 54 - .../model/definition/wizard/ListJSON.java | 40 - .../model/definition/wizard/MessageJSON.java | 55 - .../model/definition/wizard/NameBooleanJSON.java | 41 - .../model/definition/wizard/QueryJSON.java | 60 - .../model/definition/wizard/QueryResultJSON.java | 70 - .../model/definition/wizard/RaptorError.java | 31 - .../model/definition/wizard/RaptorResponse.java | 50 - .../model/definition/wizard/SearchFieldJSON.java | 41 - .../model/definition/wizard/WizardJSON.java | 29 - .../portalsdk/analytics/model/pdf/PageEvent.java | 256 - .../portalsdk/analytics/model/pdf/PdfBean.java | 242 - .../analytics/model/pdf/PdfReportHandler.java | 1898 ------ .../analytics/model/runtime/BarChartOptions.java | 75 - .../analytics/model/runtime/CategoryAxisJSON.java | 24 - .../analytics/model/runtime/ChartD3Helper.java | 4073 ------------ .../analytics/model/runtime/ChartJSON.java | 460 -- .../analytics/model/runtime/ChartJSONHelper.java | 1550 ----- .../analytics/model/runtime/ChartWebRuntime.java | 423 -- .../model/runtime/CommonChartOptions.java | 81 - .../analytics/model/runtime/ErrorJSONRuntime.java | 58 - .../model/runtime/FlexTimeSeriesChartOptions.java | 38 - .../analytics/model/runtime/FormField.java | 2103 ------- .../analytics/model/runtime/FormatProcessor.java | 369 -- .../portalsdk/analytics/model/runtime/Item.java | 54 - .../analytics/model/runtime/LookupDBInfo.java | 89 - .../analytics/model/runtime/RangeAxisJSON.java | 93 - .../analytics/model/runtime/ReportFormFields.java | 356 -- .../analytics/model/runtime/ReportJSONRuntime.java | 709 --- .../model/runtime/ReportParamDateValueParser.java | 196 - .../analytics/model/runtime/ReportParamValues.java | 369 -- .../runtime/ReportParamValuesForPDFExcel.java | 419 -- .../analytics/model/runtime/ReportRuntime.java | 3401 ---------- .../model/runtime/TimeSeriesChartOptions.java | 62 - .../analytics/model/runtime/VisualManager.java | 69 - .../analytics/model/search/ReportSearchResult.java | 85 - .../model/search/ReportSearchResultJSON.java | 249 - .../analytics/model/search/SearchResult.java | 212 - .../analytics/model/search/SearchResultColumn.java | 256 - .../analytics/model/search/SearchResultField.java | 214 - .../analytics/model/search/SearchResultJSON.java | 86 - .../analytics/model/search/SearchResultRow.java | 92 - .../analytics/scheduler/SchedulerUtil.java | 369 -- .../portalsdk/analytics/scheduler/SendEmail.java | 416 -- .../analytics/scheduler/SendNotifications.java | 462 -- .../portalsdk/analytics/system/AppUtils.java | 344 - .../analytics/system/ConnectionUtils.java | 69 - .../portalsdk/analytics/system/DbUtils.java | 271 - .../portalsdk/analytics/system/ExecuteQuery.java | 61 - .../portalsdk/analytics/system/Globals.java | 2299 ------- .../portalsdk/analytics/system/IAppUtils.java | 177 - .../portalsdk/analytics/system/IDbUtils.java | 36 - .../portalsdk/analytics/system/RDbUtils.java | 35 - .../portalsdk/analytics/system/RemDbUtils.java | 200 - .../analytics/system/fusion/AntBuild.java | 67 - .../analytics/system/fusion/AppUtils.java | 367 -- .../portalsdk/analytics/system/fusion/DbUtils.java | 78 - .../analytics/system/fusion/RemoteDbUtils.java | 57 - .../adapter/AdapterSessionFactoryContainer.java | 39 - .../analytics/system/fusion/adapter/DateUtils.java | 287 - .../system/fusion/adapter/FusionAdapter.java | 121 - .../analytics/system/fusion/adapter/IdName.java | 67 - .../analytics/system/fusion/adapter/Item.java | 55 - .../analytics/system/fusion/adapter/Lookup.java | 85 - .../system/fusion/adapter/RaptorAdapter.java | 367 -- .../system/fusion/adapter/SpringContext.java | 37 - .../fusion/controller/FileServletController.java | 206 - .../analytics/system/fusion/domain/CR_Report.java | 307 - .../analytics/system/fusion/domain/QuickLink.java | 61 - .../system/fusion/domain/RaptorSearch.java | 188 - .../analytics/system/fusion/domain/ReportInfo.java | 159 - .../system/fusion/service/RaptorService.java | 35 - .../system/fusion/service/RaptorServiceImpl.java | 183 - .../system/fusion/web/RaptorController.java | 190 - .../system/fusion/web/RaptorControllerAsync.java | 1775 ------ .../fusion/web/ReportsSearchListController.java | 77 - .../portalsdk/analytics/util/AppConstants.java | 658 -- .../portalsdk/analytics/util/DataSet.java | 177 - .../portalsdk/analytics/util/ExcelColorDef.java | 65 - .../portalsdk/analytics/util/HtmlStripper.java | 157 - .../openecomp/portalsdk/analytics/util/Log.java | 40 - .../portalsdk/analytics/util/RemDbInfo.java | 93 - .../portalsdk/analytics/util/SQLCorrector.java | 343 - .../portalsdk/analytics/util/Scheduler.java | 91 - .../openecomp/portalsdk/analytics/util/Utils.java | 372 -- .../portalsdk/analytics/util/XSSFilter.java | 91 - .../portalsdk/analytics/util/jar/ExtractJar.java | 237 - .../analytics/util/upgrade/SystemUpgrade.java | 127 - .../portalsdk/analytics/view/ColumnHeader.java | 241 - .../portalsdk/analytics/view/ColumnHeaderRow.java | 102 - .../portalsdk/analytics/view/ColumnVisual.java | 74 - .../analytics/view/CrossTabColumnValues.java | 75 - .../analytics/view/CrossTabOrderManager.java | 98 - .../analytics/view/CrossTabTotalValue.java | 56 - .../portalsdk/analytics/view/DataRow.java | 168 - .../portalsdk/analytics/view/DataValue.java | 361 -- .../portalsdk/analytics/view/HtmlFormatter.java | 205 - .../analytics/view/ReportColumnHeaderRows.java | 71 - .../portalsdk/analytics/view/ReportData.java | 813 --- .../portalsdk/analytics/view/ReportDataRows.java | 72 - .../analytics/view/ReportRowHeaderCols.java | 71 - .../portalsdk/analytics/view/RowHeader.java | 121 - .../portalsdk/analytics/view/RowHeaderCol.java | 158 - .../analytics/xmlobj/ChartAdditionalOptions.java | 1178 ---- .../analytics/xmlobj/ChartDrillFormfield.java | 86 - .../analytics/xmlobj/ChartDrillOptions.java | 206 - .../portalsdk/analytics/xmlobj/ColFilterList.java | 93 - .../portalsdk/analytics/xmlobj/ColFilterType.java | 298 - .../analytics/xmlobj/CustomReportType.java | 2011 ------ .../analytics/xmlobj/DashboardEditorList.java | 93 - .../analytics/xmlobj/DashboardEditorReport.java | 172 - .../analytics/xmlobj/DashboardReports.java | 93 - .../analytics/xmlobj/DashboardReportsNew.java | 147 - .../portalsdk/analytics/xmlobj/DataColumnList.java | 95 - .../portalsdk/analytics/xmlobj/DataColumnType.java | 1455 ----- .../portalsdk/analytics/xmlobj/DataSourceList.java | 93 - .../portalsdk/analytics/xmlobj/DataSourceType.java | 281 - .../analytics/xmlobj/DataminingOptions.java | 167 - .../portalsdk/analytics/xmlobj/FormFieldList.java | 120 - .../portalsdk/analytics/xmlobj/FormFieldType.java | 610 -- .../portalsdk/analytics/xmlobj/FormatList.java | 95 - .../portalsdk/analytics/xmlobj/FormatType.java | 366 -- .../analytics/xmlobj/JavascriptItemType.java | 144 - .../portalsdk/analytics/xmlobj/JavascriptList.java | 93 - .../portalsdk/analytics/xmlobj/Marker.java | 167 - .../portalsdk/analytics/xmlobj/ObjectFactory.java | 305 - .../analytics/xmlobj/PDFAdditionalOptions.java | 340 - .../analytics/xmlobj/PredefinedValueList.java | 93 - .../portalsdk/analytics/xmlobj/ReportMap.java | 444 -- .../portalsdk/analytics/xmlobj/Reports.java | 113 - .../portalsdk/analytics/xmlobj/SemaphoreList.java | 93 - .../portalsdk/analytics/xmlobj/SemaphoreType.java | 227 - 404 files changed, 75759 insertions(+), 72153 deletions(-) create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/AntBuild.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/RaptorObject.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/config/ConfigLoader.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Action.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionHandler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionMapping.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Controller.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ErrorHandler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardProcessor.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequence.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceCrossTab.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceDashboard.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceLinear.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedCrossTab.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedHive.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinear.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinearDatamining.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorRuntimeException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorSchedularException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ReportSQLException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserAccessException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserDefinedException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ValidationException.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/Line.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineCollection.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/ColorProperties.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GMapProperties.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GeoCoordinate.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/MapConstant.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/NovaMap.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/layer/SwingLayer.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/Node.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeCollection.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/MapUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/SwingWorker.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/DataCache.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportLoader.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/SearchHandler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ChartSeqComparator.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameColLookup.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameLookup.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameSql.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameValue.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/NameComparator.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderBySeqComparator.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderSeqComparator.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportSecurity.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportUserRole.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DBColumnInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/Marker.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportLogEntry.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportMap.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportSchedule.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/SecurityEntry.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableJoin.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableSource.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ElementJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/IdNameBooleanJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ImportJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ListJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/MessageJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/NameBooleanJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryResultJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorError.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorResponse.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/WizardJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PageEvent.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfBean.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/BarChartOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CategoryAxisJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartD3Helper.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSONHelper.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CommonChartOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormatProcessor.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/Item.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/LookupDBInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/RangeAxisJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportFormFields.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportJSONRuntime.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportParamValues.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ReportRuntime.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/VisualManager.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/ReportSearchResult.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/ReportSearchResultJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/SearchResult.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/SearchResultColumn.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/SearchResultField.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/SearchResultJSON.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/search/SearchResultRow.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SchedulerUtil.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendEmail.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/scheduler/SendNotifications.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/AppUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/ConnectionUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/DbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/ExecuteQuery.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/Globals.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/IAppUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/IDbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/RDbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/RemDbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/AntBuild.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/AppUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/DbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/RemoteDbUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/AdapterSessionFactoryContainer.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/DateUtils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/FusionAdapter.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/IdName.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/Item.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/Lookup.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/RaptorAdapter.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/adapter/SpringContext.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/controller/FileServletController.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/domain/CR_Report.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/domain/QuickLink.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/domain/RaptorSearch.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/domain/ReportInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/service/RaptorService.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/service/RaptorServiceImpl.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorController.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/RaptorControllerAsync.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/system/fusion/web/ReportsSearchListController.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/DataSet.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/ExcelColorDef.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/HtmlStripper.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/Log.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/SQLCorrector.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/Scheduler.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/Utils.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/XSSFilter.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/jar/ExtractJar.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/upgrade/SystemUpgrade.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ColumnHeader.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ColumnHeaderRow.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ColumnVisual.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/CrossTabColumnValues.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/CrossTabOrderManager.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/CrossTabTotalValue.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/DataRow.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/DataValue.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/HtmlFormatter.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ReportColumnHeaderRows.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ReportData.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ReportDataRows.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/ReportRowHeaderCols.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/RowHeader.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/view/RowHeaderCol.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ChartAdditionalOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ChartDrillFormfield.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ChartDrillOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ColFilterList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ColFilterType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/CustomReportType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DashboardEditorList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DashboardEditorReport.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DashboardReports.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DashboardReportsNew.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DataColumnList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DataColumnType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DataSourceList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DataSourceType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/DataminingOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/FormFieldList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/FormFieldType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/FormatList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/FormatType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/JavascriptItemType.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/JavascriptList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/Marker.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ObjectFactory.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/PDFAdditionalOptions.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/PredefinedValueList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/ReportMap.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/Reports.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/SemaphoreList.java create mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/xmlobj/SemaphoreType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/AntBuild.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/RaptorObject.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/config/ConfigLoader.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/Action.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/ActionHandler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/ActionMapping.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/Controller.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/ErrorHandler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardProcessor.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequence.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceCrossTab.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceDashboard.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceLinear.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceSQLBasedCrossTab.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceSQLBasedHive.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceSQLBasedLinear.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/controller/WizardSequenceSQLBasedLinearDatamining.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/RaptorException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/RaptorRuntimeException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/RaptorSchedularException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/ReportSQLException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/UserAccessException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/UserDefinedException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/error/ValidationException.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/line/Line.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/line/LineCollection.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/line/LineInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/ColorProperties.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/GMapProperties.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/GeoCoordinate.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/MapConstant.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/NovaMap.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/map/layer/SwingLayer.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/node/Node.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/node/NodeCollection.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/node/NodeInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/utils/MapUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/gmap/utils/SwingWorker.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/DataCache.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportHandler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportLoader.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/SearchHandler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ChartSeqComparator.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameColLookup.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameLookup.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameSql.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameValue.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/NameComparator.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderBySeqComparator.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderSeqComparator.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportSecurity.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportUserRole.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportWrapper.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DBColumnInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DrillDownParamDef.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/Marker.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportDefinition.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportLogEntry.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportMap.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportSchedule.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/SecurityEntry.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableJoin.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableSource.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/ColumnJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/ElementJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/FormEditJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/IdNameBooleanJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/ImportJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/ListJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/MessageJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/NameBooleanJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/QueryJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/QueryResultJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/RaptorError.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/RaptorResponse.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/wizard/WizardJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfBean.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfReportHandler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/BarChartOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CategoryAxisJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartD3Helper.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSONHelper.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartWebRuntime.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CommonChartOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormField.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SchedulerUtil.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendEmail.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendNotifications.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/AppUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ConnectionUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ExecuteQuery.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/Globals.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IAppUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IDbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RDbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RemDbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AntBuild.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AppUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/DbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/RemoteDbUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/AdapterSessionFactoryContainer.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/DateUtils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/FusionAdapter.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/IdName.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Item.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Lookup.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/RaptorAdapter.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/SpringContext.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/controller/FileServletController.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/domain/CR_Report.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/domain/QuickLink.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/domain/RaptorSearch.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/domain/ReportInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/service/RaptorService.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/service/RaptorServiceImpl.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/web/RaptorController.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/web/RaptorControllerAsync.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/web/ReportsSearchListController.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/AppConstants.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/DataSet.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/ExcelColorDef.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/HtmlStripper.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/Log.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/RemDbInfo.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/SQLCorrector.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/Scheduler.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/Utils.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/XSSFilter.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/jar/ExtractJar.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/util/upgrade/SystemUpgrade.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ColumnHeader.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ColumnHeaderRow.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ColumnVisual.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/CrossTabColumnValues.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/CrossTabOrderManager.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/CrossTabTotalValue.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/DataRow.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/DataValue.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/HtmlFormatter.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportColumnHeaderRows.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportData.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportDataRows.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportRowHeaderCols.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeader.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeaderCol.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartAdditionalOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillFormfield.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/CustomReportType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorReport.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReports.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReportsNew.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataminingOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptItemType.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Marker.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ObjectFactory.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PDFAdditionalOptions.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PredefinedValueList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ReportMap.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Reports.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreList.java delete mode 100644 ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreType.java (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org') diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/AntBuild.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/AntBuild.java new file mode 100644 index 00000000..aee59fc5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/AntBuild.java @@ -0,0 +1,109 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics; + +import java.io.IOException; +import java.net.URL; +import java.util.Iterator; +import java.util.Map; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import java.util.jar.Manifest; + +/** + * @author sundar + * This class is used to get version and Build information when + * user run "java -jar raptor_classes.jar" command. + */ +public class AntBuild { + + public static String buildNum = ""; + + public static void main(String[] args) { + System.out.println("Jar (raptor_classes.jar) Information: "); + readManifest(); + } + + public static void readManifest() { + try { + Class clazz = AntBuild.class; + String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); + URL manifestUrl = new URL("jar:" + classContainer + "!/META-INF/MANIFEST.MF"); + Manifest manifest = new Manifest(manifestUrl.openStream()); + + //JarFile jar = new JarFile("../lib/raptor_classes.jar"); + //Manifest manifest = jar.getManifest(); + + Attributes attribs = manifest.getMainAttributes(); + Iterator it = attribs.entrySet().iterator(); + while(it.hasNext()) { + Map.Entry entry = (Map.Entry) it.next(); + Attributes.Name attributeName = (Attributes.Name) entry.getKey(); + String attributeValue = (String) entry.getValue(); + if (attributeName.toString().equals("Created-By")) + System.out.println("Java HotSpot(TM) Client VM " + " : " + attributeValue); + else if (attributeName.toString().equals("Java-Version")) + System.out.println("Java Version " + " : " + attributeValue); + else if (attributeName.toString().equals("Java-Runtime-Version")) + System.out.println("Java Runtime Version " + " : " + attributeValue); + else if (attributeName.toString().equals("Ant-Version")) + System.out.println(attributeName.toString() + " : " + attributeValue); + else { + if(attributeName.toString().startsWith("Raptor")) { + if (attributeName.toString().startsWith("Raptor-Build-Version")) + buildNum = attributeValue; + System.out.println(attributeName.toString() + " : " + attributeValue); + } + } + } + + } catch (IOException e) { + System.err.println("Cannot read jar-file manifest: " + + e.getMessage()); + } + } + + public static String getBuildNum() { + if (buildNum.length()>0) + return buildNum; + else { + readManifest(); + return buildNum; + } + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/RaptorObject.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/RaptorObject.java new file mode 100644 index 00000000..8a54e8bc --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/RaptorObject.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics; + +public class RaptorObject extends java.lang.Object { + + protected String nvl(String s) { + return (s == null) ? "" : s; + } + + 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"); + } + +} // RaptorObject diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/config/ConfigLoader.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/config/ConfigLoader.java new file mode 100644 index 00000000..af8d3803 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/config/ConfigLoader.java @@ -0,0 +1,206 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.config; + +import java.io.*; +import java.util.*; +import javax.servlet.*; + +import org.onap.portalsdk.analytics.controller.*; +import org.onap.portalsdk.analytics.util.*; + +public class ConfigLoader { + // public static final String RAPTOR_ACTION_MAP = + // "raptor_action_map.properties"; + + private static final String P_FILE_EXTENSION = ".properties"; + + public static final String RAPTOR_PROPERTIES = "raptor"; + + public static final String SQL_PROPERTIES = "sql"; + + public static final String APP_PROPERTIES = "raptor_app"; + + public static final String DB_PROPERTIES = "raptor_db"; + + private static String configFilesPath = "/WEB-INF/conf/"; + + public static final String RAPTOR_PDF_PROPERTIES = "raptor_pdf"; + + private static String raptorActionMapString = + "report.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_run.jsp \n" + + "mobile.report.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |mobile_report_run.jsp \n" + + "report.dashrep1.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportDashRep1 |report_run_dashrep1.jsp \n" + + "report.dashrep2.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportDashRep2 |report_run_dashrep2.jsp \n" + + "report.dashrep3.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportDashRep3 |report_run_dashrep3.jsp \n" + + "report.dashrep4.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportDashRep4 |report_run_dashrep4.jsp \n" + + "report.download |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_xls.jsp \n" + + "report.download.excel2007 |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_xlsx.jsp \n" + + "report.download.page |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_page_xls.jsp \n" + + "report.csv.download |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_csv.jsp \n" + + "report.text.download |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_txt.jsp \n" + + "report.search |org.onap.portalsdk.analytics.controller.ActionHandler|reportSearch |report_search.jsp \n" + + "report.search.execute |org.onap.portalsdk.analytics.controller.ActionHandler|reportSearchExecute |report_search \n" + + "report.search.user |org.onap.portalsdk.analytics.controller.ActionHandler|reportSearchUser |report_search.jsp \n" + + "report.search.public |org.onap.portalsdk.analytics.controller.ActionHandler|reportSearchPublic |report_search.jsp \n" + + "report.search.favorite |org.onap.portalsdk.analytics.controller.ActionHandler|reportSearchFavorites |report_search.jsp \n" + + "report.wizard |org.onap.portalsdk.analytics.controller.ActionHandler|reportWizard |report_wizard \n" + + "report.create |org.onap.portalsdk.analytics.controller.ActionHandler|reportCreate |report_wizard \n" + + "report.import |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_import \n" + + "report.import.save |org.onap.portalsdk.analytics.controller.ActionHandler|reportImportSave |report_wizard \n" + + "report.copy |org.onap.portalsdk.analytics.controller.ActionHandler|reportCopy |report_wizard \n" + + "report.copy.container |org.onap.portalsdk.analytics.controller.ActionHandler|reportCopy |raptor_wizard_container.jsp \n" + + "report.edit |org.onap.portalsdk.analytics.controller.ActionHandler|reportEdit |report_wizard \n" + + "report.delete |org.onap.portalsdk.analytics.controller.ActionHandler|reportDelete |report_search \n" + + "report.popup.field |org.onap.portalsdk.analytics.controller.ActionHandler|reportFormFieldPopup |popup_field.jsp \n" + + "report.popup.map |org.onap.portalsdk.analytics.controller.ActionHandler|reportValuesMapDefPopup |popup_map.jsp \n" + + "report.popup.drilldown.table |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_drill_down_table.jsp \n" + + "report.popup.drilldown.report|org.onap.portalsdk.analytics.controller.ActionHandler|reportDrillDownToReportDefPopup|popup_drill_down_report \n" + + "report.popup.import.semaphore|org.onap.portalsdk.analytics.controller.ActionHandler|importSemaphorePopup |popup_import_semaphore \n" + + "report.popup.semaphore |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_semaphore \n" + + "report.popup.semaphore.save |org.onap.portalsdk.analytics.controller.ActionHandler|saveSemaphorePopup |popup_semaphore \n" + + "report.popup.filter.col |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_filter_col.jsp \n" + + "report.popup.filter.data |org.onap.portalsdk.analytics.controller.ActionHandler|reportFilterDataPopup |popup_filter_data.jsp \n" + + "report.popup.sql |org.onap.portalsdk.analytics.controller.ActionHandler|reportShowSQLPopup |popup_sql \n " + + "report.run.popup |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_run_popup.jsp \n" + + "report.popup.test.cond |org.onap.portalsdk.analytics.controller.ActionHandler|testSchedCondPopup |popup_sql \n" + + "report.popup.testrun.sql |org.onap.portalsdk.analytics.controller.ActionHandler|testRunSQLPopup |popup_testrun_sql \n" + + "report.test.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |test_run_sql \n" + + "report.field.testrun.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |test_field_run_sql \n" + + "report.field.default.testrun.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |default_field_run_sql \n" + + "report.field.date.start.testrun.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |date_start_field_run_sql \n" + + "report.field.date.end.testrun.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |date_end_field_run_sql \n" + + "report.popup.table.cols |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_table_cols \n" + + "refresh.cache |org.onap.portalsdk.analytics.controller.ActionHandler|refreshCache |message.jsp \n" + + "report.message |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |message.jsp \n" + + "report.download.pdf |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_pdf.jsp \n" + + "report.popup.pdfconfig |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_pdf_config.jsp \n" + + "download.all |org.onap.portalsdk.analytics.controller.ActionHandler|downloadAll |close.jsp \n" + + "download.all.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |popup_download_flat_file.jsp \n" + + "download.data.file |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |download_data_file.jsp \n" + + "popup.calendar |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |gtm_calendar.jsp \n" + + "report.folderlist |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |folder_report_list.jsp \n" + + "report.folderlist_iframe |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |folder_report_list_iframe.jsp \n" + + "report.childDropDown |org.onap.portalsdk.analytics.controller.ActionHandler|getChildDropDown |raptor_childdropdown.jsp \n" + + "report.create.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_create_container.jsp \n" + + "report.search.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_search_container.jsp \n" + + "report.search.execute.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_search_execute_container.jsp \n" + + "report.search.user.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_search_user_container.jsp \n" + + "report.search.public.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_search_public_container.jsp \n" + + "report.search.favorite.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_search_favorite_container.jsp \n" + + "report.run.container |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_run_container.jsp \n" + + "report.formfields.run.container |org.onap.portalsdk.analytics.controller.ActionHandler|formFieldRun |report_run_container.jsp \n" + + "report.run.jsp |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_run.jsp \n" + + "report.schedule.multiple |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |wizard_schedule_multiple.jsp \n" + + "report.schedule.submit |org.onap.portalsdk.analytics.controller.ActionHandler|processSchedule |wizard_schedule_only.jsp \n" + + "report.schedule.report.submit |org.onap.portalsdk.analytics.controller.ActionHandler|processScheduleReportList |wizard_schedule_only.jsp \n" + + "report.schedule.report.submit_wmenu |org.onap.portalsdk.analytics.controller.ActionHandler|processScheduleReportList |wizard_schedule_only_from_search.jsp \n" + + "report.schedule_only |org.onap.portalsdk.analytics.controller.ActionHandler|processSchedule |wizard_schedule_only \n" + + "report.schedule_only_from_search |org.onap.portalsdk.analytics.controller.ActionHandler|processSchedule |wizard_schedule_only_from_search.jsp \n" + + "report.schedule_delete |org.onap.portalsdk.analytics.controller.ActionHandler|processScheduleDelete |report_run_container.jsp \n" + + "report.schedule.submit_from_search |org.onap.portalsdk.analytics.controller.ActionHandler|processSchedule |wizard_schedule_only_from_search.jsp \n" + + "report.dashboard.detail |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |dashboard_report_run_detail.jsp \n" + + "report.csv.download.direct |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_csv.jsp \n" + + "report.csv.download.direct |org.onap.portalsdk.analytics.controller.ActionHandler|reportRun |report_download_csv.jsp \n" + + "report.download.csv.session |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_download_csv \n" + + "report.download.excel2007.session |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_download_xlsx.jsp \n" + + "report.download.excel.session |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_download_xls.jsp \n" + + "report.download.pdf.session |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_download_pdf.jsp \n" + + "report.download.page.session |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_download_page_xls.jsp \n" + + "report.data.remove.session |org.onap.portalsdk.analytics.controller.ActionHandler|removeReportDataFromSession |report_run_container.jsp \n" + + "report.dashboard.run.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_dashboard_run_container.jsp \n" + + "chart.force.cluster |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |force_cluster.jsp \n" + + "chart.run |org.onap.portalsdk.analytics.controller.ActionHandler|reportChartRun |report_run_container.jsp \n" + + "chart.json |org.onap.portalsdk.analytics.controller.ActionHandler|reportChartRun |report_run_container.jsp \n" + + "chart.data.json |org.onap.portalsdk.analytics.controller.ActionHandler|reportChartDataRun |report_run_container.jsp \n" + + "quicklinks.json |org.onap.portalsdk.analytics.controller.ActionHandler|getQuickLinksJSON |report_run_container.jsp \n" + + "embed.run |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_embed_run_container.zul \n" + + "schedule.edit |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |wizard_adhoc_schedule.zul \n" + + "chart.annotations.run |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |plugin_chart_annotation.jsp \n" + + "chart.annotations.exec |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |chart_annotations.jsp \n" + + "chart.mini |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |chart_minified.jsp \n" + + "report.olap.run.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_olap_run_container.jsp \n" + + "report.hive.run.container |org.onap.portalsdk.analytics.controller.ActionHandler|gotoJsp |report_hive_run_container.jsp \n" + + ; + + private ConfigLoader() { + } + + public static void setConfigFilesPath(String path) { + configFilesPath = path; + } // setConfigFilesPath + + public static Properties getProperties(ServletContext servletContext, String propertiesFile) + throws IOException { + return getProperties(servletContext, propertiesFile, null); + } // getProperties + + public static Properties getProperties(ServletContext servletContext, + String propertiesFile, String systemTypeExtension) throws IOException { + Properties p = new Properties(); + p.load(servletContext.getResourceAsStream(configFilesPath + propertiesFile + + ((systemTypeExtension == null) ? "" : "_" + systemTypeExtension) + + P_FILE_EXTENSION)); + return p; + } // getProperties + + public static ActionMapping loadRaptorActionMapping(ServletContext servletContext) + throws IOException { + ActionMapping actionMapping = new ActionMapping(); + + String pLine = null; + // BufferedReader pFile = new BufferedReader(new + // InputStreamReader(servletContext.getResourceAsStream(internalFilesPath+RAPTOR_ACTION_MAP))); + BufferedReader pFile = new BufferedReader(new StringReader(raptorActionMapString)); + while ((pLine = pFile.readLine()) != null) + if (pLine.trim().length() > 0) + try { + actionMapping.addAction(Action.parse(pLine)); + } catch (Exception e) { + Log + .write("[ConfigLoader.loadRaptorActionMapping] Error - unable to parse action [" + + pLine + "]"); + } + pFile.close(); + + return actionMapping; + } // loadRaptorActionMapping + +} // ConfigLoader + diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Action.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Action.java new file mode 100644 index 00000000..2ab3be26 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Action.java @@ -0,0 +1,109 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; + +public class Action extends org.onap.portalsdk.analytics.RaptorObject { + private String action = null; + + private String controllerClass = null; + + private String controllerMethod = null; + + private String jspName = null; + + private Action() { + } + + public Action(String action, String controllerClass, String controllerMethod, + String jspName) { + setAction(action); + setControllerClass(controllerClass); + setControllerMethod(controllerMethod); + setJspName(jspName); + } // Action + + public static Action parse(String configFileEntry) { + Action a = new Action(); + + StringTokenizer st = new StringTokenizer(configFileEntry, "| \t", false); + // if(st.hasMoreTokens()) + a.setAction(st.nextToken()); + a.setControllerClass(st.nextToken()); + a.setControllerMethod(st.nextToken()); + a.setJspName(st.nextToken()); + + return a; + } // parse + + public String getAction() { + return action; + } + + public String getControllerClass() { + return controllerClass; + } + + public String getControllerMethod() { + return controllerMethod; + } + + public String getJspName() { + return jspName; + } + + private void setAction(String action) { + this.action = action; + } + + private void setControllerClass(String controllerClass) { + this.controllerClass = controllerClass; + } + + private void setControllerMethod(String controllerMethod) { + this.controllerMethod = controllerMethod; + } + + private void setJspName(String jspName) { + this.jspName = jspName; + } + +} // Action diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionHandler.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionHandler.java new file mode 100644 index 00000000..0d5ef418 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionHandler.java @@ -0,0 +1,2434 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * ActionHandler.java - This class is used to call actions related to reports. + * ------------------------------------------------------------------------------------------- + * + * + * + * Changes + * ------- + * 31-Aug-2009 : Version 8.5.1 (Sundar); + * 18-Aug-2009 : Version 8.5.1 (Sundar); + * 13-Aug-2009 : Version 8.5 (Sundar); + * 06-Aug-2009 : Version 9.0 (Sundar); + * 29-Jul-2009 : Version 8.4 (Sundar); + * 27-Jul-2009 : Version 8.4 (Sundar); + * 14-Jul-2009 : Version 8.4 (Sundar); + * + */ +package org.onap.portalsdk.analytics.controller; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeMap; +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.RaptorRuntimeException; +import org.onap.portalsdk.analytics.error.RaptorSchedularException; +import org.onap.portalsdk.analytics.error.ReportSQLException; +import org.onap.portalsdk.analytics.error.UserDefinedException; +import org.onap.portalsdk.analytics.error.ValidationException; +import org.onap.portalsdk.analytics.model.DataCache; +import org.onap.portalsdk.analytics.model.ReportHandler; +import org.onap.portalsdk.analytics.model.ReportLoader; +import org.onap.portalsdk.analytics.model.SearchHandler; +import org.onap.portalsdk.analytics.model.base.IdNameColLookup; +import org.onap.portalsdk.analytics.model.base.IdNameList; +import org.onap.portalsdk.analytics.model.base.IdNameSql; +import org.onap.portalsdk.analytics.model.base.ReportSecurity; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.definition.ReportSchedule; +import org.onap.portalsdk.analytics.model.runtime.ChartWebRuntime; +import org.onap.portalsdk.analytics.model.runtime.ErrorJSONRuntime; +import org.onap.portalsdk.analytics.model.runtime.FormField; +import org.onap.portalsdk.analytics.model.runtime.FormatProcessor; +import org.onap.portalsdk.analytics.model.runtime.ReportFormFields; +import org.onap.portalsdk.analytics.model.runtime.ReportJSONRuntime; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.model.runtime.VisualManager; +import org.onap.portalsdk.analytics.model.search.ReportSearchResultJSON; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.system.fusion.domain.QuickLink; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.view.DataRow; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.view.ReportData; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +public class ActionHandler extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ActionHandler.class); + + private void preserveReportRuntimeAsBackup(HttpServletRequest request) { + HttpSession session = request.getSession(); + ArrayList repAl = null; + + if(session.getAttribute(AppConstants.DRILLDOWN_REPORTS_LIST)!=null) + repAl = ((ArrayList)session.getAttribute(AppConstants.DRILLDOWN_REPORTS_LIST)); + int index = Integer.parseInt(nvl((String) session.getAttribute(AppConstants.DRILLDOWN_INDEX), "0")); + int form_index = Integer.parseInt(nvl((String) session.getAttribute(AppConstants.FORM_DRILLDOWN_INDEX), "0")); + int flag = 0; + if(repAl ==null || repAl.size() <= 0) { + //session.setAttribute(AppConstants.SI_BACKUP_FOR_REP_ID, ((ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID()); + //session.setAttribute(AppConstants.SI_REPORT_RUN_BACKUP, request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)); + repAl = new ArrayList(); + repAl.add((ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)); + + } else { + if(Globals.getMaxDrillDownLevel() < repAl.size()) { + repAl.remove(0); + if(index > 0) index--; + } else if(index < repAl.size()) + repAl.remove(index); + repAl.add(index, (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)); + } + index = index + 1; + // needed to differentiate form and report index to store form parameters for ZK + form_index = form_index + 1; + session.setAttribute(AppConstants.FORM_DRILLDOWN_INDEX, Integer.toString(form_index)); + session.setAttribute(AppConstants.DRILLDOWN_INDEX, Integer.toString(index)); + request.getSession().setAttribute(AppConstants.DRILLDOWN_REPORTS_LIST, repAl); + } // preserveReportRuntimeAsBackup + + private void clearReportRuntimeBackup(HttpServletRequest request) { +// debugLogger.debug("in Action Handler clear is been called."); + HttpSession session = request.getSession(); + session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); + session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); + request.removeAttribute(AppConstants.DRILLDOWN_INDEX); + request.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX); + Enumeration enum1 = session.getAttributeNames(); + String attributeName = ""; + while(enum1.hasMoreElements()) { + attributeName = enum1.nextElement(); + if(attributeName.startsWith("parent_")) { + session.removeAttribute(attributeName); + } + } + //request.getSession().removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP); + //request.getSession().removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID); + } // clearReportRuntimeBackup + + private boolean isDashboardInDrillDownList(HttpServletRequest request) throws RaptorException { + ArrayList aL = (ArrayList) request.getSession().getAttribute( + AppConstants.DRILLDOWN_REPORTS_LIST); + ReportRuntime rr = null; + if(aL ==null || aL.size() <= 0) { + return false; + } else { + for (int i =0; i0 ? --index : 0; + form_index = form_index>0 ? --form_index : 0; + request.setAttribute(AppConstants.DRILLDOWN_INDEX, Integer.toString(index)); + session.setAttribute(AppConstants.DRILLDOWN_INDEX, Integer.toString(index)); + request.setAttribute(AppConstants.FORM_DRILLDOWN_INDEX, Integer.toString(form_index)); + session.setAttribute(AppConstants.FORM_DRILLDOWN_INDEX, Integer.toString(form_index)); + + rr = (ReportRuntime)aL.get(index); + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); + //clearReportRuntimeBackup(request); + //} + return rr; + } // getReportRuntimeFromBackup + + public String reportRun(HttpServletRequest request, String nextPage) { + String action = nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action")); + ReportRuntime rr = null; + String userId = null; + String formFields = ""; + ReportData rd = null; + boolean isEmailAttachment = false; + boolean fromDashboard = AppUtils.getRequestFlag(request,"fromDashboard"); + request.getSession().setAttribute("login_id", AppUtils.getUserBackdoorLoginId(request)); + + boolean rDisplayContent = AppUtils.getRequestFlag(request, + AppConstants.RI_DISPLAY_CONTENT) + || AppUtils.getRequestFlag(request, "noFormFields"); + + try { + //if "refresh=Y" is in request parameter, session variables are removed. + if(AppUtils.getRequestFlag(request, AppConstants.RI_REFRESH)) { + removeVariablesFromSession(request); + } + + + long currentTime = System.currentTimeMillis(); + request.setAttribute("triggeredStartTime", new Long(currentTime)); + String actionKey = nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action")); + String pdfAttachmentKey = AppUtils.getRequestNvlValue(request, "pdfAttachmentKey"); + String parent = ""; + int parentFlag = 0; + if(!nvl(request.getParameter("parent"), "").equals("N")) parent = nvl(request.getParameter("parent"), ""); + if(parent.startsWith("parent_")) parentFlag = 1; + + if (pdfAttachmentKey.length()<=0) { + if(actionKey.equals("report.download.page") || actionKey.equals("report.download") || actionKey.equals("report.download.pdf") || actionKey.equals("report.download.excel2007") || actionKey.equals("report.csv.download") || actionKey.equals("report.text.download")) { + if(parentFlag == 1) rr = (ReportRuntime) request.getSession().getAttribute(parent+"_rr"); + if(rr==null) + rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); //changing session to request + if(!(rr!=null && fromDashboard)) { + userId = AppUtils.getUserID(request); + boolean isFromReportLog = AppUtils.getRequestFlag(request, "fromReportLog"); + int downloadLimit = 0; + if(rr!=null) + downloadLimit = (rr.getMaxRowsInExcelDownload()>0)?rr.getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + if(actionKey.equals("report.csv.download")) + downloadLimit = Globals.getCSVDownloadLimit(); + + if(rr!=null && rr.getReportType().equals(AppConstants.RT_LINEAR)) { + String sql_whole = rr.getReportDataSQL(userId, downloadLimit, request); + request.setAttribute(AppConstants.RI_REPORT_SQL_WHOLE, sql_whole); + } else if(rr!=null && rr.getReportType().equals(AppConstants.RT_CROSSTAB)) { + rd = rr.loadReportData(-1, userId, downloadLimit,request, false); /* TODO: should be changed to true */ + request.getSession().setAttribute(AppConstants.RI_REPORT_DATA, rd); + } + if(!isFromReportLog) { + if(pdfAttachmentKey!=null && pdfAttachmentKey.length()>0) { + if(actionKey.equals("report.download")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_SCHEDULED_DOWNLOAD_EXCEL, formFields); + } else if (actionKey.equals("report.download.pdf")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_SCHEDULED_DOWNLOAD_PDF, formFields); + } else if (actionKey.equals("report.download.excel2007")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_SCHEDULED_DOWNLOAD_EXCELX, formFields); + } + } else { + if(actionKey.equals("report.download") ) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_EXCEL, formFields); + } else if (actionKey.equals("report.download.pdf")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_PDF, formFields); + } else if (actionKey.equals("report.csv.download")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_CSV, formFields); + } else if (actionKey.equals("report.text.download")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_TEXT, formFields); + } else if (actionKey.equals("report.download.page")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_PAGE_EXCEL, formFields); + } else if (actionKey.equals("report.download.excel2007")) { + rr.logReportExecutionTime(userId, "",AppConstants.RLA_DOWNLOAD_EXCELX, formFields); + } + } + } + return nextPage; + } + + } + }// pdfAttachmentKey + String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); //changing session to request + + String reportIDFromSession = (rr!=null)?rr.getReportID():""; + logger.debug(EELFLoggerDelegate.debugLogger, ("in Action Handler ********** " + reportID + " " + reportIDFromSession + " "+ actionKey)); +// ReportRuntime rr = (ReportRuntime) request.getAttribute(AppConstants.SI_REPORT_RUNTIME); + logger.debug(EELFLoggerDelegate.debugLogger, ("^^^^^^^^^^^^^^report ID from session " + ((rr!=null)?rr.getReportID():"no report id in session"))); + // if(rr!=null && !(rr.getReportID().equals(reportID))) { +// rr = null; +// request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, null); +// } + + ReportHandler rh1 = new ReportHandler(); + ReportRuntime rr1 = null; + + //debugLogger.debug("Report ID B4 rr1 in ActionHandler " + // + ( request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null?((ReportRuntime)request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID():"Not in session")); + + + //try { + boolean isGoBackAction = AppUtils.getRequestFlag(request, AppConstants.RI_GO_BACK); + + if (AppUtils.getRequestFlag(request, AppConstants.RI_SHOW_BACK_BTN) && !isGoBackAction) { + // debugLogger.debug("Preserving report"); + if(!reportID.equals(reportIDFromSession)) + preserveReportRuntimeAsBackup(request); + } + + if(reportID !=null) + rr1 = rh1.loadReportRuntime(request, reportID, true, 1); + //} catch(Exception e) { + + // } +// debugLogger.debug("Report ID After rr1 in ActionHandler " +// + ( request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null?((ReportRuntime)request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID():"Not in session")); + if(rr1!=null && rr1.getReportType().equals(AppConstants.RT_DASHBOARD)) { + int DASH=7; + int requestFlag = DASH; + ReportHandler rh = new ReportHandler(); + // Added below statement to add parent dashboard report id in session. + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REP_ID, reportID); + //rr = null; + // get dashboard HTML from report runtime. getListOfReportsFromDashBoardHTML + String strHTML = rr1.getDashboardLayoutHTML(); + + //System.out.println("StrHTML " + strHTML); + // call getListOfReportsFromDashBoardHTML returns HashMap + + TreeMap treeMap = getListOfReportsFromDashBoardHTML(strHTML); + //System.out.println("Size " + hashMap.size()); + Set set = treeMap.entrySet(); + String value = ""; + + HashMap reportsRuntimeMap = new HashMap(); + HashMap reportDataMap = new HashMap(); + HashMap reportChartDataMap = new HashMap(); + // displayTypeMap differentiates whether report need to be displayed as data or chart + HashMap reportDisplayTypeMap = new HashMap(); + + userId = null; + userId = AppUtils.getUserID(request); + int pageNo = -1; + //int downloadLimit = (rr1.getMaxRowsInExcelDownload()>0)?rr1.getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + int downloadLimit = 0; + int rep_idx = 0; + int widthFlag = 0; + int heightFlag = 0; + ReportRuntime rrDashboardReports = null; + Integer intObj = null; + ReportRuntime similiarReportRuntime = null; + rd = null; + DataSet ds = null; + String reportIDFromMap = null; + int record = 0; + boolean buildReportdata = true; + + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + record++; + Map.Entry entry = (Entry) iter.next(); + //System.out.println("Key "+ entry.getKey()); + //System.out.println("Value "+ entry.getValue()); + reportIDFromMap = entry.getValue().toString().substring(1); + // The below line is used to optimize, so that if there is already same report id it wouldn't go through the whole process + similiarReportRuntime = getSimiliarReportRuntime(reportsRuntimeMap, reportIDFromMap); + if(similiarReportRuntime != null ) { + rrDashboardReports = (ReportRuntime) getSimiliarReportRuntime(reportsRuntimeMap, reportIDFromMap).clone(); + intObj = getKey(reportsRuntimeMap,reportIDFromMap); + } else { + rrDashboardReports = rh.loadReportRuntime(request, reportIDFromMap, true, requestFlag); + } + if(entry.getValue().toString().toLowerCase().startsWith("c")) { + rrDashboardReports.setDisplayMode(ReportRuntime.DISPLAY_CHART_ONLY); + } else { + rrDashboardReports.setDisplayMode(ReportRuntime.DISPLAY_DATA_ONLY); + } + + downloadLimit = (rrDashboardReports.getMaxRowsInExcelDownload()>0)?rrDashboardReports.getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + if (new Integer(nvl(rrDashboardReports.getDataContainerWidth(),"100")).intValue() >100) widthFlag = 1; + if (new Integer(nvl(rrDashboardReports.getDataContainerHeight(),"100")).intValue() >100) heightFlag = 1; + + if(record == 1) { + if(rrDashboardReports.getReportFormFields()!=null && rrDashboardReports.getReportFormFields().size()>0) { + buildReportdata = false; + if(rDisplayContent) buildReportdata = true; + } + } + + if(buildReportdata) { + if(similiarReportRuntime != null ) { + rd = (ReportData) reportDataMap.get(intObj); + ds = (DataSet) reportChartDataMap.get(intObj); + } else { + if (!rrDashboardReports.getReportType().equals(AppConstants.RT_HIVE)) + rd = rrDashboardReports.loadReportData(pageNo, userId, downloadLimit,request, false /*download*/); + else + rd = rrDashboardReports.loadHiveLinearReportData(rrDashboardReports.getReportSQL(), userId, 2,request); + ds = rrDashboardReports.loadChartData(userId,request); + } + } + + + long totalTime = System.currentTimeMillis() - currentTime; + formFields = AppUtils.getRequestNvlValue(request, "formFields"); + if(buildReportdata) { + rrDashboardReports.logReportRun(userId, String.valueOf(totalTime),formFields); + rrDashboardReports.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_EXECUTION_TIME, formFields); + } + + /*reportsRuntimeMap.put(new Integer(entry.getKey().toString()), rrDashboardReports); + reportDataMap.put(new Integer(entry.getKey().toString()), rd); + reportChartDataMap.put(new Integer(entry.getKey().toString()), ds); + reportDisplayTypeMap.put(new Integer(entry.getKey().toString()), entry.getValue().toString().substring(0,1));*/ + + reportsRuntimeMap.put(new Integer(entry.getKey().toString())+"_"+rrDashboardReports.getReportID(), rrDashboardReports); + reportDisplayTypeMap.put(new Integer(entry.getKey().toString())+"_"+rrDashboardReports.getReportID(), entry.getValue().toString().substring(0,1)); + if(buildReportdata) { + reportDataMap.put(new Integer(entry.getKey().toString())+"_"+rrDashboardReports.getReportID(), rd); + reportChartDataMap.put(new Integer(entry.getKey().toString())+"_"+rrDashboardReports.getReportID(), ds); + } + + } + + /*if(widthFlag ==1) request.getSession().setAttribute("extendedWidth", "Y"); + else request.getSession().removeAttribute("extendedWidth"); + if(heightFlag ==1) request.getSession().setAttribute("extendedHeight", "Y"); + else request.getSession().removeAttribute("extendedHeight"); + */ + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP, new TreeMap(reportsRuntimeMap)); + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP, new TreeMap(reportDisplayTypeMap)); + if(buildReportdata) { + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP, new TreeMap(reportDataMap)); + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP, new TreeMap(reportChartDataMap)); + } +// debugLogger.debug("I am inside this if " + rr1.getReportType() + " "+rr1.getReportID()); + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr1); //changing session to request + //request.setAttribute(AppConstants.SI_REPORT_RUNTIME, rr1); + if((String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!= null || rr1.getReportType().equals(AppConstants.RT_DASHBOARD)) { + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME, rr1); + } + + return "raptor/report_dashboard_run_container.jsp"; + } else { + fromDashboard = AppUtils.getRequestFlag(request,"fromDashboard"); + if(isDashboardInDrillDownList(request)) fromDashboard= true; + + if(!fromDashboard) { + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP); + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP); + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP); + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP); + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_REP_ID); + request.getSession().removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME); + request.getSession().removeAttribute(AppConstants.EMBEDDED_REPORTRUNTIME_MAP); + request.getSession().removeAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP); + } + //String pdfAttachmentKey = AppUtils.getRequestValue(request, "pdfAttachmentKey"); + String report_email_sent_log_id = AppUtils.getRequestValue(request, "log_id"); + logger.debug(EELFLoggerDelegate.debugLogger, ("Email PDF" + pdfAttachmentKey+" "+ report_email_sent_log_id)); + + //email pdf attachment specific + if(nvl(pdfAttachmentKey).length()>0 && report_email_sent_log_id !=null) + isEmailAttachment = true; + if(isEmailAttachment) { + /* String query = "Select user_id, rep_id from CR_REPORT_EMAIL_SENT_LOG" + + " where rownum = 1" + + " and gen_key='"+pdfAttachmentKey.trim()+"'" + + " and log_id ="+report_email_sent_log_id.trim() + + " and (sysdate - sent_date) < 1 ";*/ + + + String query = Globals.getDownloadAllEmailSent(); + query = query.replace("[pdfAttachmentKey.trim()]", pdfAttachmentKey.trim()); + query = query.replace("[report_email_sent_log_id.trim()]", report_email_sent_log_id.trim()); + + DataSet ds = DbUtils.executeQuery(query, 1); + if(!ds.isEmpty()) { + userId = ds.getString(0,"user_id"); + reportID = ds.getString(0, "rep_id"); + request.setAttribute("schedule_email_userId", userId); + } else { + request.setAttribute("message", "This link has expired, please login and regenerate the report"); + return "raptor/message.jsp"; + } + } else userId = AppUtils.getUserID(request); +// debugLogger.debug("Report ID b4 showbutton in ActionHandler " +// + ( request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null?((ReportRuntime)request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID():"Not in session")); +// debugLogger.debug("Report ID " + reportID + " " + reportIDFromSession); + + // Scheduling Dashoard report + if(reportID !=null && nvl(pdfAttachmentKey).length()>0) + rr = rh1.loadReportRuntime(request, reportID, true, 1); + if(rr!=null && rr.getReportType().equals(AppConstants.RT_DASHBOARD) && nvl(pdfAttachmentKey).length()>0) { + int DASH=7; + int requestFlag = DASH; + ReportHandler rh = new ReportHandler(); + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REP_ID, reportID); + //rr = null; + // get dashboard HTML from report runtime. getListOfReportsFromDashBoardHTML + String strHTML = rr.getDashboardLayoutHTML(); + //System.out.println("StrHTML " + strHTML); + // call getListOfReportsFromDashBoardHTML returns HashMap + + TreeMap treeMap = getListOfReportsFromDashBoardHTML(strHTML); + //System.out.println("Size " + hashMap.size()); + Set set = treeMap.entrySet(); + String value = ""; + + HashMap reportsRuntimeMap = new HashMap(); + HashMap reportDataMap = new HashMap(); + HashMap reportChartDataMap = new HashMap(); + HashMap reportDisplayTypeMap = new HashMap(); + + userId = null; + userId = AppUtils.getUserID(request); + int pageNo = -1; + int downloadLimit = 0; + int rep_idx = 0; + int widthFlag = 0; + int heightFlag = 0; + ReportRuntime rrDashboardReports = null; + Integer intObj = null; + ReportRuntime similiarReportRuntime = null; + rd = null; + DataSet ds = null; + String reportIDFromMap = null; + int record = 0; + boolean buildReportdata = true; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + record++; + Map.Entry entry = (Entry) iter.next(); + + reportIDFromMap = entry.getValue().toString().substring(1); + similiarReportRuntime = getSimiliarReportRuntime(reportsRuntimeMap, reportIDFromMap); + if(similiarReportRuntime != null ) { + rrDashboardReports = getSimiliarReportRuntime(reportsRuntimeMap, reportIDFromMap); + intObj = getKey(reportsRuntimeMap,reportIDFromMap); + } else { + rrDashboardReports = rh.loadReportRuntime(request, reportIDFromMap, true, requestFlag); + } + + downloadLimit = (rrDashboardReports.getMaxRowsInExcelDownload()>0)?rrDashboardReports.getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + + if (new Integer(nvl(rrDashboardReports.getDataContainerWidth(),"100")).intValue() >100) widthFlag = 1; + if (new Integer(nvl(rrDashboardReports.getDataContainerHeight(),"100")).intValue() >100) heightFlag = 1; + if(record == 1) { + if(rrDashboardReports.getReportFormFields()!=null && rrDashboardReports.getReportFormFields().size()>0) { + buildReportdata = false; + if(rDisplayContent) buildReportdata = true; + } + } + if(buildReportdata) { + if(similiarReportRuntime != null ) { + rd = (ReportData) reportDataMap.get(intObj); + ds = (DataSet) reportChartDataMap.get(intObj); + } else { + + if (!rrDashboardReports.getReportType().equals(AppConstants.RT_HIVE)) + rd = rrDashboardReports.loadReportData(pageNo, userId, downloadLimit,request, false /*download*/); + else + rd = rrDashboardReports.loadHiveLinearReportData(rrDashboardReports.getReportSQL(), userId, 2,request); + ds = rrDashboardReports.loadChartData(userId,request); + } + } + + + + long totalTime = System.currentTimeMillis() - currentTime; + formFields = AppUtils.getRequestNvlValue(request, "formFields"); + + rrDashboardReports.logReportRun(userId, String.valueOf(totalTime),formFields); + rrDashboardReports.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_EXECUTION_TIME, formFields); + + reportsRuntimeMap.put(new Integer(entry.getKey().toString()), rrDashboardReports); + reportDisplayTypeMap.put(new Integer(entry.getKey().toString()), entry.getValue().toString().substring(0,1)); + if(buildReportdata) { + reportDataMap.put(new Integer(entry.getKey().toString()), rd); + reportChartDataMap.put(new Integer(entry.getKey().toString()), ds); + //reportDisplayTypeMap.put(new Integer(entry.getKey().toString()), entry.getValue().toString().substring(0,1)); + } + } + + /*if(widthFlag ==1) request.getSession().setAttribute("extendedWidth", "Y"); + else request.getSession().removeAttribute("extendedWidth"); + if(heightFlag ==1) request.getSession().setAttribute("extendedHeight", "Y"); + else request.getSession().removeAttribute("extendedHeight"); + */ + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP, new TreeMap(reportsRuntimeMap)); + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); //changing session to request + if(buildReportdata) { + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP, new TreeMap(reportDisplayTypeMap)); + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP, new TreeMap(reportDataMap)); + request.getSession().setAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP, new TreeMap(reportChartDataMap)); + } + //request.setAttribute(AppConstants.SI_REPORT_RUNTIME, rr1); + //return nextPage; + } else { + + // Ends + + +// debugLogger.debug("Action Handler *****************" + new java.util.Date()+ " " + isGoBackAction); + ReportHandler rh = new ReportHandler(); + //rr = null; // COMMENT THIS LINE + boolean resetParams = AppUtils.getRequestFlag(request, + AppConstants.RI_RESET_PARAMS); + boolean resetAction = AppUtils.getRequestFlag(request, + AppConstants.RI_RESET_ACTION); + boolean refresh = false; + if (resetAction) { + rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + resetParams=true; + refresh = true; + if(rr!=null) { + rr.setParamValues(request, resetParams,refresh); + request.getSession().removeAttribute(AppConstants.RI_REPORT_DATA); + rr.resetVisualSettings(); + } + return nextPage; + } + + /*if (isGoBackAction) { +// debugLogger.debug("Report back in action handler " + ((ReportRuntime) request.getSession().getAttribute( +// AppConstants.SI_REPORT_RUN_BACKUP))!=null?((ReportRuntime) request.getSession().getAttribute( +// AppConstants.SI_REPORT_RUN_BACKUP)).getReportID():((ReportRuntime) request.getSession().getAttribute( +// AppConstants.SI_REPORT_RUN_BACKUP))); + rr = null; + rr = getReportRuntimeFromBackup(request); + if (rr == null) + throw new Exception("[ActionHandler.reportRun] Report backup not found"); + reportID = rr.getReportID(); + } else {*/ + + logger.debug(EELFLoggerDelegate.debugLogger, ("Ocurring during Schedule ")); + //TODO differentiate Schedule with other actions +// if(isEmailAttachment) { +// +// } else { +// +// } + rr = rh.loadReportRuntime(request, reportID); + //setParamValues called for Drilldown to display formfield + //rr.setParamValues(request, false,true); + + //} // else + + ArrayList aL = (ArrayList)request.getSession().getAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); + ReportRuntime aLR = null; + if(aL != null) { +// for (int i = 1; i < aL.size(); i++) { +// aLR = (ReportRuntime) aL.get(i); +// if (!aLR.getReportID().equals(reportID)) { +// request.setAttribute(AppConstants.RI_SHOW_BACK_BTN, "Y"); +// } +// } +// if(reportID.equals(reportIDFromSession)) { + aLR = (ReportRuntime) aL.get(0); + if (aLR!=null && !aLR.getReportID().equals(reportID)) { + request.setAttribute(AppConstants.RI_SHOW_BACK_BTN, "Y"); + } +// } + } + + if(rDisplayContent) + rr.setDisplayFlags(true, true); + + if (rr.getDisplayContent()) { + int pageNo = 0; + if (isGoBackAction) + pageNo = rr.getCachedPageNo(); + else { + try { + pageNo = Integer.parseInt(AppUtils.getRequestNvlValue(request, AppConstants.RI_NEXT_PAGE)); + } catch (Exception e) { + } + + String vAction = AppUtils.getRequestNvlValue(request, + AppConstants.RI_VISUAL_ACTION); + String vCoId = AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID); + if (vAction.equals(AppConstants.VA_HIDE)) + rr.hideColVisual(vCoId); + else if (vAction.equals(AppConstants.VA_SHOW)) + rr.showColVisual(vCoId); + else if (vAction.equals(AppConstants.VA_SORT)) { + rr.sortColVisual(vCoId); + pageNo = 0; + } // else + } // else + + int downloadLimit = (rr.getMaxRowsInExcelDownload()>0)?rr.getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + if(isEmailAttachment) { + String limit = nvl(request.getParameter("download_limit"),"1000"); + downloadLimit = Integer.parseInt(limit); + } + //if (action.startsWith("mobile")) rr.setPageSize(5); + long reportTime = System.currentTimeMillis(); + if (!rr.getReportType().equals(AppConstants.RT_HIVE)) + rd = rr.loadReportData(pageNo, userId, downloadLimit,request,false /*download*/); + else + rd = rr.loadHiveLinearReportData(rr.getReportSQL(), userId, 2,request); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] ------->Time Taken for the loading report data --- " + (System.currentTimeMillis() - reportTime))); + ReportData rd_whole = null; + boolean hideReportMap = rr.isDisplayOptionHideMap()||AppUtils.getRequestNvlValue(request, "noMap").equals("Y"); +/* if (Globals.getMapAllowedYN().equals("Y") && !hideReportMap && rr.getReportMap()!=null){ + rd_whole = rr.loadReportData(-1, userId, downloadLimit,request); + } +*/ + request.getSession().setAttribute(AppConstants.RI_REPORT_DATA, rd); + //if (Globals.getMapAllowedYN().equals("Y") && !hideReportMap && (rr.getReportMap()!=null && rr.getReportMap().getLatColumn()!=null && rr.getReportMap().getLongColumn()!=null)) { + if(rr!=null && rr.getReportType().equals(AppConstants.RT_LINEAR)) { + String sql_whole = rr.getReportDataSQL(userId, downloadLimit, request); + request.setAttribute(AppConstants.RI_REPORT_SQL_WHOLE, sql_whole); + } else if(rr.getReportType().equals(AppConstants.RT_HIVE)) { + String sql_whole = rr.getReportSQL(); + request.setAttribute(AppConstants.RI_REPORT_SQL_WHOLE, sql_whole); + } + //} + //request.setAttribute(AppConstants.RI_REPORT_DATA_WHOLE, rd_whole); + // if(rr.getReportDataSize() > Globals.getFlatFileLowerLimit() && rr.getReportDataSize() <= Globals.getFlatFileUpperLimit() ) { + // rr.setFlatFileName(rh.saveFlatFile(request, rd, rr + // .getParamNameValuePairs(), rr.getReportName(), rr.getReportDescr())); + // } + //if(actionKey!=null && actionKey.equals("report.download")) { +// rr.setExcelPageFileName(rh.saveAsExcelFile(request, rd, rr +// .getParamNameValuePairs(), rr.getReportName(), rr.getReportDescr())); + //} + if (!rr.getReportType().equals(AppConstants.RT_HIVE)) { + long currentChartTime = System.currentTimeMillis(); + DataSet chartDS = rr.loadChartData(userId,request); + if(chartDS != null) + request.getSession().setAttribute(AppConstants.RI_CHART_DATA, rr.loadChartData(userId,request)); + else + request.getSession().removeAttribute(AppConstants.RI_CHART_DATA); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] ------->Time Taken for the loading chart data --- " + (System.currentTimeMillis() - currentChartTime))); + } + +/* if((String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null) { + request.getSession().setAttribute("FirstDashReport", rr); + } +*/ + } + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); //changing session to request + request.getSession().setAttribute(AppConstants.RI_REPORT_DATA, rd); + } // else + long totalTime = System.currentTimeMillis() - currentTime; + formFields = AppUtils.getRequestNvlValue(request, "formFields"); + request.setAttribute(AppConstants.RLA_EXECUTION_TIME, "" + totalTime); + + + boolean isFromReportLog = AppUtils.getRequestFlag(request, "fromReportLog"); + if(!isFromReportLog) { + if(pdfAttachmentKey!=null && pdfAttachmentKey.length()>0) { + if(actionKey.equals("report.download")) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_SCHEDULED_DOWNLOAD_EXCEL, formFields); + } else if (actionKey.equals("report.download.pdf")) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_SCHEDULED_DOWNLOAD_PDF, formFields); + } + } else { + if(actionKey.equals("report.download") ) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_DOWNLOAD_EXCEL, formFields); + } else if (actionKey.equals("report.download.pdf")) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_DOWNLOAD_PDF, formFields); + } else if (actionKey.equals("report.csv.download")) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_DOWNLOAD_CSV, formFields); + } else if (actionKey.equals("report.text.download")) { + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_DOWNLOAD_TEXT, formFields); + } else { + + //rr.logReportRun(userId, String.valueOf(totalTime),formFields); + if(rd!=null && !action.equals("report.run.container")) + rr.logReportExecutionTime(userId, String.valueOf(totalTime),AppConstants.RLA_EXECUTION_TIME, formFields); + } + } + } else { + rr.logReportExecutionTimeFromLogList(userId, String.valueOf(totalTime),formFields); + } + +/* if((String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null) { + reportID = (String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID); + ReportRuntime rrDash = rh1.loadReportRuntime(request, reportID, true, 1); + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rrDash); + } +*/ + if(rr.isDrillDownURLInPopupPresent()) { + request.getSession().setAttribute("parent_"+rr.getReportID()+"_rr", rr); + request.getSession().setAttribute("parent_"+rr.getReportID()+"_rd", rd); + } + + if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) { + return "raptor/report_crosstab_run_container.jsp"; + } else if (rr.getReportType().equals(AppConstants.RT_HIVE) && !isEmailAttachment) { + return "raptor/report_hive_run_container.jsp"; + } + } // else + + boolean isEmbedded = false; + Object temp = request.getSession().getAttribute("isEmbedded"); + if(temp!=null){ + isEmbedded = (boolean)temp; + } + if(isEmbedded && !action.equals("chart.run")){ + HashMap embeddedReportsRuntimeMap = null; + HashMap embeddedReportsDataMap = null; + if(request.getSession().getAttribute(AppConstants.EMBEDDED_REPORTRUNTIME_MAP)!= null){ + embeddedReportsRuntimeMap = (HashMap)request.getSession().getAttribute(AppConstants.EMBEDDED_REPORTRUNTIME_MAP); + } else { + embeddedReportsRuntimeMap = new HashMap(); + } + if(request.getSession().getAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP)!= null){ + embeddedReportsDataMap = (HashMap)request.getSession().getAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP); + } else { + embeddedReportsDataMap = new HashMap(); + } + embeddedReportsRuntimeMap.put(rr.getReportID(), rr); + embeddedReportsDataMap.put(rr.getReportID(), rd); + + + request.getSession().setAttribute(AppConstants.EMBEDDED_REPORTRUNTIME_MAP, embeddedReportsRuntimeMap); + request.getSession().setAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP, embeddedReportsDataMap); + + } + + ReportJSONRuntime reportJSONRuntime = rr.createReportJSONRuntime(request, rd); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(reportJSONRuntime); + } catch (Exception ex) { + ex.printStackTrace(); + + } + return jsonInString; + } catch (RaptorException e) { + try { + e.printStackTrace(); + + if(rr!=null) { // when user tries report they don't have access this should not throw exception that's why this if is added. + if(isEmailAttachment) + rr.logReportExecutionTime(userId, "", "Scheduled: " + AppConstants.RLA_ERROR, formFields); + else + rr.logReportExecutionTime(userId, "", "On Demand: " + AppConstants.RLA_ERROR, formFields); + } + + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + errorJSONRuntime.setErrormessage(e.getMessage()); + errorJSONRuntime.setStacktrace(getStackTrace(e)); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + } catch (Exception ex) { + ex.printStackTrace(); + + } + return jsonInString; + + } catch (RaptorException ex) { + nextPage = (new ErrorHandler()).processFatalError(request, ex); + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + errorJSONRuntime.setErrormessage(ex.getMessage()); + errorJSONRuntime.setStacktrace(getStackTrace(ex)); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + } catch (Exception ex1) { + ex1.printStackTrace(); + } + return jsonInString; + } + //nextPage = (new ErrorHandler()).processFatalError(request, e); + } catch (Throwable t) { + t.printStackTrace(); + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + errorJSONRuntime.setErrormessage(t.toString()); + errorJSONRuntime.setStacktrace(getStackTrace(t)); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + } catch (Exception ex) { + ex.printStackTrace(); + + } + return jsonInString; + + } + //return nextPage; + } // reportRun + + public static String getStackTrace(Throwable aThrowable) { + Writer result = new StringWriter(); + PrintWriter printWriter = new PrintWriter(result); + aThrowable.printStackTrace(printWriter); + return result.toString(); + } + + /** + * The below method is used to optimize, so that if there is already same report id in hashMap it wouldn't go through the whole process again. + **/ + private ReportRuntime getSimiliarReportRuntime(HashMap reportsRuntimeMap, String reportID) { + Set set = reportsRuntimeMap.entrySet(); + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + if (((ReportRuntime) entry.getValue()).getReportID().equals(reportID)) { + return (ReportRuntime) entry.getValue(); + } + } + return null; + } + + private Integer getKey(HashMap reportsRuntimeMap, String reportID) { + Set set = reportsRuntimeMap.entrySet(); + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + if (((ReportRuntime) entry.getValue()).getReportID().equals(reportID)) { + return new Integer(((String) entry.getKey()).substring(2)); + } + } + return null; + } + + public String reportSearch(HttpServletRequest request, String nextPage) { + return reportSearchExecute(request, nextPage); + } // reportSearch + + public String reportSearchUser(HttpServletRequest request, String nextPage) { + removeVariablesFromSession(request); + request.setAttribute(AppConstants.RI_USER_REPORTS, "Y"); + return reportSearchExecute(request, nextPage); + } // reportSearchUser + + public String reportSearchPublic(HttpServletRequest request, String nextPage) { + removeVariablesFromSession(request); + request.setAttribute(AppConstants.RI_PUBLIC_REPORTS, "Y"); + return reportSearchExecute(request, nextPage); + } // reportSearchPublic + + public String reportSearchFavorites(HttpServletRequest request, String nextPage) { + removeVariablesFromSession(request); + request.setAttribute(AppConstants.RI_FAVORITE_REPORTS, "Y"); + return reportSearchExecute(request, nextPage); + } // reportSearchFavorites + + public String reportSearchExecute(HttpServletRequest request, String nextPage) { + removeVariablesFromSession(request); + try { + SearchHandler sh = new SearchHandler(); + ReportSearchResultJSON sr = sh.loadReportSearchResult(request); + return sr.getJSONString(); + //request.setAttribute(AppConstants.RI_SEARCH_RESULT, sr); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportSearchExecute + + public String reportChartRun(HttpServletRequest request, String nextPage) { + ChartWebRuntime cwr = new ChartWebRuntime(); + return cwr.generateChart(request, false); //no data + } // reportSearchExecute + + public String reportChartDataRun(HttpServletRequest request, String nextPage) { + ChartWebRuntime cwr = new ChartWebRuntime(); + return cwr.generateChart(request); //data + } // reportSearchExecute + + + // public String reportRunExecute(HttpServletRequest request, String nextPage) { +// try { +// ReportRunHandler rh = new ReportRunHandler(); +// ReportRunResultJSON sr = rh.loadReportRunResult(request); +// return sr.getJSONString(); +// //request.setAttribute(AppConstants.RI_SEARCH_RESULT, sr); +// } catch (RaptorException e) { +// nextPage = (new ErrorHandler()).processFatalError(request, e); +// } +// +// return nextPage; +// } + + public String getQuickLinksJSON(HttpServletRequest request, String nextPage) { + String jsonInString = null; + try { + ArrayList quickLinks = ReportLoader.getQuickLinksJSON(request, request.getParameter("quick_links_menu_id"),true); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(quickLinks); + + } catch (Exception e) { + e.printStackTrace(); + } + return jsonInString; + } + + public String processScheduleReportList(HttpServletRequest request, String nextPage) { + String reportID = ""; + reportID = AppUtils.getRequestNvlValue(request, "schedule_reports"); + if (nvl(reportID).length()<=0) + reportID = AppUtils.getRequestNvlValue(request, AppConstants.RI_REPORT_ID); + // Added for form field chaining in schedule tab so that setParamValues() is called + request.setAttribute(AppConstants.SCHEDULE_ACTION, "Y"); + + try { + boolean isAdmin = AppUtils.isAdminUser(request); + boolean check = ReportLoader.doesUserCanScheduleReport(request, null); + + logger.debug(EELFLoggerDelegate.debugLogger, ("^^^^^^^^^^^^^Check " + check + " Admin "+ isAdmin)); + + if(check || isAdmin) { + if(reportID.length()>0) { + ReportHandler rh = new ReportHandler(); + ReportDefinition rdef = rh.loadReportDefinition(request, reportID); + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + ReportSchedule reportSchedule = null; + if(rdef!=null) { + reportSchedule = new ReportSchedule(reportID, AppUtils.getUserID(request), false, request); + } + request.getSession().setAttribute(AppConstants.SI_REPORT_SCHEDULE, reportSchedule); + } + } else { + //String message = "You have reached your schedule limit. Please visit this page again after removing your old schedules in \"My Schedule\" section."; + String message = "You have reached the scheduled report limit for your Login ID. Please remove any old schedule requests in the \"My Scheduled Reports\" screen before attempting to schedule any additional reports."; + nextPage = (new ErrorHandler()).processFatalError(request, new RaptorSchedularException(message)); + } + + } catch(Exception ex) { ex.printStackTrace();} + return nextPage; + } + + public String processSchedule(HttpServletRequest request, String nextPage) { + + // Added for form field chaining in schedule tab so that setParamValues() is called + + request.setAttribute(AppConstants.SCHEDULE_ACTION, "Y"); + if(request.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE)!=null && (!AppUtils.getRequestNvlValue(request, AppConstants.RI_ACTION).equals("report.schedule_only_from_search"))) { + String action = nvl(request.getParameter(AppConstants.RI_WIZARD_ACTION), + AppConstants.WA_BACK); + String scheduleID = ""; + scheduleID = AppUtils.getRequestValue(request, AppConstants.RI_SCHEDULE_ID); + ReportSchedule reportSchedule = null; + + if( nvl(scheduleID).length() <= 0) { + reportSchedule = (ReportSchedule) request.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE); + scheduleID = reportSchedule.getScheduleID(); + } + + String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + try { + boolean isAdmin = AppUtils.isAdminUser(request); + boolean check = ReportLoader.doesUserCanScheduleReport(request, scheduleID); + if(!isAdmin && !check) { + String message = "You have reached the scheduled report limit for your Login ID. Please remove any old schedule requests in the My Scheduled Reports screen before attempting to schedule any additional reports."; + nextPage = (new ErrorHandler()).processFatalError(request, new RaptorSchedularException(message)); + return nextPage; + } + + } catch (Exception ex) { ex.printStackTrace();} + if(reportSchedule == null) reportSchedule = new ReportSchedule(reportID, scheduleID, AppUtils.getUserID(request), request); + String formFields = ""; + formFields = reportSchedule.getFormFields(); + formFields = (formFields.length()>1)?formFields.substring(1):formFields; + String formFieldsArr[] = formFields.split("&"); + String sessionParams[] = Globals.getSessionParamsForScheduling().split(","); + + for (int i=0; i1)?formFields.substring(1):formFields; + String formFieldsArr[] = formFields.split("&"); + String sessionParams[] = Globals.getSessionParamsForScheduling().split(","); + + for (int i=0; i 0) + ws.performGoToStep(goToStep); + else + ws.performAction(action, rdef); + } catch (ValidationException ve) { + (new ErrorHandler()).processError(request, ve); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } catch (Throwable t) { + t.printStackTrace(); + } + + return nextPage; + } // reportWizard + + public String refreshCache ( HttpServletRequest request, String nextPage ) { + //DataCache.refreshReportTableSources(); + removeVariablesFromSession(request); + DataCache.refreshAll(); + Globals.getAppUtils().resetUserCache(); + request.setAttribute("message", "Cache Refreshed"); + return nextPage; + } + public String reportCreate(HttpServletRequest request, String nextPage) { + try { + removeVariablesFromSession(request); + ReportDefinition rdef = ReportDefinition.createBlank(request); + + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + // request.setAttribute(AppConstants.RI_CUR_STEP, + // AppConstants.WS_DEFINITION); + DataCache.refreshReportTableSources(); + request.getSession().removeAttribute("remoteDB"); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportCreate + + public String reportImportSave(HttpServletRequest request, String nextPage) { + try { + String reportXML = nvl(AppUtils.getRequestValue(request, "reportXML")).trim(); + + ReportHandler rh = new ReportHandler(); + ReportDefinition rdef = rh.createReportDefinition(request, "-1", reportXML); + rdef.updateReportDefType(); + rdef.generateWizardSequence(request); + rdef.setReportName("Import: " + rdef.getReportName()); + rdef.clearAllDrillDowns(); + + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + } catch (RaptorException e) { + request.setAttribute("error_extra_msg", "Unable to parse XML. Nested error: "); + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportImportSave + + private String reportLoad(HttpServletRequest request, String nextPage, boolean asCopy) { + try { + String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + + ReportHandler rh = new ReportHandler(); + ReportDefinition rdef = rh.loadReportDefinition(request, reportID); + if (asCopy) + rdef.setAsCopy(request); + else + rdef.checkUserWriteAccess(request); + + rdef.getWizardSequence().performGoToStep(AppConstants.WS_DEFINITION); + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + // request.setAttribute(AppConstants.RI_CUR_STEP, + // AppConstants.WS_DEFINITION); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportLoad + + public String reportCopy(HttpServletRequest request, String nextPage) { + return reportLoad(request, nextPage, true); + } // reportCopy + + public String reportEdit(HttpServletRequest request, String nextPage) { + return reportLoad(request, nextPage, false); + } // reportEdit + + public String reportDelete(HttpServletRequest request, String nextPage) { + try { + String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + try { + int i = Integer.parseInt(reportID); + } catch(NumberFormatException ex) { + throw new UserDefinedException("Not a valid report id"); + } + String userID = AppUtils.getUserID(request); + + (new ReportSecurity(reportID)).checkUserDeleteAccess(request); + + ReportLoader.deleteReportRecord(reportID); + + return "{\"deleted\":true}"; + //nextPage = reportSearchExecute(request, nextPage); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + //return nextPage; + return "{\"deleted\":false}"; + } // reportDelete + + private String generateSearchString(HttpServletRequest request) { + String searchString = AppUtils.getRequestNvlValue(request, AppConstants.RI_SEARCH_STRING); + boolean containFlag = AppUtils.getRequestFlag(request, AppConstants.RI_CONTAIN_FLAG); + return (searchString.length() > 0) ? ((containFlag ? "%" : "") + searchString + "%"):""; + } // generateSearchString + + public String reportFormFieldPopup(HttpServletRequest request, String nextPage) { + try { + ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + + FormField ff = rr.getFormField(request.getParameter(AppConstants.RI_FIELD_NAME)); + ReportFormFields rff = rr.getReportFormFields(); + + int idx = 0; + FormField ff1 = null; + Map fieldNameMap = new HashMap(); + int countOfFields = 0 ; + String userId = AppUtils.getUserID(request); + IdNameList lookup = ff.getLookupList(); + String oldSQL = lookup.getOldSql(); + + if(AppUtils.getRequestFlag(request, AppConstants.RI_TEXTFIELD_POP)) { + for(rff.resetNext(); rff.hasNext(); idx++) { + ff1 = rff.getNext(); + fieldNameMap.put(ff1.getFieldName(), ff1.getFieldDisplayName()); + countOfFields++; + } + + + //List formParameter = new ArrayList(); + String formField = ""; + HashMap valuesMap = new HashMap(); + for(int i = 0 ; i < rff.size(); i++) { + formField = ((FormField)rff.getFormField(i)).getFieldName(); + if(request.getParameterValues(formField) != null && request.getParameterValues(formField).length > 1 ) { + String[] vals = (String[]) request.getParameterValues(formField); + String value = ""; + StringBuffer valueBuf = new StringBuffer(); + for(int ii = 0 ; ii < vals.length; ii++) { + if(ii == 0) valueBuf.append("("); + valueBuf.append(vals[ii]); + if(ii == vals.length-1) valueBuf.append(")"); + else valueBuf.append(","); + } + value = valueBuf.toString(); + valuesMap.put(fieldNameMap.get(formField), value); + } else if(request.getParameter(formField) != null) { + valuesMap.put(fieldNameMap.get(formField), request.getParameter(formField)); + } + } + if(countOfFields != 0) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = (oldSQL==null)?lu.getSql():oldSQL; + oldSQL = SQL; + Set set = valuesMap.entrySet(); + String value = ""; + StringBuffer valueBuf = new StringBuffer(); + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + if(entry.getValue() instanceof String[]) { + String[] vals = (String[]) entry.getValue(); + for(int i = 0 ; i < vals.length; i++) { + if(i == 0) valueBuf.append("("); + valueBuf.append(vals[i]); + if(i == vals.length-1) valueBuf.append(")"); + else valueBuf.append(","); + } + value = valueBuf.toString(); + } else { + value = (String) entry.getValue(); + } + // added so empty string would be treated as null value if not given in single quotes. + if(value==null || value.trim().length()<=0) value="NULL"; + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", Utils.oracleSafe(value)); + } + if(request.getParameter(ff.getFieldName())!=null) { + lookup = new IdNameSql(-1,SQL,null); + lookup.setOldSql(oldSQL); + } + else { + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + lookup.setOldSql(oldSQL); + } + //lookup.loadData("0"); + } + if(lookup instanceof IdNameSql) ((IdNameSql)lookup).setDataSizeUsedinPopup(-3); // -3 indicates to run the count sql for pagination. + } + if(lookup instanceof IdNameSql) { + ((IdNameSql)lookup).loadUserData(request.getParameter(AppConstants.RI_NEXT_PAGE), + nvl(generateSearchString(request),"%"), rr.getDBInfo(),userId); + } + + int dataSizeForPopUp = 0; + if(lookup instanceof IdNameSql) { + dataSizeForPopUp = ((IdNameSql)lookup).getDataSizeUsedinPopup(); + } else + dataSizeForPopUp = lookup.getDataSize(); + + ff.setLookupList(lookup); + request.setAttribute("lookupList", lookup); + if(dataSizeForPopUp >= 0) + request.getSession().setAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP, ""+dataSizeForPopUp); + } catch (RaptorException e) { + e.printStackTrace(); + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + return nextPage; + } // reportFormFieldPopup + + public String reportValuesMapDefPopup(HttpServletRequest request, String nextPage) { + try { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String colName = AppUtils.getRequestNvlValue(request, "colName"); + String colType = nvl(AppUtils.getRequestValue(request, "colType"), + AppConstants.CT_CHAR); + String displayName = AppUtils.getRequestNvlValue(request, "displayName"); + String displayFormat = AppUtils.getRequestNvlValue(request, "displayFormat"); + String tableId = AppUtils.getRequestNvlValue(request, "tableId"); + String dbInfo = rdef.getDBInfo(); + if (Utils.isNull(dbInfo)) { + dbInfo = (String) request.getSession().getAttribute("remoteDB"); + } + /*String query = "SELECT x FROM (SELECT DISTINCT " + + (colType.equals(AppConstants.CT_DATE) ? ("TO_CHAR(" + colName + ", '" + + nvl(displayFormat, AppConstants.DEFAULT_DATE_FORMAT) + "')") + : colName) + " x FROM " + + rdef.getTableById(tableId).getTableName() + " WHERE " + colName + + " IS NOT NULL ORDER BY 1) xx WHERE ROWNUM <= " + + Globals.getDefaultPageSize();*/ + + + String q1 = Globals.getReportValuesMapDefA(); + + String q2 = Globals.getReportValuesMapDefB(); + q2 = q2.replace("[colName]", colName); + q2 = q2.replace("[nvl(displayFormat, AppConstants.DEFAULT_DATE_FORMAT)]", nvl(displayFormat, AppConstants.DEFAULT_DATE_FORMAT)); + + String q3 = Globals.getReportValuesMapDefC(); + q3 = q3.replace("[colName]", colName); + + String q4 = Globals.getReportValuesMapDefD(); + q4 = q4.replace("[rdef.getTableById(tableId).getTableName()]", rdef.getTableById(tableId).getTableName()); + q4 = q4.replace("[colName]", colName); + q4 = q4.replace("[Globals.getDefaultPageSize()]", String.valueOf(Globals.getDefaultPageSize())); + + String query = q1 + (colType.equals(AppConstants.CT_DATE) ? q2 : q3) + q4; + + DataSet ds = ConnectionUtils.getDataSet(query, dbInfo); + request.setAttribute(AppConstants.RI_DATA_SET, ds); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportValuesMapDefPopup + + public String reportDrillDownToReportDefPopup(HttpServletRequest request, String nextPage) { + try { + // ReportDefinition rdef = (ReportDefinition) + // request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION); + String ddReportID = AppUtils + .getRequestNvlValue(request, AppConstants.RI_REPORT_ID); + ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, ddReportID, + false); + if (ddRr != null) + request.setAttribute(AppConstants.RI_FORM_FIELDS, ddRr.getReportFormFields()); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportDrillDownToReportDefPopup + + public String reportFilterDataPopup(HttpServletRequest request, String nextPage) { + try { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String colId = AppUtils.getRequestNvlValue(request, AppConstants.RI_COLUMN_ID); + IdNameColLookup lookup = null; + String dbInfo = rdef.getDBInfo(); + if (Utils.isNull(dbInfo)) { + dbInfo = (String) request.getSession().getAttribute("remoteDB"); + } + if (!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_PARAMS)) + lookup = (IdNameColLookup) request.getSession().getAttribute( + AppConstants.SI_COLUMN_LOOKUP); + if (lookup == null || (!colId.equals(lookup.getColId()))) { + DataColumnType dct = rdef.getColumnById(colId); + lookup = new IdNameColLookup(colId, rdef.getTableById(dct.getTableId()) + .getTableName(), dct.getColName(), rdef.getSelectExpr(dct), dct + .getColName() + + (dct.getColType().equals(AppConstants.CT_DATE) ? " DESC" : "")); + request.getSession().setAttribute(AppConstants.SI_COLUMN_LOOKUP, lookup); + } // if + + lookup.loadData(nvl(request.getParameter(AppConstants.RI_NEXT_PAGE), "0"), + generateSearchString(request), dbInfo); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportFilterDataPopup + + public String reportShowSQLPopup(HttpServletRequest request, String nextPage) { + try { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + String reportSQL = rdef.generateSQL(AppUtils.getUserID(request),request); + + String[] sqlClause = { "SELECT ", "FROM ", "WHERE ", "GROUP BY ", "HAVING ", + "ORDER BY " }; + + int idxNext = 0; + StringBuffer sb = new StringBuffer(); + while (idxNext < sqlClause.length) { + sb.append(""); + if (idxNext > 0) + sb.append("    "); + sb.append(sqlClause[idxNext]); + sb.append("
\n"); + + int clauseStartPos = reportSQL.indexOf(sqlClause[idxNext]) + + sqlClause[idxNext].length(); + do + idxNext++; + while ((idxNext < sqlClause.length) + && (reportSQL.indexOf(sqlClause[idxNext]) < 0)); + + String clauseContent = null; + if (idxNext < sqlClause.length) + clauseContent = reportSQL.substring(clauseStartPos, reportSQL + .indexOf(sqlClause[idxNext]) - 1); + else + clauseContent = reportSQL.substring(clauseStartPos); + + while (clauseContent.length() > 0) { + int braketCount = 0; + StringBuffer nextToken = new StringBuffer(); + for (int i = 0; i < clauseContent.length(); i++) { + char ch = clauseContent.charAt(i); + nextToken.append(ch); + if (ch == '(') + braketCount++; + else if (ch == ')') + braketCount--; + else if (ch == ',') + if (braketCount == 0) + break; + } // for %> + + sb.append("        "); + sb.append(nextToken.toString()); + sb.append("
\n"); + + if (nextToken.length() < clauseContent.length()) + clauseContent = clauseContent.substring(nextToken.length() + 1); + else + clauseContent = ""; + } // while + } // while + + request.setAttribute(AppConstants.RI_FORMATTED_SQL, sb.toString()); + request.setAttribute(AppConstants.RI_PAGE_TITLE, "Generated SQL"); + request.setAttribute(AppConstants.RI_PAGE_SUBTITLE, "Generated SQL for report " + + rdef.getReportName()); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // reportShowSQLPopup + + public String testSchedCondPopup(HttpServletRequest request, String nextPage) { + try { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String sql = AppUtils.getRequestNvlValue(request, AppConstants.RI_FORMATTED_SQL); + + request.setAttribute("msg_align", " align=center"); + request.setAttribute(AppConstants.RI_PAGE_TITLE, "Test Scheduler Condition"); + // request.setAttribute(AppConstants.RI_PAGE_SUBTITLE, ...); + //String query = "SELECT 1 FROM DUAL WHERE EXISTS (" + sql + ")"; + + String query = Globals.getTestSchedCondPopup(); + query = query.replace("[sql]", sql); + + DataSet ds = null; + String remoteDb = request.getParameter("remoteDbPrefix"); + String remoteDbPrefix = (remoteDb != null && !remoteDb.equalsIgnoreCase("null")) ? remoteDb + : rdef.getDBInfo(); + ds = ConnectionUtils.getDataSet(sql, remoteDbPrefix); + // if ( (remoteDbPrefix!=null) && + // (!remoteDbPrefix.equals(AppConstants.DB_LOCAL))) { + // Globals.getRDbUtils().setDBPrefix(remoteDbPrefix); + // ds = RemDbUtils.executeQuery(query); + // } + // else + // ds = DbUtils.executeQuery(query); + if (ds.getRowCount() == 0) + request + .setAttribute(AppConstants.RI_FORMATTED_SQL, + "
Condition NOT satisfied - email notification will NOT be send.

"); + else + request + .setAttribute(AppConstants.RI_FORMATTED_SQL, + "
Condition satisfied - email notification will be send.

"); + } catch (Exception e) { + // nextPage = (new ErrorHandler()).processFatalError(request, e); + request.setAttribute(AppConstants.RI_FORMATTED_SQL, "
SQL ERROR " + + e.getMessage() + "
Email notification will NOT be send.

"); + } + + return nextPage; + } // testSchedCondPopup + + public String testRunSQLPopup(HttpServletRequest request, String nextPage) { + String sql = AppUtils.getRequestNvlValue(request, AppConstants.RI_FORMATTED_SQL); + if(nvl(sql).length()<=0) { + sql = AppUtils.getRequestNvlValue(request, "reportSQL"); + } + + + boolean chkFormFieldSQL = AppUtils.getRequestNvlValue(request, + AppConstants.RI_CHK_FIELD_SQL).equals("Y"); + try { + if (!sql.trim().toUpperCase().startsWith("SELECT")) + throw new UserDefinedException( + "Invalid statement - the SQL must start with the keyword SELECT"); + + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + if (!chkFormFieldSQL) { + if (rdef.getFormFieldList() != null) + for (Iterator iter = rdef.getFormFieldList().getFormField().iterator(); iter + .hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = rdef.getFormFieldDisplayName(fft); + /* + * if(paramValues.isParameterMultiValue(fieldId)) + * generatedSQL = Utils.replaceInString(generatedSQL, + * fieldDisplay, nvl(formatListValue((String) + * paramValues.get(fieldId), null, false, false, null), + * "NULL")); else + */ + sql = Utils.replaceInString(sql, fieldDisplay, "NULL"); + } // for + } // if + DataSet ds = null; + String remoteDb = request.getParameter("remoteDbPrefix"); + String remoteDbPrefix = (remoteDb != null && !remoteDb.equalsIgnoreCase("null")) ? remoteDb + : rdef.getDBInfo(); + String userId = AppUtils.getUserID(request); + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + String[] reqParameters = Globals.getRequestParams().split(","); + String[] sessionParameters = Globals.getSessionParams().split(","); + javax.servlet.http.HttpSession session = request.getSession(); + logger.debug(EELFLoggerDelegate.debugLogger, ("B4 testRunSQL " + sql)); + if(request != null ) { + for (int i = 0; i < reqParameters.length; i++) { + if(!reqParameters[i].startsWith("ff")) + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); + else + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); + } + } + if(session != null ) { + for (int i = 0; i < sessionParameters.length; i++) { + //if(!sessionParameters[i].startsWith("ff")) + //sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); + //else { + logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i]))); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + //} + } + } + logger.debug(EELFLoggerDelegate.debugLogger, ("After testRunSQL " + sql)); + + ds = ConnectionUtils.getDataSet(sql, remoteDbPrefix, true); + // if ( (remoteDbPrefix!=null) && + // (!remoteDbPrefix.equals(AppConstants.DB_LOCAL))) { + // Globals.getRDbUtils().setDBPrefix(remoteDbPrefix); + // ds = RemDbUtils.executeQuery(sql, + // Globals.getDefaultPageSize()+1); + // } + // else + // ds = DbUtils.executeQuery(sql, Globals.getDefaultPageSize()+1); + if (chkFormFieldSQL && ds.getRowCount() > 0) { + String id = ds.getString(0, "id"); + String name = ds.getString(0, "name"); + } // if + + request.setAttribute(AppConstants.RI_DATA_SET, ds); + } catch (RaptorException e) { + request.setAttribute(AppConstants.RI_EXCEPTION, e); + } + + return nextPage; + } // testRunSQLPopup + + public String importSemaphorePopup(HttpServletRequest request, String nextPage) { + try { + (new WizardProcessor()).processImportSemaphorePopup(request); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // importSemaphorePopup + + public String saveSemaphorePopup(HttpServletRequest request, String nextPage) { + try { + (new WizardProcessor()).processSemaphorePopup(request); + } catch (RaptorException e) { + nextPage = (new ErrorHandler()).processFatalError(request, e); + } + + return nextPage; + } // saveSemaphorePopup + + public String gotoJsp(HttpServletRequest request, String nextPage) { + return nextPage; + } // gotoJsp + + public String downloadAll(HttpServletRequest request, String nextPage) throws InterruptedException, IOException, Exception { + String emailId = null; + String pdfAttachmentKey = AppUtils.getRequestValue(request, "pdfAttachmentKey"); + boolean isFromSchedule = nvl(pdfAttachmentKey).length()>0; + if(!isFromSchedule) + emailId = AppUtils.getUserEmail(request); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd"); + java.util.Date currDate = new java.util.Date(); + String timestamp = sdf.format(currDate); + String dateStr = sdf1.format(currDate); + + String userId = null; + if(!isFromSchedule) + userId = AppUtils.getUserID(request); + else + userId = AppUtils.getRequestValue(request, "user_id"); + Runtime runtime = Runtime.getRuntime(); + ReportRuntime rr = null; + if(!isFromSchedule) { + rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + if(rr!=null) AppUtils.getUserEmail(request); + } + String scheduleId = ""; + + if(isFromSchedule) { + String reportID = null; + String report_email_sent_log_id = AppUtils.getRequestValue(request, "log_id"); + /*String query = "Select user_id, rep_id from CR_REPORT_EMAIL_SENT_LOG" + + " where rownum = 1" + + " and gen_key='"+pdfAttachmentKey.trim()+"'" + + " and log_id ="+report_email_sent_log_id.trim() + + " and (sysdate - sent_date) < 1 ";*/ + + String query = Globals.getDownloadAllEmailSent(); + query = query.replace("[pdfAttachmentKey.trim()]", pdfAttachmentKey.trim()); + query = query.replace("[report_email_sent_log_id.trim()]", report_email_sent_log_id.trim()); + + DataSet ds = DbUtils.executeQuery(query, 1); + if(!ds.isEmpty()) { + userId = ds.getString(0,"user_id"); + reportID = ds.getString(0, "rep_id"); + request.setAttribute("schedule_email_userId", userId); + } else { + request.setAttribute("message", "This link has expired, please login and regenerate the report"); + return "raptor/message.jsp"; + } + + ReportHandler rh1 = new ReportHandler(); + + if(reportID !=null && nvl(pdfAttachmentKey).length()>0) { + rr = rh1.loadReportRuntime(request, reportID, true, 1); + rr.loadReportData(-1, userId, 1000 ,request, false /*download*/); + } + + String d_sql = Globals.getDownloadAllGenKey(); + d_sql = d_sql.replace("[pdfAttachmentKey]", pdfAttachmentKey); + + //ds = DbUtils.executeQuery("select schedule_id from cr_report_email_sent_log u where U.GEN_KEY = '"+ pdfAttachmentKey + "'"); + + ds = DbUtils.executeQuery(d_sql); + for (int i = 0; i < ds.getRowCount(); i++) { + scheduleId = ds.getString(i,0); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, ("SQL2:\n"+ rr.getCachedSQL())); + String fileName = rr.getReportID()+"_"+userId+"_"+timestamp; + boolean flag = false; + logger.debug(EELFLoggerDelegate.debugLogger, (""+Utils.isDownloadFileExists(rr.getReportID()+"_"+userId+"_"+dateStr))); + // if(Utils.isDownloadFileExists(rr.getReportID()+"_"+userId+"_"+dateStr)) { + // flag = true; + // } + + if(flag){ + String strFileName = Utils.getLatestDownloadableFile(rr.getReportID()+"_"+userId+"_"+dateStr); + //debugLogger.debug("File Name " + strFileName); + StringBuffer messageBuffer = new StringBuffer(""); + messageBuffer.append("Download data file using the following link
"); + messageBuffer.append("click here.

"); + request.setAttribute("message", messageBuffer.toString()); + } + else if(!flag) { + String whole_fileName = (Globals.getShellScriptDir() +AppConstants.SHELL_QUERY_DIR+ fileName+AppConstants.FT_SQL); + String whole_columnsfileName = (Globals.getShellScriptDir() +AppConstants.SHELL_QUERY_DIR+ fileName+AppConstants.FT_COLUMNS); + + logger.debug(EELFLoggerDelegate.debugLogger, ("FILENAME "+whole_fileName)); + + List l = rr.getAllColumns(); + StringBuffer allColumnsBuffer = new StringBuffer(); + DataColumnType dct = null; + + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + allColumnsBuffer.append(dct.getDisplayName()); + if(iter.hasNext()) + allColumnsBuffer.append("|"); + } + try { + PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(whole_columnsfileName)))); + xmlOut.println(allColumnsBuffer.toString()); + xmlOut.flush(); + xmlOut.close(); + } catch (IOException e) {e.printStackTrace();} + try { + PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File(whole_fileName)))); + logger.debug(EELFLoggerDelegate.debugLogger, ("**************************")); + logger.debug(EELFLoggerDelegate.debugLogger, (rr.getWholeSQL())); + logger.debug(EELFLoggerDelegate.debugLogger, ("************************")); + logger.debug(EELFLoggerDelegate.debugLogger, ("************************")); + logger.debug(EELFLoggerDelegate.debugLogger, (rr.parseReportSQL(rr.getWholeSQL()))); + xmlOut.println(rr.parseReportSQL(rr.getWholeSQL())); + //xmlOut.println("******************"); + //xmlOut.println(rr.getWholeSQL()); + xmlOut.flush(); + xmlOut.close(); + } catch (IOException e) {e.printStackTrace();} + + StringBuffer command = new StringBuffer(Globals.getShellScriptDir() + AppConstants.SHELL_SCRIPTS_DIR); + if(nvl(emailId).length()>0) { + command.append(AppConstants.SHELL_SCRIPT_NAME + " " + (fileName+AppConstants.FT_SQL)); + command.append(" "+emailId); + } + else if (nvl(scheduleId).length()>0) { + command.append(AppConstants.SCHEDULE_SHELL_SCRIPT_NAME + " " + (fileName+AppConstants.FT_SQL)); + command.append(" " + scheduleId); + } + logger.debug(EELFLoggerDelegate.debugLogger, ("Command " + command)); + Process downloadProcess = runtime.exec(command.toString()); + logger.debug(EELFLoggerDelegate.debugLogger, ("Command Executed ")); + //Connection connection = DbUtils.getConnection(); + Enumeration enum1 = rr.getParamKeys(); + String value = "", key = ""; + String paramStr = ""; + StringBuffer paramBuffer = new StringBuffer(); + if(enum1!=null) { + for (; enum1.hasMoreElements();) { + key = (String) enum1.nextElement(); + value = rr.getParamValue(key); + paramBuffer.append(key+":"+value+" "); + } + paramStr = paramBuffer.toString(); + } + + StringBuffer retrieveUserEmailQry = null; + ArrayList userEmailList = new ArrayList(); + if(nvl(scheduleId).length()>0) { + /*retrieveUserEmailQry = new StringBuffer(); + retrieveUserEmailQry.append(" SELECT "); + retrieveUserEmailQry.append(" au.user_id "); + retrieveUserEmailQry.append(" FROM "); + retrieveUserEmailQry.append(" (SELECT rs.schedule_id, rs.rep_id FROM cr_report_schedule rs WHERE rs.enabled_yn='Y' AND rs.run_date IS NOT NULL "); + retrieveUserEmailQry.append(" AND rs.schedule_id = " + scheduleId + " ) x, cr_report r, app_user au "); + retrieveUserEmailQry.append(" WHERE "); + retrieveUserEmailQry.append("x.rep_id = r.rep_id "); + retrieveUserEmailQry.append(" AND au.user_id IN (SELECT rsu.user_id FROM cr_report_schedule_users rsu WHERE rsu.schedule_id = x.schedule_id and rsu.schedule_id = " + scheduleId ); + retrieveUserEmailQry.append(" UNION "); + retrieveUserEmailQry.append(" SELECT ur.user_id FROM fn_user_role ur "); + retrieveUserEmailQry.append(" WHERE ur.role_id IN "); + retrieveUserEmailQry.append(" (SELECT rsu2.role_id FROM cr_report_schedule_users rsu2 "); + retrieveUserEmailQry.append(" WHERE rsu2.schedule_id = x.schedule_id and "); + retrieveUserEmailQry.append(" rsu2.schedule_id = "+ scheduleId + ")) ");*/ + + String r_sql = Globals.getDownloadAllRetrieve(); + r_sql = r_sql.replace("[scheduleId]", scheduleId); + + // DataSet ds = DbUtils.executeQuery(retrieveUserEmailQry.toString()); + DataSet ds = DbUtils.executeQuery(r_sql); + + for (int i = 0; i < ds.getRowCount(); i++) { + userEmailList.add(ds.getString(i, 0)); + } + + } + // String insertQry = "insert into cr_report_dwnld_log (user_id,rep_id,file_name,dwnld_start_time,filter_params) values (?,?,?,?,?)"; + String insertQry = Globals.getDownloadAllInsert(); + + + Connection connection = null; + PreparedStatement pst = null; + try { + connection = DbUtils.getConnection(); + pst = connection.prepareStatement(insertQry); + if(nvl(emailId).length()>0){ + pst.setInt(1, Integer.parseInt(userId)); + pst.setInt(2, Integer.parseInt(rr.getReportID())); + pst.setString(3, fileName+AppConstants.FT_ZIP); + pst.setTimestamp(4,new java.sql.Timestamp(currDate.getTime())); + pst.setString(5,paramStr); + pst.execute(); + connection.commit(); + } else { + for (int i = 0; i < userEmailList.size(); i++) { + pst.setInt(1, Integer.parseInt((String)userEmailList.get(i))); + pst.setInt(2, Integer.parseInt(rr.getReportID())); + pst.setString(3, fileName+AppConstants.FT_ZIP); + pst.setTimestamp(4,new java.sql.Timestamp(currDate.getTime())); + pst.setString(5,paramStr); + pst.execute(); + connection.commit(); + } + } + pst.close(); + connection.close(); + logger.debug(EELFLoggerDelegate.debugLogger, ("Data inserted")); + } catch (SQLException ex) { + throw new RaptorException(ex); + } catch (ReportSQLException ex) { + throw new RaptorException(ex); + } catch (Exception ex) { + throw new RaptorException (ex); + } finally { + try { + if(connection!=null) + connection.close(); + if(pst!=null) + pst.close(); + } catch (SQLException ex) { + throw new RaptorException(ex); + } + } + //DbUtils.commitTransaction(connection); + //DbUtils.clearConnection(connection); + + + +// debugLogger.debug("|"+downloadProcess.toString() + "|"); +// if (downloadProcess == null) +// throw new Exception("unable to create a process for command:" + +// command); +// int retCode= 1; +// try { +// retCode= downloadProcess.waitFor(); +// } catch (InterruptedException e){ +// e.printStackTrace(); +// } +// debugLogger.debug("retCode " + retCode); +// Process child = rtime.exec("/bin/bash"); +// BufferedWriter outCommand = new BufferedWriter(new +// OutputStreamWriter(child.getOutputStream())); +// outCommand.write(Globals.getShellScriptName()); +// outCommand.flush(); +// int retCode = child.waitFor(); +// debugLogger.debug("RetCode " + retCode); + //request.setAttribute("message", "Shell Script is running in the background. You'll get an email once it is done"); + } + + return nextPage; + } + public String getChildDropDown(HttpServletRequest request, String nextPage) throws RaptorRuntimeException { + + if(request.getParameter("firstTime") != null) { return nextPage; } + + /*ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + + String c_master = request.getParameter("c_master"); + java.util.HashMap valuesMap = Globals.getRequestParamtersMap(request); + request.setAttribute("c_master", c_master); + + int idx = 0; + ReportFormFields rff = rr.getReportFormFields(); + FormField ff = null; + for(rff.resetNext(); rff.hasNext(); idx++) { + ff = rff.getNext(); + + + if(ff.getDependsOn() != null && ff.getDependsOn().trim() != "") + { + String val = request.getParameter(ff.getFieldName()); + request.setAttribute(ff.getFieldName(), ff.getHtml(val, valuesMap, rr)); + } + + } + */ + return nextPage; + + } + + private void removeVariablesFromSession(HttpServletRequest request) { + HttpSession session = request.getSession(); + session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); + session.removeAttribute(AppConstants.DRILLDOWN_INDEX); + session.removeAttribute(AppConstants.FORM_DRILLDOWN_INDEX); + 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); + session.removeAttribute(AppConstants.EMBEDDED_REPORTRUNTIME_MAP); + session.removeAttribute(AppConstants.EMBEDDED_REPORTDATA_MAP); + Enumeration enum1 = session.getAttributeNames(); + String attributeName = ""; + while(enum1.hasMoreElements()) { + attributeName = enum1.nextElement(); + if(attributeName.startsWith("parent_")) { + session.removeAttribute(attributeName); + } + } + } + + + private TreeMap getListOfReportsFromDashBoardHTML(String htmlString) { + //String sourcestring = "
[Report#123][Report#124]
[Report#125][Report#126]
"; + String sourcestring = htmlString; + //Pattern re = Pattern.compile("([a-z]+)\\[([a-z]+)([=<>]+)([a-z]+)\\]",Pattern.CASE_INSENSITIVE); + //Pattern re = Pattern.compile("\\[([R][e][p][o][r][t][#])[(*)]\\]"); + Pattern re = Pattern.compile("\\[(.*?)\\]"); //\\[(.*?)\\] + Matcher m = re.matcher(sourcestring); + HashMap hashReports = new HashMap(); + int mIdx = 0; + while (m.find()){ + for( int groupIdx = 0; groupIdx < m.groupCount(); groupIdx++ ){ + String str = m.group(groupIdx); + //System.out.println(str); + hashReports.put(new String(Integer.toString(mIdx+1)), (str.substring(1).toLowerCase().startsWith("chart")?"c":"d") + str.substring(str.indexOf("#")+1, str.length()-1)); + } + mIdx++; + } + // Sorting HashMap based on Keys + /*List mapKeys = new ArrayList(hashReports.keySet()); + List mapValues = new ArrayList(hashReports.values()); + hashReports.clear(); + hashReports = null; + hashReports = new HashMap(); + + TreeSet sortedSet = new TreeSet(mapKeys); + Object[] sortedArray = sortedSet.toArray(); + int size = sortedArray.length; + for (int i=0; i iter = reportCols.iterator(); iter.hasNext();) { + + DataColumnType dc = (DataColumnType) iter.next(); + if (colNames.length() > 0) + colNames.append(", "); + colNames.append(dc.getColId()); + if (dc.isVisible()) { + //TODO: Drilldown URL + //sql = reportRuntime.parseReportSQLForDrillDownParams(sql, dc, request); + } + } + + DataSet ds = null; + // try { + String dbInfo = reportRuntime.getDBInfo(); + if(maxRows == 1) + sql += " limit "+ maxRows; + System.out.println("SQL getReportData()- " + sql); + ds = ConnectionUtils.getDataSet(sql, dbInfo); + int totalRows = 0; + /*if (reportRuntime.getReportDataSize() < 0) {*/ + //String countSQL = "SELECT count(*) FROM (" + sql + ") x"; + String dbType = ""; + + if (dbInfo!=null && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + + totalRows = ds.getRowCount(); + /*}*/ + ReportData rd = new ReportData(0, true); + + if(totalRows > 0) { + // Already defined changed for modifying request parameters + //List reportCols = getAllColumns(); + Vector visibleCols = new Vector(reportCols.size()); + Vector formatProcessors = new Vector(reportCols.size()); + + // ColumnHeaderRow chr = new ColumnHeaderRow(); + // rd.reportColumnHeaderRows.addColumnHeaderRow(chr); + // chr.setRowHeight("30"); + int count =0 ; + + /* ADDED */ + ReportFormFields rff = reportRuntime.getReportFormFields(); + ReportFormFields childReportFormFields = null; + String fieldDisplayName = ""; + String fieldValue = ""; + + for (int c = 0; c < reportCols.size(); c++) { + if(reportCols.get(c)!=null) { + DataColumnType dct = (DataColumnType) reportCols.get(c); + if(nvl(dct.getDependsOnFormField()).length()>0 && nvl(dct.getDependsOnFormField()).indexOf("[")!=-1) { + for(int i = 0 ; i < rff.size(); i++) { + fieldDisplayName = "["+((FormField)rff.getFormField(i)).getFieldDisplayName()+"]"; + fieldValue = ""; + //if(dct.getOriginalDisplayName()==null) dct.setOriginalDisplayName(dct.getDisplayName()); + if (dct.getDependsOnFormField().equals(fieldDisplayName)) { + fieldValue = nvl(request.getParameter(((FormField)rff.getFormField(i)).getFieldName())); + + if (fieldValue.length()>0) { + if(!fieldValue.toUpperCase().equals("Y")) + dct.setDisplayName(fieldValue); + if(!dct.isVisible()) + dct.setVisible(true); + } else { + dct.setVisible(false); + } + } + } + } + } + } + + /* ADDED */ + String displayName = ""; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + + DataColumnType dc = (DataColumnType) iter.next(); + + formatProcessors.add(count,new FormatProcessor( + reportRuntime.getSemaphoreById(dc.getSemaphoreId()), dc.getColType(), dc + .getColFormat(), reportRuntime.getReportDefType().equals( + AppConstants.RD_SQL_BASED))); + + /* TODO: Add Drilldown URL */ + if (nvl(dc.getDrillDownURL()).length() > 0) { + childReportFormFields = reportRuntime.getChildReportFormFields(request,dc.getDrillDownURL()); + } + if (dc.isVisible()) { + visibleCols.add(count,dc); + //if(dc.getColId().startsWith("group")) { + for (int d = 0; d < reportCols.size(); d++) { + if(reportCols.get(d)!=null) { + DataColumnType dct1 = (DataColumnType) reportCols.get(d); + if(dct1.getColId().equals(dc.getColId()+"_name") && ds.getRowCount()>0) { + displayName = ds.getString(0,dct1.getColId()); + dc.setDisplayName(displayName); + } + } + } + //} + + VisualManager visualManager = reportRuntime.getVisualManager(); + rd.createColumn(dc.getColId(), dc.getDisplayName(), dc.getDisplayWidthInPxls(),dc.getDisplayHeaderAlignment(), + visualManager.isColumnVisible(dc.getColId()), visualManager + .getSortByColId().equals(dc.getColId()) ? visualManager + .getSortByAscDesc() : null, true, dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); + // chr.addColumnHeader(new ColumnHeader(dc.getDisplayName(), + // (dc.getDisplayWidth()>100)?"10%":(""+dc.getDisplayWidth()+"%"))); + } // if + else { + visibleCols.add(count,null); + rd.createColumn(dc.getColId(), AppConstants.HIDDEN, dc.getDisplayWidthInPxls(), dc.getDisplayHeaderAlignment(), + false, null,false,dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); +// formatProcessors.add(count,null); + } + count++; + } // for + + // Utils._assert(chr.size()==ds.getColumnCount(), + // "[ReportRuntime.loadLinearReportData] The number of visible columns + // does not match the number of data columns"); + //TODO: This should be optimized to accept -1 for flat file download + if(maxRows > totalRows) maxRows = totalRows; + ArrayList reportDataList = new ArrayList(); + for (int r = 0; r < maxRows; r++) { + DataRow dr = new DataRow(); + rd.reportDataRows.addDataRow(dr); + + for (int c = 0; c < reportCols.size(); c++) { + if(reportCols.get(c)!=null) { + DataColumnType dct = (DataColumnType) reportCols.get(c); + //Modified since ds is null. + DataValue dv = new DataValue(); + + if(ds.getRowCount()>0){ + if(ds.getColumnIndex(dct.getColId())!= -1) { + dr.addDataValue(dv); + dv.setDisplayValue(ds.getString(r, dct.getColId())); + } else { + continue; + } + + } else { + dv.setDisplayValue(""); + } + dv.setColName(dct.getColName()); + dv.setColId(dct.getColId()); + dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); + + //Add Drilldown URL to dv + if (nvl(dct.getDrillDownURL()).length() > 0) { + + if(dv.getDisplayValue().length() > 0) { + dv.setDrillDownURL(reportRuntime.parseDrillDownURL(r, /* c, */ds, dct, request, childReportFormFields)); + dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); + } + + if (dv.getDisplayValue().length() == 0) { + //dv.setDisplayValue("[NULL]"); + dv.setDisplayValue(""); + } + } // if + + StringBuffer indentation = new StringBuffer(""); + if(dct.getIndentation()!=null && dct.getIndentation()>0) { + for (int indent=0; indent< dct.getIndentation(); indent++) { + indentation.append("\t"); + } + dv.setNowrap("true"); + } + dv.setIndentation(indentation.toString()); + + if(dct.isVisible()) { + + dv.setVisible(true); + dv.setAlignment(dct.getDisplayAlignment()); + dv.setDisplayTotal(dct.getDisplayTotal()); + dv.setDisplayName(dct.getDisplayName()); + +// if (nvl(dct.getDrillDownURL()).length() > 0) { + +// if(dv.getDisplayValue().length() > 0) { + //TODO: Below Drilldown URL +// dv.setDrillDownURL(reportRuntime.parseDrillDownURL(r, /* c, */ds, dct,request, childReportFormFields)); +// dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()); +// } +// +// if (dv.getDisplayValue().length() == 0) { +// //dv.setDisplayValue("[NULL]"); +// dv.setDisplayValue(""); +// } +// } // if + + } else { + dv.setVisible(false); + dv.setHidden(true); + } + //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); + + if(dr.getFormatId()!=null) + ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, true); + else + ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, false); + + //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); + } // if reportCols + } // for + reportDataList.add(dr); + } // for + + rd.setReportDataList(reportDataList); + //Only if rownumber options is needed + //rd.addRowNumbers(pageNo, getPageSize()); + DataRow colDataTotalsLinear = null; + if (colDataTotalsLinear == null) + colDataTotalsLinear = reportRuntime.generateColumnDataTotalsLinear(new ArrayList(reportCols), AppUtils.getUserID(request), + reportRuntime.getDbInfo(),request); + + if(colDataTotalsLinear!=null) + rd.setColumnDataTotalsLinear(colDataTotalsLinear, "Total"); + // Please note the below function doesn't set the visibility for dv since this is set in this function. - Sundar + rd.applyVisibility(); + } + return rd; + } // loadLinearReportData + + public String formFieldRun(HttpServletRequest request, String nextPage) { + ReportRuntime rr = null; + rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + if(rr!=null) { + ReportJSONRuntime reportJSONRuntime = rr.createFormFieldJSONRuntime(request); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(reportJSONRuntime); + } catch (Exception ex) { + ex.printStackTrace(); + + } + return jsonInString; + } + + return ""; + } + +} // ActionHandler diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionMapping.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionMapping.java new file mode 100644 index 00000000..f6eae35b --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ActionMapping.java @@ -0,0 +1,52 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +public class ActionMapping extends HashMap { + + public void addAction(Action action) { + put(action.getAction(), action); + } // addAction + + public Action getAction(String actionKey) { + return (Action) get(actionKey); + } // getAction + +} // ActionMapping diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Controller.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Controller.java new file mode 100644 index 00000000..09f5186a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/Controller.java @@ -0,0 +1,144 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + package org.onap.portalsdk.analytics.controller; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.RaptorRuntimeException; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class Controller extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(Controller.class); + + public Controller() { + } + + public String processRequest(HttpServletRequest request) { + String actionKey = nvl(request.getParameter(AppConstants.RI_ACTION), "report.run"); + + return processRequest(actionKey, request); + } // processRequest + + public String processRequest(String actionKey, HttpServletRequest request) { + Action action = null; + try { + action = Globals.getRaptorActionMapping().getAction(actionKey); + if (action == null) + throw new RaptorRuntimeException("Action not found"); + } catch (RaptorException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. RaptorException: " + e.getMessage())); +// if (actionKey.equals("system_upgrade")) // System override +// return att.raptor.util.upgrade.SystemUpgrade.upgradeDB(request); + + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. Exception: " + e.getMessage())); + } + + try { + Class[] paramTypes = new Class[2]; + paramTypes[0] = Class.forName("javax.servlet.http.HttpServletRequest"); + paramTypes[1] = Class.forName("java.lang.String"); + + Class handlerClass = Class.forName(action.getControllerClass()); + Object handler = handlerClass.newInstance(); + Method handlerMethod = handlerClass.getMethod(action.getControllerMethod(), + paramTypes); + + Object[] paramValues = new Object[2]; + paramValues[0] = request; + paramValues[1] = action.getJspName(); + + return (String) handlerMethod.invoke(handler, paramValues); + } catch (ClassNotFoundException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. ClassNotFoundException: " + e.getMessage())); + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest] Unable to instantiate and invoke action handler. Exception: " + + e.getMessage())); + } catch (IllegalAccessException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. IllegalAccessException: " + e.getMessage())); + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest] Unable to instantiate and invoke action handler. Exception: " + + e.getMessage())); + }catch (InstantiationException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. InstantiationException: " + e.getMessage())); + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest] Unable to instantiate and invoke action handler. Exception: " + + e.getMessage())); + }catch (NoSuchMethodException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. NoSuchMethodException: " + e.getMessage())); + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest] Unable to instantiate and invoke action handler. Exception: " + + e.getMessage())); + }catch (InvocationTargetException e) { + logger.debug(EELFLoggerDelegate.debugLogger, ("[Controller.processRequest]Invalid raptor action [" + actionKey + + "]. InvocationTargetException: " + e.getMessage())); + return (new ErrorHandler()).processFatalError(request, new RaptorRuntimeException( + "[Controller.processRequest] Unable to instantiate and invoke action handler. Exception: " + + e.getMessage())); + } + } // processRequest + + public void handleRequest(HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext) throws Exception { + String actionKey = nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action")); + + handleRequest(actionKey, request, response, servletContext); + } // handleRequest + + public void handleRequest(String actionKey, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) throws Exception { + servletContext.getRequestDispatcher("/" + processRequest(actionKey, request)).forward( + request, response); + } // handleRequest + +} // Controller diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ErrorHandler.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ErrorHandler.java new file mode 100644 index 00000000..e08c21fb --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/ErrorHandler.java @@ -0,0 +1,168 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.io.Writer; +import java.util.*; +import javax.servlet.http.*; + +import org.onap.portalsdk.analytics.error.*; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.runtime.ErrorJSONRuntime; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; +import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +public class ErrorHandler extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ErrorHandler.class); + + public ErrorHandler() { + } + + public void processError(HttpServletRequest request, String errorMsg) { + //Log.write(errorMsg, 2); + logger.error(EELFLoggerDelegate.debugLogger, (errorMsg)); + ArrayList error_list = (ArrayList) request.getAttribute(AppConstants.RI_ERROR_LIST); + if (error_list == null) + error_list = new ArrayList(1); + error_list.add(errorMsg); + request.setAttribute(AppConstants.RI_ERROR_LIST, error_list); + } // processError + + public void processError(HttpServletRequest request, RaptorException e) { + processError(request, "Exception: " + e.getMessage()); + } // processError + + private String getSessionLog(HttpServletRequest request) { + String[] sessionVariablesToLog = Globals.getLogVariablesInSession().split(","); + StringBuffer sessionLogStrBuf = new StringBuffer("\n"); + sessionLogStrBuf.append("***** ADDITIONAL INFORMATION ******"); + HttpSession session = request.getSession(); + ReportRuntime rr = (ReportRuntime) session.getAttribute(AppConstants.SI_REPORT_RUNTIME); + ReportDefinition rdef = (ReportDefinition) session.getAttribute(AppConstants.SI_REPORT_DEFINITION); + if(rr!=null) { + sessionLogStrBuf.append("\nWHILE RUNNING"); + sessionLogStrBuf.append("\nReport Id="+rr.getReportID()+";\t"); + sessionLogStrBuf.append("Report Name="+rr.getReportName()+";\t\n"); + } else if (rdef != null) { + sessionLogStrBuf.append("\nWHILE CREATING/UPDATING"); + sessionLogStrBuf.append("\nReport Id="+rdef.getReportID()+";\t"); + sessionLogStrBuf.append("Report Name="+rdef.getReportName()+";\t\n"); + } + for (int i = 0; i < sessionVariablesToLog.length; i++) { + if(session.getAttribute(sessionVariablesToLog[i])!=null) + sessionLogStrBuf.append(sessionVariablesToLog[i]+"="+(String)session.getAttribute(sessionVariablesToLog[i])+";\t"); + } + sessionLogStrBuf.append("\n***********************************"); + sessionLogStrBuf.append("\n"); + return sessionLogStrBuf.toString(); + } + public String processFatalError(HttpServletRequest request, RaptorException e) { + //Log.write("Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage()), 1); + logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage())+" "+ getSessionLog(request) + e.getMessage()),AlarmSeverityEnum.MAJOR); + if (e instanceof ReportSQLException) { + String errorSQL = ((ReportSQLException) e).getReportSQL(); + if (nvl(errorSQL).length() > 0) + request.setAttribute("c_error_sql", errorSQL); + } // if + AppUtils.processErrorNotification(request, e); + + request.setAttribute(AppConstants.RI_EXCEPTION, e); + return AppUtils.getErrorPage(); + } // processFatalError + + public String processFatalErrorJSON(HttpServletRequest request, RaptorException e) { + //Log.write("Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage()), 1); + logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage())+" "+ getSessionLog(request) + e.getMessage()),AlarmSeverityEnum.MAJOR); + if (e instanceof ReportSQLException) { + String errorSQL = ((ReportSQLException) e).getReportSQL(); + if (nvl(errorSQL).length() > 0) + request.setAttribute("c_error_sql", errorSQL); + } // if + //AppUtils.processErrorNotification(request, e); + + request.setAttribute(AppConstants.RI_EXCEPTION, e); + ErrorJSONRuntime errorJSONRuntime = new ErrorJSONRuntime(); + errorJSONRuntime.setErrormessage(e.toString()); + errorJSONRuntime.setStacktrace(getStackTrace(e)); + ObjectMapper mapper = new ObjectMapper(); + //mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY); + //mapper.setVisibilityChecker(mapper.getVisibilityChecker().with(JsonAutoDetect.Visibility.NONE)); + mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + String jsonInString = ""; + try { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(errorJSONRuntime); + } catch (Exception ex) { + ex.printStackTrace(); + + } + return jsonInString; + } // processFatalError + + public static String getStackTrace(Throwable aThrowable) { + Writer result = new StringWriter(); + PrintWriter printWriter = new PrintWriter(result); + aThrowable.printStackTrace(printWriter); + return result.toString(); + } + public String processFatalErrorWMenu(HttpServletRequest request, RaptorException e) { + //Log.write("Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage()), 1); + logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] Fatal error [" + e.getClass().getName() + "]: " + nvl(e.getMessage())+" "+ getSessionLog(request) + e.getMessage()),AlarmSeverityEnum.MAJOR); + if (e instanceof ReportSQLException) { + String errorSQL = ((ReportSQLException) e).getReportSQL(); + if (nvl(errorSQL).length() > 0) + request.setAttribute("c_error_sql", errorSQL); + } // if + AppUtils.processErrorNotification(request, e); + + request.setAttribute(AppConstants.RI_EXCEPTION, e); + return AppUtils.getErrorPageWMenu(); + } // processFatalError + +} // ErrorHandler + diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardProcessor.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardProcessor.java new file mode 100644 index 00000000..11a58e73 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardProcessor.java @@ -0,0 +1,2374 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.ValidationException; +import org.onap.portalsdk.analytics.model.ReportHandler; +import org.onap.portalsdk.analytics.model.ReportLoader; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.model.base.OrderBySeqComparator; +import org.onap.portalsdk.analytics.model.base.OrderSeqComparator; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.definition.ReportSchedule; +import org.onap.portalsdk.analytics.model.runtime.FormField; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.XSSFilter; +import org.onap.portalsdk.analytics.xmlobj.ChartDrillFormfield; +import org.onap.portalsdk.analytics.xmlobj.ColFilterType; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.DataSourceType; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.analytics.xmlobj.FormatType; +import org.onap.portalsdk.analytics.xmlobj.JavascriptItemType; +import org.onap.portalsdk.analytics.xmlobj.Marker; +import org.onap.portalsdk.analytics.xmlobj.ObjectFactory; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +/**
+ * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting)
+ *
+ * + * --------------------------------------------------------------------------------------------------
+ * WizardProcessor.java - This class is used to process the user input provided in the wizard.
+ * It is called in creation as well as updation process. It builds report xml via JAXB using user
+ * input. This is vital one, to store meta information of each report
+ * ---------------------------------------------------------------------------------------------------
+ * + * + * Change Log

+ * + * 31-Aug-2009 : Version 8.5.1 (Sundar);
  • For Time Series multi series property is exposed.
+ * 28-Aug-2009 : Version 8.5.1 (Sundar);
  • If user login id is null, it would display user name when user is added for schedule.
+ * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 12-Aug-2009 : Version 8.5 (Sundar);
  • For Line Charts too options are captured and rendering is customized.
+ * 29-Jul-2009 : Version 8.4 (Sundar);
  • Maximum Excel Download size would be persisted if changed.
+ * 14-Jul-2009 : Version 8.4 (Sundar);
  • Schedule feature is added to Dashboard Reports.
+ * 29-Jun-2009 : Version 8.4 (Sundar);
  • Options for Compare to Previous year Chart are processed.
  • + *
  • In the Bar chart Last Occuring Series/Category can be plotted as Bar or Line Renderer.
  • + *
+ * 22-Jun-2009 : Version 8.4 (Sundar);
  • processChart method is modified to accommodate creating + * Bar Charts, Time Difference Charts and adding generic chart options.
+ * + */ + +public class WizardProcessor extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WizardProcessor.class); + + public WizardProcessor() { + } + + private String adjustDataType(String oracleDataType) { + return oracleDataType.equals("VARCHAR2") ? AppConstants.CT_CHAR : oracleDataType; + // Probably should be expanded to convert any CHAR or VARCHAR type to + // CT_CHAR, number type to CT_NUMBER and date to CT_DATE + } // adjustDataType + + public void persistReportDefinition(HttpServletRequest request, ReportDefinition rdef) + throws RaptorException { + ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + if (rr != null && rr.getReportID().equals(rdef.getReportID())) + request.getSession().removeAttribute(AppConstants.SI_REPORT_RUNTIME); + rdef.persistReport(request); + } // persistReportDefinition + + public void processWizardStep(HttpServletRequest request) throws Exception { + String action = nvl(request.getParameter(AppConstants.RI_WIZARD_ACTION), + AppConstants.WA_BACK); + + String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + ReportDefinition rdef = (new ReportHandler()).loadReportDefinition(request, reportID); + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + + String curStep = rdef.getWizardSequence().getCurrentStep(); + String curSubStep = rdef.getWizardSequence().getCurrentSubStep(); + if (AppUtils.getRequestNvlValue(request, "showDashboardOptions").length()<=0) + request.setAttribute("showDashboardOptions", "F"); + logger.debug(EELFLoggerDelegate.debugLogger, ("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^curStep " + curStep + " " + curSubStep + " " + action)); + boolean reportUpdated = false; + if (!action.equals(AppConstants.WA_BACK)) { + if (curStep.equals(AppConstants.WS_DEFINITION)) { + reportUpdated = processDefinition(request); + } else if (curStep.equals(AppConstants.WS_SQL)) { + if (action.equals(AppConstants.WA_VALIDATE)) + reportUpdated = processValidateSQL(request); + } else if (curStep.equals(AppConstants.WS_TABLES)) { + if (curSubStep.equals(AppConstants.WSS_ADD)) + reportUpdated = processTableAdd(request); + else if (curSubStep.equals(AppConstants.WSS_EDIT)) + reportUpdated = processTableEdit(request); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processTableDelete(request); + } else if (curStep.equals(AppConstants.WS_COLUMNS)) { + if (curSubStep.equals(AppConstants.WSS_ADD) + || curSubStep.equals(AppConstants.WSS_EDIT) || action.equals(AppConstants.WA_SAVE) || action.equals(AppConstants.WA_NEXT)) { + reportUpdated = processColumnAddEdit(request, curSubStep + .equals(AppConstants.WSS_EDIT) || curSubStep + .equals(AppConstants.WA_MODIFY)); + //reportUpdated = processColumnAddEdit(request, true); + } + else if (curSubStep.equals(AppConstants.WSS_ADD_MULTI)) + reportUpdated = processColumnAddMulti(request); + else if (curSubStep.equals(AppConstants.WSS_ORDER_ALL)) + reportUpdated = processColumnOrderAll(request); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processColumnDelete(request); + else if (action.equals(AppConstants.WA_MOVE_UP)) + reportUpdated = processColumnMoveUp(request); + else if (action.equals(AppConstants.WA_MOVE_DOWN)) + reportUpdated = processColumnMoveDown(request); + } else if (curStep.equals(AppConstants.WS_FORM_FIELDS)) { + if (curSubStep.equals(AppConstants.WSS_ADD) + || curSubStep.equals(AppConstants.WSS_EDIT)) + reportUpdated = processFormFieldAddEdit(request, curSubStep + .equals(AppConstants.WSS_EDIT), action); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processFormFieldDelete(request); + else if (action.equals(AppConstants.WA_MOVE_UP)) + reportUpdated = processFormFieldMoveUp(request); + else if (action.equals(AppConstants.WA_MOVE_DOWN)) + reportUpdated = processFormFieldMoveDown(request); + else if (action.equals(AppConstants.WSS_ADD_BLANK)) + reportUpdated = processFormFieldBlank(request); + else if (action.equals(AppConstants.WSS_INFO_BAR)) + reportUpdated = processFormFieldInfoBar(request); + } else if (curStep.equals(AppConstants.WS_FILTERS)) { + if (curSubStep.equals(AppConstants.WSS_ADD) + || curSubStep.equals(AppConstants.WSS_EDIT)) + reportUpdated = processFilterAddEdit(request, curSubStep + .equals(AppConstants.WSS_EDIT)); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processFilterDelete(request); + } else if (curStep.equals(AppConstants.WS_SORTING)) { + if (curSubStep.equals(AppConstants.WSS_ADD) + || curSubStep.equals(AppConstants.WSS_EDIT)) + reportUpdated = processSortAddEdit(request, curSubStep + .equals(AppConstants.WSS_EDIT)); + else if (curSubStep.equals(AppConstants.WSS_ORDER_ALL)) + reportUpdated = processSortOrderAll(request); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processSortDelete(request); + else if (action.equals(AppConstants.WA_MOVE_UP)) + reportUpdated = processSortMoveUp(request); + else if (action.equals(AppConstants.WA_MOVE_DOWN)) + reportUpdated = processSortMoveDown(request); + } else if (curStep.equals(AppConstants.WS_JAVASCRIPT)) { + if (action.equals(AppConstants.WSS_ADD)) + reportUpdated = processAddJavascriptElement(request); + else if (action.equals(AppConstants.WA_SAVE)) + reportUpdated = processSaveJavascriptElement(request); + else if (action.equals(AppConstants.WA_DELETE)) + reportUpdated = processDeleteJavascriptElement(request); + else + reportUpdated = processJavascript(request); + } else if (curStep.equals(AppConstants.WS_CHART)) { + reportUpdated = processChart(request, action); + } else if (curStep.equals(AppConstants.WS_USER_ACCESS)) { + reportUpdated = processUserAccess(request, action); + } else if (curStep.equals(AppConstants.WS_REPORT_LOG)) { + if (action.equals(AppConstants.WA_DELETE_USER)) + reportUpdated = processClearLog(request); + } else if (curStep.equals(AppConstants.WS_SCHEDULE)) { + reportUpdated = processSchedule(request, action); + } else if(curStep.equals(AppConstants.WS_DATA_FORECASTING)) { + reportUpdated = processForecasting(request, action); + } + /****For Report Maps - Start*****/ + else if (curStep.equals(AppConstants.WS_MAP)) { + reportUpdated = processMap(request, action); + } + /****For Report Maps - End*****/ + + // else + } + if (reportUpdated) + persistReportDefinition(request, rdef); + } // processWizardStep + + public void processImportSemaphorePopup(HttpServletRequest request) throws RaptorException { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String importReportId = AppUtils + .getRequestNvlValue(request, AppConstants.RI_REPORT_ID); + ReportRuntime rr = (new ReportHandler()).loadReportRuntime(request, importReportId, + false); + + ArrayList importedList = new ArrayList(); + if (rr.getSemaphoreList() != null) + for (Iterator iter = rr.getSemaphoreList().getSemaphore().iterator(); iter + .hasNext();) { + SemaphoreType sem = rdef.addSemaphore(new ObjectFactory(), + (SemaphoreType) iter.next()); + importedList + .add(new IdNameValue(sem.getSemaphoreId(), sem.getSemaphoreName())); + } // for + + if (importedList.size() > 0) { + request.setAttribute(AppConstants.RI_DATA_SET, importedList); + persistReportDefinition(request, rdef); + } // if + } // processImportSemaphorePopup + + public void processSemaphorePopup(HttpServletRequest request) throws RaptorException { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String semaphoreId = AppUtils.getRequestNvlValue(request, "semaphoreId"); + String semaphoreName = AppUtils.getRequestNvlValue(request, "semaphoreName"); + String semaphoreType = AppUtils.getRequestNvlValue(request, "semaphoreType"); + + SemaphoreType semaphore = rdef.getSemaphoreById(semaphoreId); + if (semaphore == null) { + semaphore = rdef.addSemaphoreType(new ObjectFactory(), semaphoreName, + semaphoreType, null); + semaphoreId = semaphore.getSemaphoreId(); + request.setAttribute("semaphoreId", semaphoreId); + } else { + rdef.deleteSemaphore(semaphore); + semaphore.setSemaphoreName(semaphoreName); + semaphore.setSemaphoreType(semaphoreType); + + rdef.setSemaphore(semaphore); + } + + String[] formatId = request.getParameterValues("formatId"); + String[] lessThanValue = request.getParameterValues("lessThanValue"); + String[] expression = request.getParameterValues("expression"); + String[] bold = request.getParameterValues("bold"); + String[] italic = request.getParameterValues("italic"); + String[] underline = request.getParameterValues("underline"); + String[] bgColor = request.getParameterValues("bgColor"); + String[] fontColor = request.getParameterValues("fontColor"); + String[] fontFace = request.getParameterValues("fontFace"); + String[] fontSize = request.getParameterValues("fontSize"); + //String[] anyFmt = request.getParameterValues("anyFmt"); + + // String[] alignment = request.getParameterValues("alignment"); + + for (int i = 0; i < lessThanValue.length; i++) + if (i == 0 || nvl(lessThanValue[i]).length() > 0) { + FormatType fmt = null; + if (i == 0 || nvl(formatId[i]).length() > 0) + fmt = rdef.getSemaphoreFormatById(semaphore, nvl(formatId[i])); + if (fmt == null) + fmt = rdef.addEmptyFormatType(new ObjectFactory(), semaphore); + + fmt.setLessThanValue(nvl(lessThanValue[i])); + fmt.setExpression(nvl(expression[i])); + fmt.setBold(bold[i].equals("Y")); + fmt.setItalic(italic[i].equals("Y")); + fmt.setUnderline(underline[i].equals("Y")); + fmt.setBgColor(bgColor[i]); + fmt.setFontColor(fontColor[i]); + fmt.setFontFace(fontFace[i]); + fmt.setFontSize(fontSize[i]); + //fmt.setAnyFmt((anyFmt[i]!=null)?anyFmt[i].startsWith("Y"):false); + // fmt.setAlignment(alignment[i]); + } else if (nvl(formatId[i]).length() > 0) + rdef.deleteFormatType(semaphore, formatId[i]); + + persistReportDefinition(request, rdef); + } // processSemaphorePopup + + private boolean processDefinition(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String reportName = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportName")); + String reportDescr = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportDescr")); + String folderId = AppUtils.getRequestNvlValue(request, "folder_id"); + boolean isAllowSchedule = (AppUtils.getRequestNvlValue(request, "allowSchedule").length()<=0?"N":AppUtils.getRequestNvlValue(request, "allowSchedule")).startsWith("Y"); + boolean isColumnGroup = (AppUtils.getRequestNvlValue(request, "multiGroupColumn").length()<=0?"N":AppUtils.getRequestNvlValue(request, "multiGroupColumn")).startsWith("Y"); + boolean isTopDown = (AppUtils.getRequestNvlValue(request, "topDown").length()<=0?"N":AppUtils.getRequestNvlValue(request, "topDown")).startsWith("Y"); + boolean isSizedByContent= (AppUtils.getRequestNvlValue(request, "sizedByContent").length()<=0?"N":AppUtils.getRequestNvlValue(request, "sizedByContent")).startsWith("Y"); + boolean reportsInNewWindow = false; + boolean hideFormFieldAfterRun = false; + + /*recurrance in schedule tab - Start*/ + String isOneTimeScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isOneTimeScheduleAllowed"),"N"); + String isHourlyScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isHourlyScheduleAllowed"),"N"); + String isDailyScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isDailyScheduleAllowed"),"N"); + String isDailyMFScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isDailyMFScheduleAllowed"),"N"); + String isWeeklyScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isWeeklyScheduleAllowed"),"N"); + String isMonthlyScheduleAllowed = nvl(AppUtils.getRequestValue(request, "isMonthlyScheduleAllowed"),"N"); + //System.out.println("//////////// + isOneTimeScheduleAllowed : " + isOneTimeScheduleAllowed); + /*recurrance in schedule tab - End*/ + + + if (reportDescr.length() > 1000) + reportDescr = reportDescr.substring(0, 1000); + boolean reportUpdated; + + String reportType = AppUtils.getRequestNvlValue(request, "reportType"); + + + + //rdef.setReportName(reportName); + //rdef.setReportDescr(reportDescr); + //rdef.setReportType(reportType); + rdef.setFolderId(folderId); +// debugLogger.debug("setting folder ID = " + folderId); + if(reportType.equals(AppConstants.RT_DASHBOARD)) { + rdef.setReportName(reportName); + rdef.setReportDescr(reportDescr); + rdef.setReportType(reportType); + String dashboardLayoutHTML = AppUtils.getRequestNvlValue(request, "dashboardLayoutHTML"); + rdef.setDashboardLayoutHTML(dashboardLayoutHTML); + String dataContainerHeight = nvl(AppUtils.getRequestValue(request, "heightContainer"), "auto"); + String dataContainerWidth = nvl(AppUtils.getRequestValue(request, "widthContainer"), "auto"); + rdef.setDataContainerHeight(dataContainerHeight); + rdef.setDataContainerWidth(dataContainerWidth); + rdef.setAllowSchedule(isAllowSchedule?"Y":"N"); + + + /* + String numDashCols = AppUtils.getRequestNvlValue(request, "numDashCols"); + String reports1 = AppUtils.getRequestNvlValue(request, "reports1"); + String reports2 = AppUtils.getRequestNvlValue(request, "reports2"); + String reports3 = AppUtils.getRequestNvlValue(request, "reports3"); + String reports4 = AppUtils.getRequestNvlValue(request, "reports4"); + String repBgColor1 = AppUtils.getRequestNvlValue(request, "repBgColor1"); + String repBgColor2 = AppUtils.getRequestNvlValue(request, "repBgColor2"); + String repBgColor3 = AppUtils.getRequestNvlValue(request, "repBgColor3"); + String repBgColor4 = AppUtils.getRequestNvlValue(request, "repBgColor4"); + + //List reports = rdef.getDashBoardReports(); + rdef.setNumDashCols(numDashCols); + DashboardReports reportsList = new DashboardReportsImpl(); + + String reports[] = new String[]{reports1, reports2, reports3, reports4}; + String repBgColors[] = new String[]{repBgColor1, repBgColor2, repBgColor3, repBgColor4}; + for (int i = 0; i < reports.length; i++) { + Reports report = new ReportsImpl(); + report.setReportId(reports[i]); + report.setBgcolor(repBgColors[i]); + reportsList.getReportsList().add(report); + } + + + + rdef.setDashBoardReports(reportsList); + */ + reportUpdated = true; + +// reportUpdated = (!(reportName.equals(nvl(rdef.getReportName())) +// && reportDescr.equals(nvl(rdef.getReportDescr())) +// && reportType.equals(nvl(rdef.getReportType())) +// && numDashCols.equals(nvl(rdef.getNumDashCols())))); +//// && rdef.getR + + if (rdef.getWizardSequence() instanceof WizardSequence) + rdef.generateWizardSequence(request); + + } else { + + if (AppUtils.getRequestNvlValue(request, "reportType").equals(AppConstants.RT_CROSSTAB) || rdef.getReportType().equals(AppConstants.RT_CROSSTAB)) { + + String widthNo = AppUtils.getRequestNvlValue(request, "widthNo"); + if(nvl(widthNo).endsWith("px")) + rdef.setWidthNoColumn(widthNo); + else + rdef.setWidthNoColumn(widthNo+"px"); + } + + String dataGridAlign = AppUtils.getRequestNvlValue(request, "dataGridAlign"); + if(nvl(dataGridAlign).length()>0) { + rdef.setDataGridAlign(dataGridAlign); + } else { + rdef.setDataGridAlign("left"); + } + + String pdfImgLogo = AppUtils.getRequestNvlValue(request, "pdfImg"); + if(nvl(pdfImgLogo).length()>0) + rdef.setPdfImg(pdfImgLogo); + else + rdef.setPdfImg(null); + String emptyMessage = AppUtils.getRequestNvlValue(request, "emptyMessage"); + if(nvl(emptyMessage).length()>0) + rdef.setEmptyMessage(emptyMessage); + else + rdef.setEmptyMessage(""); + String formHelp = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "formHelp")); + //String rDashboardType = nvl(AppUtils.getRequestValue(request, "showDashboardOptions"), "N"); + //rdef.setDashboardType(rDashboardType.equals("Y")); + int excelDownloadSize = 500; + try { + excelDownloadSize = Integer.parseInt(AppUtils.getRequestValue(request, "excelDownloadSize")); + } catch (NumberFormatException ex) {} + if(AppUtils.getRequestNvlValue(request, "excelDownloadSize").length()>0) + rdef.setMaxRowsInExcelDownload(Integer.parseInt(AppUtils.getRequestValue(request, "excelDownloadSize"))); + if(AppUtils.getRequestNvlValue(request, "reportInNewWindow").length()>0) + reportsInNewWindow = AppUtils.getRequestNvlValue(request,"reportInNewWindow").equals("Y"); + if(AppUtils.getRequestNvlValue(request, "hideFormFieldsAfterRun").length()>0) + hideFormFieldAfterRun = AppUtils.getRequestNvlValue(request,"hideFormFieldsAfterRun").equals("Y"); + + + if(AppUtils.getRequestNvlValue(request, "displayFolderTree").length()>0) + rdef.setDisplayFolderTree(AppUtils.getRequestNvlValue(request,"displayFolderTree").equals("Y")); + else + rdef.setDisplayFolderTree(false); + String dataSource = AppUtils.getRequestNvlValue(request, "dataSource"); + String dbType = Globals.getDBType(); + String schemaSql = Globals.getRemoteDbSchemaSqlWithWhereClause(); + schemaSql = schemaSql.replace("[schema_id]", dataSource); + DataSet ds = null; + try { + ds = DbUtils.executeQuery(schemaSql); + + String prefix = "", desc = ""; + + for (int i = 0; i < ds.getRowCount(); i++) { + dbType = ds.getItem(i, 2); + } + } + catch (Exception e) {} + + int pageSize = Globals.getDefaultPageSize(); + try { + pageSize = Integer.parseInt(AppUtils.getRequestValue(request, "pageSize")); + } catch (NumberFormatException e) { + } + String rApproved = nvl(AppUtils.getRequestValue(request, "menuApproved"), "N"); + String menuID = ""; + String[] menuIDs = request.getParameterValues("menuID"); + if (menuIDs != null) + for (int i = 0; i < menuIDs.length; i++) + menuID += (menuID.length() == 0 ? "" : "|") + menuIDs[i]; + /* else + menuID = "";*/ + +// boolean additionalFieldsShown = AppUtils.getRequestNvlValue(request, +// "additionalFieldsShown").equals("Y"); + boolean rRCSDisabled = AppUtils.getRequestNvlValue(request, "runtimeColSortDisabled").equals("Y"); + String reportDefType = AppUtils.getRequestNvlValue(request, "reportDefType"); + String dataContainerHeight = nvl(AppUtils.getRequestValue(request, "heightContainer"), "auto"); + String dataContainerWidth = nvl(AppUtils.getRequestValue(request, "widthContainer"), "auto"); + + String displayOptions = nvl(AppUtils.getRequestValue(request, "hideForm"), "N") + + nvl(AppUtils.getRequestValue(request, "hideChart"), "N") + + nvl(AppUtils.getRequestValue(request, "hideData"), "N") + + nvl(AppUtils.getRequestValue(request, "hideBtns"), "N") + + nvl(AppUtils.getRequestValue(request, "hideMap"), "N") + + nvl(AppUtils.getRequestValue(request, "hideExcelIcons"), "N") + + nvl(AppUtils.getRequestValue(request, "hidePDFIcons"), "N"); +/* StringBuffer dashboardOptions = new StringBuffer(""); + dashboardOptions.append((nvl(AppUtils.getRequestValue(request, "hide"),"chart").equals("chart"))?"Y":"N"); + dashboardOptions.append((nvl(AppUtils.getRequestValue(request, "hide"),"").equals("data"))?"Y":"N"); + dashboardOptions.append((nvl(AppUtils.getRequestValue(request, "hideBtns"),"").equals("Y"))?"Y":"N");*/ + + String numFormCols = nvl(AppUtils.getRequestValue(request, "numFormCols"), "1"); + String reportTitle = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportTitle")); + String reportSubTitle = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportSubTitle")); + String reportHeader = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportHeader")); + String reportFooter = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportFooter")); + + int frozenColumns = 0; + try { + frozenColumns = Integer.parseInt(AppUtils.getRequestValue(request, "frozenColumns")); + } catch (NumberFormatException ex) { + + } + +/* reportUpdated = (!(reportName.equals(nvl(rdef.getReportName())))) + && (!(reportDescr.equals(nvl(rdef.getReportDescr())))) + && (!(formHelp.equals(nvl(rdef.getFormHelpText())))) + && (!(reportType.equals(nvl(rdef.getReportType())))) + && (pageSize != rdef.getPageSize()) && + // rPublic.equals(rdef.isPublic()?"Y":"N")&& + (!(menuID.equals(nvl(rdef.getMenuID())))) + && (!(rApproved.equals(rdef.isMenuApproved()))) && (additionalFieldsShown ? ((!(rRCSDisabled + .equals(rdef.isRuntimeColSortDisabled()))) + && (!(displayOptions.equals(nvl(rdef.getDisplayOptions())))) + && (!(dashboardOptions.equals(nvl(rdef.getDashboardOptions())))) + && (!(numFormCols.equals(nvl(rdef.getNumFormCols())))) + && (!(reportTitle.equals(nvl(rdef.getReportTitle())))) + && (!(reportSubTitle.equals(nvl(rdef.getReportSubTitle())))) + && (!(reportHeader.equals(nvl(rdef.getReportHeader())))) && (!(reportFooter + .equals(nvl(rdef.getReportFooter()))))&& (reportsInNewWindow != rdef.isReportInNewWindow())):true); +*/ +/* reportUpdated = rRCSDisabled ==(rdef.isRuntimeColSortDisabled() + && displayOptions.equals(nvl(rdef.getDisplayOptions())) + //&& dashboardOptions.equals(nvl(rdef.getDashboardOptions())) + && numFormCols.equals(nvl(rdef.getNumFormCols())) + && reportTitle.equals(nvl(rdef.getReportTitle())) + && reportSubTitle.equals(nvl(rdef.getReportSubTitle())) + && reportHeader.equals(nvl(rdef.getReportHeader())) + && reportsInNewWindow == rdef.isReportInNewWindow() + && reportFooter.equals(nvl(rdef.getReportFooter()))) + ;*/ + + + /*reportUpdated = (!(reportName.equals(nvl(rdef.getReportName())) + && reportDescr.equals(nvl(rdef.getReportDescr())) + && formHelp.equals(nvl(rdef.getFormHelpText())) + && reportType.equals(nvl(rdef.getReportType())) + && (pageSize == rdef.getPageSize()) + && excelDownloadSize == rdef.getMaxRowsInExcelDownload() + && reportsInNewWindow == rdef.isReportInNewWindow() + && displayOptions.equals(rdef.getDisplayOptions()) + && dataContainerHeight.equals(rdef.getDataContainerHeight()) + && dataContainerWidth.equals(rdef.getDataContainerWidth()) + && (isAllowSchedule ==(rdef.isAllowSchedule())) + // rPublic.equals(rdef.isPublic()?"Y":"N")&& + && menuID.equals(nvl(rdef.getMenuID())) + && rApproved.equals(rdef.isMenuApproved() ? "Y" : "N") && (rRCSDisabled + == ((rdef.isRuntimeColSortDisabled()) + && displayOptions.equals(nvl(rdef.getDisplayOptions())) + //&& dashboardOptions.equals(nvl(rdef.getDashboardOptions())) + && numFormCols.equals(nvl(rdef.getNumFormCols())) + && reportTitle.equals(nvl(rdef.getReportTitle())) + && reportSubTitle.equals(nvl(rdef.getReportSubTitle())) + && isOneTimeScheduleAllowed.equals(nvl(rdef.getIsOneTimeScheduleAllowed())) + && isHourlyScheduleAllowed.equals(nvl(rdef.getIsHourlyScheduleAllowed())) + && isDailyScheduleAllowed.equals(nvl(rdef.getIsDailyScheduleAllowed())) + && isDailyMFScheduleAllowed.equals(nvl(rdef.getIsDailyMFScheduleAllowed())) + && isWeeklyScheduleAllowed.equals(nvl(rdef.getIsWeeklyScheduleAllowed())) + && isMonthlyScheduleAllowed.equals(nvl(rdef.getIsMonthlyScheduleAllowed())) + && reportHeader.equals(nvl(rdef.getReportHeader())) && reportFooter + .equals(nvl(rdef.getReportFooter())))) + )); */ + rdef.setReportName(reportName); + rdef.setReportDescr(reportDescr); + rdef.setFormHelpText(formHelp); + rdef.setReportType(reportType); + rdef.setPageSize(pageSize); + rdef.setDBInfo(dataSource); + rdef.setDBType(dbType); + rdef.setDisplayOptions(displayOptions); + rdef.setDataContainerHeight(dataContainerHeight); + rdef.setDataContainerWidth(dataContainerWidth); + rdef.setAllowSchedule(isAllowSchedule?"Y":"N"); + rdef.setMultiGroupColumn(isColumnGroup?"Y":"N"); + rdef.setTopDown(isTopDown?"Y":"N"); + rdef.setSizedByContent(isSizedByContent?"Y":"N"); + // rdef.setPublic(rPublic.equals("Y")); + rdef.setMenuID(menuID); + rdef.setMenuApproved(rApproved.equals("Y")); + if (reportDefType.length() > 0) + rdef.setReportDefType(reportDefType); +/* if(rdef.isDashboardType()) { + rdef.setDashboardOptions(dashboardOptions.toString()); + }*/ + rdef.setHideFormFieldAfterRun(hideFormFieldAfterRun); + rdef.setReportInNewWindow(reportsInNewWindow); + rdef.setRuntimeColSortDisabled(rRCSDisabled); + rdef.setNumFormCols(numFormCols); + rdef.setReportTitle(reportTitle); + rdef.setReportSubTitle(reportSubTitle); + rdef.setReportHeader(reportHeader); + rdef.setReportFooter(reportFooter); + rdef.setIsOneTimeScheduleAllowed(isOneTimeScheduleAllowed); + rdef.setIsHourlyScheduleAllowed(isHourlyScheduleAllowed); + rdef.setIsDailyScheduleAllowed(isDailyScheduleAllowed); + rdef.setIsDailyMFScheduleAllowed(isDailyMFScheduleAllowed); + rdef.setIsWeeklyScheduleAllowed(isWeeklyScheduleAllowed); + rdef.setIsMonthlyScheduleAllowed(isMonthlyScheduleAllowed); + rdef.setFrozenColumns(frozenColumns); + + } // if + + if (rdef.getWizardSequence() instanceof WizardSequence) + rdef.generateWizardSequence(request); + + + /* + * if(formHelp.length()>255) formHelp = formHelp.substring(0, 255); + */ + + + // String rPublic = nvl(AppUtils.getRequestValue(request, "public"), + // "N"); + // String menuID = AppUtils.getRequestNvlValue(request, "menuID"); + +// boolean dashboardOptionsShown = AppUtils.getRequestNvlValue(request, +// "dashboardOptionsShown").equals("Y"); + + reportUpdated = true; + + if (rdef.getReportID().equals("-1")) + // Always need to persist new report - in case it is a copy + reportUpdated = true; + + return reportUpdated; + } // processDefinition + + private boolean processTableAdd(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String tableName = AppUtils.getRequestNvlValue(request, "tableName").toUpperCase(); + String tableId = rdef.getUniqueTableId(tableName); + + String joinTableExpr = null; + String joinTableId = null; + + DataSourceType joinTable = + rdef.getTableById(AppUtils.getRequestValue(request, "joinTableName")); + if (joinTable != null) { + String joinTableName = joinTable.getTableName(); + joinTableId = joinTable.getTableId(); + + String joinExpr = AppUtils.getRequestNvlValue(request, "joinExpr").toUpperCase(); + + joinTableExpr = joinExpr.replaceAll("\\["+tableName+"\\]", tableId); + joinTableExpr = joinTableExpr.replaceAll("\\["+joinTableName+"\\]", joinTableId); +// debugLogger.debug("joinExpr : "+joinExpr+"\njoinTableExpr : "+ joinTableExpr); + } + + rdef.addDataSourceType(new ObjectFactory(), tableId, tableName, AppUtils + .getRequestNvlValue(request, "tablePK"), AppUtils.getRequestNvlValue(request, + "displayName"), joinTableId, joinTableExpr, null); + + rdef.setOuterJoin(rdef.getTableById(tableId), AppUtils.getRequestNvlValue(request, + "outerJoin")); + rdef.resetCache(true); + + return true; + } // processTableAdd + + private boolean processTableEdit(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + DataSourceType dst = rdef.getTableById(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + + String displayName = XSSFilter.filterRequest(AppUtils.getRequestNvlValue(request, "displayName")); + String outerJoin = AppUtils.getRequestNvlValue(request, "outerJoin"); + + String tableName = AppUtils.getRequestNvlValue(request, "tableName").toUpperCase(); + String joinTableId = AppUtils.getRequestNvlValue(request, "joinTableName"); + + String joinExpr = AppUtils.getRequestNvlValue(request, "joinExpr").toUpperCase(); + + String joinTableExpr = null; + if(joinExpr.length()!=0){ + joinTableExpr = joinExpr.replaceAll("\\["+tableName+"\\]", rdef.getTableByDBName(tableName).getTableId()); + joinTableExpr = joinTableExpr.replaceAll("\\["+rdef.getTableById(joinTableId).getTableName().toUpperCase()+"\\]", joinTableId); + dst.setRefDefinition(joinTableExpr); + } + boolean reportUpdated = (!displayName.equals(nvl(dst.getDisplayName())) || + !outerJoin.equals(rdef.getOuterJoinType(dst)) || + !(joinExpr.length()==0)); + + dst.setDisplayName(displayName); + rdef.setOuterJoin(dst, outerJoin); + if (reportUpdated) + rdef.resetCache(true); + + return true; // reportUpdated; + } // processTableEdit + + + private boolean processTableDelete(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.deleteDataSourceType(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + return true; + } // processTableDelete + + private boolean processColumnAddEdit(HttpServletRequest request, boolean isEdit) + throws Exception { + if(!isEdit) { + return true; + } + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + DataColumnType currColumn = null; + + String tableId = null; + String colName = null; + String dataType = null; + if (isEdit) { + currColumn = rdef.getColumnById(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + + if(currColumn!=null) { + tableId = currColumn.getTableId(); + colName = currColumn.getDbColName(); // currColumn.getColName(); + dataType = currColumn.getDbColType(); + } + } else { + String colData = AppUtils.getRequestNvlValue(request, "columnDetails"); + if(nvl(colData).length()>0) { + tableId = colData.substring(0, colData.indexOf('|')); + colName = colData.substring(tableId.length() + 1, + colData.indexOf('|', tableId.length() + 1)).toUpperCase(); + dataType = colData.substring(tableId.length() + colName.length() + 2); + } + } // else + + String exprFormula = AppUtils.getRequestNvlValue(request, "exprFormula"); + + String colNameValue = null; + if (exprFormula.length() > 0) + if (exprFormula.equals("_exprText_")) + colNameValue = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestValue(request, "exprText")); + else if (exprFormula.equals("COUNT(*)")) + colNameValue = exprFormula; + else + colNameValue = exprFormula + " " + colName + ")"; + else + colNameValue = colName; + + int displayWidth = -1; + try { + displayWidth = Integer.parseInt(AppUtils.getRequestValue(request, "displayWidth")); + } catch (NumberFormatException e) { + } + + String sColId = isEdit ? currColumn.getColId() : (nvl(colName).length()>0?rdef.getUniqueColumnId(colName):null); + String drillDownParams = AppUtils.getRequestValue(request, "drillDownParams"); + if (drillDownParams != null) { + // Replacing references to [this] with [col_id] + while (drillDownParams.indexOf("[this]") >= 0) { + int startIdx = drillDownParams.indexOf("[this]"); + StringBuffer sb = new StringBuffer(); + + if (startIdx > 0) + sb.append(drillDownParams.substring(0, startIdx)); + sb.append("[" + sColId + "]"); + if (startIdx + 6 < drillDownParams.length() - 1) + sb.append(drillDownParams.substring(startIdx + 5)); + drillDownParams = sb.toString(); + } // while + } // if + + String crossTabValue = null; + boolean isVisible = AppUtils.getRequestFlag(request, "visible"); + boolean isSortable = AppUtils.getRequestFlag(request, "sortable"); + String nowrap = AppUtils.getRequestNvlValue(request, "nowrap"); + int indentation = 0; + try { + indentation = Integer.parseInt(AppUtils.getRequestNvlValue(request, "indentation")); + }catch (NumberFormatException e) { + } + String dependsOnFormField = AppUtils.getRequestNvlValue(request, "dependsOnFormField"); + boolean isGroupBreak = AppUtils.getRequestFlag(request, "groupBreak"); + String groupByPosStr = AppUtils.nvls(AppUtils.getRequestValue(request, "groupByPos"), "0"); + int groupByPos = Integer.parseInt(groupByPosStr); + currColumn.setGroupByPos(groupByPos); + + if(groupByPos > 0) { + String subTotalCustomText = AppUtils.nvls(AppUtils.getRequestValue(request, "subTotalCustomText"), "Sub Total"); + currColumn.setSubTotalCustomText(subTotalCustomText); + + boolean hideRepeatedKey = AppUtils.getRequestFlag(request, "hideRepeatedKeys"); + currColumn.setHideRepeatedKey(hideRepeatedKey); + } + + String displayTotal = AppUtils.getRequestNvlValue(request, "displayTotal"); + String widthInPxls = AppUtils.getRequestNvlValue(request, "widthInPxls"); + + if (rdef.getReportType().equals(AppConstants.RT_CROSSTAB)) { + + + + crossTabValue = AppUtils.getRequestValue(request, "crossTabValue"); + isVisible = nvl(crossTabValue).equals(AppConstants.CV_ROW) + || nvl(crossTabValue).equals(AppConstants.CV_COLUMN) + || nvl(crossTabValue).equals(AppConstants.CV_VALUE); + isGroupBreak = nvl(crossTabValue).equals(AppConstants.CV_ROW) + || nvl(crossTabValue).equals(AppConstants.CV_COLUMN); + + if (nvl(crossTabValue).equals(AppConstants.CV_VALUE)) + displayTotal += "|" + + AppUtils.getRequestNvlValue(request, "displayTotalPerRow"); + else + displayTotal = ""; + } // if + + String displayName = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "displayName")); + String colType = AppUtils.getRequestNvlValue(request, "colType"); + String displayFormat = AppUtils.getRequestNvlValue(request, "displayFormat"); + + //HYPERLINK + if(colType.equals(AppConstants.CT_HYPERLINK)) { + String hyperlinkURL = AppUtils.getRequestValue(request, "hyperlinkURL"); + currColumn.setHyperlinkURL(hyperlinkURL); + String anchor = AppUtils.getRequestValue(request, "anchor"); + currColumn.setHyperlinkType(anchor); + if(anchor.equals("IMAGE")) { + String actionImg = AppUtils.getRequestValue(request, "actionImg"); + currColumn.setActionImg(actionImg); + } + } + + + + String displayAlign = AppUtils.getRequestValue(request, "displayAlign"); + String displayHeaderAlign = AppUtils.getRequestValue(request, "displayHeaderAlign"); + String drillDownURL = AppUtils.getRequestValue(request, "drillDownURL"); + String drillDownSuppress = AppUtils.getRequestValue(request, "drillDownSuppress"); + boolean drillDownPopUp = AppUtils.getRequestFlag (request, "drillDownPopUp"); + String semaphoreId = AppUtils.getRequestNvlValue(request, "semaphore"); + String semaphoreType = AppUtils.getRequestNvlValue(request, "semaphoreTypeHidden"); + + String levelStr = AppUtils.getRequestNvlValue(request, "multiGroupColLevel"); + String startColGroup = AppUtils.getRequestNvlValue(request, "startMultiGroup"); + String colGroupColSpan = AppUtils.getRequestNvlValue(request, "colspan"); + int level = 0; + try { + level = Integer.parseInt(levelStr); + }catch (NumberFormatException ex) { + level = 0; + } + int startColGroupInt = 0; + int colGroupColSpanInt = 0; + if(level > 0) { + try { + //startColGroupInt = Integer.parseInt(startColGroup); + colGroupColSpanInt = Integer.parseInt(colGroupColSpan); + } catch (NumberFormatException ex) { + + } + } + currColumn.setLevel(level); + if(level > 0) { + currColumn.setStart(startColGroupInt); + currColumn.setColspan(colGroupColSpanInt); + } + + String targetColumnId = (semaphoreType.indexOf("|")!= -1 ? semaphoreType.substring(semaphoreType.indexOf("|")+1):""); + DataColumnType targetColumn = rdef.getColumnById(targetColumnId); + + SemaphoreType semaphore = rdef.getSemaphoreById(semaphoreId); + rdef.deleteSemaphore(semaphore); + if(nvl(semaphoreType).length() > 0 && semaphoreType.indexOf("|")!=-1) + semaphore.setSemaphoreType(semaphoreType.substring(0,semaphoreType.indexOf("|"))); + if(semaphore!=null) { + semaphore.setComment(currColumn.getColId()); + if(nvl(semaphoreType).length() > 0) + semaphore.setTarget(targetColumnId.length()>0? targetColumnId: ""); + rdef.setSemaphore(semaphore); + } + + + if (isEdit) { + if(nvl(widthInPxls).length()>0) { + if(nvl(widthInPxls).endsWith("px")) + currColumn.setDisplayWidthInPxls(widthInPxls); + else + currColumn.setDisplayWidthInPxls(widthInPxls+"px"); + } else { + currColumn.setDisplayWidthInPxls(""); + } + + currColumn.setCrossTabValue(crossTabValue); + currColumn.setDependsOnFormField(dependsOnFormField); + currColumn.setDisplayName(displayName); + //currColumn.setOriginalDisplayName(displayName); + + if (displayWidth > 0) + currColumn.setDisplayWidth(displayWidth); + currColumn.setDisplayAlignment(displayAlign); + currColumn.setDisplayHeaderAlignment(displayHeaderAlign); + currColumn.setDrillDownURL(drillDownURL); + currColumn.setDrillDownParams(drillDownParams); + currColumn.setDrillDownType(drillDownSuppress); + currColumn.setDrillinPoPUp(drillDownPopUp); + //indentation + currColumn.setIndentation(indentation); + if(drillDownPopUp) { + rdef.setDrillDownURLInPopupPresent(true); + } + /*if(targetColumn!=null) { + currColumn.setSemaphoreId(null); + targetColumn.setSemaphoreId(semaphoreId); + } else */ + currColumn.setSemaphoreId(semaphoreId); + currColumn.setGroupBreak(isGroupBreak); + logger.debug(EELFLoggerDelegate.debugLogger, (" ------------ Display Total ---------- "+ displayTotal)); + currColumn.setDisplayTotal(displayTotal); + //if (currColumn.getDrillDownURL() == null || currColumn.getDrillDownURL().length() == 0) + currColumn.setVisible(isVisible); + currColumn.setIsSortable(isSortable); + currColumn.setNowrap(nowrap); + //else + // currColumn.setVisible(true); + if (rdef.getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + if(colType!=null) + currColumn.setColType(colType); + displayFormat = AppUtils.getRequestValue(request, "colDataFormat"); + if (displayFormat != null){ + currColumn.setColFormat(displayFormat); + } + if(colType!=null && colType.equals(AppConstants.CT_DATE)) { + boolean enhancedPagination = AppUtils.getRequestFlag(request, "enhancedPagination"); + currColumn.setEnhancedPagination(enhancedPagination); + } + } + if (!rdef.getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + currColumn.setColName(colNameValue); + if (displayFormat != null) + currColumn.setColFormat(displayFormat); + //currColumn.setVisible(isVisible); + currColumn.setCalculated(exprFormula.length() > 0); + + rdef.adjustColumnType(currColumn); + } // if + + rdef.resetCache(true); + } else + currColumn = rdef.addDataColumnType(new ObjectFactory(), sColId, tableId, colName, + crossTabValue, colNameValue, displayName, displayWidth, displayAlign, rdef + .getAllColumns().size() + 1, isVisible, + (exprFormula.length() > 0), adjustDataType(dataType), displayFormat, + isGroupBreak, -1, null, displayTotal, null, -1, drillDownSuppress, + drillDownURL, drillDownParams, semaphoreId, null); + + if (rdef.getReportDefType().equals(AppConstants.RD_SQL_BASED)) + rdef.setColumnNoParseDateFlag(currColumn, AppUtils.getRequestFlag(request, + "no_parse_date")); + if(nvl(displayName).length()>0) + return true; + else + return false; + } // processColumnAddEdit + + private boolean processColumnAddMulti(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + List reportCols = rdef.getAllColumns(); + int nCol = reportCols.size() + 1; + + String[] addColumn = request.getParameterValues("addColumn"); + String[] tableId = request.getParameterValues("tableId"); + String[] columnName = request.getParameterValues("columnName"); + String[] columnType = request.getParameterValues("columnType"); + String[] displayName = request.getParameterValues("displayName"); + + for (int i = 0; i < addColumn.length; i++) + if (addColumn[i].equals("Y")) { + int j = 2; + String uniqueDisplayName = displayName[i]; + boolean isUnique = true; + do { + isUnique = true; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) + if (uniqueDisplayName.equals(((DataColumnType) iter.next()) + .getDisplayName())) { + isUnique = false; + uniqueDisplayName = displayName[i] + (j++); + break; + } // if + } while (!isUnique); + + rdef + .addDataColumnType( + new ObjectFactory(), + rdef.getUniqueColumnId(columnName[i]), + tableId[i], + columnName[i], + null, + columnName[i], + uniqueDisplayName, + 10, + "Left", + nCol++, + true, + false, + adjustDataType(columnType[i]), + (columnType[i].equals(AppConstants.CT_DATE) ? AppConstants.DEFAULT_DATE_FORMAT + : null), false, -1, null, null, null, -1, null, null, + null, null, null); + } // if + + return true; + } // processColumnAddMulti + + private boolean processColumnOrderAll(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String[] colId = request.getParameterValues("colId"); + String[] colOrder = request.getParameterValues("colOrder"); + + boolean reportUpdated = false; + for (int i = 0; i < colId.length; i++) { + DataColumnType dct = rdef.getColumnById(nvl(colId[i])); + if (dct == null) + continue; + + int iColOrder = 0; + try { + iColOrder = Integer.parseInt(colOrder[i]); + } catch (NumberFormatException e) { + } + + if (iColOrder > 0) { + dct.setOrderSeq(iColOrder); + reportUpdated = true; + } // if + } // for + + if (reportUpdated) { + List reportCols = rdef.getAllColumns(); + Collections.sort(reportCols, new OrderSeqComparator()); + + int iOrder = 1; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + dct.setOrderSeq(iOrder++); + } // for + + rdef.resetCache(false); + } // if + + return reportUpdated; + } // processColumnOrderAll + + private boolean processColumnDelete(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.deleteDataColumnType(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + return true; + } // processColumnDelete + + private boolean processColumnMoveUp(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.shiftColumnOrderUp(AppUtils + .getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + return true; + } // processColumnMoveUp + + private boolean processColumnMoveDown(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.shiftColumnOrderDown(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + return true; + } // processColumnMoveDown + + private boolean processFormFieldAddEdit(HttpServletRequest request, boolean isEdit, + String action) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String fieldName = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "fieldName")); + String multiSelectSize = "0"; + String colId = AppUtils.getRequestNvlValue(request, "fieldColId"); + if (rdef.getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + String displayFormat = AppUtils.getRequestNvlValue(request, "displayFormat"); + if (displayFormat.length() > 0) + colId += "|" + displayFormat; + } // if + String fieldType = AppUtils.getRequestNvlValue(request, "fieldType"); + String validation = AppUtils.getRequestNvlValue(request, "validation"); + String mandatory = nvl(AppUtils.getRequestValue(request, "mandatory"), "N"); + String defaultValue = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "defaultValue")); + String fieldHelp = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "fieldHelp")); + String fieldSQL = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "fieldSQL")); + String fieldDefaultSQL = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "fieldDefaultSQL")); + String visible = nvl(AppUtils.getRequestValue(request, "visible"),"Y"); + String dependsOn = nvl(AppUtils.getRequestValue(request, "dependsOn"),""); + String rangeStartDate = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "rangeStartDate")); + String rangeEndDate = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "rangeEndDate")); + String rangeStartDateSQL = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "rangeStartDateSQL")); + String rangeEndDateSQL = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "rangeEndDateSQL")); + boolean isGroupFormField = AppUtils.getRequestFlag(request,"isGroupFormField"); + + Calendar start = null; + Calendar end = null; + if (AppUtils.nvl(rangeStartDate).length()>0){ + SimpleDateFormat dtf = new SimpleDateFormat("MM/dd/yyyy"); + start = Calendar.getInstance(); + start.setTime(dtf.parse(rangeStartDate)); + } + if (AppUtils.nvl(rangeEndDate).length()>0){ + SimpleDateFormat dtf = new SimpleDateFormat("MM/dd/yyyy"); + end = Calendar.getInstance(); + end.setTime(dtf.parse(rangeEndDate)); + }/* + * if(fieldHelp.length()>255) fieldHelp = fieldHelp.substring(0, 255); + */ + + boolean reportUpdated = false; + + FormFieldType currField = null; + if (isEdit) { + String fieldId = AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID); + + currField = rdef.getFormFieldById(fieldId); + if (currField != null && nvl(fieldName).length()>0) { + reportUpdated = (!(fieldName.equals(nvl(currField.getFieldName())) + && colId.equals(nvl(currField.getColId())) + && fieldType.equals(nvl(currField.getFieldType())) + && validation.equals(nvl(currField.getValidationType())) + && mandatory.equals(nvl(currField.getMandatory(), "N")) + && defaultValue.equals(nvl(currField.getDefaultValue())) + && fieldSQL.equals(nvl(currField.getFieldSQL())) + && fieldDefaultSQL.equals(nvl(currField.getFieldDefaultSQL())) + && dependsOn.equals(nvl(currField.getDependsOn(), "N")) + && (start == null || (start != null && currField.getRangeStartDate() == null) || (start.equals(currField.getRangeStartDate()))) + && (end == null || (end != null && currField.getRangeEndDate() == null) || (end.equals(currField.getRangeEndDate()))) + && rangeStartDateSQL.equals(nvl(currField.getRangeStartDateSQL())) + && rangeEndDateSQL.equals(nvl(currField.getRangeEndDateSQL())) + && visible.equals(nvl(currField.getVisible(), "Y")) + && isGroupFormField == currField.isGroupFormField() + && fieldHelp.equals(nvl(currField.getComment())))); + + rdef.replaceFormFieldReferences("[" + currField.getFieldName() + "]", "[" + + fieldName + "]"); + + currField.setFieldName(fieldName); + currField.setColId(colId); + currField.setFieldType(fieldType); + currField.setValidationType(validation); + currField.setMandatory(mandatory); + currField.setDefaultValue(defaultValue); + currField.setFieldSQL(fieldSQL); + currField.setFieldDefaultSQL(fieldDefaultSQL); + currField.setComment(fieldHelp); + currField.setVisible(visible); + currField.setDependsOn(dependsOn); + try { + if(start!=null) { + currField.setRangeStartDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(start.YEAR, start.MONTH, start.DAY_OF_WEEK, start.HOUR, start.MINUTE, start.SECOND, start.MILLISECOND, start.ZONE_OFFSET)); + } else { + currField.setRangeStartDate(null); + } + if(end!=null) { + currField.setRangeEndDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(end.YEAR, end.MONTH, end.DAY_OF_WEEK, end.HOUR, end.MINUTE, end.SECOND, end.MILLISECOND, end.ZONE_OFFSET)); + } else { + currField.setRangeEndDate(null); + } + /*currField.setRangeEndDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(end));*/ + } catch (DatatypeConfigurationException ex) { + + } + + currField.setRangeStartDateSQL(rangeStartDateSQL); + currField.setRangeEndDateSQL(rangeEndDateSQL); + currField.setGroupFormField(isGroupFormField); + if(fieldType.equals(FormField.FFT_LIST_MULTI)) { + multiSelectSize = AppUtils.getRequestNvlValue(request, "multiSelectListSize"); + currField.setMultiSelectListSize(multiSelectSize); + } + + + } // if + } else { + reportUpdated = true; + + currField = rdef.addFormFieldType(new ObjectFactory(), fieldName, colId, + fieldType, validation, mandatory, defaultValue, fieldSQL, fieldHelp, start, end, rangeStartDateSQL, rangeEndDateSQL); + + request.setAttribute(AppConstants.RI_DETAIL_ID, currField.getFieldId()); + } // else + + if (action.equals(AppConstants.WA_ADD_USER)) { + reportUpdated = true; + rdef.addFormFieldPredefinedValue(new ObjectFactory(), currField, XSSFilter.filterRequestOnlyScript(AppUtils + .getRequestNvlValue(request, "newPredefinedValue"))); + } else if (action.equals(AppConstants.WA_DELETE_USER)) { + reportUpdated = true; + rdef.deleteFormFieldPredefinedValue(currField, AppUtils.getRequestNvlValue( + request, "delPredefinedValue")); + } + + return reportUpdated; + } // processFormFieldAddEdit + + private boolean processFormFieldDelete(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String fieldId = AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID); + rdef.deleteFormField(fieldId); + + return true; + } // processFormFieldDelete + + private boolean processFormFieldMoveUp(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.shiftFormFieldUp(AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + return true; + } // processFormFieldMoveUp + + private boolean processFormFieldMoveDown(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.shiftFormFieldDown(AppUtils + .getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + return true; + } // processFormFieldMoveDown + + private boolean processFormFieldBlank(HttpServletRequest request) throws Exception { + boolean reportUpdated = false; + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + reportUpdated = true; + rdef.addFormFieldBlank(new ObjectFactory()); + return true; + } // processFormFieldMoveDown + + //processFormFieldInfoBar + private boolean processFormFieldInfoBar(HttpServletRequest request) throws Exception { + boolean reportUpdated = false; + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + reportUpdated = true; + rdef.addCustomizedTextForParameters(XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "blueBarField"))); + return true; + } // processFormFieldMoveDown + + + private boolean processForecasting(HttpServletRequest request, String action) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + if(rdef.getDataminingOptions()==null) + rdef.addDataminingOptions(new ObjectFactory()); + + String classifiers = AppUtils.getRequestNvlValue(request, "classifiers"); + rdef.setClassifier(classifiers); + String dateAttrColId = AppUtils.getRequestNvlValue(request, "timeAttribute"); + String timeFormat = AppUtils.getRequestNvlValue(request, "timeFormat"); + if(timeFormat.equals("Default")) timeFormat = "yyyy-MM-dd HH:mm:ss"; + String forecastingPeriod = AppUtils.getRequestNvlValue(request, "forecastingPeriod"); + + String[] forecastCols = request.getParameterValues("forecastCol"); + List reportCols = rdef.getAllColumns(); + DataColumnType dct = null; + Iterator iter = null; + + + + if(dateAttrColId != null) { + for(iter=reportCols.iterator(); iter.hasNext(); ) { + dct = (DataColumnType) iter.next(); + if(dct.getColId().equals(dateAttrColId)) { + dct.setDataMiningCol(AppConstants.DM_DATE_ATTR); + if(timeFormat!=null) rdef.setForecastingTimeFormat(timeFormat); + break; + } + } + } + + if(forecastCols != null) { + for (int i = 0; i < forecastCols.length; i++) { + for(iter=reportCols.iterator(); iter.hasNext(); ) { + dct = (DataColumnType) iter.next(); + if(dct.getColId().equals(forecastCols[i])) { + dct.setDataMiningCol(AppConstants.DM_FORECASTING_ATTR); + } + } + } + rdef.setForecastingPeriod(forecastingPeriod); + } + boolean reportUpdated = true; + + return reportUpdated; + } // processForecasting + + + private boolean processFilterAddEdit(HttpServletRequest request, boolean isEdit) + throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String colId = AppUtils.getRequestNvlValue(request, "filterColId"); + String filterExpr = AppUtils.getRequestNvlValue(request, "filterExpr"); + String argType = (filterExpr.equals("IS NULL") || filterExpr.equals("IS NOT NULL")) ? null + : AppUtils.getRequestNvlValue(request, "argType"); + String argValue = (filterExpr.equals("IS NULL") || filterExpr.equals("IS NOT NULL")) ? null + : AppUtils.getRequestNvlValue(request, "argValue"); + + if (nvl(argType).equals(AppConstants.AT_COLUMN)) { + List reportCols = rdef.getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + if (argValue != null && argValue.equals("[" + dct.getDisplayName() + "]")) { + argValue = dct.getColId(); + break; + } + } // for + } // if + + if (nvl(argType).equals(AppConstants.AT_VALUE) + && (!nvl(argValue).equals(AppConstants.FILTER_MAX_VALUE)) + && (!nvl(argValue).equals(AppConstants.FILTER_MIN_VALUE))) { + // Validating the value by type + DataColumnType currColumn = rdef.getColumnById(colId); + String currColType = currColumn.getColType(); + + try { + String s_sql = Globals.getProcessFilterAddEdit(); + s_sql = s_sql.replace("[argValue]", argValue); + /*DataSet ds = DbUtils.executeQuery("SELECT " + + (currColType.equals(AppConstants.CT_NUMBER) ? ("TO_NUMBER('" + + argValue + "')") + : (currColType.equals(AppConstants.CT_DATE) ? ("TO_DATE('" + + argValue + + "', '" + + nvl(currColumn.getColFormat(), + AppConstants.DEFAULT_DATE_FORMAT) + "')") + : ("'" + argValue + "'"))) + " FROM dual");*/ + + DataSet ds = DbUtils.executeQuery("SELECT " + + (currColType.equals(AppConstants.CT_NUMBER) ? ("TO_NUMBER('" + + argValue + "')") + : (currColType.equals(AppConstants.CT_DATE) ? ("TO_DATE('" + + argValue + + "', '" + + nvl(currColumn.getColFormat(), + AppConstants.DEFAULT_DATE_FORMAT) + "')") + : s_sql))); + } catch (Exception e) { + throw new ValidationException( + "" + + (currColType.equals(AppConstants.CT_NUMBER) ? "Invalid number" + : (currColType.equals(AppConstants.CT_DATE) ? ("Invalid date
Expected date format " + nvl( + currColumn.getColFormat(), + AppConstants.DEFAULT_DATE_FORMAT)) + : "Invalid value
Possible reason: use of single quotes")) + + "
Value: " + argValue); + } + } // if + + if (isEdit) { + int filterPos = -1; + try { + filterPos = Integer.parseInt(AppUtils.getRequestValue(request, "filterPos")); + } catch (NumberFormatException e) { + } + + ColFilterType currFilter = rdef.getFilterById(colId, filterPos); + if (currFilter != null) { + currFilter.setJoinCondition(AppUtils.getRequestValue(request, "filterJoin")); + currFilter.setOpenBrackets(AppUtils.getRequestValue(request, "openBrackets")); + currFilter.setExpression(filterExpr); + // if(argType!=null) + currFilter.setArgType(argType); + // if(argValue!=null) + currFilter.setArgValue(argValue); + currFilter + .setCloseBrackets(AppUtils.getRequestValue(request, "closeBrackets")); + } // if + + rdef.resetCache(true); + } else { + rdef.addColFilterType(new ObjectFactory(), colId, AppUtils.getRequestValue( + request, "filterJoin"), AppUtils.getRequestValue(request, "openBrackets"), + filterExpr, argType, argValue, AppUtils.getRequestValue(request, + "closeBrackets"), null); + } // else + + return true; + } // processFilterAddEdit + + private boolean processFilterDelete(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String filterId = AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID); + String colId = filterId.substring(0, filterId.indexOf('|')); + int filterPos = -1; + try { + filterPos = Integer.parseInt(filterId.substring(colId.length() + 1)); + } catch (NumberFormatException e) { + } + + rdef.removeColumnFilter(colId, filterPos); + + return true; + } // processFilterDelete + + private boolean processSortAddEdit(HttpServletRequest request, boolean isEdit) + throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String sortAscDesc = AppUtils.getRequestNvlValue(request, "sortAscDesc"); + if (isEdit) { + DataColumnType currColumn = rdef.getColumnById(AppUtils.getRequestNvlValue( + request, AppConstants.RI_DETAIL_ID)); + if (currColumn != null) + currColumn.setOrderByAscDesc(sortAscDesc); + rdef.resetCache(true); + } else + rdef.addColumnSort(AppUtils.getRequestNvlValue(request, "sortColId"), sortAscDesc, + rdef.getNumSortColumns() + 1); + + return true; + } // processSortAddEdit + + private boolean processSortOrderAll(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String[] colId = request.getParameterValues("colId"); + String[] sortOrder = request.getParameterValues("sortOrder"); + String[] sortAscDesc = request.getParameterValues("sortAscDesc"); + + boolean reportUpdated = false; + for (int i = 0; i < colId.length; i++) { + DataColumnType dct = rdef.getColumnById(nvl(colId[i])); + if (dct == null) + continue; + + int iSortOrder = 0; + try { + iSortOrder = Integer.parseInt(sortOrder[i]); + } catch (NumberFormatException e) { + } + + if (iSortOrder > 0) { + if (dct.getOrderBySeq() > 0) { + // Update sort + if (dct.getOrderBySeq() != iSortOrder) { + dct.setOrderBySeq(iSortOrder); + reportUpdated = true; + } // if + if (!nvl(dct.getOrderByAscDesc()).equals(nvl(sortAscDesc[i]))) { + dct.setOrderByAscDesc(sortAscDesc[i]); + reportUpdated = true; + } // if + } else { + // Add sort + dct.setOrderBySeq(iSortOrder); + dct.setOrderByAscDesc(sortAscDesc[i]); + reportUpdated = true; + } // else + } else { + if (dct.getOrderBySeq() > 0) { + // Remove sort + dct.setOrderBySeq(0); + dct.setOrderByAscDesc(null); + reportUpdated = true; + } // if + } // else + } // for + + if (reportUpdated) { + List reportCols = rdef.getAllColumns(); + Collections.sort(reportCols, new OrderBySeqComparator()); + int iOrder = 1; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + if (dct.getOrderBySeq() > 0) + dct.setOrderBySeq(iOrder++); + } // for + Collections.sort(reportCols, new OrderSeqComparator()); + + rdef.resetCache(true); + } // if + + return reportUpdated; + } // processSortOrderAll + + private boolean processSortDelete(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.removeColumnSort(AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + return true; + } // processSortDelete + + private boolean processSortMoveUp(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef + .shiftColumnSortUp(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + return true; + } // processSortMoveUp + + private boolean processSortMoveDown(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.shiftColumnSortDown(AppUtils.getRequestNvlValue(request, + AppConstants.RI_DETAIL_ID)); + return true; + } // processSortMoveDown + + private boolean processJavascript (HttpServletRequest request) throws Exception { + processSaveJavascriptElement(request); + return true; + } + + private boolean processSaveJavascriptElement (HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + rdef.setJavascriptElement(AppUtils.getRequestNvlValue(request, AppConstants.RI_JAVASCRIPT)); + String id = AppUtils.getRequestNvlValue(request, AppConstants.RI_JAVASCRIPT_ITEM_ID); + String fieldId = AppUtils.getRequestNvlValue(request, "javascriptFormField-"+id); + if( nvl(fieldId).length()>0 && !(fieldId.startsWith("-1"))) { + + String callableJavascriptText = AppUtils.getRequestNvlValue(request, "callText-"+id); + + logger.debug(EELFLoggerDelegate.debugLogger, ("FieldId " + fieldId + " Call Text " + callableJavascriptText+ " id " + id)); + JavascriptItemType javaScriptType = null; + if(id.length()>0 && id.startsWith("-1")) { + javaScriptType = rdef.addJavascriptType(new ObjectFactory(), id); + javaScriptType.setFieldId(fieldId); + if(!fieldId.equals("os1") || !fieldId.equals("ol1")) + javaScriptType.setId(rdef.getNextIdForJavaScriptElement(new ObjectFactory(), fieldId)); + else { + if(fieldId.equals("os1")) + javaScriptType.setId("os1|1"); + else + javaScriptType.setId("ol1|1"); + } + javaScriptType.setCallText(callableJavascriptText); + } else { + javaScriptType = rdef.addJavascriptType(new ObjectFactory(), id); + javaScriptType.setCallText(callableJavascriptText); + } + } + return true; + } + private boolean processAddJavascriptElement (HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + JavascriptItemType javaScriptType = rdef.addJavascriptType(new ObjectFactory(), ""); + javaScriptType.setId(""); + javaScriptType.setFieldId(""); + javaScriptType.setCallText(""); + + return true; + } + + private boolean processDeleteJavascriptElement (HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + String id = AppUtils.getRequestNvlValue(request, AppConstants.RI_JAVASCRIPT_ITEM_ID); + if(rdef.deleteJavascriptType(id)) + return true; + else + return false; + } + + private boolean processChart(HttpServletRequest request, String action) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + int valueColsCount = rdef.getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, null).size(); + + String chartType = AppUtils.getRequestNvlValue(request, "chartType"); + String chartTypeFixed = AppUtils.getRequestValue(request, "chartTypeFixed"); + String legendColId = AppUtils.getRequestNvlValue(request, "legendCol"); + // String valueColId = AppUtils.getRequestNvlValue(request, "valueCol"); + String leftAxisLabel = AppUtils.getRequestValue(request, "leftAxisLabel"); + String rightAxisLabel = AppUtils.getRequestValue(request, "rightAxisLabel"); + String chartWidth = XSSFilter.filterRequest(AppUtils.getRequestNvlValue(request, "chartWidth")); + String chartHeight = XSSFilter.filterRequest(AppUtils.getRequestNvlValue(request, "chartHeight")); + String chartMultiseries = AppUtils.getRequestNvlValue(request, "multiSeries"); + String lastSeriesALineChart = AppUtils.getRequestNvlValue(request, "lastSeriesALineChart"); + String lastSeriesABarChart = AppUtils.getRequestNvlValue(request, "lastSeriesABarChart"); + String overLayItemLabel = "N"; + String chartDisplay = null; + + String multiplePieOrder = null; + String multiplePieLabelDisplay = null; + + String chartOrientation = null; + String secondaryChartRenderer = null; + + String linearRegression = null; + + boolean multiplePieOrderInRunPage = false; + boolean multiplePieLabelDisplayInRunPage = false; + + boolean chartOrientationInRunPage = false; + boolean secondaryChartRendererInRunPage = false; + + boolean chartDisplayInRunPage = false; + + String intervalFromdate = null; + String intervalTodate = null; + String intervalLabel = null; + boolean displayIntervalInputInRunPage = false; + boolean animate = false; + + animate = AppUtils.getRequestNvlValue(request, "animatedOption").equals("animate"); + if(Globals.showAnimatedChartOption()) + rdef.setChartAnimate(animate); + + + String removeColId = ""; + if (action.equals(AppConstants.WA_DELETE_USER)) { + removeColId = AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID); + if(valueColsCount == 2 && !rdef.hasSeriesColumn()) { + rdef.setChartLeftAxisLabel(null); + rdef.setChartRightAxisLabel(null); + + if(chartType.equals(AppConstants.GT_TIME_SERIES) || chartType.equals(AppConstants.GT_PIE_MULTIPLE)) { + chartMultiseries = "N"; + } + } + } + + if(rdef.getChartAdditionalOptions()==null) + rdef.addChartAdditionalOptions(new ObjectFactory()); + + if(rdef.getChartDrillOptions()==null) + rdef.addChartDrillOptions(new ObjectFactory()); + + //clearing already added + if(rdef.getChartDrillOptions().getTargetFormfield()!=null) + rdef.getChartDrillOptions().getTargetFormfield().removeAll(rdef.getChartDrillOptions().getTargetFormfield()); + + + if(chartType.equals(AppConstants.GT_PIE_MULTIPLE)) { + multiplePieOrder = AppUtils.getRequestNvlValue(request, "multiplePieOrder"); + multiplePieLabelDisplay = AppUtils.getRequestNvlValue(request, "multiplePieLabelDisplay"); + chartDisplay = AppUtils.getRequestNvlValue(request, "chartDisplay"); + //if(AppUtils.getRequestNvlValue(request, "multiplePieOrderInRunPage").length()>0) + multiplePieOrderInRunPage = AppUtils.getRequestNvlValue(request,"multiplePieOrderInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "multiplePieLabelDisplayInRunPage").length()>0) + multiplePieLabelDisplayInRunPage = AppUtils.getRequestNvlValue(request,"multiplePieLabelDisplayInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "chartDisplayInRunPage").length()>0) + chartDisplayInRunPage = AppUtils.getRequestNvlValue(request,"chartDisplayInRunPage").equals("Y"); + if(rdef.getChartAdditionalOptions()!=null) { + rdef.setChartMultiplePieOrder(multiplePieOrder+(multiplePieOrderInRunPage?"|Y":"")); + rdef.setChartMultiplePieLabelDisplay(multiplePieLabelDisplay+(multiplePieLabelDisplayInRunPage?"|Y":"")); + rdef.setChartDisplay(chartDisplay+(chartDisplayInRunPage?"|Y":"")); + } + + } + + if(chartType.equals(AppConstants.GT_REGRESSION)) { + linearRegression = AppUtils.getRequestNvlValue(request, "regressionType"); + rdef.setLinearRegressionColor(AppUtils.getRequestNvlValue(request, "valueLinearRegressionColor")); + rdef.setExponentialRegressionColor(AppUtils.getRequestNvlValue(request, "valueExponentialRegressionColor")); + rdef.setCustomizedRegressionPoint(AppUtils.getRequestNvlValue(request, "regressionPointCustomization")); + + if(nvl(linearRegression).length()>0) + rdef.setLinearRegression(linearRegression); + else + rdef.setLinearRegression("Y"); + } + + if(chartType.equals(AppConstants.GT_BAR_3D)) { + chartOrientation = AppUtils.getRequestNvlValue(request, "chartOrientation"); + secondaryChartRenderer = AppUtils.getRequestNvlValue(request, "secondaryChartRenderer"); + chartDisplay = AppUtils.getRequestNvlValue(request, "chartDisplay"); + //if(AppUtils.getRequestNvlValue(request, "chartOrientationInRunPage").length()>0) + chartOrientationInRunPage = AppUtils.getRequestNvlValue(request,"chartOrientationInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "secondaryChartRendererInRunPage").length()>0) + secondaryChartRendererInRunPage = AppUtils.getRequestNvlValue(request,"secondaryChartRendererInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "chartDisplayInRunPage").length()>0) + chartDisplayInRunPage = AppUtils.getRequestNvlValue(request,"chartDisplayInRunPage").equals("Y"); + rdef.setChartOrientation(chartOrientation+(chartOrientationInRunPage?"|Y":"")); + rdef.setSecondaryChartRenderer(secondaryChartRenderer+(secondaryChartRendererInRunPage?"|Y":"")); + rdef.setChartDisplay(chartDisplay+(chartDisplayInRunPage?"|Y":"")); + rdef.setLastSeriesALineChart(nvl(lastSeriesALineChart, "N")); + } + + if(chartType.equals(AppConstants.GT_LINE)) { + chartOrientation = AppUtils.getRequestNvlValue(request, "chartOrientation"); + secondaryChartRenderer = AppUtils.getRequestNvlValue(request, "secondaryChartRenderer"); + chartDisplay = AppUtils.getRequestNvlValue(request, "chartDisplay"); + //if(AppUtils.getRequestNvlValue(request, "chartOrientationInRunPage").length()>0) + chartOrientationInRunPage = AppUtils.getRequestNvlValue(request,"chartOrientationInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "secondaryChartRendererInRunPage").length()>0) + secondaryChartRendererInRunPage = AppUtils.getRequestNvlValue(request,"secondaryChartRendererInRunPage").equals("Y"); + //if(AppUtils.getRequestNvlValue(request, "chartDisplayInRunPage").length()>0) + chartDisplayInRunPage = AppUtils.getRequestNvlValue(request,"chartDisplayInRunPage").equals("Y"); + rdef.setChartOrientation(chartOrientation+(chartOrientationInRunPage?"|Y":"")); + rdef.setSecondaryChartRenderer(secondaryChartRenderer+(secondaryChartRendererInRunPage?"|Y":"")); + rdef.setChartDisplay(chartDisplay+(chartDisplayInRunPage?"|Y":"")); + rdef.setLastSeriesABarChart(nvl(lastSeriesABarChart, "N")); + } + if(chartType.equals(AppConstants.GT_TIME_DIFFERENCE_CHART)) { + intervalFromdate = AppUtils.getRequestNvlValue(request, "intervalFromDate"); + intervalTodate = AppUtils.getRequestNvlValue(request, "intervalToDate"); + intervalLabel = AppUtils.getRequestNvlValue(request, "intervalLabel"); + displayIntervalInputInRunPage = AppUtils.getRequestNvlValue(request,"intervalInputInRunPage").equals("Y"); + rdef.setIntervalFromdate(intervalFromdate+(displayIntervalInputInRunPage?"|Y":"")); + rdef.setIntervalTodate(intervalTodate+(displayIntervalInputInRunPage?"|Y":"")); + rdef.setIntervalLabel(intervalLabel); + } + if(chartType.equals(AppConstants.GT_STACKED_VERT_BAR) || chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR) || chartType.equals(AppConstants.GT_STACKED_VERT_BAR_LINES) + || chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR_LINES)) { + overLayItemLabel = AppUtils.getRequestNvlValue(request, "overlayItemValue"); + rdef.setOverlayItemValueOnStackBar(nvl(overLayItemLabel, "N")); + animate = AppUtils.getRequestNvlValue(request, "animatedOption").equals("animate"); + rdef.setChartAnimate(animate); + } + + rdef.setRangeAxisLowerLimit(AppUtils.getRequestNvlValue(request, "yAxisLowerLimit")); + rdef.setRangeAxisUpperLimit(AppUtils.getRequestNvlValue(request, "yAxisUpperLimit")); + rdef.setLegendLabelAngle(AppUtils.getRequestNvlValue(request,"labelAngle")); + rdef.setLegendPosition(AppUtils.getRequestNvlValue(request,"legendPosition")); + rdef.setMaxLabelsInDomainAxis(AppUtils.getRequestNvlValue(request,"maxLabelsInDomainAxis")); + String chartLegendDisplay = AppUtils.getRequestNvlValue(request,"hideLegend"); + boolean showLegendDisplayOptionsInRunPage = false; + showLegendDisplayOptionsInRunPage = AppUtils.getRequestNvlValue(request,"showLegendDisplayOptionsInRunPage").equals("Y"); + rdef.setChartLegendDisplay(chartLegendDisplay+(showLegendDisplayOptionsInRunPage?"|Y":"")); + rdef.setChartToolTips(AppUtils.getRequestNvlValue(request,"hideTooltips")); + rdef.setDomainAxisValuesAsString(AppUtils.getRequestNvlValue(request,"keepAsString")); + + //System.out.println("KeepAsString " + AppUtils.getRequestNvlValue(request,"keepAsString")); + //System.out.println("From ReportDef " + rdef.keepDomainAxisValueInChartAsString()); + // boolean reportUpdated = (! + // chartType.equals(nvl(rdef.getChartType()))); + rdef.setChartType(chartType); + rdef.setChartTypeFixed(nvl(chartTypeFixed, "N")); + if (nvl(leftAxisLabel).length()>0) + rdef.setChartLeftAxisLabel(leftAxisLabel); + else + rdef.setChartLeftAxisLabel(null); + if (nvl(rightAxisLabel).length()>0) + rdef.setChartRightAxisLabel(rightAxisLabel); + else + rdef.setChartRightAxisLabel(null); + rdef.setChartWidth(nvl(chartWidth, "" + Globals.getDefaultChartWidth())); + rdef.setChartHeight(nvl(chartHeight, "" + Globals.getDefaultChartHeight())); + if(chartType.equals(AppConstants.GT_TIME_SERIES) || chartType.equals(AppConstants.GT_PIE_MULTIPLE)) { + rdef.setChartMultiSeries(chartMultiseries); + } else { + rdef.setChartMultiSeries("N"); + } + + List reportCols = rdef.getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (dct.getColId().equals(legendColId)) { + // reportUpdated = reportUpdated||(! + // nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)); + dct.setColOnChart(AppConstants.GC_LEGEND); + } else { + // reportUpdated = + // reportUpdated||nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND); + dct.setColOnChart(null); + } + + /* + * if(dct.getColId().equals(valueColId)) { reportUpdated = + * reportUpdated||(dct.getChartSeq()<=0); dct.setChartSeq(1); } + * else { reportUpdated = reportUpdated||(dct.getChartSeq()>0); + */ + dct.setChartSeq(-1); + /* } */ + } // for + + int idx = 1; + List columns = rdef.getAllColumns(); + if(chartType.equals(AppConstants.GT_TIME_SERIES)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + String chartGroup = AppUtils.getRequestNvlValue(request, "chartGroup"); + String yAxis = AppUtils.getRequestNvlValue(request, "yAxis"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + + String drillDownReportId = AppUtils.getRequestNvlValue(request, "drillDownReport"); + if(!drillDownReportId.equals("-1")) { + ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, drillDownReportId, + false); + if (ddRr != null) + request.setAttribute("CHART_FORMFIELDS", ddRr.getReportFormFields()); + + for(ddRr.getReportFormFields().resetNext(); ddRr.getReportFormFields().hasNext(); ) { + FormField ff = ddRr.getReportFormFields().getNext(); + if(!ff.getFieldType().equals(FormField.FFT_BLANK)) { + String value = AppUtils.getRequestNvlValue(request, "drillDown_"+ff.getFieldName()); + ChartDrillFormfield cdf = new ObjectFactory().createChartDrillFormfield(); + cdf.setFormfield(value); + rdef.getChartDrillOptions().getTargetFormfield().add(cdf); + } + } + } + + } else { + if(chartType.equals(AppConstants.GT_BAR_3D)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + String chartGroup = AppUtils.getRequestNvlValue(request, "chartGroup"); + String yAxis = AppUtils.getRequestNvlValue(request, "yAxis"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + String drillDownReportId = AppUtils.getRequestNvlValue(request, "drillDownReport"); + rdef.setDrillReportIdForChart(drillDownReportId); + if(drillDownReportId.equals("-1")){ + rdef.setDrillReportIdForChart(""); + } + + if(!drillDownReportId.equals("-1")) { + ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, drillDownReportId, + false); + if (ddRr != null) + request.setAttribute("CHART_FORMFIELDS", ddRr.getReportFormFields()); + + for(ddRr.getReportFormFields().resetNext(); ddRr.getReportFormFields().hasNext(); ) { + FormField ff = ddRr.getReportFormFields().getNext(); + if(!ff.getFieldType().equals(FormField.FFT_BLANK)) { + String value = AppUtils.getRequestNvlValue(request, "drillDown_"+ff.getFieldName()); + ChartDrillFormfield cdf = new ObjectFactory().createChartDrillFormfield(); + cdf.setFormfield(value); + rdef.getChartDrillOptions().getTargetFormfield().add(cdf); + } + } + + String xAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownXAxisFormfield"); + String yAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownYAxisFormfield"); + String seriesAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownSeriesAxisFormfield"); + + if(!xAxisFormField.equals("-1")){ + rdef.setDrillXAxisFormField(xAxisFormField); + + if(!yAxisFormField.equals("-1")) + rdef.setDrillYAxisFormField(yAxisFormField); + if(!seriesAxisFormField.equals("-1")) + rdef.setDrillSeriesFormField(seriesAxisFormField); + } else { + rdef.setDrillXAxisFormField(""); + rdef.setDrillYAxisFormField(""); + rdef.setDrillSeriesFormField(""); + } + } + + } else if(chartType.equals(AppConstants.GT_SCATTER)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + + }else if(chartType.equals(AppConstants.GT_REGRESSION)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + }else if(chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR) || chartType.equals(AppConstants.GT_STACKED_VERT_BAR) + || chartType.equals(AppConstants.GT_STACKED_VERT_BAR_LINES) || chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR_LINES)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + }else if(chartType.equals(AppConstants.GT_LINE)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + } else if (chartType.equals(AppConstants.GT_TIME_DIFFERENCE_CHART)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + } else if (chartType.equals(AppConstants.GT_COMPARE_PREVYEAR_CHART)) { + String chartSeries = AppUtils.getRequestNvlValue(request, "chartSeries"); + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + //debugLogger.debug("**********In " + chartSeries + " " + alldct.getColId()); + alldct.setChartSeries((chartSeries.equals(alldct.getColId()))?true : false); + } + + } else { + if (rdef.hasSeriesColumn()) { + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType alldct = (DataColumnType) iterator.next(); + alldct.setChartSeries(false); + } + } + + String drillDownReportId = AppUtils.getRequestNvlValue(request, "drillDownReport"); + rdef.setDrillReportIdForChart(drillDownReportId); + if(drillDownReportId.equals("-1")){ + rdef.setDrillReportIdForChart(""); + } + + if(!drillDownReportId.equals("-1")) { + ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, drillDownReportId, + false); + if (ddRr != null) + request.setAttribute("CHART_FORMFIELDS", ddRr.getReportFormFields()); + for(ddRr.getReportFormFields().resetNext(); ddRr.getReportFormFields().hasNext(); ) { + FormField ff = ddRr.getReportFormFields().getNext(); + if(!ff.getFieldType().equals(FormField.FFT_BLANK)) { + String value = AppUtils.getRequestNvlValue(request, "drillDown_"+ff.getFieldName()); + ChartDrillFormfield cdf = new ObjectFactory().createChartDrillFormfield(); + cdf.setFormfield(value); + rdef.getChartDrillOptions().getTargetFormfield().add(cdf); + } + } + + String xAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownXAxisFormfield"); + String yAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownYAxisFormfield"); + String seriesAxisFormField = AppUtils.getRequestNvlValue(request, "drillDownSeriesAxisFormfield"); + + if(!xAxisFormField.equals("-1")){ + rdef.setDrillXAxisFormField(xAxisFormField); + + if(!yAxisFormField.equals("-1")) + rdef.setDrillYAxisFormField(yAxisFormField); + if(!seriesAxisFormField.equals("-1")) + rdef.setDrillSeriesFormField(seriesAxisFormField); + } else { + rdef.setDrillXAxisFormField(""); + rdef.setDrillYAxisFormField(""); + rdef.setDrillSeriesFormField(""); + } + } + + } + } + + for (int i = 1; i < Math.max(valueColsCount, 1) + 1; i++) { + //debugLogger.debug("********** " + chartSeries); + if(i==1) { + /* Range Axis is resetted before adding */ + for (Iterator iterator = columns.iterator(); iterator.hasNext();) { + DataColumnType dct = (DataColumnType) iterator.next(); + if(!nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)) { + dct.setChartSeq(-1); + dct.setChartColor(null); + dct.setColOnChart(null); + dct.setCreateInNewChart(false); + dct.setChartGroup(null); + dct.setYAxis(null); + } + } + + } + String newChartColAxis = AppUtils.getRequestNvlValue(request, "newChart" + i+"Axis"); + String valueColId = AppUtils.getRequestNvlValue(request, "valueCol" + i); + String valueColColor = AppUtils.getRequestNvlValue(request, "valueCol" + i + + "Color"); + String valueColAxis = AppUtils + .getRequestNvlValue(request, "valueCol" + valueColId + "Axis"); + String chartGroup = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "chartGroup" + valueColId + "Axis")); + String yAxisGroup = ""; + yAxisGroup = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "YAxisLabel" + valueColId)); + //debugLogger.debug("^^^^^^^^^^^^^^^^^Chart Group " + chartGroup); + //if(chartType.equals(AppConstants.GT_TIME_SERIES)) { + // debugLogger.debug("**********Outer If " + chartSeries); + //} + + if (valueColId.length() > 0 && (!valueColId.equals(removeColId))) { + DataColumnType dct = rdef.getColumnById(valueColId); + dct.setChartSeq(idx++); + dct.setChartColor(valueColColor); + dct.setColOnChart(valueColAxis.equals("Y") ? "1" : "0"); + if(chartType.equals(AppConstants.GT_TIME_SERIES)) { + dct.setCreateInNewChart(newChartColAxis.equals("Y") ? true : false); + } else + dct.setCreateInNewChart(false); + + if(chartGroup!=null && chartGroup.length()>0) + dct.setChartGroup(chartGroup+"|"+valueColId); + else dct.setChartGroup(""); + if(chartType.equals(AppConstants.GT_TIME_SERIES)) + dct.setYAxis(nvl(yAxisGroup)+"|"+valueColId); + else if (chartType.equals(AppConstants.GT_BAR_3D)) + dct.setYAxis(nvl(yAxisGroup)+"|"+valueColId); + else dct.setYAxis(""); + //} + //else + //dct.setCreateInNewChart(false); + } else if (valueColId.length() > 0 && (valueColId.equals(removeColId))) {// if + DataColumnType dct = rdef.getColumnById(valueColId); + dct.setChartSeq(-1); + dct.setChartColor(null); + dct.setColOnChart(null); + dct.setCreateInNewChart(false); + dct.setChartGroup(null); + dct.setYAxis(null); + } else { // else + DataColumnType dct = rdef.getColumnById(valueColId); + dct.setChartSeq(-1); + dct.setChartColor(null); + dct.setColOnChart(null); + dct.setCreateInNewChart(false); + dct.setChartGroup(null); + dct.setYAxis(null); + } + } // for + + if (action.equals(AppConstants.WA_ADD_USER)) { + String valueColId = AppUtils.getRequestNvlValue(request, "valueColNew"); + String valueColColor = AppUtils.getRequestNvlValue(request, "valueColNewColor"); + String valueColAxis = AppUtils.getRequestNvlValue(request, "valueColNewAxis"); + + if (valueColId.length() > 0) { + DataColumnType dct = rdef.getColumnById(valueColId); + dct.setChartSeq(idx++); + dct.setChartColor(valueColColor); + dct.setColOnChart(valueColAxis.equals("Y") ? "1" : "0"); + } // if + } // for + + return true; // reportUpdated; + } // processChart + + public boolean processAdhocSchedule(HttpServletRequest request, String action) + throws Exception { + ReportSchedule reportSchedule = (ReportSchedule) request.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE); + reportSchedule.setScheduleUserID(AppUtils.getUserID(request)); + reportSchedule.setSchedEnabled( + nvl(AppUtils.getRequestValue(request, "schedEnabled"), "N")); + reportSchedule.setStartDate( + AppUtils.getRequestNvlValue(request, "schedStartDate")); + reportSchedule.setEndDate( + AppUtils.getRequestNvlValue(request, "schedEndDate")); + reportSchedule.setEndHour(AppUtils.getRequestNvlValue(request, "schedEndHour")); + reportSchedule.setEndMin(AppUtils.getRequestNvlValue(request, "schedEndMin")); + reportSchedule.setEndAMPM(AppUtils.getRequestNvlValue(request, "schedEndAMPM")); + //schedRunDate + reportSchedule.setRunDate( + AppUtils.getRequestNvlValue(request, "schedRunDate").length()>0?AppUtils.getRequestNvlValue(request, "schedRunDate"):AppUtils.getRequestNvlValue(request, "schedStartDate")); + reportSchedule.setRunHour(AppUtils.getRequestNvlValue(request, "schedHour")); + reportSchedule.setRunMin(AppUtils.getRequestNvlValue(request, "schedMin")); + reportSchedule.setRunAMPM(AppUtils.getRequestNvlValue(request, "schedAMPM")); + reportSchedule.setRecurrence( + AppUtils.getRequestNvlValue(request, "schedRecurrence")); + reportSchedule.setConditional( + nvl(AppUtils.getRequestValue(request, "conditional"), "N")); + reportSchedule.setConditionSQL( + AppUtils.getRequestNvlValue(request, "conditionSQL")); + reportSchedule.setNotify_type( + AppUtils.getRequestNvlValue(request, "notify_type")); + reportSchedule.setDownloadLimit( + AppUtils.getRequestNvlValue(request, "downloadLimit")); + reportSchedule.setFormFields( + AppUtils.getRequestNvlValue(request, "formFields")); + reportSchedule.setAttachmentMode( + AppUtils.getRequestNvlValue(request, "sendAttachment")); + + String userId = AppUtils.getRequestNvlValue(request, "schedEmailAdd"); + String roleId = AppUtils.getRequestNvlValue(request, "schedEmailAddRole"); + int flag = 0; + if ((!(userId.length()>0 || roleId.length()>0) && (reportSchedule.getEmailToUsers().isEmpty() && reportSchedule.getEmailToRoles().isEmpty())) ) { + flag = 1; + } + + if (flag == 1 || (action.equals(AppConstants.WA_ADD_USER) || action.equals(AppConstants.WA_ADD_ROLE)) ) { + String loggedInUserId = AppUtils.getUserID(request); + if (Globals.getUseLoginIdInSchedYN().equals("Y")){ + reportSchedule.addEmailToUser(loggedInUserId, AppUtils.getUserLoginId(request)); + } else + reportSchedule.addEmailToUser(loggedInUserId, (AppUtils.getUserName(loggedInUserId).length()>0?AppUtils.getUserName(loggedInUserId):(AppUtils.getUserLoginId(loggedInUserId).length()>0?AppUtils.getUserLoginId(loggedInUserId):loggedInUserId) )); + } + if (action.equals(AppConstants.WA_ADD_USER)) { + //String userId = AppUtils.getRequestNvlValue(request, "schedEmailAdd"); + String userName = AppUtils.getUserName(userId); + if (Globals.getUseLoginIdInSchedYN().equals("Y")){ + String userLoginId = AppUtils.getUserLoginId(userId); + if (userId.length() > 0 && (userLoginId != null && userLoginId.length() > 0)) + reportSchedule.addEmailToUser(userId, userLoginId); + else { + if (userId.length() > 0 && (userName != null && userName.length() > 0) ) + reportSchedule.addEmailToUser(userId, userName); + else { + reportSchedule.addEmailToUser(userId, userId); + } + } + }else{ + if (userId.length() > 0 && (userName != null && userName.length() > 0) ) + reportSchedule.addEmailToUser(userId, userName); + else { + reportSchedule.addEmailToUser(userId, userId); + } + } + + } else if (action.equals(AppConstants.WA_DELETE_USER)) + reportSchedule.removeEmailToUser( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + else if (action.equals(AppConstants.WA_ADD_ROLE)) { + //String roleId = AppUtils.getRequestNvlValue(request, "schedEmailAddRole"); + String roleName = AppUtils.getRoleName(roleId); + if (roleId.length() > 0 && roleName != null) + reportSchedule.addEmailToRole(roleId, roleName); + } else if (action.equals(AppConstants.WA_DELETE_ROLE)) + reportSchedule.removeEmailToRole( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + request.getSession().setAttribute(AppConstants.SI_REPORT_SCHEDULE, reportSchedule); + return true; + } // processAdhocSchedule + + private boolean processSchedule(HttpServletRequest request, String action) + throws Exception { + // Added for form field chaining in schedule tab so that setParamValues() is called + request.setAttribute(AppConstants.SCHEDULE_ACTION, "Y"); + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + ReportSchedule reportSchedule = rdef.getReportSchedule(); + reportSchedule.setScheduleUserID(AppUtils.getUserID(request)); + reportSchedule.setSchedEnabled( + nvl(AppUtils.getRequestValue(request, "schedEnabled"), "N")); + reportSchedule.setStartDate( + AppUtils.getRequestNvlValue(request, "schedStartDate")); + reportSchedule.setEndDate( + AppUtils.getRequestNvlValue(request, "schedEndDate")); + reportSchedule.setEndHour(AppUtils.getRequestNvlValue(request, "schedEndHour")); + reportSchedule.setEndMin(AppUtils.getRequestNvlValue(request, "schedEndMin")); + reportSchedule.setEndAMPM(AppUtils.getRequestNvlValue(request, "schedEndAMPM")); + //schedRunDate + reportSchedule.setRunDate( + AppUtils.getRequestNvlValue(request, "schedRunDate").length()>0?AppUtils.getRequestNvlValue(request, "schedRunDate"):AppUtils.getRequestNvlValue(request, "schedStartDate")); + reportSchedule.setRunHour(AppUtils.getRequestNvlValue(request, "schedHour")); + reportSchedule.setRunMin(AppUtils.getRequestNvlValue(request, "schedMin")); + reportSchedule.setRunAMPM(AppUtils.getRequestNvlValue(request, "schedAMPM")); + reportSchedule.setRecurrence( + AppUtils.getRequestNvlValue(request, "schedRecurrence")); + reportSchedule.setConditional( + nvl(AppUtils.getRequestValue(request, "conditional"), "N")); + reportSchedule.setConditionSQL( + AppUtils.getRequestNvlValue(request, "conditionSQL")); + reportSchedule.setNotify_type( + AppUtils.getRequestNvlValue(request, "notify_type")); + reportSchedule.setDownloadLimit( + AppUtils.getRequestNvlValue(request, "downloadLimit")); + reportSchedule.setFormFields( + AppUtils.getRequestNvlValue(request, "formFields")); + reportSchedule.setAttachmentMode( + AppUtils.getRequestNvlValue(request, "sendAttachment")); + + reportSchedule.setEncryptMode( + AppUtils.getRequestNvlValue(request, "encryptMode")); + if (action.equals(AppConstants.WA_ADD_USER)) { + String userId = AppUtils.getRequestNvlValue(request, "schedEmailAdd"); + String userName = AppUtils.getUserName(userId); + if (Globals.getUseLoginIdInSchedYN().equals("Y")){ + String userLoginId = AppUtils.getUserLoginId(userId); + if (userId.length() > 0 && (userLoginId != null && userLoginId.length() > 0)) + reportSchedule.addEmailToUser(userId, userLoginId); + else { + if (userId.length() > 0 && (userName != null && userName.length() > 0) ) + reportSchedule.addEmailToUser(userId, userName); + else { + reportSchedule.addEmailToUser(userId, userId); + } + } + }else{ + if (userId.length() > 0 && (userName != null && userName.length() > 0) ) + reportSchedule.addEmailToUser(userId, userName); + else { + reportSchedule.addEmailToUser(userId, userId); + } + } + } else if (action.equals(AppConstants.WA_DELETE_USER)) + reportSchedule.removeEmailToUser( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + else if (action.equals(AppConstants.WA_ADD_ROLE)) { + String roleId = AppUtils.getRequestNvlValue(request, "schedEmailAddRole"); + String roleName = AppUtils.getRoleName(roleId); + if (roleId.length() > 0 && roleName != null) + reportSchedule.addEmailToRole(roleId, roleName); + } else if (action.equals(AppConstants.WA_DELETE_ROLE)) + reportSchedule.removeEmailToRole( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + + return true; + } // processSchedule + + private boolean processUserAccess(HttpServletRequest request, String action) + throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String ownerID = AppUtils.getRequestNvlValue(request, "reportOwner"); + String rPublic = nvl(AppUtils.getRequestValue(request, "public"), "N"); + + boolean reportUpdated = (!(ownerID.equals(nvl(rdef.getOwnerID())) && rPublic + .equals(rdef.isPublic() ? "Y" : "N"))); + + rdef.getReportSecurity().setOwnerID(ownerID); + rdef.setPublic(rPublic.equals("Y")); + + if (action.equals(AppConstants.WA_ADD_USER)) + rdef.getReportSecurity().addUserAccess( + AppUtils.getRequestNvlValue(request, "newUserId"), "Y"); + else if (action.equals(AppConstants.WA_DELETE_USER)) + rdef.getReportSecurity().removeUserAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + else if (action.equals(AppConstants.WA_GRANT_USER)) + rdef.getReportSecurity().updateUserAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID), "N"); + else if (action.equals(AppConstants.WA_REVOKE_USER)) + rdef.getReportSecurity().updateUserAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID), "Y"); + else if (action.equals(AppConstants.WA_ADD_ROLE)) + rdef.getReportSecurity().addRoleAccess( + AppUtils.getRequestNvlValue(request, "newRoleId"), "Y"); + else if (action.equals(AppConstants.WA_DELETE_ROLE)) + rdef.getReportSecurity().removeRoleAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID)); + else if (action.equals(AppConstants.WA_GRANT_ROLE)) + rdef.getReportSecurity().updateRoleAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID), "N"); + else if (action.equals(AppConstants.WA_REVOKE_ROLE)) + rdef.getReportSecurity().updateRoleAccess( + AppUtils.getRequestNvlValue(request, AppConstants.RI_DETAIL_ID), "Y"); + + return reportUpdated; + } // processUserAccess + + private boolean processClearLog(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + String user_id = AppUtils.getUserID(request); + // Modified so that only the logged in user entries are erased. - Sundar + ReportLoader.clearReportLogEntries(rdef.getReportID(), user_id); + return false; + } // processClearLog + + private boolean processValidateSQL(HttpServletRequest request) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + String sql = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "reportSQL")); + request.setAttribute("sqlValidated", "N"); + rdef.parseReportSQL(sql); + request.setAttribute("sqlValidated", "Y"); + + return true; + } // processValidateSQL + + + /*****For Report Maps - Start******/ + private boolean processMap(HttpServletRequest request, String action) throws Exception { + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + + org.onap.portalsdk.analytics.xmlobj.ReportMap repMap = rdef.getReportMap(); + //clearing already added + if (repMap != null){ + repMap.getMarkers().removeAll(repMap.getMarkers()); + } + String addressColumn = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "addressColumn0")); + System.out.println(" #$%#$%#$% -- address col = " + addressColumn); + String dataColumn = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "dataColumn0")); + String legendColumn = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "legendColumn")); + //String legendDisplayName = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "dataHeaderL")); + //if(nvl(legendDisplayName).length()<=0) legendDisplayName = legendColumn; + String color = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "markerColor0")); + String isMapAllowed = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "isMapAllowed")); + String useDefaultSize = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "useDefaultSize")); + String height = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "height")); + String width = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "width")); + System.out.println(" #$%#$%#$% -- useDefaultSize="+ useDefaultSize+" height = " + height+" width="+width); + + String addAddress = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "addAddress")); + String latCol = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "latColumn")); + String longCol = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "longColumn")); + String colorCol = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "colorColumn")); + if (isMapAllowed.equals("")) + isMapAllowed = "N"; + if (useDefaultSize.equals("")) + useDefaultSize = "N"; + if (repMap == null) + rdef.setReportMap(new ObjectFactory().createReportMap()); + repMap.setAddressColumn(addressColumn); + repMap.setDataColumn(dataColumn); + repMap.setIsMapAllowedYN(isMapAllowed); + repMap.setUseDefaultSize(useDefaultSize); + repMap.setMarkerColor(color); + repMap.setAddAddressInDataYN(addAddress); + repMap.setLatColumn(latCol); + repMap.setLongColumn(longCol); + repMap.setColorColumn(colorCol); + repMap.setHeight(height.trim()); + repMap.setWidth(width.trim()); + repMap.setLegendColumn(legendColumn); + //repMap.setLegendDisplayName(legendDisplayName); + + Marker m = new ObjectFactory().createMarker(); + m.setAddressColumn(addressColumn); + m.setDataColumn(dataColumn); + repMap.getMarkers().add(m); + String markerCountString = AppUtils.getRequestNvlValue(request, "markerCount"); + int markerCount = 0; + if (markerCountString != null && markerCountString.equals("") == false){ + markerCount = new Integer(markerCountString).intValue(); + } + for (int i = 1; i < markerCount; i ++){ + String additionalAddressColumn = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "addressColumn" + i)); + String additionalDataHeader = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "dataHeader" + i)); + String additionalData = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "dataColumn" + i)); + String additionalColor = XSSFilter.filterRequestOnlyScript(AppUtils.getRequestNvlValue(request, "markerColor" + i)); + if (additionalAddressColumn.equals("1") == false){ + m = new ObjectFactory().createMarker(); + m.setAddressColumn(additionalAddressColumn); + m.setDataHeader(additionalDataHeader); + m.setDataColumn(additionalData); + m.setMarkerColor(additionalColor); + repMap.getMarkers().add(m); + } + } + return true; + } // processMap + /*****For Report Maps - End******/ + + +} // WizardProcessor diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequence.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequence.java new file mode 100644 index 00000000..7463598e --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequence.java @@ -0,0 +1,209 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.model.base.*; +import org.onap.portalsdk.analytics.model.definition.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequence extends Vector { + // private String currentStep = AppConstants.WS_DEFINITION; + private int currentStepIdx = 0; + + private String currentSubStep = ""; + + private int nextElemIdx = 0; + + public void resetNext() { + resetNext(0); + } // resetNext + + public void resetNext(int toPos) { + nextElemIdx = toPos; + } // resetNext + + public boolean hasNext() { + return (nextElemIdx < size()); + } // hasNext + + public String getNext() { + return hasNext() ? getStep(nextElemIdx++) : null; + } // getNext + + // ***************************************************** + + public WizardSequence() { + add(AppConstants.WS_DEFINITION); + } // WizardSequence + + private String getStep(int index) { + return (String) get(index); + } // getStep + + private int getStepIndex(String step) { + for (int i = 0; i < size(); i++) + if (getStep(i).equals(step)) + return i; + + throw new IndexOutOfBoundsException(); + } // getStepIndex + + /* + * private String getInitialStep() { return getStep(0); } // getInitialStep + * + * private String getFinalStep() { return getStep(getStepCount()-1); } // + * getFinalStep + */ + private boolean isInitialStep(int index) { + return (index == 0); + } // isInitialStep + + /* + * private boolean isInitialStep(String step) { return + * isInitialStep(getStepIndex(step)); } // isInitialStep + */ + private boolean isFinalStep(int index) { + if (index == 0) + return false; + + return (index == (getStepCount() - 1)); + } // isFinalStep + + /* + * private boolean isFinalStep(String step) { return + * isFinalStep(getStepIndex(step)); } // isFinalStep + */ + + private int getNextStepIndex(int index) { + return (index == (getStepCount() - 1)) ? index : (index + 1); + } // getNextStep + + /* + * private String getNextStep(String step) { return + * getStep(getNextStepIndex(getStepIndex(step))); } // getNextStep + * + * private String getNextStep(String step, String subStep) { + * if(subStep.length()>0) return step; + * + * return getNextStep(step); } // getNextStep + */ + private int getPrevStepIndex(int index) { + return (index == 0) ? index : (index - 1); + } // getPrevStepIndex + + /* + * private String getPrevStep(String step) { return + * getStep(getPrevStepIndex(getStepIndex(step))); } // getPrevStep + * + * private String getPrevStep(String step, String subStep) { + * if(subStep.length()>0) return step; + * + * return getPrevStep(step); } // getPrevStep + */ + // ***************************************************** + public int getStepCount() { + return size(); + } // getStepCount + + public int getCurrentStepIndex() { + return currentStepIdx + 1; + } // getCurrentStepIndex + + public String getCurrentStep() { + return getStep(currentStepIdx); + } // getCurrentStep + + public String getCurrentSubStep() { + return currentSubStep; + } // getCurrentSubStep + + public boolean isInitialStep() { + return isInitialStep(currentStepIdx); + } // isInitialStep + + public boolean isFinalStep() { + return isFinalStep(currentStepIdx); + } // isFinalStep + + public void performAction(String action, ReportDefinition rdef) { + if (action.equals(AppConstants.WA_BACK)) + if (currentSubStep.length() > 0) + currentSubStep = ""; + else + currentStepIdx = getPrevStepIndex(currentStepIdx); + else if (action.equals(AppConstants.WA_NEXT)) { + if (currentSubStep.length() > 0) + currentSubStep = ""; + else { + currentStepIdx = getNextStepIndex(currentStepIdx); + if (rdef != null) + if (!rdef.getReportDefType().equals(AppConstants.RD_SQL_BASED)) + if (getCurrentStep().equals(AppConstants.WS_TABLES) + && (rdef.getDataSourceList().getDataSource().size() == 0)) + currentSubStep = AppConstants.WSS_ADD; + else if (getCurrentStep().equals(AppConstants.WS_COLUMNS) + && (rdef.getAllColumns().size() == 0)) + currentSubStep = (rdef.getReportType().equals( + AppConstants.RT_CROSSTAB) ? AppConstants.WSS_ADD + : AppConstants.WSS_ADD_MULTI); + } + } else if (action.equals(AppConstants.WA_EDIT) || action.equals(AppConstants.WA_ADD) + || action.equals(AppConstants.WA_ADD_MULTI) + || action.equals(AppConstants.WA_ORDER_ALL)|| action.equals(AppConstants.WSS_ADD_BLANK) || action.equals(AppConstants.WA_MODIFY)) { + currentSubStep = action; + } + else if (currentSubStep.equals(AppConstants.WSS_ADD) + || currentSubStep.equals(AppConstants.WSS_EDIT)) + currentSubStep = AppConstants.WSS_EDIT; + else + currentSubStep = ""; + } // performAction + + public void performGoToStep(String step) { + int stepIdx = getStepIndex(step); + + if (stepIdx >= 0 && stepIdx < getStepCount()) { + currentStepIdx = stepIdx; + currentSubStep = ""; + } + } // performGoToStep + +} // WizardSequence diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceCrossTab.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceCrossTab.java new file mode 100644 index 00000000..641b0f60 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceCrossTab.java @@ -0,0 +1,63 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceCrossTab extends WizardSequence { + + public WizardSequenceCrossTab(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_TABLES); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + add(AppConstants.WS_FILTERS); + add(AppConstants.WS_JAVASCRIPT); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceCrossTab + +} // WizardSequenceCrossTab diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceDashboard.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceDashboard.java new file mode 100644 index 00000000..6d27eab1 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceDashboard.java @@ -0,0 +1,58 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceDashboard extends WizardSequence { + + public WizardSequenceDashboard(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceDashboard + +} // WizardSequenceDashboard diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceLinear.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceLinear.java new file mode 100644 index 00000000..f1dfa580 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceLinear.java @@ -0,0 +1,65 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceLinear extends WizardSequence { + + public WizardSequenceLinear(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_TABLES); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + add(AppConstants.WS_FILTERS); + add(AppConstants.WS_SORTING); + //add(AppConstants.WS_JAVASCRIPT); + //add(AppConstants.WS_CHART); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceLinear + +} // WizardSequenceLinear diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedCrossTab.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedCrossTab.java new file mode 100644 index 00000000..db10147d --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedCrossTab.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceSQLBasedCrossTab extends WizardSequence { + + public WizardSequenceSQLBasedCrossTab(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_SQL); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + add(AppConstants.WS_JAVASCRIPT); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceSQLBasedCrossTab + +} // WizardSequenceSQLBasedCrossTab diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedHive.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedHive.java new file mode 100644 index 00000000..2243257d --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedHive.java @@ -0,0 +1,64 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceSQLBasedHive extends WizardSequence { + + public WizardSequenceSQLBasedHive(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_SQL); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + add(AppConstants.WS_JAVASCRIPT); + add(AppConstants.WS_CHART); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_MAP); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceSQLBasedHive + +} // WizardSequenceSQLBasedHive diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinear.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinear.java new file mode 100644 index 00000000..4f30d312 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinear.java @@ -0,0 +1,65 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceSQLBasedLinear extends WizardSequence { + + public WizardSequenceSQLBasedLinear(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_SQL); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + //add(AppConstants.WS_JAVASCRIPT); + //if(!Globals.showAnimatedChartOnly()) + //add(AppConstants.WS_CHART); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_MAP); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceSQLBasedLinear + +} // WizardSequenceSQLBasedLinear diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinearDatamining.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinearDatamining.java new file mode 100644 index 00000000..2feea9a4 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/controller/WizardSequenceSQLBasedLinearDatamining.java @@ -0,0 +1,64 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.controller; + +import java.util.*; + +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class WizardSequenceSQLBasedLinearDatamining extends WizardSequence { + + public WizardSequenceSQLBasedLinearDatamining(boolean userIsAuthorizedToSeeLog) { + super(); + + add(AppConstants.WS_SQL); + add(AppConstants.WS_COLUMNS); + add(AppConstants.WS_FORM_FIELDS); + add(AppConstants.WS_DATA_FORECASTING); + add(AppConstants.WS_JAVASCRIPT); + add(AppConstants.WS_CHART); + add(AppConstants.WS_USER_ACCESS); + //add(AppConstants.WS_SCHEDULE); + if (userIsAuthorizedToSeeLog) + if (Globals.getEnableReportLog()) + add(AppConstants.WS_REPORT_LOG); + add(AppConstants.WS_RUN); + } // WizardSequenceSQLBasedLinear + +} // WizardSequenceSQLBasedLinear diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorException.java new file mode 100644 index 00000000..4d192c25 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorException.java @@ -0,0 +1,53 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class RaptorException extends Exception { + + public RaptorException(String message) { + super(message); + } + + public RaptorException(String message, Throwable ex) { + super(message, ex); + } + + public RaptorException(Throwable ex) { + super(ex); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorRuntimeException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorRuntimeException.java new file mode 100644 index 00000000..111d045a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorRuntimeException.java @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class RaptorRuntimeException extends RaptorException { + + public RaptorRuntimeException (String message) { + super(message); + } + + public RaptorRuntimeException (String message, Throwable ex) { + super(message, ex); + } + + public RaptorRuntimeException (Throwable ex) { + super(ex); + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorSchedularException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorSchedularException.java new file mode 100644 index 00000000..fe8c9b31 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/RaptorSchedularException.java @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class RaptorSchedularException extends RaptorException { + + public RaptorSchedularException (String message) { + super(message); + } + + public RaptorSchedularException (String message, Throwable ex) { + super(message, ex); + } + + public RaptorSchedularException (Throwable ex) { + super(ex); + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ReportSQLException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ReportSQLException.java new file mode 100644 index 00000000..7475df48 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ReportSQLException.java @@ -0,0 +1,69 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class ReportSQLException extends RaptorException { + private String reportSQL = null; + + public ReportSQLException(String message, String reportSQL) { + super(message); + + this.reportSQL = reportSQL; + } // ReportSQLException + + public ReportSQLException(String message, String reportSQL, Throwable ex) { + super(message, ex); + + this.reportSQL = reportSQL; + } // ReportSQLException + + public ReportSQLException(String message) { + super(message); + this.reportSQL = ""; + } // ReportSQLException + + public ReportSQLException(String message, Throwable ex) { + super(message, ex); + this.reportSQL = ""; + } // ReportSQLException + + public String getReportSQL() { + return reportSQL; + } // getReportSQL + +} // ReportSQLException diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserAccessException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserAccessException.java new file mode 100644 index 00000000..7cae7f0b --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserAccessException.java @@ -0,0 +1,52 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class UserAccessException extends RaptorRuntimeException { + + public UserAccessException(Throwable ex) { + super(ex); + } // UserAccessException + + public UserAccessException(String reportID, String userName, String accessType) { + //super("User " + userName + " does NOT have " + accessType + " permission for report " + // + reportID); + super("Access denied. Please contact Administrator"); + } // UserAccessException + +} // UserAccessException diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserDefinedException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserDefinedException.java new file mode 100644 index 00000000..7675d8db --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/UserDefinedException.java @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/** + * + */ +package org.onap.portalsdk.analytics.error; + +/** + * @author sundar + * This class is exclusively used to print error messages to user. + * + */ +public class UserDefinedException extends RaptorRuntimeException { + + public UserDefinedException(String message) { + super(message); + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ValidationException.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ValidationException.java new file mode 100644 index 00000000..6dd7e601 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/error/ValidationException.java @@ -0,0 +1,60 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.error; + +public class ValidationException extends RaptorRuntimeException { + private String fieldID = null; + + public ValidationException(String message) { + super(message); + } + + public ValidationException(String message, Throwable ex) { + super(message, ex); + } + + public ValidationException(String fieldID, String message) { + super(message); + this.fieldID = fieldID; + } + + public String getFieldID() { + return fieldID; + } + +} // ValidationException diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/Line.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/Line.java new file mode 100644 index 00000000..31bfa81b --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/Line.java @@ -0,0 +1,104 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.line; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +import org.onap.portalsdk.analytics.gmap.map.NovaMap; + +public class Line { + private NovaMap map; + private LineCollection lineCollection; + private ArrayList selectionList; + private Set lineIDSet; + + public Line(NovaMap map) { + this.map = map; + lineCollection = new LineCollection(); + lineIDSet = new HashSet(); + selectionList = new ArrayList(); + } + + public ArrayList lineExist(Point2D screenPoint) { + ArrayList existLineInfo = null; + String selectedLine = null; + String selectedType = null; + int nearest = -1; + int nodeSize = map.getShapeWidth(); + nodeSize = nodeSize > 20 ? 20 : nodeSize; + int x0 = (int) screenPoint.getX(); + int y0 = (int) screenPoint.getY(); + + ArrayList lineInfos = lineCollection.getLineCollection(); + + for (LineInfo lineInfo : lineInfos) { + Point2D point1 = map.getScreenPointFromLonLat(lineInfo.geoCoordinate1.longitude, lineInfo.geoCoordinate1.latitude); + Point2D point2 = map.getScreenPointFromLonLat(lineInfo.geoCoordinate2.longitude, lineInfo.geoCoordinate2.latitude); + int x1 = (int) point1.getX(); + int y1 = (int) point1.getY(); + int x2 = (int) point2.getX(); + int y2 = (int) point2.getY(); + int diff = Math.abs((x0 - x1) * (y0 - y2) - (x0 - x2) * (y0 - y1)); + + if (((x1 - x0) * (x2 - x0) <= (nodeSize * 2)) && ((y1 - y0) * (y2 - y0) <= (nodeSize * 2)) && + diff < (Math.abs(y1 - y2) + Math.abs(x1 - x2)) * (int) (nodeSize * .2)) { + if (nearest == -1) { + nearest = diff; + selectedLine = lineInfo.getLineID(); + selectedType = lineInfo.getLineType(); + } + else if (diff <= nearest) { + nearest = diff; + selectedLine = lineInfo.getLineID(); + selectedType = lineInfo.getLineType(); + } + + if (existLineInfo == null) { + existLineInfo = new ArrayList(); + } + + existLineInfo.add(lineInfo); + } + } + + return existLineInfo; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineCollection.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineCollection.java new file mode 100644 index 00000000..cead8219 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineCollection.java @@ -0,0 +1,176 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.line; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +public class LineCollection { + private Set selectedLine; // all selected node + private String lineID; // last clicked node + private ArrayList lineCollection; + + public LineCollection() { + lineCollection = new ArrayList(20000); + selectedLine = new HashSet(); + } + + public void addSelectedLine(String lineID) { + selectedLine.add(lineID); + } + + public void removeSelectedLine(String lineID) { + selectedLine.remove(lineID); + } + + public Set getSelectedLine() { + return selectedLine; + } + + public boolean containSelectedLine(String lineID) { + return selectedLine.contains(lineID); + } + + public void clearSelectedLine() { + selectedLine.clear(); + } + + public void addLine(LineInfo lineInfo) { + lineCollection.add(lineInfo); + } + + public ArrayList getLineCollection() { + return lineCollection; + } + + public LineInfo getLine(String lineID) { + for (LineInfo lineInfo : lineCollection) { + if (lineInfo.getLineID().equalsIgnoreCase(lineID)) { + return lineInfo; + } + } + + return null; + } + + public LineInfo getLine(String lineID, String lineType) { + for (LineInfo lineInfo : lineCollection) { + if (lineInfo.getLineID().equalsIgnoreCase(lineID) && lineInfo.getLineType().equalsIgnoreCase(lineType)) { + return lineInfo; + } + } + + return null; + } + + public LineInfo getLine(String nodeID1, String nodeID2, boolean dummy) { + for (LineInfo lineInfo : lineCollection) { + if ((lineInfo.getNodeID1().equalsIgnoreCase(nodeID1) && lineInfo.getNodeID2().equalsIgnoreCase(nodeID2)) || + (lineInfo.getNodeID1().equalsIgnoreCase(nodeID2) && lineInfo.getNodeID2().equalsIgnoreCase(nodeID1))) { + return lineInfo; + } + } + + return null; + } + + public LineInfo removeLine(String lineID) { + for (int i = 0; i < lineCollection.size(); i++) { + if (lineCollection.get(i).getLineID().equalsIgnoreCase(lineID)) { + return lineCollection.remove(i); + } + } + + removeSelectedLine(lineID); + return null; + } + + public LineInfo removeLine(String lineID, String lineType) { + for (int i = 0; i < lineCollection.size(); i++) { + if (lineCollection.get(i).getLineID().equalsIgnoreCase(lineID) && + lineCollection.get(i).getLineType().equalsIgnoreCase(lineType)) { + return lineCollection.remove(i); + } + } + + removeSelectedLine(lineID); + return null; + } + + public void clearLine() { + lineCollection.clear(); + selectedLine.clear(); + } + + public int getSize() { + return lineCollection.size(); + } + + public String getLineID() { + return lineID; + } + + public void setLineID(String lineID) { + this.lineID = lineID; + } + + public void clearAllCollection () { + clearLine(); + clearSelectedLine(); + this.lineID = null; + } + + public String[] getWildCardLine(String lineID) { + ArrayList list = new ArrayList(); + + for (LineInfo lineInfo : lineCollection) { + if (lineInfo.getLineID().toLowerCase().indexOf(lineID.toLowerCase()) != -1) { + list.add(lineInfo.getLineID()); + } + } + + String[] result = new String[list.size()]; + + for (int i = 0; i < list.size(); i++) { + result[i] = list.get(i); + } + + return result; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineInfo.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineInfo.java new file mode 100644 index 00000000..e19fe349 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/line/LineInfo.java @@ -0,0 +1,208 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.line; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.onap.portalsdk.analytics.gmap.map.GeoCoordinate; + +public class LineInfo { + public GeoCoordinate geoCoordinate1; + public GeoCoordinate geoCoordinate2; + + private String nodeID1; + private String nodeID2; + + private String lineID; + private String lineType; + private String lineDescription; + + private boolean moveable; + private boolean deleteable; + + private int state; + + private Map lineAttributes; + + public LineInfo(String nodeID1, String nodeID2) { + this.nodeID1 = nodeID1; + this.nodeID2 = nodeID2; + lineAttributes = new HashMap(); + } + + public LineInfo clone() { + LineInfo lineInfo = new LineInfo(nodeID1, nodeID2); + lineInfo.geoCoordinate1.longitude = geoCoordinate1.longitude; + lineInfo.geoCoordinate1.latitude = geoCoordinate1.latitude; + lineInfo.geoCoordinate2.longitude = geoCoordinate2.longitude; + lineInfo.geoCoordinate2.latitude = geoCoordinate2.latitude; + lineInfo.setDescription(lineDescription); + lineInfo.setLineID(lineID); + lineInfo.setLineType(lineType); + lineInfo.setMoveable(moveable); + lineInfo.setDeleteable(deleteable); + lineInfo.setState(state); + lineInfo.initializeAttributes(lineAttributes); + + return lineInfo; + } + + public void setLineID(String lineID) { + this.lineID = lineID; + geoCoordinate1 = new GeoCoordinate(); + geoCoordinate2 = new GeoCoordinate(); + } + + public String getLineID() { + return lineID; + } + + public void setLineType(String lineType) { + this.lineType = lineType; + } + + public String getLineType() { + return lineType; + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public String getDescription() { + return lineDescription; + } + + public void setDescription(String lineDescription) { + this.lineDescription = lineDescription; + } + + public boolean isMoveable() { + return moveable; + } + + public void setMoveable(boolean moveable) { + this.moveable = moveable; + } + + public String getNodeID1() { + return nodeID1; + } + + public void setNodeID1(String nodeID1) { + this.nodeID1 = nodeID1; + } + + public String getNodeID2() { + return nodeID2; + } + + public void setNodeID2(String nodeID2) { + this.nodeID2 = nodeID2; + } + + public void initializeAttributes(Map lineAttributes) { + this.lineAttributes.clear(); + Set keySet = lineAttributes.keySet(); + Iterator iter = keySet.iterator(); + + while (iter.hasNext()) { + String key = iter.next(); + this.lineAttributes.put(key, lineAttributes.get(key)); + } + } + + public void setAttribute(String key, String value) { + lineAttributes.put(key, value); + } + + public String getAttribute(String key) { + String value = lineAttributes.get(key); + return value; + } + + public List getAttributeKeys() { + Set keySet = lineAttributes.keySet(); + List keys = new ArrayList(keySet.size()); + Iterator iter = keySet.iterator(); + + while (iter.hasNext()) { + String key = iter.next(); + + if (key.indexOf("x_") != 0) { + keys.add(key); + } + } + + return keys; + } + + public List getAttributeInternalKeys() { + Set keySet = lineAttributes.keySet(); + List internalKeys = new ArrayList(); + Iterator iter = keySet.iterator(); + + while (iter.hasNext()) { + String key = iter.next(); + + if (key.indexOf("x_") == 0) { + key = key.substring(2); + internalKeys.add(key); + } + } + + return internalKeys; + } + + public boolean isDeleteable() { + return deleteable; + } + + public void setDeleteable(boolean deleteable) { + this.deleteable = deleteable; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/ColorProperties.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/ColorProperties.java new file mode 100644 index 00000000..d620fbd7 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/ColorProperties.java @@ -0,0 +1,137 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class ColorProperties { + private NovaMap map; + + private Map colorProperties; + private ArrayList nodeLegends; + private ArrayList lineLegends; + + public ColorProperties(NovaMap map) { + this.map = map; + colorProperties = new HashMap(); + } + + public void setColor(String type, String color) { + //colorProperties.put(type + "_COLOR", color); + String[] rgb = color.split(","); + colorProperties.put(type + "_COLOR", + new Color(Integer.parseInt(rgb[0]), Integer.parseInt(rgb[1]), + Integer.parseInt(rgb[2]))); + } + +// public void setColor(String type, int number, String color) { +// Object object = colorProperties.get(type + ":" + number + "_COLOR"); +// +// if (object != null) { +// Color oldColor = (Color) object; +// +// if (!color.equals(oldColor.getRed() + "," + oldColor.getGreen() + "," + oldColor.getBlue())) { +// String[] rgb = color.split(","); +// colorProperties.put(type + ":" + number + "_COLOR", +// new Color(Integer.parseInt(rgb[0]), Integer.parseInt(rgb[1]), +// Integer.parseInt(rgb[2]))); +// } +// } +// else { +// String[] rgb = color.split(","); +// colorProperties.put(type + ":" + number + "_COLOR", +// new Color(Integer.parseInt(rgb[0]), Integer.parseInt(rgb[1]), +// Integer.parseInt(rgb[2]))); +// } +// } + +// public Color getColor(String type, int number) { +// return (Color) colorProperties.get(type + ":" + number + "_COLOR"); +// } + + public Color getColor(String type) { + return (Color) colorProperties.get(type + "_COLOR"); + } + + public void setShape(String type, String shape) { + colorProperties.put(type + "_SHAPE", shape); + } + + public void setShape(String type, int number, String shape) { + colorProperties.put(type + ":" + number + "_SHAPE", shape); + } + + public String getShape(String type) { + return (String) colorProperties.get(type + "_SHAPE"); + } + + public String getShape(String type, int number) { + return (String) colorProperties.get(type + ":" + number + "_SHAPE"); + } + + public void setSize(String type, String size) { + colorProperties.put(type + "_SIZE", size); + } + + public void setSize(String type, int number, String size) { + colorProperties.put(type + ":" + number + "_SIZE", size); + } + + public int getSize(String type) { + Object object = colorProperties.get(type + "_SIZE"); + + if (object == null) { + return 0; + } + + return Integer.parseInt(object.toString()); + } + + public int getSize(String type, int number) { + Object object = colorProperties.get(type + ":" + number + "_SIZE"); + + if (object == null) { + return 0; + } + + return Integer.parseInt(object.toString()); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GMapProperties.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GMapProperties.java new file mode 100644 index 00000000..412cc813 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GMapProperties.java @@ -0,0 +1,67 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map; + +import java.io.InputStream; +import java.util.Properties; + +import org.onap.portalsdk.analytics.system.Globals; + +public class GMapProperties { + + public static String getProjectFolder() { + return Globals.getProjectFolder(); + } + + public static String getMarketShapefileFolder() { + return Globals.getMarketShapefileFolder(); + } + + public static String getTileSize() { + return Globals.getTileSize(); + } + + public static String getOutputFolder() { + return Globals.getOutputFolder(); + } + + public static String getTempFolderURL() { + return Globals.getTempFolderURL(); + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GeoCoordinate.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GeoCoordinate.java new file mode 100644 index 00000000..a7d7d984 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/GeoCoordinate.java @@ -0,0 +1,43 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map; + +public class GeoCoordinate { + public double longitude; + public double latitude; +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/MapConstant.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/MapConstant.java new file mode 100644 index 00000000..d56194c6 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/MapConstant.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map; + +public class MapConstant { + public static final String CURSOR = "CURSOR"; + public static final String FILLED_TRIANGLE = "FILLED TRIANGLE"; + public static final String FILLED_SQUARE = "FILLED SQUARE"; + public static final String FILLED_CIRCLE = "FILLED CIRCLE"; + public static final String FILLED_DIAMOND = "FILLED DIAMOND"; + public static final String HOLLOW_TRIANGLE = "HOLLOW TRIANGLE"; + public static final String HOLLOW_SQUARE = "HOLLOW SQUARE"; + public static final String HOLLOW_CIRCLE = "HOLLOW CIRCLE"; + public static final String HOLLOW_DIAMOND = "HOLLOW DIAMOND"; + + public static int NORMAL_STATE = 1; + public static int FORCE_STATE = 2; + public static int EXCLUDE_STATE = 3; + public static int ANY_STATE = 4; + + public static int ZOOM_MIN = 1; + public static int ZOOM_MAX = 22; + + public static final double ARROW_ANGLE_HIGH = .75; + public static final double ARROW_ANGLE_LOW = .45; + public static final double ZOOMING_INDEX = .6; +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/NovaMap.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/NovaMap.java new file mode 100644 index 00000000..6938273f --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/NovaMap.java @@ -0,0 +1,521 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map; + +import java.awt.Color; +import java.awt.Font; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.geom.AffineTransform; +import java.awt.geom.NoninvertibleTransformException; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; +import java.awt.image.BufferedImage; +import java.util.ArrayList; +import java.util.HashSet; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.analytics.gmap.line.Line; +import org.onap.portalsdk.analytics.gmap.line.LineInfo; +import org.onap.portalsdk.analytics.gmap.map.layer.SwingLayer; +import org.onap.portalsdk.analytics.gmap.node.Node; +import org.onap.portalsdk.analytics.gmap.node.NodeInfo; + +public class NovaMap { + private static int[] shapeWidth; + + public static final Font TEXT_FONT = new Font("sans-serif", Font.BOLD, 12); + public static final Font HEADER_FONT = new Font("sans-serif", Font.ITALIC+Font.BOLD, 12); + + private HashSet showList; + private ArrayList swingLayers; + private AffineTransform transform; + + private Node node; + private Line line; + private ColorProperties colorProperties; + + private Rectangle2D defaultBoundary; + + private int zoomLevel; + + private String currentYearMonth; + + private String dataLoaded = ""; + + /** + * size in screen pixel + */ + private Rectangle boundingBox; + + /** + * size in pixel web mercator projection + */ + private Rectangle2D mapArea; + + /** + * size in longitude latitude + */ + private Rectangle2D geoArea; + + public static double[] meter2pixel; + + private boolean showLegend = false; + + static { + initShapeWidth(); + initMeter2Pixel(); + } + + private static void initMeter2Pixel() { + meter2pixel = new double[MapConstant.ZOOM_MAX - MapConstant.ZOOM_MIN+1]; + meter2pixel[0] = 156543.04/2; + for(int i=1; i 4 && i < 10) { + width += 2; + } + else { + width++; + } + + shapeWidth[i] = width; + } + } + + public NovaMap() { + boundingBox = new Rectangle(); + mapArea = new Rectangle2D.Double(); + geoArea = new Rectangle2D.Double(); + showList = new HashSet(); + swingLayers = new ArrayList(); + } + + + + public int getBestZoomLevel(double Latitude1, double Longitude1, + double Latitude2, double Longitude2, + double height, double width) { + + if (height==0) + height=700; + if (width==0) + width=1200; + + double lat1 = Math.min(Latitude1, Latitude1); + double CosLat = Math.cos(Math.toRadians(lat1)); + double Wmeter = getDistance( + lat1, Longitude1, + lat1, Longitude2)/CosLat; + double Hmeter = getDistance( + Latitude1, Longitude1, + Latitude2, Longitude1)/CosLat; + + int zoom = 0; + if(Latitude1 == Latitude2 && Longitude1 == Longitude2) + zoom = 15; + if (zoom <= 0) { + for(; + zoom < meter2pixel.length + && (width*meter2pixel[zoom]) > Wmeter + && (height*meter2pixel[zoom]) > Hmeter; + ++zoom) ; + } + +// && (1200*meter2pixel[zoom]) > Wmeter +// && (700*meter2pixel[zoom]) > Hmeter; + + return zoom + MapConstant.ZOOM_MIN-1; + } + + public static double getDistance(double Latitude1, double Longitude1, + double Latitude2, double Longitude2) { + Latitude1 = Math.toRadians(Latitude1); + Longitude1 = Math.toRadians(Longitude1); + Latitude2 = Math.toRadians(Latitude2); + Longitude2 = Math.toRadians(Longitude2); + + final double R = 6371.0; // earth's mean radius in km + double dSinLat05 = Math.sin( (Latitude2 - Latitude1)/2 ); + double dSinLong05 = Math.sin( (Longitude2 - Longitude1)/2 ); + double a = dSinLat05 * dSinLat05 + + Math.cos(Latitude1) * Math.cos(Latitude2) * dSinLong05 * dSinLong05; + double c = (0==a || 1==a) + ? 0 + : 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1.0-a)); + return R * c * 1000.0; //in meters + } + + public Rectangle getBoundingBox() { + return boundingBox; + } + + public void setBoundingBox(int width, int height) { + boundingBox.setSize(width, height); + } + + public void setNode(Node node) { + this.node = node; + } + + public Node getNode() { + return node; + } + + public void setLine(Line line) { + this.line = line; + } + + public Line getLine() { + return line; + } + + public void setColorProperties(ColorProperties colorProperties) { + this.colorProperties = colorProperties; + } + + public ColorProperties getColorProperties() { + return colorProperties; + } + + public void setZoomLevel(int zoomLevel) { + this.zoomLevel = zoomLevel; + } + + public int getZoomLevel() { + return zoomLevel; + } + + public void addShowList(String type) { + showList.add(type.toUpperCase()); + } + + public void addShowList(String type, int number) { + showList.add(type.toUpperCase() + ":" + number); + } + + public void removeShowList(String type) { + showList.remove(type.toUpperCase()); + } + + public void removeShowList(String type, int number) { + showList.remove(type.toUpperCase() + ":" + number); + } + + public void clearShowList() { + showList.clear(); + } + + public HashSet getShowList() { + return showList; + } + + public boolean containsShowList(String type) { + return showList.contains(type.toUpperCase()); + } + + public boolean containsShowList(String type, int number) { + return showList.contains(type.toUpperCase() + ":" + number); + } + + public int getShowListSize() { + return showList.size(); + } + + public void addSwingLayer(SwingLayer swingLayer) { + swingLayers.add(swingLayer); + } + + public void removeSwingLayer(SwingLayer swingLayer) { + swingLayers.remove(swingLayer); + } + + public void clearSwingLayers() { + swingLayers.clear(); + } + + public ArrayList getSwingLayers() { + return swingLayers; + } + + public int getShapeWidth() { + return shapeWidth[getZoomLevel()>=22?21:(getZoomLevel()<=8 ? 8:getZoomLevel())]; + } + + public Point2D getPixelPos(double latitude, double longitude) { + double sinLatitude = Math.sin(Math.toRadians(latitude)); + return new Point2D.Double( + ((longitude + 180.0) / 360.0) * 256.0 * (1< existNodeInfo = node.nodeExist(screenPoint); + + if (existNodeInfo == null) { + ArrayList existLineInfo = line.lineExist(screenPoint); + + if (existLineInfo == null) { + + } + else { + System.out.println("%%%%%%map.singleLeftClick end 1"); + return existLineInfo; + } + } + else { +// if (existNodeInfo.size() == 1) { +// NodeInfo nodeInfo = existNodeInfo.get(0); +// node.getNodeCollection().clearSelectedNode(); +// node.getNodeCollection().addSelectedNode(nodeInfo.getID(), nodeInfo.getLegendID()); +// return getSelectedImage(geoArea); +// } +// else { +// return existNodeInfo; +// } + + System.out.println("%%%%%%map.singleLeftClick end 2"); + return existNodeInfo; + } + + System.out.println("%%%%%%map.singleLeftClick end 3"); + return null; + } + + public String getCurrentYearMonth() { + return currentYearMonth; + } + + public void setCurrentYearMonth(String currentYearMonth) { + this.currentYearMonth = currentYearMonth; + } + + public Rectangle2D getDefaultBoundary() { + return defaultBoundary; + } + + public void setDefaultBoundary(Rectangle2D defaultBoundary) { + this.defaultBoundary = defaultBoundary; + } + + public boolean isShowLegend() { + return showLegend; + } + + public void setShowLegend(boolean showLegend) { + this.showLegend = showLegend; + } + + public String getDataLoaded() { + return dataLoaded; + } + + public void setDataLoaded(String dataLoaded) { + this.dataLoaded = dataLoaded; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/layer/SwingLayer.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/layer/SwingLayer.java new file mode 100644 index 00000000..df3623be --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/map/layer/SwingLayer.java @@ -0,0 +1,253 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.map.layer; + +import java.awt.Color; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Stroke; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.analytics.gmap.map.ColorProperties; +import org.onap.portalsdk.analytics.gmap.map.MapConstant; +import org.onap.portalsdk.analytics.gmap.map.NovaMap; +import org.onap.portalsdk.analytics.gmap.node.Node; +import org.onap.portalsdk.analytics.gmap.node.NodeInfo; +import org.onap.portalsdk.analytics.system.Globals; + + +public class SwingLayer { + private Rectangle shape; + private NovaMap map; + + public SwingLayer(NovaMap map) { + this.map = map; + } + + public boolean paintLayer(HttpServletRequest request, Graphics2D g2d, Rectangle bounds, Rectangle2D mapArea, Graphics2D g2Legend) { + return paintNodes(request, g2d, bounds, mapArea, g2Legend); + } + + protected boolean paintNodes(HttpServletRequest request, Graphics2D g2d, Rectangle bounds, Rectangle2D mapArea, Graphics2D g2Legend) { + boolean painted = false; + Node node = map.getNode(); + ColorProperties colorProperties = map.getColorProperties(); + int legendSize = 0; + if(map.isShowLegend()) + legendSize = map.getShowListSize(); + Object showListArr[] = ((HashSet)map.getShowList()).toArray(); + HashMap hashMap = node.getNodeCollection().getNodeCollection(); + Set set = hashMap.entrySet(); + int width = map.getShapeWidth(); + ArrayList visibleLabel = new ArrayList(151); + Color oldColor = g2d.getColor(); + Stroke oldStroke = g2d.getStroke(); + int textWidth = 0; + int legendLength = 0; + for (int i = 0; i < showListArr.length; i++) { + legendLength = ((String)showListArr[i]).length(); + if(legendLength > textWidth) textWidth = legendLength; + } + Point2D point = null; + for (Iterator iterator = set.iterator(); iterator.hasNext();) { + Map.Entry entry = (Map.Entry) iterator.next(); + NodeInfo nodeInfo = (NodeInfo) entry.getValue(); + + String id1 = (String) request.getAttribute("server_process_id"); + String id2 = (String) request.getSession().getAttribute("server_process_id"); + + if (!id1.equals(id2)) { + request.setAttribute("server_process_interrupted", true); + System.out.println("swing layer interrupted"); + return false; + } + //System.out.println("%%%%%%%getImage. no of T1%%%%%%" + nodeInfo.getAttribute("x_sequence")); + + + point = map.getPixelPos(nodeInfo.geoCoordinate.latitude, nodeInfo.geoCoordinate.longitude); + + if (!mapArea.contains(point.getX(), point.getY())) { + continue; + } + + painted = true; + + g2d.setColor(colorProperties.getColor(nodeInfo.getNodeType())); + + Point2D xyPoint = map.getScreenPointFromPixel(point.getX(), point.getY()); + int width2 = (colorProperties.getSize(nodeInfo.getNodeType()) * width) / 5; + + if (shape == null) { + shape = new Rectangle((int) xyPoint.getX(), (int) xyPoint.getY(), width2, width2); + } + else { + shape.setRect((int) xyPoint.getX(), (int) xyPoint.getY(), width2, width2); + } + + if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.FILLED_SQUARE)) { + g2d.fillRect((int) shape.getCenterX() - width2, (int) shape.getCenterY() - width2, width2, width2); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.HOLLOW_SQUARE)) { + g2d.drawRect((int) shape.getCenterX() - width2, (int) shape.getCenterY() - width2, width2, width2); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.FILLED_CIRCLE)) { + g2d.fillOval((int) shape.getCenterX() - width2, (int) shape.getCenterY() - width2, width2, width2); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.HOLLOW_CIRCLE)) { + g2d.drawOval((int) shape.getCenterX() - width2, (int) shape.getCenterY() - width2, width2, width2); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.FILLED_TRIANGLE)) { + int[] xPoints = {(int) shape.getX(), (int) shape.getX() - width2 / 2, (int) shape.getX() + width2 / 2}; + int[] yPoints = {(int) shape.getY() + width2 / 2, (int) shape.getY() - width2 / 2, (int) shape.getY() - width2 / 2}; + g2d.fillPolygon(xPoints, yPoints, xPoints.length); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.HOLLOW_TRIANGLE)) { + int[] xPoints = {(int) shape.getX(), (int) shape.getX() - width2 / 2, (int) shape.getX() + width2 / 2}; + int[] yPoints = {(int) shape.getY() + width2 / 2, (int) shape.getY() - width2 / 2, (int) shape.getY() - width2 / 2}; + g2d.drawPolygon(xPoints, yPoints, xPoints.length); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.FILLED_DIAMOND)) { + int[] xPoints = {(int) shape.getX() - width2 / 2, (int) shape.getX(), (int) shape.getX() + width2 / 2, (int) shape.getX()}; + int[] yPoints = {(int) shape.getY() , (int) shape.getY() - width2 / 2, (int) shape.getY(), (int) shape.getY() + width2 / 2}; + g2d.fillPolygon(xPoints, yPoints, xPoints.length); + } + else if (colorProperties.getShape(nodeInfo.getNodeType())!=null && colorProperties.getShape(nodeInfo.getNodeType()).equalsIgnoreCase(MapConstant.HOLLOW_DIAMOND)) { + int[] xPoints = {(int) shape.getX() - width2 / 2, (int) shape.getX(), (int) shape.getX() + width2 / 2, (int) shape.getX()}; + int[] yPoints = {(int) shape.getY() , (int) shape.getY() - width2 / 2, (int) shape.getY(), (int) shape.getY() + width2 / 2}; + g2d.drawPolygon(xPoints, yPoints, xPoints.length); + } else { + g2d.drawRect((int) shape.getCenterX() - width2, (int) shape.getCenterY() - width2, width2, width2); + } + + if (nodeInfo.isMoveable()) { + int fontSize = width / 2; + fontSize = fontSize > 14 ? 14 : fontSize; + fontSize = (colorProperties.getSize(nodeInfo.getNodeType()) * fontSize) / 5; + Font font = new Font("sans-serif", Font.BOLD, fontSize); + g2d.setFont(font); + g2d.setColor(Color.BLACK); + g2d.drawString("M", shape.x + width2 / 2, shape.y); + } + +// if (map.containsShowLabelList(nodeInfo.getNodeType())) { +// g2d.setColor(Color.BLACK); +// FontMetrics metrics = g2d.getFontMetrics(); +// int x = shape.x - metrics.stringWidth(nodeInfo.getID()) / 2; +// int y = shape.y + width2 * 4 / 3; +// g2d.drawString(nodeInfo.getID(), x, y); +// } + } + String legendName = ""; + int baseY = 0; + baseY = (int)(20*showListArr.length) + 20;//+5; + int baseX = 0; + if(map.isShowLegend()) { + for (int i = showListArr.length-1; i>=0; i--) { + + legendName = (String)showListArr[i]; + //for(int i = 0; i < showListArr.length; i++ ) { + if(i == showListArr.length-1){ + textWidth = (textWidth<="Legend".length())?"Legend".length():textWidth; + g2Legend.setColor(Color.WHITE); + //g2d.draw(new Rectangle2D.Double((int) bounds.getMaxX()*0.1, (int) bounds.getMaxY()*0.75*showListArr.length, (int) bounds.getMaxX()*0.75, (int) bounds.getMaxY()*0.75)); + g2Legend.fill3DRect((int)(0), (int)(0), (int) bounds.getWidth() , (int)(baseY) , true); // (int)(bounds.getMaxX()*0.9)- (int)(bounds.getMaxX()*0.25) + //if(i == 0){ + g2Legend.setColor(Color.BLACK); + g2Legend.setFont(NovaMap.HEADER_FONT); + g2Legend.drawString("Legend", (int) (10), 10); + } + int[] xPointsL = {(int) (10 - width / 2), (int) (10), (int) (10 + width/2), (int) (10)}; + int[] yPointsL = {(int) (15*i+5+20), (int) (15*i+5+20 - width / 2), (int) (15*i+5+20), (int) (15*i+5+20 + width / 2)}; + g2Legend.setColor(colorProperties.getColor( ((String)showListArr[i]).toUpperCase())); + g2Legend.fillPolygon(xPointsL, yPointsL, xPointsL.length); + g2Legend.setFont(NovaMap.TEXT_FONT); + g2Legend.setColor(Color.BLACK); + + g2Legend.drawString(legendName.substring(0, legendName.indexOf("-")), (int) (10) + width+10, (int) (15*i)+10+20); + } + } + +/* g2d.drawString("0", (int) bounds.getMaxX()/2+20 + width+10, 0); + g2d.drawString("50", (int) bounds.getMaxX()/2+20 + width+10, 50); + g2d.drawString("100", (int) bounds.getMaxX()/2+20 + width+10, 100); + g2d.drawString("200", (int) bounds.getMaxX()/2+20 + width+10, 200); + g2d.drawString("400", (int) bounds.getMaxX()/2+20 + width+10, 400); + g2d.drawString("600", (int) bounds.getMaxX()/2+20 + width+10, 600); +*/ +// g2d.setFont(NovaMap.TEXT_FONT); +// g2d.setColor(Color.BLACK); + if(nvl(map.getDataLoaded()).trim().length() > 0) { + g2d.setColor(Color.WHITE); + g2d.fill3DRect(new Double(bounds.getMinX()).intValue(), new Double(bounds.getMaxY()).intValue()-30, (int) bounds.getWidth() , (int)(30) , true); // (int)(bounds.getMaxX()*0.9)- (int)(bounds.getMaxX()*0.25) + g2d.setColor(Color.RED); + g2d.setFont(NovaMap.HEADER_FONT); + g2d.drawString(Globals.getUserDefinedMessageForMemoryLimitReached() + " "+ map.getDataLoaded()+ " were downloaded to Map.", new Double(bounds.getMinX()).intValue()+80, new Double(bounds.getMaxY()).intValue()-15); + } + + //g2d.drawString("Hello", new Double(bounds.getMinX()).intValue()+20, new Double(bounds.getMaxY()).intValue()-50); + FontMetrics metrics = g2d.getFontMetrics(); + + for (int i = 0; i < visibleLabel.size(); i++) { + String[] properties = visibleLabel.get(i).split(">>>"); + int x = Integer.parseInt(properties[1]) - metrics.stringWidth(properties[0]) / 2; + int y = Integer.parseInt(properties[2]) + Integer.parseInt(properties[3]) * 4 / 3; + g2d.drawString(properties[0], x, y); + } + + g2d.setColor(oldColor); + g2d.setStroke(oldStroke); + + return painted; + } + + private String nvl(String s) { + return (s == null) ? "" : s; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/Node.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/Node.java new file mode 100644 index 00000000..6188cee1 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/Node.java @@ -0,0 +1,196 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.node; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import org.onap.portalsdk.analytics.gmap.map.MapConstant; +import org.onap.portalsdk.analytics.gmap.map.NovaMap; + +public class Node { + private Set nodeIDSet; + private NodeCollection nodeCollection; + private ArrayList selectionList; + private NovaMap map; + + public Node(NovaMap map) { + this.map = map; + nodeCollection = new NodeCollection(); + nodeIDSet = new HashSet(); + selectionList = new ArrayList(); + } + + public NodeInfo addNode(double longitude, double latitude, String nodeType, String nodeID, + String nodeAttributes, int state, boolean moveable, boolean deleteable) { + NodeInfo nodeInfo = new NodeInfo(nodeID); + nodeInfo.geoCoordinate.longitude = longitude; + nodeInfo.geoCoordinate.latitude = latitude; + nodeInfo.setNodeType(nodeType); + nodeInfo.setState(state); + nodeInfo.setMoveable(moveable); + nodeInfo.setDeleteable(deleteable); + nodeInfo.initializeAttributes(nodeAttributes); + + //if (nodeCollection.getNode(nodeInfo.getNodeID()+""+nodeInfo.getNodeType()) == null) { + nodeCollection.addNode(nodeInfo); + nodeIDSet.add(nodeID); +/* } + else { + return nodeCollection.getNode(nodeType); + } +*/ + return nodeInfo; + } + + /** + * + */ +/* public void updateNumberT1(String currentYearMonth) { + ArrayList nodeCollection = this.nodeCollection.getNodeCollection(); + + for (NodeInfo nodeInfo : nodeCollection) { + nodeInfo.setAttribute(NodeInfo.NUMBER_OF_T1_KEY, nodeInfo.getAttribute(currentYearMonth)); + } + } +*/ +/* public Set getUniqueNumberT1(String currentYearMonth) { + ArrayList nodeCollection = this.nodeCollection.getNodeCollection(); + Set numberT1Set = new TreeSet(); + + for (NodeInfo nodeInfo : nodeCollection) { + numberT1Set.add(Integer.parseInt(nodeInfo.getAttribute(currentYearMonth).toString())); + } + + return numberT1Set; + } +*/ + public void updateNumberT1(String currentYearMonth) { + HashMap hashMap = this.nodeCollection.getNodeCollection(); + Set set = hashMap.entrySet(); + + for (Iterator iterator = set.iterator(); iterator.hasNext();) { + Map.Entry entry = (Map.Entry) iterator.next(); + NodeInfo nodeInfo = (NodeInfo) entry.getValue(); + nodeInfo.setAttribute(NodeInfo.NUMBER_OF_T1_KEY, nodeInfo.getAttribute(currentYearMonth)); + } + + } + + public Set getUniqueNumberT1(String currentYearMonth) { + HashMap hashMap = this.nodeCollection.getNodeCollection(); + Set set = hashMap.entrySet(); + Set numberT1Set = new TreeSet(); + + for (Iterator iterator = set.iterator(); iterator.hasNext();) { + Map.Entry entry = (Map.Entry) iterator.next(); + NodeInfo nodeInfo = (NodeInfo) entry.getValue(); + numberT1Set.add(Integer.parseInt(nodeInfo.getAttribute(currentYearMonth).toString())); + } + + return numberT1Set; + } + + /** + * + * @param screenPoint + * @return list of NodeInfo within screenPoint. If not found, null is return + */ + public ArrayList nodeExist(Point2D screenPoint) { + ArrayList existNodeInfo = null; + int nearest = 9999; + String selectedNode = null; + String selectedType = null; + int nodeSize = map.getShapeWidth(); + HashMap hashMap = nodeCollection.getNodeCollection(); + Set set = hashMap.entrySet(); + //ArrayList list = nodeCollection.getNodeCollection(); + + for (Iterator iterator = set.iterator(); iterator.hasNext();) { + Map.Entry entry = (Map.Entry) iterator.next(); + NodeInfo nodeInfo = (NodeInfo) entry.getValue(); + + if (!map.containsShowList(nodeInfo.getNodeType())) { + continue; + } + + int width = (map.getColorProperties().getSize(nodeInfo.getNodeType()) * nodeSize) / 5; + int foundFactor = (int) (MapConstant.ZOOMING_INDEX * width); + Point2D nodePoint = map.getScreenPointFromLonLat(nodeInfo.geoCoordinate.longitude, + nodeInfo.geoCoordinate.latitude); + + int lonDiff = (int) Math.abs(screenPoint.getX() - nodePoint.getX()); + int latDiff = (int) Math.abs(screenPoint.getY() - nodePoint.getY()); + + if (lonDiff < foundFactor && latDiff < foundFactor) { + if (lonDiff < nearest) { + nearest = lonDiff; + selectedNode = nodeInfo.getNodeID(); + selectedType = nodeInfo.getNodeType(); + nodeCollection.setNodeID(selectedNode); + } + + if (existNodeInfo == null) { + existNodeInfo = new ArrayList(); + } + + existNodeInfo.add(nodeInfo); + } + } + + return existNodeInfo; + } + + public NodeCollection getNodeCollection() { + return nodeCollection; + } + + public void clearNodeIDSet() { + nodeIDSet.clear(); + } + + public void clearSelectionList() { + selectionList.clear(); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeCollection.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeCollection.java new file mode 100644 index 00000000..c54b268a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeCollection.java @@ -0,0 +1,211 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.node; + + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class NodeCollection { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(NodeCollection.class); + + private Set selectedNode; // all selected node + private String nodeID; // last clicked node + private HashMap nodeCollection; + + public NodeCollection() { + selectedNode = new HashSet(); + nodeCollection = new HashMap(20000); + } + + public void addSelectedNode(String nodeID) { + selectedNode.add(nodeID); + } + + public void removeSelectedNode(String nodeID) { + selectedNode.remove(nodeID); + } + + public boolean containSelectedNode(String nodeID) { + return selectedNode.contains(nodeID); + } + + public void addSelectedNode(String nodeID, String nodeType) { + selectedNode.add(nodeID + ">>" + nodeType); + } + + public void removeSelectedNode(String nodeID, String nodeType) { + selectedNode.remove(nodeID + ">>" + nodeType); + } + + public void clearSelectedNode() { + selectedNode.clear(); + } + + public boolean containSelectedNode(String nodeID, String nodeType) { + return selectedNode.contains(nodeID + ">>" + nodeType); + } + + public Set getSelectedNode() { + return selectedNode; + } + + public void addNode(NodeInfo nodeInfo) { + if (nodeInfo == null) + logger.error("addNode: nodeInfo is null"); + else + nodeCollection.put(nodeInfo.getNodeID()+""+nodeInfo.getNodeType(), nodeInfo); + } + + public HashMap getNodeCollection() { + return nodeCollection; + } + +/* public NodeInfo getNode(String nodeID) { + for (NodeInfo nodeInfo : nodeCollection) { + if (nodeInfo.getNodeID().equalsIgnoreCase(nodeID) ) { + return nodeInfo; + } + } + + return null; + } +*/ +/* public NodeInfo getNode(String nodeID, String nodeType) { + for (NodeInfo nodeInfo : nodeCollection) { + if (nodeInfo.getNodeID().equalsIgnoreCase(nodeID) && nodeInfo.getNodeType().equalsIgnoreCase(nodeType)) { + return nodeInfo; + } + } + + return null; + } +*/ + public NodeInfo getNode(String nodeType) { + return (NodeInfo)nodeCollection.get(nodeType); + } +/* public ArrayList getWildCardNode(String nodeID, String nodeType) { + ArrayList list = new ArrayList(); + + for (NodeInfo nodeInfo : nodeCollection) { + if (nodeInfo.getNodeType().equalsIgnoreCase(nodeType) && + nodeInfo.getNodeID().toLowerCase().indexOf(nodeID.toLowerCase()) != -1) { + list.add(nodeInfo); + } + } + + return list; + }*/ + +/* public NodeInfo removeNode(String nodeID) { + for (int i = 0; i < nodeCollection.size(); i++) { + if (nodeCollection.get(i).getNodeID().equalsIgnoreCase(nodeID)) { + return nodeCollection.remove(i); + } + } + + removeSelectedNode(nodeID); + return null; + } + + public NodeInfo removeNode(String nodeID, String nodeType) { + for (int i = 0; i < nodeCollection.size(); i++) { + if (nodeCollection.get(i).getNodeID().equalsIgnoreCase(nodeID) && + nodeCollection.get(i).getNodeType().equalsIgnoreCase(nodeType)) { + return nodeCollection.remove(i); + } + } + + removeSelectedNode(nodeID, nodeType); + return null; + } +*/ +/* public void removeNode(String nodeType) { + nodeCollection.remove(nodeType); + }*/ + +/* public ArrayList getCellsiteLocation(String location, boolean exactMatch) { + ArrayList list = new ArrayList(); + + for (NodeInfo nodeInfo : nodeCollection) { + if (nodeInfo.getAttribute("Location") == null) { + continue; + } + + if (exactMatch) { + if (nodeInfo.getAttribute("Location").equalsIgnoreCase(location)) { + list.add(nodeInfo); + } + } + else { + if (nodeInfo.getAttribute("Location").toUpperCase().indexOf(location.toUpperCase()) != -1) { + list.add(nodeInfo); + } + } + } + + return list; + } +*/ + public void clearNode() { + nodeCollection.clear(); + selectedNode.clear(); + } + + public int getSize() { + return nodeCollection.size(); + } + + public void setNodeID(String nodeID) { + this.nodeID = nodeID; + } + + public String getNodeID() { + return nodeID; + } + + public void clearAllCollection() { + this.clearNode(); + this.clearSelectedNode(); + this.nodeID = ""; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeInfo.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeInfo.java new file mode 100644 index 00000000..0ed7b842 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/node/NodeInfo.java @@ -0,0 +1,228 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.node; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.TreeMap; + +import org.onap.portalsdk.analytics.gmap.map.GeoCoordinate; + +public class NodeInfo { + public static final String NUMBER_OF_T1_KEY = "x_numberOfT1"; + public static final String SEQUENCE_KEY = "x_sequence"; + + public GeoCoordinate geoCoordinate; + + private String nodeID; + private String nodeType; + private int state; + private boolean moveable; + private boolean deleteable; + + private List lineIDS; + private Map nodeAttributes; + + public NodeInfo(String nodeID) { + this.nodeID = nodeID; + lineIDS = new ArrayList(); + nodeAttributes = new TreeMap(); + geoCoordinate = new GeoCoordinate(); + } + + public NodeInfo clone() { + NodeInfo nodeInfo = new NodeInfo(nodeID); + nodeInfo.geoCoordinate.longitude = geoCoordinate.longitude; + nodeInfo.geoCoordinate.latitude = geoCoordinate.latitude; + nodeInfo.setMoveable(moveable); + nodeInfo.setNodeType(nodeType); + nodeInfo.setNodeID(nodeID); + nodeInfo.setState(state); + nodeInfo.setLineIDS(cloneLineIDS()); + nodeInfo.setDeleteable(deleteable); + nodeInfo.initializeAttributes(nodeAttributes); + + return nodeInfo; + } + + public void addLineID(String lineID, String lineType) { + if (!lineIDS.contains(lineID + ">>" + lineType)) { + lineIDS.add(lineID + ">>" + lineType); + } + } + + public void removeLineID(String lineID, String lineType) { + lineIDS.remove(lineID + ">>" + lineType); + } + + public String getLineID(String lineID, String lineType) { + for (Object temp : lineIDS) { + if (temp.toString().equals(lineID + ">>" + lineType)) { + return temp.toString(); + } + } + + return null; + } + + public List getLineIDS() { + return lineIDS; + } + + public void printLineIDS() { + Iterator iter = lineIDS.iterator(); + + while (iter.hasNext()) { + System.out.println(iter.next()); + } + } + + public List cloneLineIDS() { + List lineIDS = new ArrayList(); + + for (String lineID : this.lineIDS) { + lineIDS.add(lineID); + } + + return lineIDS; + } + + public void setLineIDS(List lineIDS) { + this.lineIDS = lineIDS; + } + + public void setNodeID(String nodeID) { + this.nodeID = nodeID; + } + + public String getNodeID() { + return nodeID; + } + + public void setNodeType(String nodeType) { + this.nodeType = nodeType; + } + + public String getNodeType() { + return nodeType; + } + + public void setState(int state) { + this.state = state; + } + + public int getState() { + return state; + } + + public void setMoveable(boolean moveable) { + this.moveable = moveable; + } + + public boolean isMoveable() { + return moveable; + } + + public void setDeleteable(boolean deleteable) { + this.deleteable = deleteable; + } + + public boolean isDeleteable() { + return deleteable; + } + + public String getAttribute(String key) { + String value = nodeAttributes.get(key); + return value; + } + + public void initializeAttributes(Map nodeAttributes) { + this.nodeAttributes.clear(); + Set keySet = nodeAttributes.keySet(); + Iterator iter = keySet.iterator(); + + while (iter.hasNext()) { + String key = iter.next(); + this.nodeAttributes.put(key, nodeAttributes.get(key)); + } + } + + public void initializeAttributes(String nodeAttributes) { + if (nodeAttributes == null) { + return; + } + + this.nodeAttributes.clear(); + StringTokenizer tokenizer = new StringTokenizer(nodeAttributes, "|"); + + while (tokenizer.hasMoreTokens()) { + String attribute = tokenizer.nextToken(); + StringTokenizer attributeTokenizer = new StringTokenizer(attribute, "="); + + if (attributeTokenizer.countTokens() == 2) { + String key = attributeTokenizer.nextToken(); + String value = attributeTokenizer.nextToken(); + this.nodeAttributes.put(key, value); + } + } + } + + public void setAttribute(String key, String value) { + nodeAttributes.put(key, value); + } + + public List getAttributeKeys() { + Set keySet = nodeAttributes.keySet(); + List keys = new ArrayList(keySet.size()); + Iterator iter = keySet.iterator(); + + while (iter.hasNext()) { + String key = iter.next(); + + if (key.indexOf("x_") != 0) { + keys.add(key); + } + } + + return keys; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/MapUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/MapUtils.java new file mode 100644 index 00000000..277dac0f --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/MapUtils.java @@ -0,0 +1,88 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.utils; + +import java.io.ObjectOutputStream; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + + + +public class MapUtils { + public static final short PLATE_CARREE_PROJECTION = 0; + public static final short WEB_MERCATOR_PROJECTION = 1; + + + + private static final SimpleDateFormat SIMPLE_DATE_FORMAT = new java.text.SimpleDateFormat("yyyy/MM"); + + + + public static String getModifiedMarketID(String marketID) { + String modifiedMarketID = marketID.replaceAll("/", "_"); + modifiedMarketID = modifiedMarketID.replaceAll(" ", "_"); + return modifiedMarketID; + } + + /** + * increment or decrement + * @param currentYearMonth + * @param value - positive value will increment, otherwise decrement + * @return null if not valid number (must be between 2008/01 to 2010/12) + */ + + +/* public static void saveColor(HttpServletRequest request, DomainService domainService, + String type, String colorValue) { +// String userID = Integer.toString(UserUtils.getUserId(request)); +// MapColorPK colorPK = new MapColorPK(); +// MapColorVO colorVO = new MapColorVO(); +// +// colorPK.setUserID(userID); +// colorPK.setPrefID(type); +// colorVO.setMapColorPK(colorPK); +// colorVO.setColorValue(colorValue); +// +// domainService.saveDomainObject(colorVO); + } */ +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/SwingWorker.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/SwingWorker.java new file mode 100644 index 00000000..eeac444c --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/gmap/utils/SwingWorker.java @@ -0,0 +1,173 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.gmap.utils; + +import javax.swing.SwingUtilities; + +/** + * This is the 3rd version of SwingWorker (also known as + * SwingWorker 3), an abstract class that you subclass to + * perform GUI-related work in a dedicated thread. For + * instructions on using this class, see: + * + * http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html + * + * Note that the API changed slightly in the 3rd version: + * You must now invoke start() on the SwingWorker after + * creating it. + */ +public abstract class SwingWorker { + private Object value; // see getValue(), setValue() + private Thread thread; + + /** + * Class to maintain reference to current worker thread + * under separate synchronization control. + */ + private static class ThreadVar { + private Thread thread; + ThreadVar(Thread t) { thread = t; } + synchronized Thread get() { return thread; } + synchronized void clear() { thread = null; } + } + + private ThreadVar threadVar; + + /** + * Get the value produced by the worker thread, or null if it + * hasn't been constructed yet. + */ + protected synchronized Object getValue() { + return value; + } + + /** + * Set the value produced by worker thread + */ + private synchronized void setValue(Object x) { + value = x; + } + + /** + * Compute the value to be returned by the get method. + */ + public abstract Object construct(); + + /** + * Called on the event dispatching thread (not on the worker thread) + * after the construct method has returned. + */ + public void finished() { + } + + /** + * A new method that interrupts the worker thread. Call this method + * to force the worker to stop what it's doing. + */ + public void interrupt() { + Thread t = threadVar.get(); + if (t != null) { + t.interrupt(); + } + threadVar.clear(); + } + + /** + * Return the value created by the construct method. + * Returns null if either the constructing thread or the current + * thread was interrupted before a value was produced. + * + * @return the value created by the construct method + */ + public Object get() { + while (true) { + Thread t = threadVar.get(); + if (t == null) { + return getValue(); + } + try { + t.join(); + } + catch (InterruptedException e) { + Thread.currentThread().interrupt(); // propagate + return null; + } + } + } + + + /** + * Start a thread that will call the construct method + * and then exit. + */ + public SwingWorker() { + final Runnable doFinished = new Runnable() { + public void run() { finished(); } + }; + + Runnable doConstruct = new Runnable() { + public void run() { + try { + setValue(construct()); + } + finally { + threadVar.clear(); + } + + SwingUtilities.invokeLater(doFinished); + } + }; + + Thread t = new Thread(doConstruct); + threadVar = new ThreadVar(t); + } + + /** + * Start the worker thread. + */ + public void start() { + Thread t = threadVar.get(); + if (t != null) { + t.start(); + } + } + + public Thread getThread() { + return threadVar.get(); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/DataCache.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/DataCache.java new file mode 100644 index 00000000..e5677b7a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/DataCache.java @@ -0,0 +1,534 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model; + +import java.util.*; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.ReportSQLException; +import org.onap.portalsdk.analytics.model.base.*; +import org.onap.portalsdk.analytics.model.definition.*; +import org.onap.portalsdk.analytics.model.runtime.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class DataCache extends org.onap.portalsdk.analytics.RaptorObject { + private static Vector dataViewActions = null; + + private static Vector publicReportIdNames = null; + + private static Vector privateReportIdNames = null; + + private static Vector groupReportIdNames = null; + + private static Vector reportTableSources = null; + + private static Vector reportTableJoins = null; + + private static HashMap reportTableDbColumns = new HashMap(); + + private static HashMap reportFieldDbLookups = null; + + public DataCache() { + } + + public static Vector getDataViewActions() throws RaptorException { + if (dataViewActions == null) + /* try */{ + dataViewActions = new Vector(); + + //DataSet ds = DbUtils + // .executeQuery("SELECT ts.web_view_action FROM cr_table_source ts WHERE ts.web_view_action IS NOT NULL"); + + String sql = Globals.getTheDataViewActions(); + DataSet ds = DbUtils + .executeQuery(sql); + + for (int i = 0; i < ds.getRowCount(); i++) + dataViewActions.add(ds.getString(i, 0)); + } // catch(Exception e) {} + + return dataViewActions; + } // getDataViewActions + + public static Vector getPublicReportIdNames() throws RaptorException { + // if(publicReportIdNames==null) => needs to be up-to-date at any time + /* try */{ + publicReportIdNames = new Vector(); + + //DataSet ds = DbUtils + // .executeQuery("SELECT rep_id, title FROM cr_report WHERE public_yn = 'Y' ORDER BY title"); + + String sql = Globals.getThePublicReportIdNames(); + DataSet ds = DbUtils + .executeQuery(sql); + for (int i = 0; i < ds.getRowCount(); i++) + publicReportIdNames + .add(new IdNameValue(ds.getString(i, 0), ds.getString(i, 1))); + } // catch(Exception e) {} + + return publicReportIdNames; + } // getPublicReportIdNames + + public static Vector getPrivateAccessibleReportIdNames(String user_id, Vector userRoles) throws RaptorException { + // if(publicReportIdNames==null) => needs to be up-to-date at any time + /* try */{ + privateReportIdNames = new Vector(); + + // StringBuffer query = new StringBuffer(" SELECT cr.rep_id, cr.title FROM cr_report cr "); + String sql = Globals.getThePrivateAccessibleNamesA(); + //query.append(" WHERE cr.rep_id not in (select rep_id from cr_report_access cra where user_id = '"+ user_id+"' "); + sql = sql.replace("[user_id]", user_id); + StringBuffer query = new StringBuffer(sql); + for (int i = 0; i < userRoles.size(); i++) { + if( i == 0){ + // query.append(" OR role_id in ("); + query.append(Globals.getThePrivateAccessibleNamesIf()); + } + if(i < (userRoles.size()-1)) + query.append((String)userRoles.get(i) + ","); + + else if(i == (userRoles.size()-1)) + query.append((String)userRoles.get(i)+")"); + + } + //query.append(" ) "); + //query.append(" AND public_yn = 'N' and cr.owner_id = '"+ user_id+"' order by 2 "); + sql = Globals.getThePrivateAccessibleNamesB(); + sql = sql.replace("[user_id]", user_id); + query.append(sql); + + DataSet ds = DbUtils + .executeQuery(query.toString() ); + + for (int i = 0; i < ds.getRowCount(); i++) + privateReportIdNames + .add(new IdNameValue(ds.getString(i, 0), ds.getString(i, 1))); + } // catch(Exception e) {} + + return privateReportIdNames; + } // getPrivateAccessibleReportIdNames + + + public static Vector getGroupAccessibleReportIdNames(String user_id, Vector userRoles) throws RaptorException { + // if(publicReportIdNames==null) => needs to be up-to-date at any time + /* try */{ + groupReportIdNames = new Vector(); + + //StringBuffer query = new StringBuffer(" SELECT cr.rep_id, cr.title FROM cr_report cr "); + //query.append(" WHERE cr.rep_id in (select rep_id from cr_report_access cra where user_id = '"+ user_id+"' "); + String sql = Globals.getTheGroupAccessibleNamesA(); + sql = sql.replace("[user_id]", user_id); + StringBuffer query = new StringBuffer(sql); + + for (int i = 0; i < userRoles.size(); i++) { + if( i == 0) + query.append(Globals.getThePrivateAccessibleNamesIf()); + if(i < (userRoles.size()-1)) + query.append((String)userRoles.get(i) + ","); + else if(i == (userRoles.size()-1)) + query.append((String)userRoles.get(i)+")"); + + } + //query.append(" ) "); + //query.append(" AND public_yn = 'N' order by 2 "); + + query.append(Globals.getTheGroupAccessibleNamesB()); + DataSet ds = DbUtils + .executeQuery(query.toString() ); + + for (int i = 0; i < ds.getRowCount(); i++) + groupReportIdNames + .add(new IdNameValue(ds.getString(i, 0), ds.getString(i, 1))); + } // catch(Exception e) {} + + return groupReportIdNames; + } // getGroupAccessibleReportIdNames + + + public static TableSource getTableSource(String tableName, String dBinfo, Vector userRoles, String userId, HttpServletRequest request) throws RaptorException { + try { + Vector tableSources = null; + if(Globals.getRestrictTablesByRole()) { + tableSources = getReportTableSources(userRoles, dBinfo, userId, request); + } else { + tableSources = getReportTableSources(dBinfo); + } + for (Iterator iter = getReportTableSources(dBinfo).iterator(); iter.hasNext();) { + TableSource tableSource = (TableSource) iter.next(); + if (tableSource.getTableName().equals(tableName)) + return tableSource; + } // for + } catch (RaptorException e) { + throw new RaptorException(e.getMessage(), e.getCause()); + } + + return null; + } + public static void refreshReportTableSources() { + reportTableSources = null; + } + + public static Vector getReportTableSources(String dBInfo) throws RaptorException { + if (reportTableSources == null) + /* try */{ + reportTableSources = new Vector(); + //String query = " SELECT table_name, display_name, pk_fields, web_view_action, large_data_source_yn, filter_sql FROM cr_table_source "; + String query = Globals.getTheReportTableSourcesA(); + if (dBInfo != null && !dBInfo.equals(AppConstants.DB_LOCAL)){ + //query += " where SOURCE_DB= '" + dBInfo + "'"; + query+=Globals.getTheReportTableSourcesWhere(); + query = query.replace("[dBInfo]", dBInfo); + } + else { + //query += " where SOURCE_DB is null or SOURCE_DB = '" + AppConstants.DB_LOCAL + // + "'"; + query+=Globals.getTheReportTableSourcesIf(); + query = query.replace("[AppConstants.DB_LOCAL]", AppConstants.DB_LOCAL); + } + //query += " ORDER BY table_name "; + query+=Globals.getTheReportTableSourcesElse(); + DataSet ds = DbUtils.executeQuery(query); + for (int i = 0; i < ds.getRowCount(); i++) + reportTableSources.add(new TableSource(ds.getString(i, 0), ds.getString(i, 1), + ds.getString(i, 2), ds.getString(i, 3), ds.getString(i, 4), ds + .getString(i, 5))); + } // catch(Exception e) {} + + return reportTableSources; + } // getReportTableSources + + public static Vector getReportTableSources(Vector userRoles, String dBInfo, String userId, HttpServletRequest request) + throws RaptorException { + if (!Globals.getRestrictTablesByRole()) + return getReportTableSources(dBInfo); + Vector userTableSources = new Vector(); + if (userRoles.size() > 0) + /* try */{ + StringBuffer sb = new StringBuffer(); + for (Iterator iter = userRoles.iterator(); iter.hasNext();) { + sb.append((sb.length() == 0) ? "(" : ", "); + sb.append(iter.next()); + } // for + sb.append(")"); + //StringBuffer query = new StringBuffer("SELECT ts.table_name, ts.display_name, ts.pk_fields, "); + // query.append(" ts.web_view_action, ts.large_data_source_yn, ts.filter_sql FROM cr_table_source ts "); + // query.append (" WHERE "); + StringBuffer query = new StringBuffer(Globals.grabTheReportTableA()); + //if(!(AppUtils.isAdminUser(userId) || AppUtils.isSuperUser(userId))) + // query.append (" (EXISTS (SELECT 1 FROM cr_table_role tr WHERE tr.table_name=ts.table_name AND tr.role_id IN "+sb.toString()+")) and "); + //+ " OR (NOT EXISTS (SELECT 1 FROM cr_table_role tr WHERE tr.table_name=ts.table_name)) "; + if (dBInfo != null && !dBInfo.equals(AppConstants.DB_LOCAL)){ + String d_sql = Globals.grabTheReportTableIf(); + d_sql = d_sql.replace("[dBInfo]", dBInfo); + //query.append( " ts.SOURCE_DB= '" + dBInfo + "'"); + query.append(d_sql); + } + else{ + //query.append(" (ts.SOURCE_DB is null or ts.SOURCE_DB = '"+ AppConstants.DB_LOCAL + "')"); + String d_sql = Globals.grabTheReportTableElse(); + d_sql = d_sql.replace("[AppConstants.DB_LOCAL]", AppConstants.DB_LOCAL); + query.append(d_sql); + } + if(!(AppUtils.isAdminUser(request) || AppUtils.isSuperUser(request))) { + //query.append(" minus "); + + // query.append(" SELECT ts.table_name, ts.display_name, ts.pk_fields, ts.web_view_action, "); + // query.append(" ts.large_data_source_yn, ts.filter_sql from cr_table_source ts where "); + // query.append(" table_name in (select table_name from cr_table_role where role_id not IN "+sb.toString()+") and "); + String e_sql = Globals.grabTheReportTableB(); + e_sql = e_sql.replace("[sb.toString()]", sb.toString()); + query.append(e_sql); + + if (dBInfo != null && !dBInfo.equals(AppConstants.DB_LOCAL)){ + + // query.append( " ts.SOURCE_DB= '" + dBInfo + "'"); + String d_sql = Globals.grabTheReportTableIf(); + d_sql = d_sql.replace("[dBInfo]", dBInfo); + query.append(d_sql); + } + else{ + //query.append(" (ts.SOURCE_DB is null or ts.SOURCE_DB = '"+ AppConstants.DB_LOCAL + "')"); + String d_sql = Globals.grabTheReportTableElse(); + d_sql = d_sql.replace("[AppConstants.DB_LOCAL]", AppConstants.DB_LOCAL); + query.append(d_sql); + } + } + //query.append(" ORDER BY 1 "); + query.append(Globals.grabTheReportTableC()); + DataSet ds = DbUtils.executeQuery(query.toString()); + for (int i = 0; i < ds.getRowCount(); i++) + userTableSources.add(new TableSource(ds.getString(i, 0), ds.getString(i, 1), + ds.getString(i, 2), ds.getString(i, 3), ds.getString(i, 4), ds + .getString(i, 5))); + } // catch(Exception e) {} + + return userTableSources; + } // getReportTableSources + + public static Vector getReportTableJoins() throws RaptorException { + if (reportTableJoins == null) + /* try */{ + reportTableJoins = new Vector(); + + //DataSet ds = DbUtils + // .executeQuery("SELECT src_table_name, dest_table_name, join_expr FROM cr_table_join"); + DataSet ds = DbUtils + .executeQuery(Globals.getTheReportTableCrJoin()); + for (int i = 0; i < ds.getRowCount(); i++) + reportTableJoins.add(new TableJoin(ds.getString(i, 0), ds.getString(i, 1), ds + .getString(i, 2))); + } // catch(Exception e) {} + + return reportTableJoins; + } // getReportTableJoins + + public static Vector getReportTableJoins(Vector userRoles) throws RaptorException { + if (!Globals.getRestrictTablesByRole()) + return getReportTableJoins(); + + Vector userTableJoins = new Vector(); + if (userRoles.size() > 0) + /* try */{ + StringBuffer sb = new StringBuffer(); + for (Iterator iter = userRoles.iterator(); iter.hasNext();) { + sb.append((sb.length() == 0) ? "(" : ", "); + sb.append(iter.next()); + } // for + sb.append(")"); + + /*DataSet ds = DbUtils + .executeQuery("SELECT tj.src_table_name, tj.dest_table_name, tj.join_expr FROM cr_table_join tj " + + "WHERE ((EXISTS (SELECT 1 FROM cr_table_role trs WHERE trs.table_name=tj.src_table_name AND trs.role_id IN " + + sb.toString() + + ")) " + + "OR (NOT EXISTS (SELECT 1 FROM cr_table_role trs WHERE trs.table_name=tj.src_table_name))) " + + "AND ((EXISTS (SELECT 1 FROM cr_table_role trd WHERE trd.table_name=tj.dest_table_name AND trd.role_id IN " + + sb.toString() + + ")) " + + "OR (NOT EXISTS (SELECT 1 FROM cr_table_role trd WHERE trd.table_name=tj.dest_table_name)))");*/ + + + String f_sql = Globals.getTheReportTableJoins(); + f_sql = f_sql.replace("[sb.toString()]", sb.toString()); + + DataSet ds = DbUtils + .executeQuery(f_sql); + + for (int i = 0; i < ds.getRowCount(); i++) + userTableJoins.add(new TableJoin(ds.getString(i, 0), ds.getString(i, 1), ds + .getString(i, 2))); + } // catch(Exception e) {} + + return userTableJoins; + } // getReportTableJoins + + private static void processDollarFields(Vector tableDbColumns) { + int i = 0; + while (i < tableDbColumns.size()) { + DBColumnInfo dbci = (DBColumnInfo) tableDbColumns.get(i); + if (dbci.getColName().equals("DL$MONTH")) { + tableDbColumns.remove(i); + dbci.setLabel("Data Month/Year"); + tableDbColumns.add(0, dbci); + i++; + } else if (dbci.getColName().indexOf('$') >= 0) + tableDbColumns.remove(i); + else + i++; + } // while + } // processDollarFields + + private static String generateReportTableDbUserColumnSQL(String tableName) { + StringBuffer sb = new StringBuffer(); + // sb.append("SELECT a.table_name, a.column_name, a.data_type, a.label "); + //sb.append(" FROM user_column_def a "); + // sb.append("WHERE a.table_name = '" + tableName.toUpperCase() + "' "); + // sb.append("ORDER BY a.column_id"); + + String sql = Globals.getGenerateReportTableCol(); + sql = sql.replace("[tableName.toUpperCase()]", tableName.toUpperCase()); + sb.append(sql); + + return sb.toString(); + }//generateReportTableDbUserColumnSQL + private static String generateReportTableDbColumnsSQL(String tableName, String maskSql) { + StringBuffer sb = new StringBuffer(); + //sb.append("SELECT utc.table_name, utc.column_name, utc.data_type, "); + sb.append(Globals.getGenerateDbUserSqlA()); + if (maskSql == null){ + //sb.append("utc.column_name label "); + sb.append(Globals.getGenerateDbUserSqlIf()); + } + else{ + //sb.append("nvl(x.label, utc.column_name) label "); + //sb.append("FROM user_tab_columns utc "); + sb.append(Globals.getGenerateDbUserSqlElse()); + } + if (maskSql != null) { + sb.append(", ("); + sb.append(maskSql); + sb.append(") AS x "); + } + //sb.append("WHERE utc.table_name = '" + tableName.toUpperCase() + "' "); + String g_sql = Globals.getGenerateDbUserSqlB(); + g_sql = g_sql.replace("[tableName.toUpperCase()]", tableName.toUpperCase()); + sb.append(g_sql); + if (maskSql != null){ + //sb.append(" AND utc.table_name = x.table_name AND utc.column_name = x.column_name "); + sb.append(Globals.getGenerateDbUserSqlC()); + } + //sb.append("ORDER BY utc.column_id"); + sb.append(Globals.getGenerateDbUserSqlD()); + //System.out.println(sb.toString()); + return sb.toString(); + } // generateReportTableDbColumnsSQL + + public static synchronized Vector getReportTableDbColumns(String tableName, + String remoteDbPrefix) throws RaptorException { + Vector tableDbColumns = null; + if(reportTableDbColumns!=null) + tableDbColumns = (Vector) reportTableDbColumns.get(tableName); + else + reportTableDbColumns = new HashMap(); + if (tableDbColumns == null) + /* try */{ + tableDbColumns = new Vector(); + + String maskSql = AppUtils.getReportDbColsMaskSQL(); + DataSet ds = null; + if(Globals.getUserColDef()) { + try { + ds = ConnectionUtils.getDataSet( + generateReportTableDbUserColumnSQL(tableName),AppConstants.DB_LOCAL); + } + catch (ReportSQLException ex) { + throw new ReportSQLException("No Such Table. Please create table or make user_column_def in raptor.properties as \"false\""); + } + + } + else if(maskSql!=null){ + try { + ds = ConnectionUtils.getDataSet( + generateReportTableDbColumnsSQL(tableName, maskSql), remoteDbPrefix); + } + catch(ReportSQLException ex){ + throw new ReportSQLException("Field related table is not present in the database. Please make \"use_field_table\"" + + " as \"no\" in the raptor_app_.properties");} + } + if (ds==null || ds.getRowCount() == 0) { + // In case there are no records in the FIELDS table + ds = ConnectionUtils.getDataSet(generateReportTableDbColumnsSQL(tableName, + null), remoteDbPrefix); + } + for (int i = 0; i < ds.getRowCount(); i++) + tableDbColumns.add(new DBColumnInfo(ds.getString(i, 0), ds.getString(i, 1), ds + .getString(i, 2), ds.getString(i, 3))); + + processDollarFields(tableDbColumns); + reportTableDbColumns.put(tableName, tableDbColumns); + } // catch(Exception e) {} + + return tableDbColumns; + } // getReportTableDbColumns + + public static synchronized String getReportTableDbColumnType(String tableName, + String columnName, String dbInfo) throws RaptorException { + for (Iterator iter = getReportTableDbColumns(tableName, dbInfo).iterator(); iter + .hasNext();) { + DBColumnInfo dbCol = (DBColumnInfo) iter.next(); + if (dbCol.getColName().equals(columnName)) + return dbCol.getColType(); + } // for + + return null; + } // getReportTableDbColumnType + + public static synchronized LookupDBInfo getLookupTable(String tableName, String fieldName) throws RaptorException { + if (reportFieldDbLookups == null) + try { + String sql = AppUtils.getReportDbLookupsSQL(); + + if (sql != null) { + DataSet ds = DbUtils.executeQuery(sql); + reportFieldDbLookups = new HashMap(); + for (int i = 0; i < ds.getRowCount(); i++) { + String tName = ds.getString(i, 0); + String fName = ds.getString(i, 1); + reportFieldDbLookups.put(tName + '|' + fName, new LookupDBInfo(tName, + fName, ds.getString(i, 2), ds.getString(i, 3), ds.getString(i, + 4))); + } // for + } // if + } catch (Exception e) { throw new RaptorException(e.getMessage(), e.getCause()); + } + + LookupDBInfo lookupDBInfo = null; + if (reportFieldDbLookups != null) + lookupDBInfo = (LookupDBInfo) reportFieldDbLookups + .get(tableName + '|' + fieldName); + + if (lookupDBInfo == null) + lookupDBInfo = new LookupDBInfo(tableName, fieldName, tableName, fieldName, + fieldName); + + return lookupDBInfo; + } // getLookupTable + + // public static void setRemoteDBPrefix (String remoteDBPrefix) { + // _remoteDBPrefix = remoteDBPrefix; + // } + // + // public static String getRemoteDBPrefix () { + // return _remoteDBPrefix; + // } + + public static void refreshAll() { + DataCache.dataViewActions = null; + DataCache.privateReportIdNames = null; + DataCache.publicReportIdNames = null; + DataCache.reportFieldDbLookups = null; + DataCache.reportTableDbColumns = null; + DataCache.reportTableJoins = null; + DataCache.reportTableSources = null; + AppUtils.resetUserCache(); + } +} // DataCache + 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 new file mode 100644 index 00000000..1d173784 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportHandler.java @@ -0,0 +1,6656 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * ReportHandler.java - This class is used to generate reports in Excel using POI and also to + * create ReportRuntime and ReportDefinition object using report id. + * ------------------------------------------------------------------------------------------- + * + * + * Changes + * ------- + * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 14-Jul-2009 : Version 8.4 (Sundar);
  • Signature for generating excel method has been changed to add the report name as sheet name.
  • + *
  • Dashboard reports can be downloaded with each report as a separate sheet.
  • + *
+ * 08-Jun-2009 : Version 8.3 (Sundar);
  • Short datatype is replaced with default integer datatype to create + * row as short is not expoting more than 32768 rows.
+ * + */ +package org.onap.portalsdk.analytics.model; + +import java.io.BufferedInputStream; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.io.Writer; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.TreeMap; +import java.util.Vector; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +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.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFDateUtil; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFFooter; +import org.apache.poi.hssf.usermodel.HSSFHeader; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.hssf.util.Region; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.usermodel.CreationHelper; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Header; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.ss.util.CellReference; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFDataFormat; +import org.apache.poi.xssf.usermodel.XSSFFont; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.onap.portalsdk.analytics.controller.ErrorHandler; +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.ReportSQLException; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.ExecuteQuery; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.ExcelColorDef; +import org.onap.portalsdk.analytics.util.HtmlStripper; +import org.onap.portalsdk.analytics.util.Log; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.view.ColumnHeader; +import org.onap.portalsdk.analytics.view.ColumnHeaderRow; +import org.onap.portalsdk.analytics.view.DataRow; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.view.HtmlFormatter; +import org.onap.portalsdk.analytics.view.ReportData; +import org.onap.portalsdk.analytics.view.RowHeader; +import org.onap.portalsdk.analytics.view.RowHeaderCol; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.DataSourceType; +import org.onap.portalsdk.analytics.xmlobj.FormatList; +import org.onap.portalsdk.analytics.xmlobj.FormatType; +import org.onap.portalsdk.analytics.xmlobj.Reports; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreList; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +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); + + public ReportHandler() { + } + + private String SHEET_NAME = ""; + private static final String XML_ENCODING = "UTF-8"; + private static int font_size = 10; + private static int font_header_title_size = 12; + private static int font_header_descr_size = 9; + private static int font_footer_size = 9; + + + private HashMap loadStyles(ReportRuntime rr, HSSFWorkbook wb) { + HSSFCellStyle styleDefault = wb.createCellStyle(); + //System.out.println("Load Styles"); + // Style default will be normal with no background + HSSFFont fontDefault = wb.createFont(); + // The default will be plain . + fontDefault.setColor((short) HSSFFont.COLOR_NORMAL); + fontDefault.setFontHeight((short) (font_size / 0.05)); + fontDefault.setFontName("Tahoma"); + + styleDefault.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDefault.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDefault.setFillPattern(HSSFCellStyle.NO_FILL); + styleDefault.setFont(fontDefault); + + HSSFCellStyle styleRed = wb.createCellStyle(); + styleRed.cloneStyleFrom(styleDefault); + styleRed.setFillForegroundColor((short)HSSFColor.RED.index); + styleRed.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + HSSFFont fontRed = wb.createFont(); + fontRed.setColor((short) HSSFColor.WHITE.index); + fontRed.setFontHeight((short) (font_size / 0.05)); + fontRed.setFontName("Tahoma"); + styleRed.setFont(fontRed); + + HSSFCellStyle styleYellow = wb.createCellStyle(); + styleYellow.cloneStyleFrom(styleDefault); + styleYellow.setFillForegroundColor((short)HSSFColor.YELLOW.index); + styleYellow.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + HSSFFont fontYellow = wb.createFont(); + fontYellow.setColor((short) HSSFColor.BLACK.index); + fontYellow.setFontHeight((short) (font_size / 0.05)); + fontYellow.setFontName("Tahoma"); + styleYellow.setFont(fontYellow); + + HSSFCellStyle styleGreen = wb.createCellStyle(); + styleGreen.cloneStyleFrom(styleDefault); + styleGreen.setFillForegroundColor((short)HSSFColor.GREEN.index); + styleGreen.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + HSSFFont fontGreen = wb.createFont(); + fontGreen.setColor((short) HSSFColor.WHITE.index); + fontGreen.setFontHeight((short) (font_size / 0.05)); + fontGreen.setFontName("Tahoma"); + styleGreen.setFont(fontGreen); + + + ArrayList semColumnList = new ArrayList(); + List dsList = rr.getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType element = (DataSourceType) iter.next(); + List dcList = element.getDataColumnList().getDataColumn(); + for (Iterator iterator = dcList.iterator(); iterator.hasNext();) { + DataColumnType element1 = (DataColumnType) iterator.next(); + semColumnList.add(element1.getSemaphoreId()); + + } + } + SemaphoreList semList = rr.getSemaphoreList(); + HashMap hashMapStyles = new HashMap(); + HashMap hashMapFonts = new HashMap(); + hashMapFonts.put("default", fontDefault); + hashMapFonts.put("red", fontRed); + hashMapFonts.put("yellow", fontYellow); + hashMapFonts.put("green", fontGreen); + hashMapStyles.put("default", styleDefault); + hashMapStyles.put("red", styleRed); + hashMapStyles.put("yellow", styleYellow); + hashMapStyles.put("green", styleGreen); + HSSFCellStyle cellStyle = null; + if (semList == null || semList.getSemaphore() == null) { + return hashMapStyles; + } else { + for (Iterator iter = semList.getSemaphore().iterator(); iter.hasNext();) { + SemaphoreType sem = (SemaphoreType) iter.next(); + if(!semColumnList.contains(sem.getSemaphoreId())) continue; + //System.out.println("SemphoreId ----> " + sem.getSemaphoreId()); + FormatList fList = sem.getFormatList(); + List formatList = fList.getFormat(); + for (Iterator fIter = formatList.iterator(); fIter.hasNext();) { + FormatType fmt = (FormatType) fIter.next(); + if(fmt!=null){ + //if (fmt.getLessThanValue().length() > 0) { + cellStyle = wb.createCellStyle(); + HSSFFont cellFont = wb.createFont(); + //System.out.println("Format Id " + fmt.getFormatId()); + if (nvl(fmt.getBgColor()).length() > 0) { +// System.out.println("Load Styles " + +// fmt.getFormatId() +// + " " +fmt.getBgColor() + " " + +// ExcelColorDef.getExcelColor(fmt.getBgColor())); + cellStyle.setFillForegroundColor(ExcelColorDef.getExcelColor(fmt + .getBgColor())); + cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + } + if (nvl(fmt.getFontColor()).length() > 0) { + cellFont.setColor(ExcelColorDef.getExcelColor(fmt.getFontColor())); + } else + cellFont.setColor((short) HSSFFont.COLOR_NORMAL); + if (fmt.isBold()) + cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + if (fmt.isItalic()) + cellFont.setItalic(true); + if (fmt.isUnderline()) + cellFont.setUnderline(HSSFFont.U_SINGLE); + if(nvl(fmt.getFontFace()).length()>0) + cellFont.setFontName(fmt.getFontFace()); + else + cellFont.setFontName("Tahoma"); + //cellFont.setFontHeight((short) (10 / 0.05)); + + if(nvl(fmt.getFontSize()).length()>0) { + try { + //cellFont.setFontHeight((short) (Integer.parseInt(fmt.getFontSize()) / 0.05)); + cellFont.setFontHeight((short) (font_size/0.05)); + } catch(NumberFormatException e){ + cellFont.setFontHeight((short) (font_size / 0.05));//10 + } + } + else + cellFont.setFontHeight((short) (font_size / 0.05)); + cellStyle.setFont(cellFont); + cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); + cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); + hashMapStyles.put(fmt.getFormatId(), cellStyle); + } else { + hashMapStyles.put(fmt.getFormatId(), styleDefault); + hashMapStyles.put("default", styleDefault); + } + } + + } + } + return hashMapStyles; + } + + private void paintExcelParams(HSSFWorkbook wb,int rowNum,int col,ArrayList paramsList, String customizedParamInfo, HSSFSheet sheet, String reportTitle, String reportDescr) throws IOException { + //HSSFSheet sheet = wb.getSheet(getSheetName()); + int cellNum = 0; + HSSFRow row = null; + short s1 = 0, s2 = (short) 1; + HtmlStripper strip = new HtmlStripper(); + // Name Style + HSSFCellStyle styleName = wb.createCellStyle(); + //styleName.setFillBackgroundColor(HSSFColor.GREY_80_PERCENT.index); + styleName.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); + //styleName.setFillPattern(HSSFCellStyle.SPARSE_DOTS); + styleName.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleName.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleName.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleName.setBorderRight(HSSFCellStyle.BORDER_THIN); + styleName.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleName.setDataFormat((short)0); + HSSFFont font = wb.createFont(); + font.setFontHeight((short) (font_size / 0.05)); + font.setFontName("Tahoma"); + font.setColor(HSSFColor.BLACK.index); + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleName.setFont(font); + //Data Style + + // Create some fonts. + HSSFFont fontDefault = wb.createFont(); + // Initialize the styles & fonts. + // The default will be plain . + fontDefault.setColor((short) HSSFFont.COLOR_NORMAL); + fontDefault.setFontHeight((short) (font_size / 0.05)); + fontDefault.setFontName("Tahoma"); + fontDefault.setItalic(true); + // Style default will be normal with no background + HSSFCellStyle styleValue = wb.createCellStyle(); + styleValue.setDataFormat((short)0); + styleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleValue.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleValue.setFillForegroundColor(HSSFColor.YELLOW.index); + styleValue.setFillPattern(HSSFCellStyle.NO_FILL); + styleValue.setFont(fontDefault); + HSSFCell cell = null; + HSSFCellStyle styleDescription = wb.createCellStyle(); + styleDescription.setAlignment(HSSFCellStyle.ALIGN_CENTER); +// styleDescription.setBorderBottom(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderTop(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderRight(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderLeft(HSSFCellStyle.BORDER_THIN); + HSSFFont fontDescr = wb.createFont(); + fontDescr.setFontHeight((short) (font_size / 0.05)); //14 + fontDescr.setFontName("Tahoma"); + fontDescr.setColor(HSSFColor.BLACK.index); + fontDescr.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleDescription.setFont(font); + HSSFCell cellDescr = null; + int paramSeq = 0; + HSSFHeader header = sheet.getHeader(); + StringBuffer strBuf = new StringBuffer(); + if(!Globals.customizeFormFieldInfo() || customizedParamInfo.length()<=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) { + row = sheet.createRow(++rowNum); + cell = row.createCell((short) 0); + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + cellDescr = row.createCell((short) 0); + cellDescr.setCellValue("Run-time Parameters"); + cellDescr.setCellStyle(styleDescription); + + + strBuf.append(reportTitle+"\n"); + //strBuf.append("Run-time Parameters\n"); + } + row = sheet.createRow(++rowNum); + cellNum = 0; + //System.out.println("RowNum " + rowNum + " " + value.getId() + " " +value.getName()); + cell = row.createCell((short) cellNum); + cell.setCellValue(value.getId()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.getName().replaceAll("~",",")); + cell.setCellStyle(styleValue); + + //strBuf.append(value.getId()+": "+ value.getName()+"\n"); + } + } //for + } else { + strBuf.append(reportTitle+"\n"); + Document document = new Document(); + document.open(); + HTMLWorker worker = new HTMLWorker(document); + StyleSheet style = new StyleSheet(); + style.loadTagStyle("body", "leading", "16,0"); + ArrayList p = HTMLWorker.parseToList(new StringReader(customizedParamInfo), style); + String name = ""; + String token = ""; + String value = ""; + String s = ""; + PdfPTable pdfTable = null; + for (int k = 0; k < p.size(); ++k){ + if(p.get(k) instanceof Paragraph) + s = ((Paragraph)p.get(k)).toString(); + else { /*if ((p.get(k) instanceof PdfPTable))*/ + pdfTable = ((PdfPTable)p.get(k)); + } + //todo: Logic for parsing pdfTable should be added after upgrading to iText 5.0.0 + //s = Utils.replaceInString(s, ",", "|"); + s = s.replaceAll(",", "|"); + s = s.replaceAll("~", ","); + if(s.indexOf(":")!= -1) { + //System.out.println("|"+s+"|"); + row = sheet.createRow(++rowNum); + cell = row.createCell((short) 0); + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + cellDescr = row.createCell((short) 0); + cellDescr.setCellValue("Run-time Parameters"); + cellDescr.setCellStyle(styleDescription); + + //strBuf.append("Run-time Parameters\n"); + StringTokenizer st = new StringTokenizer(s.trim(), "|"); + while(st.hasMoreTokens()) { + token = st.nextToken(); + token = token.trim(); + if (!(token.trim().equals("|") || token.trim().equals("]]") || token.trim().equals("]") || token.trim().equals("[") )) { + if(token.endsWith(":")) { + name = token; + name = name.substring(0, name.length()-1); + if(name.startsWith("[")) + name = name.substring(1); + value = st.nextToken(); + if(nvl(value).endsWith("]"))value = nvl(value).substring(0, nvl(value).length()-1); + } /*else if(name != null && name.length() > 0) { + value = st.nextToken(); + if(value.endsWith("]]"))value = value.substring(0, value.length()-1); + }*/ + if(name!=null && name.trim().length()>0) { + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue(name.trim()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.trim()); + cell.setCellStyle(styleValue); + //strBuf.append(name.trim()+": "+ value.trim()+"\n"); + } +/* if(token.endsWith(":") && (value!=null && value.trim().length()<=0) && (name!=null && name.trim().length()>0 && name.endsWith(":"))) { + name = name.substring(0, name.indexOf(":")+1); + //value = token.substring(token.indexOf(":")+1); + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue(name.trim()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.trim()); + cell.setCellStyle(styleValue); + + //strBuf.append(name.trim()+": "+ value.trim()+"\n"); + value = ""; + name = ""; + } +*/ } + int cw = 0; + cw = name.trim().length() + 12; + // if(i!=cellWidth.size()-1) + if(sheet.getColumnWidth((short)0)< (short) name.trim().length()) + sheet.setColumnWidth((short)0, (short) name.trim().length()); + if(sheet.getColumnWidth((short)1)< (short) value.trim().length()) + sheet.setColumnWidth((short)1, (short) value.trim().length()); + name = ""; + value = ""; + + } + + try { + SimpleDateFormat oracleDateFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss"); + Date sysdate = oracleDateFormat.parse(ReportLoader.getSystemDateTime()); + SimpleDateFormat dtimestamp = new SimpleDateFormat(Globals.getScheduleDatePattern()); + + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue("Report Date/Time"); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + + cell.setCellValue(dtimestamp.format(sysdate)+" "+Globals.getTimeZone()); + cell.setCellStyle(styleValue); + + } catch(Exception ex) { + //ex.printStackTrace(); + } + + + } + } + + +/* Iterator iter1 = paramsList.iterator(); + s1 = 0; s2 = (short)10; + if(iter1.hasNext()) { + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + cell.setCellValue(strip.stripHtml(customizedParamInfo)); + } +*/ +/* rowNum += 2; + row = sheet.createRow(rowNum);*/ + } // if + Iterator iterCheck = paramsList.iterator(); + if(iterCheck.hasNext()) { + rowNum += 2; + row = sheet.createRow(rowNum); + } + header.setCenter(HSSFHeader.font("Tahoma", "")+ HSSFHeader.fontSize((short) 9)+" " + strBuf.toString()); + HSSFFooter footer = sheet.getFooter(); + footer.setLeft(HSSFFooter.font("Tahoma", "")+ HSSFFooter.fontSize((short) 9)+ "Page " + HSSFFooter.page() + + " of " + HSSFFooter.numPages() ); + footer.setCenter(HSSFFooter.font("Tahoma", "")+ HSSFFooter.fontSize((short) 9)+Globals.getFooterFirstLine()+"\n"+Globals.getFooterSecondLine()); + + } + + + + 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 { + int mb = 1024*1024; + Runtime runtime = Runtime.getRuntime(); + int returnValue = 0; + // HSSFSheet sheet = wb.getSheetAt(0); + HSSFCellStyle styleDefault = wb.createCellStyle(); + HSSFCellStyle styleNumber = wb.createCellStyle(); + HSSFCellStyle styleDecimalNumber = wb.createCellStyle(); + HSSFCellStyle styleCurrencyNumber = wb.createCellStyle(); + HSSFCellStyle styleCurrencyDecimalNumber = wb.createCellStyle(); + HSSFCellStyle styleDate = wb.createCellStyle(); + HtmlStripper strip = new HtmlStripper(); + //HSSFSheet sheet = wb.getSheet(getSheetName()); + HSSFCellStyle styleDataHeader = wb.createCellStyle(); + // style.setFillBackgroundColor(HSSFColor.AQUA.index); + styleDataHeader.setFillForegroundColor(HSSFColor.GREY_40_PERCENT.index); + styleDataHeader.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + styleDataHeader.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDataHeader.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDataHeader.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDataHeader.setBorderRight(HSSFCellStyle.BORDER_THIN); + styleDataHeader.setBorderLeft(HSSFCellStyle.BORDER_THIN); + HSSFFont font = wb.createFont(); + font.setFontHeight((short) (font_size / 0.05)); + font.setFontName("Tahoma"); + font.setColor(HSSFColor.BLACK.index); + styleDataHeader.setFont(font); + // Column Header + boolean firstPass = true; + ArrayList cellWidth = new ArrayList(); + java.util.HashMap dataTypeMap = new java.util.HashMap(); + int cellNum = 0; + rowNum += 0; + ColumnHeaderRow chr = null; + String title = ""; + +// System.out.println("***************** Size " + rd.reportColumnHeaderRows.size()); +// for (int i = 0; i < rd.reportColumnHeaderRows.size(); i++) { +// for (int j = 0; j < rd.reportColumnHeaderRows.getColumnHeaderRow(i).size(); j++) { +// System.out.println("Column Title " + rd.reportColumnHeaderRows.getColumnHeaderRow(i).getColumnHeader(j).getColumnTitle() +// + " " + rd.reportColumnHeaderRows.getColumnHeaderRow(i).getColumnHeader(j).isVisible()); +// } +// } +/* List dsList = rr.getDataSourceList().getDataSource(); + HashMap dataColumnTypeHashMap = new HashMap(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType element = (DataSourceType) iter.next(); + List dcList = element.getDataColumnList().getDataColumn(); + for (Iterator iterator = dcList.iterator(); iterator.hasNext();) { + DataColumnType element1 = (DataColumnType) iterator.next(); + dataTypeMap.put(element1.getColId(), element1.getColType()); + dataColumnTypeHashMap.put(element1.getColName(), element1); + } + } +*/ + int columnRows = rr.getVisibleColumnCount() - 1; + + 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 header = (String) session.getAttribute("TITLE_"+index); + String subtitle = (String) session.getAttribute("SUBTITLE_"+index); + if(nvl(header).length()>0) { + header = Utils.replaceInString(header, "
", " "); + header = Utils.replaceInString(header, "
", " "); + header = Utils.replaceInString(header, "
", " "); + header = strip.stripHtml(nvl(header).trim()); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = strip.stripHtml(nvl(subtitle).trim()); + HSSFRow row = sheet.createRow(rowNum); + cellNum = 0; + row.createCell((short) cellNum).setCellValue(header); + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (columnRows))); + rowNum += 1; + row = sheet.createRow(rowNum); + cellNum = 0; + row.createCell((short) cellNum).setCellValue(subtitle); + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (columnRows))); + rowNum += 1; + } + + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) { + HSSFRow row = sheet.createRow(rowNum); + cellNum = -1; + /*if(rd.reportTotalRowHeaderCols!=null) { + cellNum +=1; + row.createCell((short) cellNum).setCellValue("Total"); + row.createCell((short) cellNum).setCellStyle(styleDataHeader); + //row.getCell((short) cellNum).setCellStyle(styleDataHeader); + }*/ + chr = rd.reportColumnHeaderRows.getNext(); + + if(nvl(sql_whole).length() <= 0 || (!rr.getReportType().equals(AppConstants.RT_LINEAR))) { + if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) + rd.reportRowHeaderCols.resetNext(0); + else + rd.reportRowHeaderCols.resetNext(1); + + for (; rd.reportRowHeaderCols.hasNext();) { + cellNum += 1; + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + + if (firstPass) { + title = rhc.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + row.createCell((short) cellNum).setCellValue(title); + //commented after bug reported by EPAT 01/17/2015 + //sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum+columnRows, (short) (cellNum))); + //System.out.println(" **************** Row Header Title " + rhc.getColumnTitle() + " " + cellNum + " " ); + //System.out.println(cellNum + " " + cellWidth.size()); + if (cellWidth.size() > 0 && cellWidth.size() > cellNum) { + if (((Integer) cellWidth.get(cellNum)).intValue() < rhc + .getColumnTitle().length()) + cellWidth.set(cellNum, new Integer(title.length())); + } else + cellWidth.add(cellNum, new Integer(title.length())); + row.getCell((short) cellNum).setCellStyle(styleDataHeader); + } + + + } // for + + } + + firstPass = false; + +/* for(chr.resetNext(); chr.hasNext(); ) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + cellNum += 1; + row.createCell((short) cellNum).setCellValue(ch.getColumnTitle()); +// <%= ch.getColSpanHtml() %><%= ch.getRowSpanHtml() %>> +// <%= ch.getColumnTitleHtml() %> +// + } // if + } // for +*/ + + //cellNum = -1; + + +// Set mapSet = dataTypeMap.entrySet(); +// Map.Entry me; +// String element, value ; +// for (Iterator iter = mapSet.iterator(); iter.hasNext();) { +// me=(Map.Entry)iter.next(); +// element = (String) me.getKey(); +// value = (String) me.getValue(); +// System.out.println("DataTypeMap " + element + " " + value); +// } + + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + cellNum += 1; + + int colSpan = ch.getColSpan()-1; + title = ch.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + row.createCell((short) cellNum).setCellValue(title); + if(colSpan > 0) { + for ( int k = 1; k <= colSpan; k++ ) { + row.createCell((short) cellNum+k); + } + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (cellNum+colSpan))); + } + + + +/* if (cellWidth.size() > cellNum) { + if (((Integer) cellWidth.get(cellNum)).intValue() < ch + .getColumnTitle().length()) + cellWidth + .set((cellNum), new Integer(ch.getColumnTitle().length())); + } else + cellWidth.add((cellNum), new Integer(ch.getColumnTitle().length())); +*/ row.getCell((short) (cellNum)).setCellStyle(styleDataHeader); + for ( int k = 1; k <= colSpan; k++ ) { + row.getCell((short) (cellNum+k)).setCellStyle(styleDataHeader); + } + + if(colSpan > 0) + cellNum += colSpan; + } + } // for + +/* int cw = 0; + for (int i = 0; i < cellWidth.size(); i++) { + cw = ((Integer) cellWidth.get(i)).intValue() + 6; + sheet.setColumnWidth((short) (i), (short) ((cw * 8) / ((double) 1 / 20))); + } +*/ + rowNum += 1; + } // for + + + // Data + // Create some cell styles. + //HSSFCellStyle styleDefault = wb.createCellStyle(); + HSSFCellStyle styleCell = null; + + HSSFCellStyle styleTotal = wb.createCellStyle(); + HSSFCellStyle styleCurrencyTotal = wb.createCellStyle(); + HSSFCellStyle styleDefaultTotal = wb.createCellStyle(); + HSSFCellStyle styleCurrencyDecimalNumberTotal = wb.createCellStyle(); + HSSFCellStyle styleDecimalNumberTotal = wb.createCellStyle(); + HSSFCellStyle styleCurrencyNumberTotal = wb.createCellStyle(); + + + // Create some fonts. + HSSFFont fontDefault = wb.createFont(); + HSSFFont fontBold = wb.createFont(); + // Initialize the styles & fonts. + // The default will be plain . + fontDefault.setColor((short) HSSFFont.COLOR_NORMAL); + fontDefault.setFontHeight((short) (font_size / 0.05)); + fontDefault.setFontName("Tahoma"); + + // The default will be bold black tachoma 10pt text. + fontBold.setColor((short) HSSFFont.COLOR_NORMAL); + fontBold.setFontHeight((short) (font_size / 0.05)); + fontBold.setFontName("Tahoma"); + fontBold.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + // Style default will be normal with no background + styleDefault.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDefault.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDefault.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDefault.setFillPattern(HSSFCellStyle.NO_FILL); + styleDefault.setFont(fontDefault); + styleDefault.setWrapText(true); + //Number + styleNumber.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleNumber.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleNumber.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleNumber.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleNumber.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleNumber.setFillPattern(HSSFCellStyle.NO_FILL); + styleNumber.setFont(fontDefault); + try { + styleNumber.setDataFormat((short)0x26);//HSSFDataFormat.getBuiltinFormat("(#,##0_);[Red](#,##0)")); + } catch (Exception e) { + + } + //Decimal Number + styleDecimalNumber.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDecimalNumber.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDecimalNumber.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDecimalNumber.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDecimalNumber.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDecimalNumber.setFillPattern(HSSFCellStyle.NO_FILL); + styleDecimalNumber.setFont(fontDefault); + styleDecimalNumber.setDataFormat((short)0x27);//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + + //Decimal Number + styleDecimalNumberTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDecimalNumberTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDecimalNumberTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDecimalNumberTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDecimalNumberTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDecimalNumberTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleDecimalNumberTotal.setFont(fontBold); + styleDecimalNumberTotal.setDataFormat((short)0x27);//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + + //CurrencyNumber + styleCurrencyDecimalNumber.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCurrencyDecimalNumber.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumber.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumber.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumber.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleCurrencyDecimalNumber.setFillPattern(HSSFCellStyle.NO_FILL); + styleCurrencyDecimalNumber.setFont(fontDefault); + styleCurrencyDecimalNumber.setDataFormat((short)8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + + //currency number bold + styleCurrencyDecimalNumberTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCurrencyDecimalNumberTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumberTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumberTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleCurrencyDecimalNumberTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleCurrencyDecimalNumberTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleCurrencyDecimalNumberTotal.setFont(fontBold); + styleCurrencyDecimalNumberTotal.setDataFormat((short)8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + + + //CurrencyNumber + styleCurrencyNumber.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCurrencyNumber.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumber.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumber.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumber.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleCurrencyNumber.setFillPattern(HSSFCellStyle.NO_FILL); + styleCurrencyNumber.setFont(fontDefault); + styleCurrencyNumber.setDataFormat((short) 6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); + + + //CurrencyNumber + styleCurrencyNumberTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCurrencyNumberTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumberTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumberTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleCurrencyNumberTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleCurrencyNumberTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleCurrencyNumberTotal.setFont(fontBold); + styleCurrencyNumberTotal.setDataFormat((short) 6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); + + //Date + styleDate.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDate.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDate.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDate.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDate.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDate.setFillPattern(HSSFCellStyle.NO_FILL); + styleDate.setFont(fontDefault); + styleDate.setDataFormat((short)0xe);//HSSFDataFormat.getBuiltinFormat("m/d/yy")); + + // Style for Total will be Bold with normal font with no background + styleTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleTotal.setDataFormat((short)0x28);//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + styleTotal.setFont(fontBold); + + styleCurrencyTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleCurrencyTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleCurrencyTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleCurrencyTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleCurrencyTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleCurrencyTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleCurrencyTotal.setDataFormat((short)8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + styleCurrencyTotal.setFont(fontBold); + + styleDefaultTotal.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleDefaultTotal.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleDefaultTotal.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleDefaultTotal.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleDefaultTotal.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDefaultTotal.setFillPattern(HSSFCellStyle.NO_FILL); + styleDefaultTotal.setDataFormat((short)0x28); + ////styleDefaultTotal.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + styleDefaultTotal.setFont(fontBold); + + firstPass = true; + // Declare a row object reference. + HSSFRow row = null; + // Declare a cell object reference. + HSSFCell cell = null; + //HSSFCell cellNumber = null; + //HSSFCell cellCurrencyNumber = null; + //HSSFCell cellDate = null; + + //All the possible combinations of date format + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat YYYYMMDDDASHFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat DDMONYYHHMMFormat = new SimpleDateFormat("dd-MMM-yy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat MMMMMDDYYYYHHMMSS = new SimpleDateFormat("MMMMM-dd-yyyy HH:mm:ss"); + + + + + ResultSet rs = null; + Connection conn = null; + Statement st = null; + ResultSetMetaData rsmd = null; + CreationHelper createHelper = wb.getCreationHelper(); + + if(nvl(sql_whole).length() >0 && rr.getReportType().equals(AppConstants.RT_LINEAR)) { + try { + conn = ConnectionUtils.getConnection(rr.getDbInfo()); + st = conn.createStatement(); + System.out.println("************* Map Whole SQL *************"); + System.out.println(sql_whole); + System.out.println("*****************************************"); + rs = st.executeQuery(sql_whole); + rsmd = rs.getMetaData(); + int numberOfColumns = rsmd.getColumnCount(); + HashMap colHash = new HashMap(); + DataRow dr = null; + int j = 0; + int rowCount = 0; + while(rs.next()) { + rowCount++; + row = sheet.createRow(rowNum); + cellNum = -1; + colHash = new HashMap(); + for (int i = 1; i <= numberOfColumns; i++) { + colHash.put(rsmd.getColumnLabel(i).toUpperCase(), strip.stripHtml(rs.getString(i))); + } + rd.reportDataRows.resetNext(); + dr = rd.reportDataRows.getNext(); + j = 0; + //if(rowCount%1000 == 0) wb.write(sos); + + /*if(rd.reportTotalRowHeaderCols!=null) { + //cellNum = -1; + //for (rd.reportRowHeaderCols.resetNext(); rd.reportRowHeaderCols.hasNext();) { + cellNum += 1; + //RowHeaderCol rhc = rd.reportRowHeaderCols.getRowHeaderCol(0); + //if (firstPass) + // rhc.resetNext(); + //RowHeader rh = rhc.getRowHeader(rowCount-1); + row.createCell((short) cellNum).setCellValue(rowCount); + row.getCell((short) cellNum).setCellStyle(styleDefault); + if (firstPass) + cellWidth.add(cellNum, new Integer((rowCount+"").length())); + else + cellWidth.set(cellNum, new Integer((rowCount+"").length())); + + //} // for + }*/ + firstPass = false; + //cellNum = -1; + for (dr.resetNext(); dr.hasNext();j++) { + //for (chr.resetNext(); chr.hasNext();) { + //ColumnHeader ch = chr.getNext(); + styleCell = null; + DataValue dv = dr.getNext(); + HtmlFormatter htmlFormat = dv.getCellFormatter(); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) + styleCell = (HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default")); + if (htmlFormat != null && dv.getFormatId() != null && styles != null) + styleCell = (HSSFCellStyle) styles.get(nvl(dv.getFormatId(),"default")); + String value = nvl((String)colHash.get(dv.getColId().toUpperCase())); + + boolean bold = false; + + if(dv.isVisible()) { + cellNum += 1; + cell = row.createCell((short) cellNum); + //System.out.println("Stripping HTML 1"); + //cell.setCellValue(strip.stripHtml(dv.getDisplayValue())); + String dataType = (String) (dataTypeMap.get(dv.getColId())); + //System.out.println("Value " + value + " " + (( dataType !=null && dataType.equals("DATE")) || (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date"))) ); + if (dataType!=null && dataType.equals("NUMBER")){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(dv.getDisplayValue()); + //cellCurrencyNumber = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + cell.setCellValue(zInt); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (dv.getDisplayValue().startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = dv.getDisplayValue().trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 1 is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleCell!=null) { + styleCell.setDataFormat((short) 8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyDecimalNumber); + cell.setCellValue(tempDoubleDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + //cell.setCellStyle(styleDefault); + cell.setCellValue(tempDollar); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(value); + if(styleCell!=null) { + styleCell.setDataFormat((short)0x28);//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDecimalNumber); + cell.setCellValue(tempDouble); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(value); + } + + } + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (dv.getDisplayValue().startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT is "+tempInt); + Long tempIntDollar = 0L; + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleCell!=null) { + styleCell.setDataFormat((short) 6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyNumber); + cell.setCellValue(tempIntDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempInt); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleCell!=null) { + styleCell.setDataFormat((short) 0x26);//HSSFDataFormat.getBuiltinFormat("(#,##0_);[Red](#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleNumber); + cell.setCellValue(temp); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempStr); + } + + + } + //int temp = Integer.parseInt(value.trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + } + } + } + + }else if ( ( dataType !=null && dataType.equals("DATE")) || (dv.getDisplayName()!=null && dv.getDisplayName().toLowerCase().endsWith("date")) || + (dv.getColId()!=null && dv.getColId().toLowerCase().endsWith("date")) || + (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date")) ) { + //cellDate = row.createCell((short) cellNum); + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("mm/dd/yy")); + + if(styleCell!=null) { + styleCell.setDataFormat((short) 0xe);//HSSFDataFormat.getBuiltinFormat("m/d/yy")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDate); + //String MY_DATE_FORMAT = "yyyy-MM-dd"; + //value = nvl(value).length()<=0?nvl(dv.getDisplayValue()):value; + Date date = null; + int flag = 0; + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy")); + flag = 1; + } + if(date==null) + date = YYYYMMDDFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d")); + flag = 1; + } + if(date==null) + date = timestampFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy-m-d h:mm:ss")); //yyyy-MM-dd HH:mm:ss + flag = 1; + } + if(date==null) + date = MONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm yyyy")); + flag = 1; + } + if(date==null) + date = MMYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/yyyy")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm/d/yyyy")); + flag = 1; + } + if(date==null) + date = MONTHYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm/yyyy")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d h:mm:ss")); + flag = 1; + } + if(date==null) + date = YYYYMMDDDASHFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy-m-d")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy h:mm:ss")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yy h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMZFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYHHMMSS.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + + if(date!=null) { + //System.out.println("ExcelDate " + HSSFDateUtil.getExcelDate(date)); + cell.setCellValue(HSSFDateUtil.getExcelDate(date)); + try { + String str = cell.getStringCellValue(); + } catch (IllegalStateException ex) { /*cell.getCellStyle().setDataFormat((short)0);*/cell.setCellValue(value);} + } else { + /*cell.getCellStyle().setDataFormat((short)0);*/ + cell.setCellValue(value); + } + //cellDate.setCellValue(date); + //cellDate.setCellValue(value); //cellDate.setCellValue(date); + //cellDate.setCellValue(dv.getDisplayValue()); + + }else if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(dv.getDisplayValue()); + cell = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + cell.setCellValue(zInt); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 2IF is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleCell!=null) { + styleCell.setDataFormat((short) 8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyDecimalNumber); + cell.setCellValue(tempDoubleDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempDollar); + } + + + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempDoubleStr = value.trim(); + tempDoubleStr = tempDoubleStr.replaceAll(" ", "").substring(0); + if ((tempDoubleStr.indexOf(","))!= -1){ + tempDoubleStr = tempDoubleStr.replaceAll(",", ""); + } + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(tempDoubleStr); + if(styleCell!=null) { + styleCell.setDataFormat((short)0x28 );//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDecimalNumber); + cell.setCellValue(tempDouble); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempDoubleStr); + } + } + + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT 2 is "+tempInt); + + Long tempIntDollar = 0L; + + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleCell!=null) { + styleCell.setDataFormat((short) 6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyNumber); + cell.setCellValue(tempIntDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempInt); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleCell!=null) { + styleCell.setDataFormat((short) 0x26);//HSSFDataFormat.getBuiltinFormat("(#,##0_);[Red](#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleNumber); + cell.setCellValue(temp); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempStr); + } + } + //int temp = Integer.parseInt(dv.getDisplayValue().trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(dv.getDisplayValue())); + //} + } else { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + } + } + } + + + } + else { + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("General")); + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(strip.stripHtml(value)); + } + + //if (!(value.equals(""))){ + //int temp = Integer.parseInt(value.trim()); + //cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + //HSSFCellStyle styleFormat = null; + //HSSFCellStyle numberStyle = null; + //HSSFFont formatFont = null; + //short fgcolor = 0; + //short fillpattern = 0; + if (cellWidth.size() > cellNum) { + if (((Integer) cellWidth.get(cellNum)).intValue() < dv + .getDisplayValue().length()) + cellWidth.set((cellNum), + (value.length()<=Globals.getMaxCellWidthInExcel())?new Integer(value.length()):new Integer(Globals.getMaxCellWidthInExcel())); + } else + cellWidth.add((cellNum), (value.length()<=Globals.getMaxCellWidthInExcel())?new Integer(value.length()):new Integer(Globals.getMaxCellWidthInExcel())); + //System.out.println("1IF "+ (dv.isBold()) + " "+ value + " " + dv.getDisplayTotal() + " " + dv.getColName() ); + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + cell.setCellStyle(styleCurrencyTotal); + } + else { + cell.setCellStyle(styleTotal); + } + } else { + cell.setCellStyle(styleDefaultTotal); + } + bold = true; + } + //System.out.println("2IF "+ (dr.isRowFormat()) + " " + (dv.isCellFormat()) + " " + (styles!=null)); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default"))); + continue; + } + //System.out.println("3IF "+ (htmlFormat != null) + " " + (dv.getFormatId() != null) + " " + (bold == false) + " "+ (styles != null)); + if (htmlFormat != null && dv.getFormatId() != null && bold == false + && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dv.getFormatId(),"default"))); + } //else if (bold == false) + //cell.setCellStyle(styleDefault); + } // dv.isVisible + } + rowNum += 1; + + } + + int cw = 0; + for (int i = 0; i < cellWidth.size(); i++) { + cw = ((Integer) cellWidth.get(i)).intValue() + 12; + // if(i!=cellWidth.size()-1) + sheet.setColumnWidth((short) (i), (short) ((cw * 8) / ((double) 1 / 20))); + // else + // sheet.setColumnWidth((short) (i + 1), (short) ((cw * 10) / + // ((double) 1 / 20))); + } + + // To Display Total Values for Linear report + if(rd.reportDataTotalRow!=null) { + row = sheet.createRow(rowNum); + cellNum = -1; + rd.reportTotalRowHeaderCols.resetNext(); + //for (rd.reportTotalRowHeaderCols.resetNext(); rd.reportTotalRowHeaderCols.hasNext();) { + cellNum += 1; + RowHeaderCol rhc = rd.reportTotalRowHeaderCols.getNext(); + RowHeader rh = rhc.getRowHeader(0); + row.createCell((short) cellNum).setCellValue(strip.stripHtml(rh.getRowTitle())); + row.getCell((short) cellNum).setCellStyle(styleDefaultTotal); + //} + + rd.reportDataTotalRow.resetNext(); + DataRow drTotal = rd.reportDataTotalRow.getNext(); + //cellNum = -1; + + drTotal.resetNext(); + drTotal.getNext(); + for (; drTotal.hasNext();) { + cellNum += 1; + cell = row.createCell((short) cellNum); + DataValue dv = drTotal.getNext(); + String value = dv.getDisplayValue(); + cell.setCellValue(value); + boolean bold = false; + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + cell.setCellStyle(styleCurrencyTotal); + } else { + cell.setCellStyle(styleTotal); + } + } else { + cell.setCellStyle(styleDefaultTotal); + } + bold = true; + } + } + } + + } catch (SQLException ex) { + ex.printStackTrace(); + 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(Globals.getShowDisclaimer() && !Globals.disclaimerPositionedTopInCSVExcel()) { + rowNum += 1; + row = sheet.createRow(rowNum); + cellNum = 0; + String disclaimer = Globals.getFooterFirstLine() + " " + Globals.getFooterSecondLine(); + row.createCell((short) cellNum).setCellValue(disclaimer); + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (columnRows))); + rowNum += 1; + }*/ + } else { + if(rr.getReportType().equals(AppConstants.RT_LINEAR)) { + int rowCount = 0; + for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) { + DataRow dr = rd.reportDataRows.getNext(); + //List l = rd.getReportDataList(); + //for (int dataRow = 0; dataRow < l.size(); dataRow++) { + rowCount++; + + + //DataRow dr = (DataRow) l.get(dataRow); + row = sheet.createRow(rowNum); + + cellNum = -1; + + if (rr.getReportType().equals(AppConstants.RT_LINEAR) && rd.reportTotalRowHeaderCols!=null) { + rd.reportRowHeaderCols.resetNext(0); + if(rd.reportTotalRowHeaderCols!=null) { + //cellNum = -1; + //for (rd.reportRowHeaderCols.resetNext(); rd.reportRowHeaderCols.hasNext();) { + //cellNum += 1; + //RowHeaderCol rhc = rd.reportRowHeaderCols.getRowHeaderCol(0); + //if (firstPass) + // rhc.resetNext(); + //RowHeader rh = rhc.getRowHeader(rowCount-1); + //row.createCell((short) cellNum).setCellValue(rowCount); + //row.getCell((short) cellNum).setCellStyle(styleDefault); + //if (firstPass) + //cellWidth.add(cellNum, new Integer((rowCount+"").length())); + //else + //cellWidth.set(cellNum, new Integer((rowCount+"").length())); + + //} // for + } + + } else { + rd.reportRowHeaderCols.resetNext(0); + } + for (; rd.reportRowHeaderCols.hasNext();) { + cellNum += 1; + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + if (firstPass) + rhc.resetNext(); + RowHeader rh = rhc.getNext(); + row.createCell((short) cellNum).setCellValue(strip.stripHtml(rh.getRowTitle())); + row.getCell((short) cellNum).setCellStyle(styleDefault); + if (cellWidth.size() > 0) { + if (((Integer) cellWidth.get(cellNum)).intValue() < rh.getRowTitle() + .length()) + cellWidth.set(cellNum, new Integer(rh.getRowTitle().length())); + } else + cellWidth.add(cellNum, new Integer(rh.getRowTitle().length())); + + } // for + firstPass = false; + //cellNum = -1; + int j = 0; + + for (dr.resetNext(); dr.hasNext();j++) { + DataValue dv = dr.getNext(); + styleCell = null; + boolean bold = false; + String value = nvl(dv.getDisplayValue()); + value = strip.stripHtml(value); + HtmlFormatter htmlFormat = dv.getCellFormatter(); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) + styleCell = (HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default")); + if (htmlFormat != null && dv.getFormatId() != null && styles != null) + styleCell = (HSSFCellStyle) styles.get(nvl(dv.getFormatId(),"default")); + + if(dv.isVisible()) { + cellNum += 1; + cell = row.createCell((short) cellNum); + //System.out.println("Stripping HTML 1"); + //cell.setCellValue(strip.stripHtml(value)); + String dataType = (String) (dataTypeMap.get(dv.getColId())); + //System.out.println(" The Display Value is ********"+value + " " + dv.getDisplayTotal() + " " + dv.getColName()); + + if (dataType!=null && dataType.equals("NUMBER")){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(value); + //cellCurrencyNumber = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + cell.setCellValue(zInt); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 1 is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleCell!=null) { + styleCell.setDataFormat((short) 8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyDecimalNumber); + cell.setCellValue(tempDoubleDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempDollar); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(value); + if(styleCell!=null) { + styleCell.setDataFormat((short) 0x28);//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDecimalNumber); + cell.setCellValue(tempDouble); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(value); + } + + } + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT is "+tempInt); + Long tempIntDollar = 0L; + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleCell!=null) { + styleCell.setDataFormat((short)6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyNumber); + cell.setCellValue(tempIntDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempInt); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleCell!=null) { + styleCell.setDataFormat((short)0x26);//HSSFDataFormat.getBuiltinFormat("(#,##0_);[Red](#,##0)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleNumber); + cell.setCellValue(temp); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempStr); + } + + + } + //int temp = Integer.parseInt(value.trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + } + } + } + + }else if ( ( dataType !=null && dataType.equals("DATE")) || (dv.getDisplayName()!=null && dv.getDisplayName().toLowerCase().endsWith("date")) || + (dv.getColId()!=null && dv.getColId().toLowerCase().endsWith("date")) || + (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date")) ) { + //cellDate = row.createCell((short) cellNum); + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("mm/dd/yy")); + + if(styleCell!=null) { + styleCell.setDataFormat((short)0xe); //HSSFDataFormat.getBuiltinFormat("m/d/yy")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDate); + //String MY_DATE_FORMAT = "yyyy-MM-dd"; + Date date = null; + int flag = 0; + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy")); + flag = 1; + } + if(date==null) + date = YYYYMMDDFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d")); + flag = 1; + } + if(date==null) + date = timestampFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy-m-d h:mm:ss")); //yyyy-MM-dd HH:mm:ss + flag = 1; + } + if(date==null) + date = MONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm yyyy")); + flag = 1; + } + if(date==null) + date = MMYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/yyyy")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm/d/yyyy")); + flag = 1; + } + if(date==null) + date = MONTHYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("mmm/yyyy")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d h:mm:ss")); + flag = 1; + } + if(date==null) + date = YYYYMMDDDASHFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy-m-d")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("yyyy/m/d h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy h:mm:ss")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yy h:mm")); + flag = 1; + } + if(date==null) + date = DDMONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("d-mmm-yyyy")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yy h:mm:ss")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMZFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYHHMMSS.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cell.getCellStyle().setDataFormat( + createHelper.createDataFormat().getFormat("m/d/yyyy h:mm")); + flag = 1; + } + + if(date!=null) { + //System.out.println("ExcelDate " + HSSFDateUtil.getExcelDate(date)); + cell.setCellValue(HSSFDateUtil.getExcelDate(date)); + try { + String str = cell.getStringCellValue(); + } catch (IllegalStateException ex) { /*cell.getCellStyle().setDataFormat((short)0);*/cell.setCellValue(value);} + } else { + /*cell.getCellStyle().setDataFormat((short)0);*/ + cell.setCellValue(value); + } + //cellDate.setCellValue(date); + //cellDate.setCellValue(value); + + }else if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(value); + cell = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + cell.setCellValue(zInt); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 2IF is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleCell!=null) { + styleCell.setDataFormat((short)8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyDecimalNumber); + cell.setCellValue(tempDoubleDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempDollar); + } + + + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempDoubleStr = value.trim(); + tempDoubleStr = tempDoubleStr.replaceAll(" ", "").substring(0); + if ((tempDoubleStr.indexOf(","))!= -1){ + tempDoubleStr = tempDoubleStr.replaceAll(",", ""); + } + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(tempDoubleStr); + if(styleCell!=null) { + styleCell.setDataFormat((short) 0x28); // for decimal + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDecimalNumber); + cell.setCellValue(tempDouble); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempDoubleStr); + } + } + + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT 2 is "+tempInt); + + Long tempIntDollar = 0L; + + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleCell!=null) { + styleCell.setDataFormat((short) 6); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleCurrencyNumber); + cell.setCellValue(tempIntDollar); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempInt); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleCell!=null) { + styleCell.setDataFormat((short) 0x26); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleNumber); + cell.setCellValue(temp); + } catch (NumberFormatException ne) { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(tempStr); + } + } + //int temp = Integer.parseInt(value.trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + } else { + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + } + } + } + + + } + else { + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("General")); + if(styleCell!=null) { + styleCell.setWrapText(true); + cell.setCellStyle(styleCell); + } else + cell.setCellStyle(styleDefault); + cell.setCellValue(strip.stripHtml(value)); + } + + //if (!(value.equals(""))){ + //int temp = Integer.parseInt(value.trim()); + //cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + //HSSFCellStyle styleFormat = null; + //HSSFCellStyle numberStyle = null; + //HSSFFont formatFont = null; + //short fgcolor = 0; + //short fillpattern = 0; + if (cellWidth.size() > cellNum) { + if (((Integer) cellWidth.get(cellNum)).intValue() < dv + .getDisplayValue().length()) + cellWidth.set((cellNum), + (value.length()<=Globals.getMaxCellWidthInExcel())?new Integer(value.length()):new Integer(Globals.getMaxCellWidthInExcel())); + } else + cellWidth.add((cellNum), (value.length()<=Globals.getMaxCellWidthInExcel())?new Integer(value.length()):new Integer(Globals.getMaxCellWidthInExcel())); + //System.out.println("1IF "+ (dv.isBold()) + " "+ value + " " + dv.getDisplayTotal() + " " + dv.getColName() ); + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + cell.setCellStyle(styleCurrencyTotal); + } + else { + cell.setCellStyle(styleTotal); + } + } else { + cell.setCellStyle(styleDefaultTotal); + } + bold = true; + } + //System.out.println("2IF "+ (dr.isRowFormat()) + " " + (dv.isCellFormat()) + " " + (styles!=null)); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default"))); + continue; + } + //System.out.println("3IF "+ (htmlFormat != null) + " " + (dv.getFormatId() != null) + " " + (bold == false) + " "+ (styles != null)); + if (htmlFormat != null && dv.getFormatId() != null && bold == false + && styles != null) { + // cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dv.getFormatId(),"default"))); + } //else if (bold == false) + //cell.setCellStyle(styleDefault); + } // if (dv.isVisible) + } // for + + /*for (int tmp=0; tmp rowNames = dr.getRowValues(); + for(dr.resetNext(); dr.hasNext(); rowCount++ ) { + if(first) { + if(rowNames!=null) { + for(int i=0; i0) { + cellNum += 1; + row.createCell((short) cellNum).setCellValue(strip.stripHtml(dv.getDisplayValue())); + //row.getCell((short) cellNum).setCellStyle(styleDefault); + if(nvl(dv.getFormatId()).length()>0) + row.getCell((short) cellNum).setCellStyle((HSSFCellStyle) styles.get(nvl(dv.getFormatId(),"default"))); + else + row.setRowStyle((HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default"))); + } else { + cellNum += 1; + row.createCell((short) cellNum).setCellValue(strip.stripHtml(value)); + row.getCell((short) cellNum).setCellStyle(styleDefault); + } // end + value = dv.getDisplayValue(); + if(value.indexOf("|#")!=-1) { + String color = value.substring(value.indexOf("|")+1); + if(color.equals("#FF0000")) + row.getCell((short) cellNum).setCellStyle((HSSFCellStyle) styles.get("red")); + else if (color.equals("#008000")) + row.getCell((short) cellNum).setCellStyle((HSSFCellStyle) styles.get("green")); + else if (color.equals("#FFFF00")) + row.getCell((short) cellNum).setCellStyle((HSSFCellStyle) styles.get("yellow")); + else { + row.getCell((short) cellNum).setCellStyle((HSSFCellStyle) styles.get("default")); + } + + } + } + } + rowNum += 1; + int cw = 0; + for (int i = 0; i < cellWidth.size(); i++) { + cw = ((Integer) cellWidth.get(i)).intValue() + 12; + // if(i!=cellWidth.size()-1) + sheet.setColumnWidth((short) (i), (short) ((cw * 8) / ((double) 1 / 20))); + // else + // sheet.setColumnWidth((short) (i + 1), (short) ((cw * 10) / + // ((double) 1 / 20))); + } + + + } // for + + } + + + } + + String footer = (String) session.getAttribute("FOOTER_"+index); + if(nvl(footer).length()>0) { + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = strip.stripHtml(nvl(footer).trim()); + row = sheet.createRow(rowNum); + cellNum = 0; + row.createCell((short) cellNum).setCellValue(footer); + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (columnRows))); + //sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum+columnRows, (short) (cellNum))); + rowNum += 1; + } + + if(Globals.getShowDisclaimer() && !Globals.disclaimerPositionedTopInCSVExcel()) { + + rowNum += 1; + row = sheet.createRow(rowNum); + cellNum = 0; + String disclaimer = Globals.getFooterFirstLine() + " " + Globals.getFooterSecondLine(); + row.createCell((short) cellNum).setCellValue(disclaimer); + sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (columnRows))); + rowNum += 1; + } + + logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####")); + logger.debug(EELFLoggerDelegate.debugLogger, ("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)); + return returnValue; + + } + + private void paintExcelHeader(HSSFWorkbook wb, int rowNum, int col, String reportTitle, + String reportDescr, HSSFSheet sheet) { + short s1 = 0, s2 = (short) (col-1); + rowNum += 1; + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + HSSFRow row = null, row1 = null; + + row = sheet.createRow(rowNum); + // Header Style + HSSFCellStyle styleHeader = wb.createCellStyle(); + styleHeader.setAlignment(HSSFCellStyle.ALIGN_CENTER); + HSSFFont font = wb.createFont(); + font.setFontHeight((short) (font_header_title_size / 0.05)); //14 + font.setFontName("Tahoma"); + font.setColor(HSSFColor.BLACK.index); + styleHeader.setFont(font); + + HSSFCell cell = row.createCell((short) 0); + cell.setCellValue(reportTitle); + cell.setCellStyle(styleHeader); + HSSFHeader header = sheet.getHeader(); + header.setCenter(HSSFHeader.font("Tahoma", "")+ HSSFHeader.fontSize((short) 9)+" " + reportTitle); + + //header.setCenter(HSSFHeader.font("Tahoma", "")+ HSSFHeader.fontSize((short) 9)+reportTitle+"\n"+((Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0)?reportDescr:"")); + + // Report Description + if (Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0) { + rowNum += 1; + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + HSSFCellStyle styleDescription = wb.createCellStyle(); + styleDescription.setAlignment(HSSFCellStyle.ALIGN_CENTER); + HSSFFont fontDescr = wb.createFont(); + fontDescr.setFontHeight((short) font_header_descr_size); + fontDescr.setFontName("Tahoma"); + fontDescr.setColor(HSSFColor.BLACK.index); + styleDescription.setFont(fontDescr); + HSSFCell cellDescr = row.createCell((short) 0); + cellDescr.setCellValue(reportDescr); + cellDescr.setCellStyle(styleHeader); + } + + if(Globals.disclaimerPositionedTopInCSVExcel()) { + rowNum += 1; + row = sheet.createRow(rowNum); + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + HSSFCellStyle styleDescription = wb.createCellStyle(); + styleDescription.setAlignment(HSSFCellStyle.ALIGN_CENTER); + HSSFFont fontDescr = wb.createFont(); + fontDescr.setFontHeight((short) (font_size / 0.05)); //14 + fontDescr.setFontName("Tahoma"); + fontDescr.setColor(HSSFColor.BLACK.index); + fontDescr.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleDescription.setFont(fontDescr); + HSSFCell cellDescr = row.createCell((short) 0); + String disclaimer = Globals.getFooterFirstLine() + " " + Globals.getFooterSecondLine(); + cellDescr.setCellValue(disclaimer); + cellDescr.setCellStyle(styleDescription); + } + + rowNum += 1; + row = sheet.createRow(rowNum); + // System.out.println(" Last Row " + wb.getSheetAt(0).getLastRowNum()); + } + + private void paintExcelFooter(HSSFWorkbook wb, int rowNum, int col, HSSFSheet sheet) { + logger.debug(EELFLoggerDelegate.debugLogger, ("excel footer")); + //HSSFSheet sheet = wb.getSheet(getSheetName()); + HSSFFooter footer = sheet.getFooter(); + footer.setLeft(HSSFFooter.font("Tahoma", "")+ HSSFFooter.fontSize((short) font_footer_size)+ "Page " + HSSFFooter.page() + + " of " + HSSFFooter.numPages() ); + footer.setCenter(HSSFFooter.font("Tahoma", "")+ HSSFFooter.fontSize((short) font_footer_size)+Globals.getFooterFirstLine()+"\n"+Globals.getFooterSecondLine()); + //footer.setCenter(HSSFFooter.font("Tahoma", "Italic")+ HSSFFooter.fontSize((short) 16))+Globals.getFooterSecondLine()); +/* footer.font("Tahoma"); + short s1 = 0, s2 = (short) (col-1); + rowNum += 1; + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + HSSFRow row = null, row1 = null; + + row = sheet.createRow(rowNum); + // Header Style + HSSFCellStyle styleFooter = wb.createCellStyle(); + styleFooter.setAlignment(HSSFCellStyle.ALIGN_CENTER); + HSSFFont font = wb.createFont(); + font.setFontHeight((short) (10 / 0.05)); + font.setFontName("Tahoma"); + font.setColor(HSSFColor.BLACK.index); + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleFooter.setFont(font); + + HSSFCell cell = row.createCell((short) 0); + debugLogger.debug(Globals.getFooterFirstLine()); + cell.setCellValue(Globals.getFooterFirstLine()); + cell.setCellStyle(styleFooter); + + rowNum += 1; + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + row = sheet.createRow(rowNum); + cell = row.createCell((short) 0); + debugLogger.debug(Globals.getFooterSecondLine()); + cell.setCellValue(Globals.getFooterSecondLine()); + cell.setCellStyle(styleFooter); +*/ + logger.debug(EELFLoggerDelegate.debugLogger, ("Done")); + } + + public String saveAsExcelFile(HttpServletRequest request, ReportData rd, + ArrayList reportParamNameValues, String reportTitle, String reportDescr) { + return saveAsExcelFile(request, rd, reportParamNameValues, reportTitle, reportDescr, 2); //2 denotes ReportRuntime object should be taken from session. + } + public String saveAsExcelFile(HttpServletRequest request, ReportData rd, + ArrayList reportParamNameValues, String reportTitle, String reportDescr, int requestFlag) { + setSheetName(Globals.getSheetName()); + try { + ReportRuntime rr; + if(requestFlag == 2) + rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + else + rr = (ReportRuntime) request.getAttribute( + AppConstants.SI_REPORT_RUNTIME); + HSSFWorkbook wb = new HSSFWorkbook(); + HashMap styles = new HashMap(); + if (rr != null) + styles = loadStyles(rr, wb); + String xlsFName = AppUtils.generateUniqueFileName(request, rr.getReportName(), AppConstants.FT_XLS); + logger.debug(EELFLoggerDelegate.debugLogger, ("Xls File name " + + AppUtils.getTempFolderPath() + + xlsFName)); + FileOutputStream xlsOut = new FileOutputStream(AppUtils.getTempFolderPath() + + xlsFName); + // BufferedWriter xlsOut = new BufferedWriter(new + // FileWriter(AppUtils + // .getTempFolderPath() + // + xlsFName)); + + int col = 0; + //System.out.println("Row Header Count " + rd.reportRowHeaderCols.getRowCount()); + //System.out.println("Total Count " + rd.getTotalColumnCount()); + + if (!rd.reportRowHeaderCols.hasNext()) + col = rd.getTotalColumnCount(); + else + col = rd.getTotalColumnCount(); + int rowNum = 0; + HSSFSheet sheet = wb.createSheet(getSheetName()); + + 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) { + paintExcelParams(wb,rowNum,col,rr.getParamNameValuePairsforPDFExcel(request, 1), rr.getFormFieldComments(request), sheet, reportTitle, reportDescr); + } // if + rowNum = sheet.getLastRowNum(); + //System.out.println(" rowNum after Params " + rowNum); + paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, "", xlsOut, request); + if (Globals.getPrintFooterInDownload() ) { + rowNum = sheet.getLastRowNum(); + rowNum += 2; + paintExcelFooter(wb, rowNum, col, sheet); + } + //response.setContentType("application/vnd.ms-excel"); + //response.setHeader("Content-disposition", "attachment;filename=download_all_" + // + user_id + ".xls"); + wb.write(xlsOut); + xlsOut.flush(); + xlsOut.close(); + return xlsFName; + } catch (Exception e) { + e.printStackTrace(); + (new ErrorHandler()).processError(request, "Exception saving data to EXCEL file: " + + e.getMessage()); + return null; + } + } // 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; + + +/* 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(); + } +*/ + + 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 (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(AppUtils.getTempFolderPath() + + xlsFName); + } else { + xlsOut = new FileOutputStream(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(); + + 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(); + } + + 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) {} +*/ + } + } + } + + + public void createFlatFileContent(Writer out, ReportData rd, ReportRuntime rr, + HttpServletRequest request, HttpServletResponse response, String user_id) + throws IOException, Exception { + ReportHandler rephandler = new ReportHandler(); + String reportID = rr.getReportID(); + rr = rephandler.loadReportRuntime(request, reportID); + String query = rr.getWholeSQL(); + String dbInfo = rr.getDbInfo(); + //File f = new File(request.(arg0)("/")); + DataSet ds = ConnectionUtils.getDataSet(query, dbInfo); + + //Writing Column names to the file + List l = rr.getAllColumns(); + StringBuffer allColumnsBuffer = new StringBuffer(); + DataColumnType dct = null; + + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + allColumnsBuffer.append(dct.getDisplayName()); + if(iter.hasNext()) + allColumnsBuffer.append("|"); + } + rd = rr.loadReportData(-1, user_id, -1,request, true); + //PrintWriter txtOut = new PrintWriter(out); + //response.setContentType("application/notepad"); + //response.setHeader("Content-disposition", "attachment;filename=download_all_"+AppUtils.getUserID(request)+".txt"); + ServletOutputStream sos = response.getOutputStream(); + + //No Report Title for flat file. +// if (Globals.getPrintTitleInDownload() && reportTitle != null) { +// txtOut.println(); +// txtOut.println("\"" + reportTitle + "\""); +// txtOut.println(); +// if (Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0) { +// txtOut.println("\"" + reportDescr + "\""); +// txtOut.println(); +// } +// } // if + // No Params either +// int count = 0; +// if (Globals.getPrintParamsInDownload() && reportParamNameValues != null) { +// for (Iterator iter = reportParamNameValues.iterator(); iter.hasNext();) { +// count += 1; +// if(count == 1) txtOut.println(); +// IdNameValue value = (IdNameValue) iter.next(); +// txtOut.println(value.getId() + " = " + value.getName()); +// if(!iter.hasNext()) txtOut.println(); +// } // for +// } // if + + + + boolean firstPass = true; + for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) { + DataRow dr = rd.reportDataRows.getNext(); + for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + if (firstPass) + rhc.resetNext(); + RowHeader rh = rhc.getNext(); + + sos.print(rh.getRowTitle()); + if(rhc.hasNext()) sos.print("|"); + } // for + firstPass = false; + + for (dr.resetNext(); dr.hasNext();) { + DataValue dv = dr.getNext(); + + sos.print( dv.getDisplayValue()); + if(dr.hasNext()) sos.print("|"); + } // for + + sos.println(); + } // for + //sos.flush(); + sos.close(); + } // createFlatFileContent + + + public void createExcel2007FileContent(Writer out, ReportData rd, ReportRuntime rr, HttpServletRequest request, + HttpServletResponse response, String user_id, int type) + throws Exception { + + // to check performance + int mb = 1024*1024; + Runtime runtime = Runtime.getRuntime(); + + logger.debug(EELFLoggerDelegate.debugLogger, ("STARTING.EXCELX DOWNLOAD....")); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####")); + logger.debug(EELFLoggerDelegate.debugLogger, ("Used Memory:" + + (runtime.totalMemory() - 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)); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### END #####")); + + // Adding utility for downloading Dashboard reports. + + Map styles = new HashMap(); + HttpSession session = request.getSession(); + ServletOutputStream sos = null; + BufferedInputStream buf = null; + XSSFWorkbook wb = null; + String formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName()); + String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date()); + //Sheet name to be filled is taken from property. How would this be called if it is Dashboard? + //commented out since application will create and leave it blank. + //setSheetName(Globals.getSheetName()); + 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; + } + //boolean isDashboard = (session.getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null); + ArrayList sheetArrayList = new ArrayList(); + + Map reportRuntimeMap = null; + Map reportDataMap = null; + + ArrayList reportIDList = new ArrayList(); + + //Map reportDisplayTypeMap = null; + if(isDashboard) { + reportRuntimeMap = (TreeMap) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP); + reportDataMap = (TreeMap) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP); + + if(reportRuntimeMap!=null) { + Set setReportRuntime = reportRuntimeMap.entrySet(); + for(Iterator iter = setReportRuntime.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + ReportRuntime rrDashRep = (ReportRuntime) entry.getValue(); + reportIDList.add(rrDashRep.getReportID()); + } + } + } + + + + + int col = 0; + String reportTitle = (nvl(rr.getReportTitle()).length()>0?rr.getReportTitle():rr.getReportName()); + String reportDescr = rr.getReportDescr(); + + // Total Columns visible in excel + //col = getColumnCountForDownloadFile(rr, rd); + + int rowNum = 0; + + + XSSFSheet sheet = null; + //save the template + String filename = ""; + String extension = ""; + + String sheetRef = null; + + FileOutputStream os = null; //template file + File templateFile = null; + + if(isDashboard) { + if(reportRuntimeMap!=null) { + + FileInputStream readTemplate = null; + //Load customized styles + int count = 0; + + //If template supplied by Application + String templateFilename = rr.getTemplateFile(); + extension = templateFilename.substring(templateFilename.lastIndexOf(".")+1); + filename = formattedReportName+formattedDate+user_id; + + Set setReportRuntimeWB = reportRuntimeMap.entrySet(); + for(Iterator iter = setReportRuntimeWB.iterator(); iter.hasNext(); ) { + count++; + Map.Entry entry = (Entry) iter.next(); + ReportRuntime rrDashRep = (ReportRuntime) entry.getValue(); + os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + + if(count==1) { + if(nvl(rr.getTemplateFile()).length()>0) { + readTemplate = new FileInputStream(org.onap.portalsdk.analytics.system.AppUtils.getExcelTemplatePath()+rr.getTemplateFile()); + wb=new XSSFWorkbook(readTemplate); + } else { + //copy the os file to new file and open new file in below line + wb=new XSSFWorkbook(); + } + } else { + readTemplate = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx")); + wb=new XSSFWorkbook(readTemplate); + } + if(rrDashRep!=null) + styles = loadXSSFStyles(rrDashRep, wb, styles); + String reportSheetName = new HtmlStripper().stripSpecialCharacters(rrDashRep.getReportName()); + if(nvl(reportSheetName).length()>28) + reportSheetName = reportSheetName.substring(0, 28); + sheet = wb.createSheet(count+"-"+reportSheetName); + if(!Globals.printExcelInLandscapeMode()) + sheet.getPrintSetup().setLandscape(false); + else + sheet.getPrintSetup().setLandscape(true); + wb.write(os); + os.flush(); + if(nvl(rr.getTemplateFile()).length()>0) { + readTemplate.close(); + } + os.close(); + + FileInputStream inF = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + FileOutputStream outStream = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx")); + copyStream(inF, outStream); + outStream.flush(); + outStream.close(); + inF.close(); + + } + + FileInputStream xlsIn = null; + POIFSFileSystem fileSystem = null; + buf = null; + FileOutputStream xlsOut = null; + formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date()); + String xlsFName = "dashboard"+formattedDate+user_id+".xls"; + + Set setReportRuntime = reportRuntimeMap.entrySet(); + Set setReportDataMap = reportDataMap.entrySet(); + Iterator iter2 = setReportDataMap.iterator(); + + + //filename = templateFilename.substring(0, templateFilename.lastIndexOf("."))+"_"+formattedDate+user_id; + + count = 0; + for(Iterator iter = setReportRuntime.iterator(); iter.hasNext(); ) { + count++; + + Map.Entry entry = (Entry) iter.next(); + Map.Entry entryData = (Entry) iter2.next(); + ReportRuntime rrDashRep = (ReportRuntime) entry.getValue(); + ReportData rdDashRep = (ReportData) entryData.getValue(); + + String reportSheetName = new HtmlStripper().stripSpecialCharacters(rrDashRep.getReportName()); + if(nvl(reportSheetName).length()>28) + reportSheetName = reportSheetName.substring(0, 28); + sheet = wb.getSheet(count+"-"+reportSheetName); + sheetRef = sheet.getPackagePart().getPartName().getName(); + + //Step 2. Generate XML file. + File tmp = File.createTempFile("sheet", ".xml"); + FileOutputStream fileOutTemp = new FileOutputStream(tmp); + Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING); + String sql_whole = rrDashRep.getWholeSQL(); + + SpreadsheetWriter sw = new SpreadsheetWriter(fw); + sw.beginSheet(); + + + generate(wb, sw, styles, rdDashRep, sql_whole, rrDashRep, request, sheet); + + + sw.endSheet(); + + fw.flush(); + fw.close(); + fileOutTemp.flush(); + fileOutTemp.close(); + + + //Step 3. Substitute the template entry with the generated data + + FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx")); + templateFile = new File(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + substitute(templateFile, tmp, sheetRef.substring(1), outF); + outF.flush(); + outF.close(); + + FileInputStream inF = new FileInputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx")); + FileOutputStream outStream = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + copyStream(inF, outStream); + outStream.flush(); + outStream.close(); + inF.close(); + } + } + } else { + //If template supplied by Application + if(nvl(rr.getTemplateFile()).length()>0) { + String templateFilename = rr.getTemplateFile(); + extension = templateFilename.substring(templateFilename.lastIndexOf(".")+1); + filename = formattedReportName+formattedDate+user_id; + //filename = templateFilename.substring(0, templateFilename.lastIndexOf("."))+"_"+formattedDate+user_id; + } else + filename = formattedReportName+formattedDate+user_id; + + + if(nvl(rr.getTemplateFile()).length()<=0) { + os = new FileOutputStream(AppUtils.getTempFolderPath()+"template"+formattedDate+user_id+".xlsx"); + wb=new XSSFWorkbook(); + //Load customized styles + if (rr != null) + styles = loadXSSFStyles(rr, wb, styles); + //create data sheet + if(isDashboard) { + + } else { + + } + String reportSheetName = new HtmlStripper().stripSpecialCharacters(rr.getReportName()); + if(nvl(reportSheetName).length()>28) + reportSheetName = reportSheetName.substring(0, 28); + sheet = wb.createSheet(reportSheetName); + + //customized mode + if(!Globals.printExcelInLandscapeMode()) + sheet.getPrintSetup().setLandscape(false); + else + sheet.getPrintSetup().setLandscape(true); + //get data sheet name + sheetRef = sheet.getPackagePart().getPartName().getName(); + wb.write(os); + os.flush(); + //wb = null; + os.close(); + + } else { + os = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + FileInputStream readTemplate = new FileInputStream(org.onap.portalsdk.analytics.system.AppUtils.getExcelTemplatePath()+rr.getTemplateFile()); + wb=new XSSFWorkbook(readTemplate); + if (rr != null) + styles = loadXSSFStyles(rr, wb, styles); + sheet = wb.getSheetAt(0); + if(!Globals.printExcelInLandscapeMode()) + sheet.getPrintSetup().setLandscape(false); + else + sheet.getPrintSetup().setLandscape(true); + //sheet = wb.getSheet(getSheetName()); + sheetRef = sheet.getPackagePart().getPartName().getName(); + wb.write(os); + os.flush(); + readTemplate.close(); + //wb = null; + os.close(); + } + + //Step 2. Generate XML file. + File tmp = File.createTempFile("sheet", ".xml"); + FileOutputStream fileOutTemp = new FileOutputStream(tmp); + Writer fw = new OutputStreamWriter(fileOutTemp, XML_ENCODING); + + //String sql_whole = (String) request.getAttribute(AppConstants.RI_REPORT_SQL_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(); + } + + SpreadsheetWriter sw = new SpreadsheetWriter(fw); + + sw.beginSheet(); + + if((rd.getDataRowCount() >= rr.getReportDataSize()) && !rr.getReportType().equals(AppConstants.RT_HIVE)) { + sql_whole=""; + } + + generate(wb, sw, styles, rd, sql_whole, rr, request, sheet); + + sw.endSheet(); + + fw.flush(); + fw.close(); + fileOutTemp.flush(); + fileOutTemp.close(); + + + //Step 3. Substitute the template entry with the generated data + + FileOutputStream outF = new FileOutputStream(AppUtils.getTempFolderPath()+ filename+"."+ nvls(extension, "xlsx")); + + if(nvl(rr.getTemplateFile()).length()>0) { + templateFile = new File(AppUtils.getTempFolderPath()+ filename+"T."+ nvls(extension, "xlsx")); + } else + templateFile = new File(AppUtils.getTempFolderPath()+"template"+formattedDate+user_id+".xlsx"); + + substitute(templateFile, tmp, sheetRef.substring(1), outF); + outF.flush(); + outF.close(); + + } + //get servlet output stream + + + response.reset(); + sos = response.getOutputStream(); + String mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + if(extension.equals("xlsm")) + mime_type = "application/vnd.ms-excel.sheet.macroEnabled.12"; + response.setContentType(mime_type); + + response.setHeader("Content-disposition", "attachment;filename="+filename+"."+ nvls(extension, "xlsx")); + + buf = new BufferedInputStream(new FileInputStream(AppUtils.getTempFolderPath()+filename + "."+ nvls(extension, "xlsx"))); + int readBytes = 0; + + //read from the file; write to the ServletOutputStream + while ((readBytes = buf.read()) != -1) + sos.write(readBytes); + + buf.close(); + sos.flush(); + sos.close(); + logger.debug(EELFLoggerDelegate.debugLogger, ("ENDING..DOWNLOADING XLSX...")); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####")); + logger.debug(EELFLoggerDelegate.debugLogger, ("Used Memory:" + + (runtime.totalMemory() - 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)); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### END #####")); + } + + /** + * + * @param zipfile the template file + * @param tmpfile the XML file with the sheet data + * @param entry the name of the sheet entry to substitute, e.g. xl/worksheets/sheet1.xml + * @param out the stream to write the result to + */ + private static void substitute(File zipfile, File tmpfile, String entry, OutputStream out) throws IOException { + ZipFile zip = new ZipFile(zipfile); + + ZipOutputStream zos = new ZipOutputStream(out); + + @SuppressWarnings("unchecked") + Enumeration en = (Enumeration) zip.entries(); + while (en.hasMoreElements()) { + ZipEntry ze = en.nextElement(); + if(!ze.getName().equals(entry)){ + zos.putNextEntry(new ZipEntry(ze.getName())); + InputStream is = zip.getInputStream(ze); + copyStream(is, zos); + is.close(); + } + } + zos.putNextEntry(new ZipEntry(entry)); + InputStream is = new FileInputStream(tmpfile); + copyStream(is, zos); + zos.flush(); + zos.close(); + is.close(); + zip.close(); + } + + private static void copyStream(InputStream in, OutputStream out) throws IOException { + byte[] chunk = new byte[1024]; + int count; + while ((count = in.read(chunk)) >=0 ) { + out.write(chunk,0,count); + } + } + + + 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); + ServletOutputStream sos = null; + BufferedInputStream buf = null; + 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(); + ResultSet rs = null; + //OracleConnection conn = null; + //OracleStatement st = null; + //Connection conO = null; + //Statement stO = null; + Connection conn = null; + Statement st = 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); + } + 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 = 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 { + conn = ConnectionUtils.getConnection(rr.getDbInfo()); + st = conn.createStatement(); + //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("*****************************************"); + rs = st.executeQuery(sql_whole); + //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); + } 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(!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(); + + 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 + "\","); + } + + DataRow dr = rd.reportDataRows.getNext(); + + for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + if (firstPass) + rhc.resetNext(); + 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(); + } + } + } + + //csvOut.flush(); + } else { + csvOut.print("\"No Data Found \""); + } + } + 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(true && !raw) { + try { + + //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); + ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(AppUtils.getTempFolderPath()+""+zipFName)); + FileInputStream fis = new FileInputStream(fileName); + + //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(); + + // Finish zip process + zos.close(); + + } catch(Exception e) { + e.printStackTrace(); + } + } + + response.reset(); + java.io.File file = null; + + if(true && !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"); + } + + + FileInputStream fileIn = null; + int c; + try { + sos = response.getOutputStream(); + fileIn = new FileInputStream(file); + 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); + } + + } catch (IOException ex) { + ex.printStackTrace(); + } + catch(Exception e) { + e.printStackTrace(); + } finally { + try { + if (sos != null) + sos.close(); + if (buf != null) + buf.close(); + } catch (Exception e1) { + e1.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)); + 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 + + public String saveXMLFile(HttpServletRequest request, String reportName, String reportXML) { + try { + String xmlFName = AppUtils.generateUniqueFileName(request, reportName, AppConstants.FT_XML); + + PrintWriter xmlOut = new PrintWriter(new BufferedWriter(new FileWriter(new File( + AppUtils.getTempFolderPath() + xmlFName)))); + xmlOut.println(reportXML); + xmlOut.close(); + + //return AppUtils.getTempFolderURL() + // + java.net.URLEncoder.encode(java.net.URLDecoder.decode(xmlFName)); + return java.net.URLEncoder.encode(java.net.URLDecoder.decode(xmlFName)); + + } catch (Exception e) { + (new ErrorHandler()).processError(request, + "Exception saving XML source to file system: " + e.getMessage()); + return null; + } + } // saveXMLFile + + public ReportRuntime loadReportRuntime(HttpServletRequest request, String reportID) + throws RaptorException { + return loadReportRuntime(request, reportID, true); + } // loadReportRuntime + + public ReportRuntime loadReportRuntime(HttpServletRequest request, String reportID, + boolean prepareForExecution) throws RaptorException { + return loadReportRuntime(request, reportID, true, 2); // where 2 is adding to session + } + public ReportRuntime loadReportRuntime(HttpServletRequest request, String reportID, + boolean prepareForExecution, int requestFlag) throws RaptorException { + boolean refresh = nvl(request.getParameter(AppConstants.RI_REFRESH)).toUpperCase().startsWith("Y"); + boolean rDisplayContent = AppUtils.getRequestFlag(request, + AppConstants.RI_DISPLAY_CONTENT) + || AppUtils.getRequestFlag(request, "noFormFields"); + + ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + boolean inSchedule = AppUtils.getRequestFlag(request, AppConstants.SCHEDULE_ACTION); + if (rr != null ) { + if(requestFlag == 7) { // DASH + String reportXML = ReportLoader.loadCustomReportXML(reportID); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report [" + reportID + "]: XML loaded")); + rr = ReportRuntime.unmarshal(reportXML, reportID, request); + rr.setParamValues(request, false,refresh); + rr.setDisplayFlags(true, true); // show content even at the first time + return rr; + } else { + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Load Report Runtime "+ reportID + " " +rr.getReportID() + " " + request.getParameter("refresh") )); + if (reportID.equals(rr.getReportID()) && (request.getParameter("refresh")==null || !request.getParameter("refresh").equals("Y"))) { + // The report runtime is already in the session + if (prepareForExecution) { + boolean resetParams = AppUtils.getRequestFlag(request, + AppConstants.RI_RESET_PARAMS); + rr.setParamValues(request, resetParams,refresh); + + if (resetParams) + rr.resetVisualSettings(); + rr.setDisplayFlags(nvl(request.getParameter(AppConstants.RI_SOURCE_PAGE)) + .length() == 0, rDisplayContent || rr.isDisplayOptionHideForm()); + } // if + + return rr; + } // if + } + } + + /* + * Cannot convert the definition => XML file not saved for preview also, + * commented code not maintained up to date ReportDefinition rdef = + * (ReportDefinition) + * request.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION); + * if(rdef!=null) if(reportID.equals(rdef.getReportID())) { // The + * report definition is in the session => create report runtime from it + * rr = new ReportRuntime(rdef, request); if(prepareForExecution) { + * request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, + * rr); + * rr.setDisplayFlags(request.getParameter(AppConstants.RI_SOURCE_PAGE)==null); } // + * if return rr; } // if + */ + + // Report is NOT in the session => load from the database + String reportXML = ReportLoader.loadCustomReportXML(reportID); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report [" + reportID + "]: XML loaded")); + + rr = ReportRuntime.unmarshal(reportXML, reportID, request); + if (prepareForExecution) { + String userID ; + int flag = 0; + if(request.getAttribute("schedule_email_userId") != null) { + userID = (String)request.getAttribute("schedule_email_userId"); + flag = 1; + } + else + userID = AppUtils.getUserID(request); + // If it is dashboard type then report can be viewed without specific privilege to report + String dashboardId = AppUtils.getRequestValue(request, AppConstants.RI_DASHBOARD_ID); + //System.out.println("USSSSSSSSSSSSERID " + userID); + //System.out.println("PDF " + AppUtils.getRequestNvlValue(request, "pdfAttachmentKey") ); + if(!rr.isDashboardType() && !(isReportAddedAsDashboard(request, dashboardId, rr.getReportID()))) { + if ( AppUtils.getRequestNvlValue(request, "pdfAttachmentKey").length()<=0 ) + if(flag == 1 )rr.checkUserReadAccess(request, userID); + else rr.checkUserReadAccess(request); + } + // TODO ON Demand + //rr.setXmlFileName(saveXMLFile(request, rr.getReportName(), reportXML)); + if (rDisplayContent) { + //System.out.println("In rDisplayContent "); + rr.setParamValues(request, false,true); + //if (requestFlag==2) + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); + } + if(inSchedule) { + //System.out.println("In inSchedule "); + rr.setParamValues(request, false,false); + } + if( requestFlag == 7 ) { // DASH + rr.setDisplayFlags(true, true); + } else { + rr.setDisplayFlags(request.getParameter(AppConstants.RI_SOURCE_PAGE) == null, + rDisplayContent || rr.isDisplayOptionHideForm()); + } +// System.out.println("Report ID B4 Id in reportHandler " +// + ( request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null?((ReportRuntime)request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID():"Not in session")); +// System.out.println("requestFlag " + requestFlag); + if(requestFlag==2 && !rDisplayContent) { + //System.out.println("In Request Flag "); + request.getSession().setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); + rr.setParamValues(request, false, false); + } + else if(requestFlag==1) { + rr.setParamValues(request, false,refresh); + request.setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); + + } +// System.out.println("Report ID B4 Id in reportHandler " +// + ( request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null?((ReportRuntime)request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).getReportID():"Not in session")); + //request.setAttribute(AppConstants.SI_REPORT_RUNTIME, rr); + } // if + + return rr; + } // loadReportRuntime + + private boolean isReportAddedAsDashboard(HttpServletRequest request, String dashboardId, String reportId)throws RaptorException { + if(nvl(dashboardId).length() <= 0) + return false; + String reportXML = ReportLoader.loadCustomReportXML(dashboardId); + ReportDefinition rdef = createReportDefinition(request, dashboardId, reportXML); + List l = rdef.getDashBoardReports().getReportsList(); + for (Iterator iterator = l.iterator(); iterator.hasNext();) { + Reports reports = (Reports) iterator.next(); + if(reports.getReportId().equals(reportId)) return true; + + } + return false; + } + + public ReportDefinition createReportDefinition(HttpServletRequest request, + String reportID, String reportXML) throws RaptorException { + ReportDefinition rdef = ReportDefinition.unmarshal(reportXML, reportID, request); + rdef.generateWizardSequence(request); + return rdef; + } // createReportDefinition + + public ReportDefinition loadReportDefinition(HttpServletRequest request, String reportID) + throws RaptorException { + //System.out.println("********* ReportID " + reportID); + boolean isReportIDBlank = (reportID.length() == 0 || reportID.equals("-1")); + String actionKey = nvl(request.getParameter(AppConstants.RI_ACTION), ""); + String wizardActionKey = nvl(request.getParameter(AppConstants.RI_WIZARD_ACTION), ""); + ReportDefinition rdef = (ReportDefinition) request.getSession().getAttribute( + AppConstants.SI_REPORT_DEFINITION); + if(nvl(actionKey).equals("report.edit")) + rdef = null; + //ReportDefinition rdef = null; + if (rdef != null) + if (isReportIDBlank || reportID.equals(rdef.getReportID())) { + // The report definition is already in the session + return rdef; + } + + ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( + AppConstants.SI_REPORT_RUNTIME); + if (rr != null) + if (isReportIDBlank || reportID.equals(rr.getReportID())) { + // The report runtime is in the session => create report + // definition from it + rdef = new ReportDefinition(rr, request); + String userID = AppUtils.getUserID(request); + rdef.generateWizardSequence(request); + // rdef.checkUserWriteAccess(userID); + + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + return rdef; + } // if + + // Report is NOT in the session => load from the database + if (isReportIDBlank) + rdef = ReportDefinition.createBlank(request); + else { + String reportXML = ReportLoader.loadCustomReportXML(reportID); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report [" + reportID + "]: XML loaded")); + rdef = createReportDefinition(request, reportID, reportXML); + } // else + + request.getSession().setAttribute(AppConstants.SI_REPORT_DEFINITION, rdef); + return rdef; + } // loadReportDefinition + + public void setSheetName( String sheet_name ) { + SHEET_NAME = sheet_name; + } + + public String getSheetName() { + return SHEET_NAME; + } + + /** + * Writes spreadsheet data in a Writer. + * (YK: in future it may evolve in a full-featured API for streaming data in Excel) + */ + public static class SpreadsheetWriter { + private final Writer _out; + private int _rownum; + + public SpreadsheetWriter(Writer out){ + _out = out; + } + + public void beginSheet() throws IOException { + _out.write("" + + "" ); + _out.write("\n"); + } + + public void endSheet() throws IOException { + _out.write(""); + _out.write(""); + } + + /** + * Insert a new row + * + * @param rownum 0-based row number + */ + public void insertRow(int rownum) throws IOException { + _out.write("\n"); + this._rownum = rownum; + } + + /** + * Insert row end marker + */ + public void endRow() throws IOException { + _out.write("\n"); + } + + public void createCell(int columnIndex, String value, int styleIndex) throws IOException { + String ref = new CellReference(_rownum, columnIndex).formatAsString(); + _out.write(""); + _out.write(""+value+""); + _out.write(""); + } + + public void createCell(int columnIndex, String value) throws IOException { + createCell(columnIndex, value, -1); + } + + public void createCell(int columnIndex, double value, int styleIndex) throws IOException { + String ref = new CellReference(_rownum, columnIndex).formatAsString(); + _out.write(""); + _out.write(""+value+""); + _out.write(""); + } + + public void createCell(int columnIndex, double value) throws IOException { + createCell(columnIndex, value, -1); + } + + public void createCell(int columnIndex, Calendar value, int styleIndex) throws IOException { + createCell(columnIndex, DateUtil.getExcelDate(value, false), styleIndex); + } + } + + public int getColumnCountForDownloadFile(ReportRuntime rr, ReportData rd) { + int columnCount = 0; + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) { + ColumnHeaderRow chr = rd.reportColumnHeaderRows.getNext(); + for(chr.resetNext(); chr.hasNext(); ) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + columnCount++; + } + } + } + if(rr.getReportType().equals(AppConstants.RT_CROSSTAB)) { + for (rd.reportRowHeaderCols.resetNext(); rd.reportRowHeaderCols.hasNext();) { + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + if(rhc.isVisible()) { + columnCount++; + } + } + } + return columnCount; + } + + + private Map loadXSSFStyles(ReportRuntime rr, XSSFWorkbook wb, Map loadedStyles) { + XSSFCellStyle styleDefault = wb.createCellStyle(); + //System.out.println("Load Styles"); + // Style default will be normal with no background + XSSFFont fontDefault = wb.createFont(); + + XSSFDataFormat xssffmt = wb.createDataFormat(); + // The default will be plain . + fontDefault.setColor((short) HSSFFont.COLOR_NORMAL); + fontDefault.setFontHeight((short) (font_size / 0.05)); + fontDefault.setFontName("Tahoma"); + + styleDefault.setAlignment(XSSFCellStyle.ALIGN_CENTER); + styleDefault.setBorderBottom(XSSFCellStyle.BORDER_THIN); + styleDefault.setBorderTop(XSSFCellStyle.BORDER_THIN); + styleDefault.setBorderLeft(XSSFCellStyle.BORDER_THIN); + styleDefault.setBorderRight(XSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDefault.setFillPattern(XSSFCellStyle.NO_FILL); + styleDefault.setFont(fontDefault); + ArrayList semColumnList = new ArrayList(); + List dsList = rr.getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType element = (DataSourceType) iter.next(); + List dcList = element.getDataColumnList().getDataColumn(); + for (Iterator iterator = dcList.iterator(); iterator.hasNext();) { + DataColumnType element1 = (DataColumnType) iterator.next(); + semColumnList.add(element1.getSemaphoreId()); + + } + } + SemaphoreList semList = rr.getSemaphoreList(); + Map hashMapStyles = new HashMap();; + Map hashMapFonts = new HashMap(); + hashMapFonts.put("default", fontDefault); + hashMapStyles.put("default", styleDefault); + XSSFCellStyle styleLeftDefault = wb.createCellStyle(); + styleLeftDefault.setAlignment(XSSFCellStyle.ALIGN_LEFT); + styleLeftDefault.setBorderBottom(XSSFCellStyle.BORDER_THIN); + styleLeftDefault.setBorderTop(XSSFCellStyle.BORDER_THIN); + styleLeftDefault.setBorderLeft(XSSFCellStyle.BORDER_THIN); + styleLeftDefault.setBorderRight(XSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleLeftDefault.setFillPattern(XSSFCellStyle.NO_FILL); + styleLeftDefault.setFont(fontDefault); + hashMapStyles.put("defaultLeft", styleLeftDefault); + + + XSSFCellStyle styleDate = wb.createCellStyle(); + styleDate.setAlignment(XSSFCellStyle.ALIGN_RIGHT); + styleDate.setDataFormat(xssffmt.getFormat("d-mmm-yy")); + styleDate.setAlignment(XSSFCellStyle.ALIGN_CENTER); + styleDate.setBorderBottom(XSSFCellStyle.BORDER_THIN); + styleDate.setBorderTop(XSSFCellStyle.BORDER_THIN); + styleDate.setBorderLeft(XSSFCellStyle.BORDER_THIN); + styleDate.setBorderRight(XSSFCellStyle.BORDER_THIN); + // styleDefault.setFillForegroundColor(HSSFColor.YELLOW.index); + styleDate.setFillPattern(XSSFCellStyle.NO_FILL); + styleDate.setFont(fontDefault); + hashMapStyles.put("date", styleDate); + + XSSFCellStyle rowHeaderStyle = wb.createCellStyle(); + XSSFFont headerFont = wb.createFont(); + headerFont.setBold(true); + rowHeaderStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); + rowHeaderStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); + rowHeaderStyle.setFont(headerFont); + rowHeaderStyle.setBorderTop(XSSFCellStyle.BORDER_THIN); + rowHeaderStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); + rowHeaderStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); + rowHeaderStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); + hashMapStyles.put("header", rowHeaderStyle); + + + XSSFCellStyle boldStyle = wb.createCellStyle(); + //headerFont = wb.createFont(); + //headerFont.setBold(true); + boldStyle.setFont(headerFont); + boldStyle.setBorderTop(XSSFCellStyle.BORDER_THIN); + boldStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN); + boldStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN); + boldStyle.setBorderRight(XSSFCellStyle.BORDER_THIN); + boldStyle.setAlignment(HorizontalAlignment.CENTER); + hashMapStyles.put("title", boldStyle); + + XSSFCellStyle cellStyle = null; + if (semList == null || semList.getSemaphore() == null) { + hashMapStyles.put("default", styleDefault); + } /*else { + for (Iterator iter = semList.getSemaphore().iterator(); iter.hasNext();) { + SemaphoreType sem = (SemaphoreType) iter.next(); + if(!semColumnList.contains(sem.getSemaphoreId())) continue; + //System.out.println("SemphoreId ----> " + sem.getSemaphoreId()); + FormatList fList = sem.getFormatList(); + List formatList = fList.getFormat(); + for (Iterator fIter = formatList.iterator(); fIter.hasNext();) { + FormatType fmt = (FormatType) fIter.next(); + if(fmt!=null){ + //if (fmt.getLessThanValue().length() > 0) { + cellStyle = wb.createCellStyle(); + XSSFFont cellFont = wb.createFont(); + //System.out.println("Format Id " + fmt.getFormatId()); + if (nvl(fmt.getBgColor()).length() > 0) { +// System.out.println("Load Styles " + +// fmt.getFormatId() +// + " " +fmt.getBgColor() + " " + +// ExcelColorDef.getExcelColor(fmt.getBgColor())); + cellStyle.setFillForegroundColor(ExcelColorDef.getExcelColor(fmt + .getBgColor())); + cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); + } + if (nvl(fmt.getFontColor()).length() > 0) { + cellFont.setColor(ExcelColorDef.getExcelColor(fmt.getFontColor())); + } else + cellFont.setColor((short) HSSFFont.COLOR_NORMAL); + if (fmt.isBold()) + cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + if (fmt.isItalic()) + cellFont.setItalic(true); + if (fmt.isUnderline()) + cellFont.setUnderline(HSSFFont.U_SINGLE); + if(nvl(fmt.getFontFace()).length()>0) + cellFont.setFontName(fmt.getFontFace()); + else + cellFont.setFontName("Tahoma"); + //cellFont.setFontHeight((short) (10 / 0.05)); + + if(nvl(fmt.getFontSize()).length()>0) { + try { + cellFont.setFontHeight((short) (Integer.parseInt(fmt.getFontSize()) / 0.05)); + } catch(NumberFormatException e){ + cellFont.setFontHeight((short) (font_size / 0.05)); + } + } + else + cellFont.setFontHeight((short) (font_size / 0.05)); + cellStyle.setFont(cellFont); + cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); + cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); + cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); + hashMapStyles.put(fmt.getFormatId(), cellStyle); + } else { + //hashMapStyles.put(fmt.getFormatId(), styleDefault); + hashMapStyles.put("default", styleDefault); + } + } + + } + }*/ + loadedStyles.putAll(hashMapStyles); + return loadedStyles; + } + + private void generate(XSSFWorkbook wb, SpreadsheetWriter sw, Map styles, ReportData rd, String sql_whole, ReportRuntime rr, HttpServletRequest request, XSSFSheet sheet) throws Exception { + HtmlStripper strip = new HtmlStripper(); + XSSFCellStyle styleCell = null; + XSSFCellStyle styleRowCell = null; + XSSFCellStyle styleDefaultCell = null; + + styleDefaultCell = (XSSFCellStyle) styles.get("default"); + + + // to check performance + int mb = 1024*1024; + Runtime runtime = Runtime.getRuntime(); + + int rowNum = 0; + /*short s1 = 0, s2 = (short) (col-1); + rowNum += 1; + sw.insertRow(rowNum); + int styleIndex = styles.get("header").getIndex(); + sw.createCell(rowNum, reportTitle, styleIndex); + + //header.setCenter(HSSFHeader.font("Tahoma", "")+ HSSFHeader.fontSize((short) 9)+reportTitle+"\n"+((Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0)?reportDescr:"")); + + // Report Description + if (Globals.getShowDescrAtRuntime() && nvl(reportDescr).length() > 0) { + sw.createCell(rowNum, reportDescr, styleIndex); + } + rowNum += 2; + sw.insertRow(rowNum);*/ + int cellNum = 0; + + + ColumnHeaderRow chr = null; + java.util.HashMap dataTypeMap = new java.util.HashMap(); + boolean firstPass = true; + int columnRows = rr.getVisibleColumnCount() ; + + 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 header = (String) session.getAttribute("TITLE_"+index); + String subtitle = (String) session.getAttribute("SUBTITLE_"+index); + if(nvl(header).length()>0) { + header = Utils.replaceInString(header, "
", " "); + header = Utils.replaceInString(header, "
", " "); + header = Utils.replaceInString(header, "
", " "); + header = strip.stripHtml(nvl(header).trim()); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = Utils.replaceInString(subtitle, "
", " "); + subtitle = strip.stripHtml(nvl(subtitle).trim()); + //XSSFRow row = sheet.createRow(rowNum); + sw.insertRow(rowNum); + cellNum = 0; + //XSSFCell cell = row.createCell(cellNum); + sw.createCell(cellNum, Utils.excelEncode(header)); + for (int i = 1; i <= columnRows; i++) { + sw.createCell(cellNum+i, ""); + } + sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+1, cellNum+1, columnRows)); + sw.endRow(); +/* cell.setCellValue(Utils.excelEncode(header)); + cell.setCellStyle(styles.get("title")); +*/ //sw.createCell(cellNum,Utils.excelEncode(header), styles.get("title").getIndex()); +// sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+1, cellNum+1, columnRows)); + rowNum += 1; +// row = sheet.createRow(rowNum); + sw.insertRow(rowNum); + cellNum = 0; +/* cell = row.createCell(cellNum); + cell.setCellValue(Utils.excelEncode(subtitle)); + cell.setCellStyle(styles.get("title")); +*/ //sw.createCell(cellNum,Utils.excelEncode(header), styles.get("title").getIndex()); + + sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+1, cellNum+1, columnRows)); + sw.createCell(cellNum, Utils.excelEncode(subtitle)); + sw.endRow(); + //sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+1, cellNum+1, columnRows)); +/* sw.insertRow(rowNum); + cellNum = 0; + sw.createCell(cellNum,Utils.excelEncode(subtitle), styles.get("title").getIndex()); + sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+1, cellNum+1, columnRows)); + +*/ rowNum += 1; + } + cellNum = 0; + String title = ""; + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) { + sw.insertRow(rowNum); + cellNum = -1; + /*if(rd.reportTotalRowHeaderCols!=null) { + cellNum +=1; + sw.createCell(cellNum, "No.", styles.get("header").getIndex()); + + //row.getCell((short) cellNum).setCellStyle(styleDataHeader); + }*/ + chr = rd.reportColumnHeaderRows.getNext(); + + if(nvl(sql_whole).length() <= 0 || (!rr.getReportType().equals(AppConstants.RT_LINEAR))) { + + for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { + cellNum += 1; + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + title = rhc.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + + sw.createCell(cellNum,Utils.excelEncode(title), styles.get("header").getIndex()); + //sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum+columnRows, (short) (cellNum))); + //System.out.println(" **************** Row Header Title " + rhc.getColumnTitle() + " " + cellNum + " " ); + //System.out.println(cellNum + " " + cellWidth.size()); + } // for + + } + + firstPass = false; + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + cellNum += 1; + int colSpan = ch.getColSpan()-1; + title = ch.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + sw.createCell(cellNum, Utils.excelEncode(title), styles.get("header").getIndex()); + if(colSpan > 0) { + for ( int k = 1; k <= colSpan; k++ ) { + sw.createCell(cellNum+k, "", styles.get("header").getIndex()); + } + //sheet.addMergedRegion(new Region(rowNum, (short) cellNum, rowNum, (short) (cellNum+colSpan))); + } + if(colSpan > 0) + cellNum += colSpan; + } + } // for + rowNum += 1; + } // for + + sw.endRow(); + //All the possible combinations of date format + CreationHelper createHelper = wb.getCreationHelper(); + HashMap dateFormatMap = new HashMap(); + + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat YYYYMMDDDASHFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat DDMONYYHHMMFormat = new SimpleDateFormat("dd-MMM-yy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat MMMMMDDYYYYHHMMSS = new SimpleDateFormat("MMMMM-dd-yyyy HH:mm:ss"); + + short dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yyyy"); + dateFormatMap.put("MMDDYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("yyyy/MM/dd"); + dateFormatMap.put("YYYYMMDD", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MMM yyyy"); + dateFormatMap.put("MONYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/yyyy"); + dateFormatMap.put("MMYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MMMMM dd, yyyy"); + dateFormatMap.put("MMMMMDDYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("yyyy-MM-dd"); + dateFormatMap.put("YYYYMMDDDASH", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("yyyy-MM-dd HH:mm:ss"); + dateFormatMap.put("timestamp", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("dd-MMM-yyyy"); + dateFormatMap.put("MONTHYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MMMMM, yyyy"); + dateFormatMap.put("MMDDYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yyyy HH:mm:ss"); + dateFormatMap.put("MMDDYYYYHHMM", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yyyy HH:mm"); + dateFormatMap.put("MMDDYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("yyyy/MM/dd HH:mm:ss"); + dateFormatMap.put("YYYYMMDDHHMMSS", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("yyyy/MM/dd HH:mm"); + dateFormatMap.put("YYYYMMDDHHMM", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("dd-MMM-yyyy HH:mm:ss"); + dateFormatMap.put("DDMONYYYYHHMMSS", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("dd-MMM-yyyy HH:mm"); + dateFormatMap.put("DDMONYYYYHHMM", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("dd-MMM-yy HH:mm"); + dateFormatMap.put("DDMONYYHHMM", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("dd-MMM-yyyy"); + dateFormatMap.put("DDMONYYYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yy"); + dateFormatMap.put("MMDDYY", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yy HH:mm"); + dateFormatMap.put("MMDDYYHHMM", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yy HH:mm:ss"); + dateFormatMap.put("MMDDYYHHMMSS", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MM/dd/yyyy HH:mm z"); + dateFormatMap.put("MMDDYYYYHHMMZ", new Short(dateFormat)); + dateFormat = createHelper.createDataFormat().getFormat("MMMMM-dd-yyyy HH:mm:ss"); + dateFormatMap.put("MMMMMDDYYYYHHMMSS", new Short(dateFormat)); + + ResultSet rs = null; + Connection conn = null; + Statement st = null; + ResultSetMetaData rsmd = null; + + + if(nvl(sql_whole).length() >0 && (rr.getReportType().equals(AppConstants.RT_LINEAR) || rr.getReportType().equals(AppConstants.RT_HIVE) )) { + 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(); + DataRow dr = null; + int j = 0; + int rowCount = 0; + while(rs.next()) { + + rowCount++; + + if(rowCount%10000 == 0) { + // to check performance + logger.debug(EELFLoggerDelegate.debugLogger, ("Performance check for "+rowCount+" starting**************")); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####")); + logger.debug(EELFLoggerDelegate.debugLogger, ("Used Memory:" + + (runtime.totalMemory() - 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)); + System.out.println(rowCount+"TH ROW****##### END #####"); + + // + } + sw.insertRow(rowNum); + cellNum = -1; + colHash = new HashMap(); + for (int i = 1; i <= numberOfColumns; i++) { + colHash.put(rsmd.getColumnLabel(i).toUpperCase(), strip.stripHtml(rs.getString(i))); + } + rd.reportDataRows.resetNext(); + dr = rd.reportDataRows.getNext(); + styleRowCell = null; + if (dr.isRowFormat() && styles != null) + styleRowCell = (XSSFCellStyle) styles.get(nvl(/*dr.getFormatId(),*/"","default")); + j = 0; + //if(rowCount%1000 == 0) wb.write(sos); + + /*if(rd.reportTotalRowHeaderCols!=null) { + //cellNum = -1; + //for (rd.reportRowHeaderCols.resetNext(); rd.reportRowHeaderCols.hasNext();) { + cellNum += 1; + //RowHeaderCol rhc = rd.reportRowHeaderCols.getRowHeaderCol(0); + //if (firstPass) + // rhc.resetNext(); + //RowHeader rh = rhc.getRowHeader(rowCount-1); + sw.createCell(cellNum, rowCount, styleDefaultCell.getIndex()); + + //} // for + }*/ + firstPass = false; + //cellNum = -1; + for (dr.resetNext(); dr.hasNext();j++) { + styleCell = null; + //for (chr.resetNext(); chr.hasNext();) { + //ColumnHeader ch = chr.getNext(); + DataValue dv = dr.getNext(); + HtmlFormatter htmlFormat = dv.getCellFormatter(); + + if (htmlFormat != null && dv.getFormatId() != null && styles != null) + styleCell = (XSSFCellStyle) styles.get(nvl(/*dv.getFormatId()*/"","default")); + String value = nvl((String)colHash.get(dv.getColId().toUpperCase())); + + boolean bold = false; + + if(dv.isVisible()) { + cellNum += 1; + //System.out.println("Stripping HTML 1"); + //cell.setCellValue(strip.stripHtml(dv.getDisplayValue())); + String dataType = (String) (dataTypeMap.get(dv.getColId())); + //System.out.println("Value " + value + " " + (( dataType !=null && dataType.equals("DATE")) || (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date"))) ); + if (dataType!=null && dataType.equals("NUMBER")){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(dv.getDisplayValue()); + //cellCurrencyNumber = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + sw.createCell(cellNum,zInt,styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (dv.getDisplayValue().startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = dv.getDisplayValue().trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 1 is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDoubleDollar, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(value); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDouble, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDouble, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDouble, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value),styleRowCell.getIndex() ); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(value), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + + } + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (dv.getDisplayValue().startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT is "+tempInt); + Long tempIntDollar = 0L; + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleRowCell!=null) + sw.createCell(cellNum, tempIntDollar, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempIntDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempIntDollar, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, tempInt, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempInt, styleCell.getIndex()); + else + sw.createCell(cellNum, tempInt, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleRowCell!=null) + sw.createCell(cellNum, temp, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, temp, styleCell.getIndex()); + else + sw.createCell(cellNum, temp, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempStr), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + } + } + } + } + + } else if ( ( dataType !=null && dataType.equals("DATE")) || (dv.getDisplayName()!=null && dv.getDisplayName().toLowerCase().endsWith("date")) || + (dv.getColId()!=null && dv.getColId().toLowerCase().endsWith("date")) || + (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date")) ) { + XSSFCellStyle cellStyle = null; + if(styleRowCell!=null) { + cellStyle = styleRowCell; + } else if (styleCell!=null) { + cellStyle = styleCell; + } else { + cellStyle = styles.get(nvl(/*dv.getFormatId()*/"","date")); + } + + + Date date = null; + int flag = 0; + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMMSS")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMM")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYY")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYYYHHMMSS")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYYYHHMM")); + flag = 1; + } + if(date==null) + date = MMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYYY")); + flag = 1; + } + if(date==null) + date = YYYYMMDDFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("YYYYMMDD")); + flag = 1; + } + if(date==null) + date = timestampFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("timestamp")); + flag = 1; + } + if(date==null) + date = MONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MONYYYY")); + flag = 1; + } + if(date==null) + date = MMYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMYYYY")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMMMMDDYYYY")); + flag = 1; + } + if(date==null) + date = MONTHYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MONTHYYYY")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("YYYYMMDDHHMMSS")); + flag = 1; + } + if(date==null) + date = YYYYMMDDDASHFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("YYYYMMDDDASH")); + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("YYYYMMDDHHMM")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("DDMONYYYYHHMMSS")); + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("DDMONYYYYHHMM")); + flag = 1; + } + if(date==null) + date = DDMONYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("DDMONYYHHMM")); + flag = 1; + } + if(date==null) + date = DDMONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("DDMONYYYY")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMMSS")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMM")); + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYY")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMM")); + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYHHMMSS")); + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMZFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMDDYYYYHHMMZ")); + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYHHMMSS.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + cellStyle.setDataFormat(dateFormatMap.get("MMMMMDDYYYYHHMMSS")); + flag = 1; + } + + if(date!=null) { + //System.out.println("ExcelDate " + HSSFDateUtil.getExcelDate(date)); + Calendar cal=Calendar.getInstance(); + cal.setTime(date); + //sw.createCell(cellNum, cal,styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + //if(styleRowCell!=null) + sw.createCell(cellNum, cal, cellStyle.getIndex()); + //else if (styleCell!=null) + //sw.createCell(cellNum, cal, cellStyle.getIndex()); + //else + //sw.createCell(cellNum, cal, cellStyle.getIndex()); + } else { + //cell.getCellStyle().setDataFormat((short)0); + //if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value), cellStyle.getIndex()); + //else if (styleCell!=null) + //sw.createCell(cellNum, Utils.excelEncode(value), cellStyle.getIndex()); + //else + //sw.createCell(cellNum, Utils.excelEncode(value), cellStyle.getIndex()); + + } + //cellDate.setCellValue(date); + //cellDate.setCellValue(value); //cellDate.setCellValue(date); + //cellDate.setCellValue(dv.getDisplayValue()); + + } else if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(dv.getDisplayValue()); + int zInt = 0; + if (value.equals("null")){ + if(styleRowCell!=null) + sw.createCell(cellNum, zInt, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, zInt, styleCell.getIndex()); + else + sw.createCell(cellNum, zInt, styleDefaultCell.getIndex()); + + } else { + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 2IF is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDoubleDollar,styleRowCell.getIndex() ); + else if (styleCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDoubleDollar, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + + + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempDoubleStr = value.trim(); + tempDoubleStr = tempDoubleStr.replaceAll(" ", "").substring(0); + if ((tempDoubleStr.indexOf(","))!= -1){ + tempDoubleStr = tempDoubleStr.replaceAll(",", ""); + } + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(tempDoubleStr); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDouble, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDouble, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDouble, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + } + + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT 2 is "+tempInt); + + Long tempIntDollar = 0L; + + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleRowCell!=null) + sw.createCell(cellNum, tempIntDollar,styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempIntDollar,styleCell.getIndex()); + else + sw.createCell(cellNum, tempIntDollar,styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempInt), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempInt),styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempInt), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleRowCell!=null) + sw.createCell(cellNum, temp, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, temp, styleCell.getIndex()); + else + sw.createCell(cellNum, temp, styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempStr), styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + + } + } + } else { + sw.createCell(cellNum, "", styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + } + } + } + + + } + else { + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("General")); + if(styleRowCell!=null) + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styleCell.getIndex()); + else { + if(nvl(value).startsWith(" ")) + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styles.get(nvl(/*dv.getFormatId(),*/"","defaultLeft")).getIndex()); + else + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + + } + + } + + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //cell.setCellStyle(styleCurrencyTotal); + } + else { + //cell.setCellStyle(styleTotal); + } + } else { + //cell.setCellStyle(styleDefaultTotal); + } + bold = true; + } + //System.out.println("2IF "+ (dr.isRowFormat()) + " " + (dv.isCellFormat()) + " " + (styles!=null)); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default"))); + continue; + } + //System.out.println("3IF "+ (htmlFormat != null) + " " + (dv.getFormatId() != null) + " " + (bold == false) + " "+ (styles != null)); + if (htmlFormat != null && dv.getFormatId() != null && bold == false + && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(/*dv.getFormatId()*/"","default"))); + } //else if (bold == false) + //cell.setCellStyle(styleDefault); + } // dv.isVisible + + } + rowNum += 1; + sw.endRow(); + + } + if(rd.reportTotalRowHeaderCols!=null) { + rowCount++; + sw.insertRow(rowNum); + cellNum = -1; + rd.reportTotalRowHeaderCols.resetNext(); + cellNum += 1; + RowHeaderCol rhc = rd.reportTotalRowHeaderCols.getNext(); + RowHeader rh = rhc.getRowHeader(0); + if (dr.isRowFormat() && styles != null) + styleRowCell = (XSSFCellStyle) styles.get(nvl(/*dr.getFormatId(),*/"","default")); + + if(styleRowCell!=null) + sw.createCell(cellNum, strip.stripHtml(rh.getRowTitle()), styleRowCell.getIndex()); + else + sw.createCell(cellNum, strip.stripHtml(rh.getRowTitle()), styleDefaultCell.getIndex()); + rd.reportDataTotalRow.resetNext(); + //rd.reportDataTotalRow.getNext(); + DataRow drTotal = rd.reportDataTotalRow.getNext(); + if(drTotal!=null) { + drTotal.resetNext(); drTotal.getNext(); + for (; drTotal.hasNext();) { + DataValue dv = drTotal.getNext(); + if(dv.isVisible()) { + cellNum += 1; + styleCell = null; + String value = dv.getDisplayValue(); + sw.createCell(cellNum,value,styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + } + } + rowNum += 1; + sw.endRow(); + } + + + + + +/* // To Display Total Values for Linear report + if(rd.reportDataTotalRow!=null) { + row = sheet.createRow(rowNum); + cellNum = -1; + rd.reportTotalRowHeaderCols.resetNext(); + //for (rd.reportTotalRowHeaderCols.resetNext(); rd.reportTotalRowHeaderCols.hasNext();) { + cellNum += 1; + RowHeaderCol rhc = rd.reportTotalRowHeaderCols.getNext(); + RowHeader rh = rhc.getRowHeader(0); + row.createCell((short) cellNum).setCellValue(strip.stripHtml(rh.getRowTitle())); + row.getCell((short) cellNum).setCellStyle(styleDefaultTotal); + //} + + DataRow drTotal = rd.reportDataTotalRow.getNext(); + //cellNum = -1; + for (drTotal.resetNext(); drTotal.hasNext();j++) { + cellNum += 1; + cell = row.createCell((short) cellNum); + DataValue dv = drTotal.getNext(); + String value = dv.getDisplayValue(); + cell.setCellValue(value); + boolean bold = false; + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + cell.setCellStyle(styleCurrencyTotal); + } else { + cell.setCellStyle(styleTotal); + } + } else { + cell.setCellStyle(styleDefaultTotal); + } + bold = 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); + } + } + + String footer = (String) session.getAttribute("FOOTER_"+index); + if(nvl(footer).length()>0) { + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = strip.stripHtml(nvl(footer).trim()); + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + sw.createCell(cellNum, footer.replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + rowNum += 1; + } + + if(Globals.getShowDisclaimer()) { + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + + sw.createCell(cellNum, org.onap.portalsdk.analytics.system.Globals.getFooterFirstLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + sw.createCell(cellNum, org.onap.portalsdk.analytics.system.Globals.getFooterSecondLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + } + + } else { + //start data from rd + + int rowCount = 0; + DataRow dr = null; + for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) { + rowCount++; + + + dr = rd.reportDataRows.getNext(); + sw.insertRow(rowNum); + + cellNum = -1; + + if (rr.getReportType().equals(AppConstants.RT_LINEAR) && rd.reportTotalRowHeaderCols!=null) { + rd.reportRowHeaderCols.resetNext(0); + if(rd.reportTotalRowHeaderCols!=null) { + //cellNum = -1; + //for (rd.reportRowHeaderCols.resetNext(); rd.reportRowHeaderCols.hasNext();) { + //a commented to suppress rownum + //a cellNum += 1; + //RowHeaderCol rhc = rd.reportRowHeaderCols.getRowHeaderCol(0); + //if (firstPass) + // rhc.resetNext(); + //RowHeader rh = rhc.getRowHeader(rowCount-1); + //a sw.createCell(cellNum, rowCount, styleDefaultCell.getIndex()); + //} // for + } + + } + firstPass = false; + //cellNum = -1; + int j = 0; + + for (dr.resetNext(); dr.hasNext();j++) { + DataValue dv = dr.getNext(); + styleCell = null; + boolean bold = false; + String value = nvl(dv.getDisplayValue()); + value = strip.stripHtml(value); + HtmlFormatter htmlFormat = dv.getCellFormatter(); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) + styleCell = (XSSFCellStyle) styles.get(nvl(/*dr.getFormatId(),*/"","default")); + if (htmlFormat != null && dv.getFormatId() != null && styles != null) + styleCell = (XSSFCellStyle) styles.get(nvl(/*dv.getFormatId(),*/"","default")); + + if(dv.isVisible()) { + cellNum += 1; + //cell = row.createCell((short) cellNum); + //System.out.println("Stripping HTML 1"); + //cell.setCellValue(strip.stripHtml(value)); + String dataType = (String) (dataTypeMap.get(dv.getColId())); + //System.out.println(" The Display Value is ********"+value + " " + dv.getDisplayTotal() + " " + dv.getColName()); + + if (dataType!=null && dataType.equals("NUMBER")){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(value); + //cellCurrencyNumber = row.createCell((short) cellNum); + int zInt = 0; + if (value.equals("null")){ + sw.createCell(cellNum,zInt,styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + }else{ + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 1 is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDoubleDollar, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(value); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDouble, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDouble, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDouble, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value),styleRowCell.getIndex() ); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(value), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + + } + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT is "+tempInt); + Long tempIntDollar = 0L; + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleRowCell!=null) + sw.createCell(cellNum, tempIntDollar, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempIntDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempIntDollar, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, tempInt, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempInt, styleCell.getIndex()); + else + sw.createCell(cellNum, tempInt, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleRowCell!=null) + sw.createCell(cellNum, temp, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, temp, styleCell.getIndex()); + else + sw.createCell(cellNum, temp, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempStr), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + + + } + //int temp = Integer.parseInt(value.trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + } + } + } + + }else if ( ( dataType !=null && dataType.equals("DATE")) || (dv.getDisplayName()!=null && dv.getDisplayName().toLowerCase().endsWith("date")) || + (dv.getColId()!=null && dv.getColId().toLowerCase().endsWith("date")) || + (dv.getColName()!=null && dv.getColName().toLowerCase().endsWith("date")) ) { + Date date = null; + int flag = 0; + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = YYYYMMDDFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = timestampFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MONTHYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = YYYYMMDDDASHFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = YYYYMMDDHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = DDMONYYYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = DDMONYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = DDMONYYYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYHHMMFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYHHMMSSFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMDDYYYYHHMMZFormat.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + if(date==null) + date = MMMMMDDYYYYHHMMSS.parse(value, new ParsePosition(0)); + if(date != null && flag == 0) { + flag = 1; + } + + + if(date!=null) { + Calendar cal=Calendar.getInstance(); + cal.setTime(date); + //sw.createCell(cellNum, cal,styles.get(nvl(/*dv.getFormatId()*/"","default")).getIndex()); + if(styleRowCell!=null) + sw.createCell(cellNum, cal, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, cal, styleCell.getIndex()); + else + sw.createCell(cellNum, cal, styles.get(nvl(/*dv.getFormatId()*/"","date")).getIndex()); + + } else { + /*cell.getCellStyle().setDataFormat((short)0);*/ + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(value), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(value), styles.get(nvl(/*dv.getFormatId(),*/"","date")).getIndex()); + + } + //cellDate.setCellValue(date); + //cellDate.setCellValue(value); + + }else if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + //cellNumber = row.createCell((short) cellNum); + //cellNumber.setCellType(HSSFCell.CELL_TYPE_NUMERIC); + //cellNumber.setCellValue(value); + int zInt = 0; + if (value.equals("null")){ + if(styleRowCell!=null) + sw.createCell(cellNum, zInt, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, zInt, styleCell.getIndex()); + else + sw.createCell(cellNum, zInt, styleDefaultCell.getIndex()); + } else { + + if ((value.indexOf("."))!= -1){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempDollar = value.trim(); + tempDollar = tempDollar.replaceAll(" ", "").substring(0); + tempDollar = tempDollar.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempDollar); + //System.out.println("Before copy Value |" + tempDollar); + //tempDollar = String.copyValueOf(tempDollar.toCharArray(), 1, tempDollar.length()-1); + //System.out.println("After copy Value |" + tempDollar); + if ((tempDollar.indexOf(","))!= -1){ + tempDollar = tempDollar.replaceAll(",", ""); + } + //System.out.println("The final string 2IF is "+tempDollar); + double tempDoubleDollar = 0.0; + try { + tempDoubleDollar = Double.parseDouble(tempDollar); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDoubleDollar,styleRowCell.getIndex() ); + else if (styleCell!=null) + sw.createCell(cellNum, tempDoubleDollar, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDoubleDollar, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDollar), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + + + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempDoubleStr = value.trim(); + tempDoubleStr = tempDoubleStr.replaceAll(" ", "").substring(0); + if ((tempDoubleStr.indexOf(","))!= -1){ + tempDoubleStr = tempDoubleStr.replaceAll(",", ""); + } + double tempDouble = 0.0; + try { + tempDouble = Double.parseDouble(tempDoubleStr); + if(styleRowCell!=null) + sw.createCell(cellNum, tempDouble, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempDouble, styleCell.getIndex()); + else + sw.createCell(cellNum, tempDouble, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempDoubleStr), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + } + + }else { + if (!(value.equals(""))){ + if ((value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //if (value.startsWith("$")){ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("($#,##0.00);($#,##0.00)")); + String tempInt = value.trim(); + tempInt = tempInt.replaceAll(" ", "").substring(0); + tempInt = tempInt.replaceAll("\\$", "").substring(0); + //System.out.println("SUBSTRING |" + tempInt); + //System.out.println("Before copy Value |" + tempInt); + //tempInt = String.copyValueOf(tempInt.toCharArray(), 1, tempInt.length()-1); + //System.out.println("After copy Value |" + tempInt); + if ((tempInt.indexOf(","))!= -1){ + tempInt = tempInt.replaceAll(",", ""); + } + //System.out.println("The final string INT 2 is "+tempInt); + + Long tempIntDollar = 0L; + + try { + tempIntDollar = Long.parseLong(tempInt); + if(styleRowCell!=null) + sw.createCell(cellNum, tempIntDollar,styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, tempIntDollar,styleCell.getIndex()); + else + sw.createCell(cellNum, tempIntDollar,styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempInt), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempInt),styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempInt), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + }else{ + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00")); + String tempStr = value.trim(); + if ((tempStr.indexOf(","))!= -1){ + tempStr = tempStr.replaceAll(",", ""); + } + Long temp = 0L; + + try { + temp = Long.parseLong(tempStr); + if(styleRowCell!=null) + sw.createCell(cellNum, temp, styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, temp, styleCell.getIndex()); + else + sw.createCell(cellNum, temp, styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } catch (NumberFormatException ne) { + if(styleRowCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, Utils.excelEncode(tempStr), styleCell.getIndex()); + else + sw.createCell(cellNum, Utils.excelEncode(tempStr), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + } + //int temp = Integer.parseInt(value.trim()); + // cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + } else { + sw.createCell(cellNum, "", styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + } + } + + + } + else { + //styleDefault.setDataFormat(HSSFDataFormat.getBuiltinFormat("General")); + if(styleRowCell!=null) + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styleRowCell.getIndex()); + else if (styleCell!=null) + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styleCell.getIndex()); + else + sw.createCell(cellNum, strip.stripHtml(Utils.excelEncode(value)), styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); + } + + //if (!(value.equals(""))){ + //int temp = Integer.parseInt(value.trim()); + //cell.setCellValue(temp); + //}else{ + // cell.setCellValue(strip.stripHtml(value)); + //} + //HSSFCellStyle styleFormat = null; + //HSSFCellStyle numberStyle = null; + //HSSFFont formatFont = null; + //short fgcolor = 0; + //short fillpattern = 0; + //System.out.println("1IF "+ (dv.isBold()) + " "+ value + " " + dv.getDisplayTotal() + " " + dv.getColName() ); + if (dv.isBold()) { + if((dv.getDisplayTotal()!=null && dv.getDisplayTotal().equals("SUM(")) || (dv.getColName()!=null && dv.getColName().indexOf("999")!=-1)){ + if (value!=null && (value.trim().startsWith("$")) || (value.trim().startsWith("-$") )) { + //cell.setCellStyle(styleCurrencyTotal); + } + else { + //cell.setCellStyle(styleTotal); + } + } else { + //cell.setCellStyle(styleDefaultTotal); + } + bold = true; + } + //System.out.println("2IF "+ (dr.isRowFormat()) + " " + (dv.isCellFormat()) + " " + (styles!=null)); + if ((dr.isRowFormat() && !dv.isCellFormat()) && styles != null) { + //cell.setCellStyle((HSSFCellStyle) styles.get(nvl(dr.getFormatId(),"default"))); + continue; + } + //System.out.println("3IF "+ (htmlFormat != null) + " " + (dv.getFormatId() != null) + " " + (bold == false) + " "+ (styles != null)); + if (htmlFormat != null && dv.getFormatId() != null && bold == false + && styles != null) { + // cell.setCellStyle((HSSFCellStyle) styles.get(nvl(/*dv.getFormatId()*/"","default"))); + } //else if (bold == false) + //cell.setCellStyle(styleDefault); + } // if (dv.isVisible) + } // for + + /*for (int tmp=0; tmp0) { + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = Utils.replaceInString(footer, "
", " "); + footer = strip.stripHtml(nvl(footer).trim()); + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + sw.createCell(cellNum, footer.replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + rowNum += 1; + } + + + if(Globals.getShowDisclaimer()) { + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + + sw.createCell(cellNum, org.onap.portalsdk.analytics.system.Globals.getFooterFirstLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + rowNum += 1; + sw.insertRow(rowNum); + cellNum = 0; + sw.createCell(cellNum, org.onap.portalsdk.analytics.system.Globals.getFooterSecondLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); + sw.endRow(); + } + + + } + // end data from rd + } + + // System.out.println(" Last Row " + wb.getSheetAt(0).getLastRowNum()); + } + + private void paintXSSFExcelParams(XSSFWorkbook wb,int rowNum,int col,ArrayList paramsList, String customizedParamInfo, XSSFSheet sheet, String reportTitle, String reportDescr) throws IOException { + //HSSFSheet sheet = wb.getSheet(getSheetName()); + int cellNum = 0; + XSSFRow row = null; + short s1 = 0, s2 = (short) 1; + HtmlStripper strip = new HtmlStripper(); + // Name Style + XSSFCellStyle styleName = wb.createCellStyle(); + //styleName.setFillBackgroundColor(HSSFColor.GREY_80_PERCENT.index); + styleName.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); + //styleName.setFillPattern(HSSFCellStyle.SPARSE_DOTS); + styleName.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleName.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleName.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleName.setBorderRight(HSSFCellStyle.BORDER_THIN); + styleName.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleName.setDataFormat((short)0); + XSSFFont font = wb.createFont(); + font.setFontHeight((short) (font_size / 0.05)); + font.setFontName("Tahoma"); + font.setColor(HSSFColor.BLACK.index); + font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleName.setFont(font); + //Data Style + + // Create some fonts. + XSSFFont fontDefault = wb.createFont(); + // Initialize the styles & fonts. + // The default will be plain . + fontDefault.setColor((short) HSSFFont.COLOR_NORMAL); + fontDefault.setFontHeight((short) (font_size / 0.05)); + fontDefault.setFontName("Tahoma"); + fontDefault.setItalic(true); + // Style default will be normal with no background + XSSFCellStyle styleValue = wb.createCellStyle(); + styleValue.setDataFormat((short)0); + styleValue.setAlignment(HSSFCellStyle.ALIGN_CENTER); + styleValue.setBorderBottom(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderTop(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderLeft(HSSFCellStyle.BORDER_THIN); + styleValue.setBorderRight(HSSFCellStyle.BORDER_THIN); + // styleValue.setFillForegroundColor(HSSFColor.YELLOW.index); + styleValue.setFillPattern(HSSFCellStyle.NO_FILL); + styleValue.setFont(fontDefault); + XSSFCell cell = null; + XSSFCellStyle styleDescription = wb.createCellStyle(); + styleDescription.setAlignment(HSSFCellStyle.ALIGN_CENTER); +// styleDescription.setBorderBottom(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderTop(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderRight(HSSFCellStyle.BORDER_THIN); +// styleDescription.setBorderLeft(HSSFCellStyle.BORDER_THIN); + XSSFFont fontDescr = wb.createFont(); + fontDescr.setFontHeight((short) (font_header_descr_size / 0.05)); + fontDescr.setFontName("Tahoma"); + fontDescr.setColor(HSSFColor.BLACK.index); + fontDescr.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); + styleDescription.setFont(font); + XSSFCell cellDescr = null; + int paramSeq = 0; + Header header = sheet.getHeader(); + StringBuffer strBuf = new StringBuffer(); + if(!Globals.customizeFormFieldInfo() || customizedParamInfo.length()<=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) { + row = sheet.createRow(++rowNum); + cell = row.createCell((short) 0); + sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, s1, s2)); + cellDescr = row.createCell((short) 0); + cellDescr.setCellValue("Run-time Parameters"); + cellDescr.setCellStyle(styleDescription); + + + strBuf.append(reportTitle+"\n"); + //strBuf.append("Run-time Parameters\n"); + } + row = sheet.createRow(++rowNum); + cellNum = 0; + //System.out.println("RowNum " + rowNum + " " + value.getId() + " " +value.getName()); + cell = row.createCell((short) cellNum); + cell.setCellValue(value.getId()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.getName().replaceAll("~",",")); + cell.setCellStyle(styleValue); + + //strBuf.append(value.getId()+": "+ value.getName()+"\n"); + } + } //for + } else { + strBuf.append(reportTitle+"\n"); + Document document = new Document(); + document.open(); + HTMLWorker worker = new HTMLWorker(document); + StyleSheet style = new StyleSheet(); + style.loadTagStyle("body", "leading", "16,0"); + ArrayList p = HTMLWorker.parseToList(new StringReader(customizedParamInfo), style); + String name = ""; + String token = ""; + String value = ""; + String s = ""; + PdfPTable pdfTable = null; + for (int k = 0; k < p.size(); ++k){ + if(p.get(k) instanceof Paragraph) + s = ((Paragraph)p.get(k)).toString(); + else { /*if ((p.get(k) instanceof PdfPTable))*/ + pdfTable = ((PdfPTable)p.get(k)); + } + //todo: Logic for parsing pdfTable should be added after upgrading to iText 5.0.0 + //s = Utils.replaceInString(s, ",", "|"); + s = s.replaceAll(",", "|"); + s = s.replaceAll("~", ","); + if(s.indexOf(":")!= -1) { + //System.out.println("|"+s+"|"); + row = sheet.createRow(++rowNum); + cell = row.createCell((short) 0); + sheet.addMergedRegion(new CellRangeAddress(rowNum, rowNum, s1, s2)); + cellDescr = row.createCell((short) 0); + cellDescr.setCellValue("Run-time Parameters"); + cellDescr.setCellStyle(styleDescription); + + //strBuf.append("Run-time Parameters\n"); + StringTokenizer st = new StringTokenizer(s.trim(), "|"); + while(st.hasMoreTokens()) { + token = st.nextToken(); + token = token.trim(); + if (!(token.trim().equals("|") || token.trim().equals("]]") || token.trim().equals("]") || token.trim().equals("[") )) { + if(token.endsWith(":")) { + name = token; + name = name.substring(0, name.length()-1); + if(name.startsWith("[")) + name = name.substring(1); + value = st.nextToken(); + if(nvl(value).endsWith("]"))value = nvl(value).substring(0, nvl(value).length()-1); + } /*else if(name != null && name.length() > 0) { + value = st.nextToken(); + if(value.endsWith("]]"))value = value.substring(0, value.length()-1); + }*/ + if(name!=null && name.trim().length()>0) { + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue(name.trim()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.trim()); + cell.setCellStyle(styleValue); + //strBuf.append(name.trim()+": "+ value.trim()+"\n"); + } +/* if(token.endsWith(":") && (value!=null && value.trim().length()<=0) && (name!=null && name.trim().length()>0 && name.endsWith(":"))) { + name = name.substring(0, name.indexOf(":")+1); + //value = token.substring(token.indexOf(":")+1); + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue(name.trim()); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + cell.setCellValue(value.trim()); + cell.setCellStyle(styleValue); + + //strBuf.append(name.trim()+": "+ value.trim()+"\n"); + value = ""; + name = ""; + } +*/ } + int cw = 0; + cw = name.trim().length() + 12; + // if(i!=cellWidth.size()-1) + if(sheet.getColumnWidth((short)0)< (short) name.trim().length()) + sheet.setColumnWidth((short)0, (short) name.trim().length()); + if(sheet.getColumnWidth((short)1)< (short) value.trim().length()) + sheet.setColumnWidth((short)1, (short) value.trim().length()); + name = ""; + value = ""; + + } + + try { + SimpleDateFormat oracleDateFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss"); + Date sysdate = oracleDateFormat.parse(ReportLoader.getSystemDateTime()); + SimpleDateFormat dtimestamp = new SimpleDateFormat(Globals.getScheduleDatePattern()); + + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + cell.setCellValue("Report Date/Time"); + cell.setCellStyle(styleName); + cellNum += 1; + cell = row.createCell((short) cellNum); + + cell.setCellValue(dtimestamp.format(sysdate)+" "+Globals.getTimeZone()); + cell.setCellStyle(styleValue); + + } catch(Exception ex) { + //ex.printStackTrace(); + } + + + } + } + + +/* Iterator iter1 = paramsList.iterator(); + s1 = 0; s2 = (short)10; + if(iter1.hasNext()) { + row = sheet.createRow((short) ++rowNum); + cellNum = 0; + cell = row.createCell((short) cellNum); + sheet.addMergedRegion(new Region(rowNum, s1, rowNum, s2)); + cell.setCellValue(strip.stripHtml(customizedParamInfo)); + } +*/ +/* rowNum += 2; + row = sheet.createRow(rowNum);*/ + } // if + Iterator iterCheck = paramsList.iterator(); + if(iterCheck.hasNext()) { + rowNum += 2; + row = sheet.createRow(rowNum); + } + header.setCenter(HSSFHeader.font("Tahoma", "")+ HSSFHeader.fontSize((short) font_header_title_size)+strBuf.toString()); + } + + // Trying different --> + public void createHTMLFileContent(Writer out, ReportData rd, + ReportRuntime rr, String sql_whole, HttpServletRequest request, HttpServletResponse response) + throws RaptorException, IOException { + //response.setContentType("application/vnd.ms-excel"); + //response.setHeader("Content-disposition", + // "attachment; filename=" + + // "Example.xls" ); + PrintWriter csvOut = response.getWriter(); + HtmlStripper strip = new HtmlStripper(); + ResultSet rs = null; + Connection conn = null; + Statement st = null; + ResultSetMetaData rsmd = null; + ColumnHeaderRow chr = null; + int mb = 1024*1024; + Runtime runtime = Runtime.getRuntime(); + csvOut.println("\n" + + "" + rr.getReportName() + "\n" + + "\n" ); + System.out.println("HTML-Excel Generation Triggered: " + new java.util.Date()); + csvOut.print(""); + if (Globals.getPrintParamsInCSVDownload()) { + ArrayList paramsList = rr.getParamNameValuePairsforPDFExcel(request, 1); + 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.println(""); + //strBuf.append("Run-time Parameters\n"); + } + csvOut.println(""); + csvOut.println(""); + csvOut.println(""); + + //strBuf.append(value.getId()+": "+ value.getName()+"\n"); + } + } //for + csvOut.println(""); + csvOut.println(""); + System.out.println("HTML-Excel: Header Rendering complete " + new java.util.Date()); + } + int rowCount = 0; + if(nvl(sql_whole).length()>0) { + try { + conn = ConnectionUtils.getConnection(rr.getDbInfo()); + st = conn.createStatement(); + Log.write("[SQL] " + sql_whole, 4); + int downloadLimit = Globals.getDownloadLimit(); + Callable callable = new ExecuteQuery(st, sql_whole, downloadLimit); + ExecutorService executor = new ScheduledThreadPoolExecutor(5); + System.out.println("Time Started" + new java.util.Date()); + Future future = executor.submit(callable); + try { + rs = future.get(900, TimeUnit.SECONDS); + } catch (TimeoutException ex) { + System.out.println("Cancelling Query"); + st.cancel(); + System.out.println("Query Cancelled"); + throw new Exception("user requested"); + } + rsmd = rs.getMetaData(); + int numberOfColumns = rsmd.getColumnCount(); + HashMap colHash = new HashMap(); + + if(rd!=null) { + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) { + chr = rd.reportColumnHeaderRows.getNext(); + csvOut.println(""); + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + csvOut.print(""); + //for (int i = 1; i < ch.getColSpan(); i++) + // csvOut.print(","); + + } + } // for + csvOut.println(""); + } // for + + + while(rs.next()) { + csvOut.println(""); +/* 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++; + colHash = new HashMap(); + for (int i = 1; i <= numberOfColumns; i++) { + colHash.put(rsmd.getColumnName(i), rs.getString(i)); + } + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + csvOut.println(""); + } + + } + csvOut.println(""); + } + System.out.println("Downloaded Rows in HTML-Excel " + rowCount + " : "+ new java.util.Date()); + if(rowCount == 0) { + csvOut.print(""); + } else { + } + } else { + csvOut.println(""); + } + csvOut.println("
" + "Run-time Parameters" + "
" + value.getId() +"" + value.getName().replaceAll("~",",")+ "
 
 
" + ch.getColumnTitle() + "
" + strip.stripCSVHtml(nvl((String)colHash.get(ch.getLinkColId().toUpperCase()))) + "
No Data Found
No Data Found
\n"); + + } catch (SQLException ex) { + throw new RaptorException(ex); + } catch (ReportSQLException ex) { + throw new RaptorException(ex); + } catch (Exception ex) { + 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); + } + } + //csvOut.flush(); + } else { + boolean firstPass = true; + int numberOfColumns = 0; + if(rd!=null) { + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) { + chr = rd.reportColumnHeaderRows.getNext(); + csvOut.println(""); + for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + + if (firstPass) { + numberOfColumns++; + csvOut.print("" + rhc.getColumnTitle() + ""); + } + //csvOut.print(","); + } // for + + + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + if(ch.isVisible()) { + if(firstPass) numberOfColumns++; + csvOut.print("" + ch.getColumnTitle() + ""); + //for (int i = 1; i < ch.getColSpan(); i++) + //csvOut.print(","); + } + } // for + firstPass = false; + csvOut.println(""); + } // for + + firstPass = true; + for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) { + DataRow dr = rd.reportDataRows.getNext(); + csvOut.println(""); + for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + if (firstPass) + rhc.resetNext(); + 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 + //csvOut.flush(); + } else { + csvOut.println("No Data Found"); + } + } + csvOut.println("\n"); + System.out.println("HTML-Excel Generation: Data Rendering complete " + new java.util.Date()); + 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); + + } // createCSVFileContent + + /** + * Checking if every row and cell in merging region exists, and create those which are not + * @param sheet in which check is performed + * @param region to check + * @param cellStyle cell style to apply for whole region + */ + private void cleanBeforeMergeOnValidCells(XSSFSheet sheet,CellRangeAddress region, XSSFCellStyle cellStyle ) + { + for(int rowNum =region.getFirstRow();rowNum<=region.getLastRow();rowNum++){ + XSSFRow row= sheet.getRow(rowNum); + if(row==null){ + sheet.createRow(rowNum); + } + for(int colNum=region.getFirstColumn();colNum<=region.getLastColumn();colNum++){ + XSSFCell currentCell = row.getCell(colNum); + if(currentCell==null){ + currentCell = row.createCell(colNum); + } + + currentCell.setCellStyle(cellStyle); + + } + } + + + } +} // 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/ReportLoader.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportLoader.java new file mode 100644 index 00000000..fa30fc32 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/ReportLoader.java @@ -0,0 +1,1094 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * ReportLoader.java - This class is used to call database interaction related to reports. + * ------------------------------------------------------------------------------------------- + * + * + * + * Changes + * ------- + * 28-Aug-2009 : Version 8.5.1 (Sundar);
  • isDashboardType is made to return false, as any report can be added to Dashboard.
+ * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 27-Jul-2009 : Version 8.4 (Sundar);
  • Admin User is given the same privilege as Super User when the property + * "admin_role_equiv_to_super_role" in raptor.properties is Y. A check is made in corresponding to that.
+ * + */ +package org.onap.portalsdk.analytics.model; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.Writer; +import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Vector; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.ReportSQLException; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.model.base.ReportWrapper; +import org.onap.portalsdk.analytics.model.definition.ReportLogEntry; +import org.onap.portalsdk.analytics.model.search.ReportSearchResult; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.system.fusion.domain.QuickLink; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class ReportLoader extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportLoader.class); + + public static String loadCustomReportXML(String reportID) throws RaptorException { + Connection connection = DbUtils.getConnection(); + try { + return loadCustomReportXML(connection, reportID); + } finally { + DbUtils.clearConnection(connection); + } + } // loadCustomReportXML + + public static String loadCustomReportXML(Connection connection, String reportID) + throws RaptorException { + + StringBuffer sb = new StringBuffer(); + + PreparedStatement stmt = null; + + ResultSet rs = null; + + try { + + String sql = Globals.getLoadCustomReportXml(); + stmt = connection.prepareStatement(sql); + stmt.setInt(1,Integer.parseInt(reportID)); + rs = stmt.executeQuery(); + if(Globals.isWeblogicServer()) { + java.sql.Clob clob= null; + Object obj = null; + if (rs.next()) { + clob = rs.getClob(1); + } + else + throw new RaptorException("Report " + reportID + " not found in the database"); + + int len = 0; + char[] buffer = new char[512]; + Reader in = null; + in = new InputStreamReader(clob.getAsciiStream()); + // if(obj instanceof oracle.sql.CLOB) { + // in = ((oracle.sql.CLOB) obj).getCharacterStream(); + // } else if (obj instanceof weblogic.jdbc.wrapper.Clob) { + // in = ((weblogic.jdbc.base.BaseClob) obj).getCharacterStream(); + // } + while ((len = in.read(buffer)) != -1) + sb.append(buffer, 0, len); + in.close(); + } else if (Globals.isPostgreSQL() || Globals.isMySQL()) { + String clob= null; + Object obj = null; + if (rs.next()) { + sb.append(rs.getString(1)); + } + else + throw new RaptorException("Report " + reportID + " not found in the database"); + } else { + /*oracle.sql.CLOB clob = null; + if (rs.next()) + clob = (oracle.sql.CLOB) rs.getObject(1); + else + throw new RaptorException("Report " + reportID + " not found in the database"); + int len = 0; + char[] buffer = new char[512]; + Reader in = clob.getCharacterStream(); + while ((len = in.read(buffer)) != -1) + sb.append(buffer, 0, len); + in.close();*/ + throw new RaptorException("only maria db support for this "); + } + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (IOException ex) { + throw new RaptorException (ex.getMessage(), ex.getCause()); + } finally { + try { + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + return sb.toString(); + } // loadCustomReportXML + + private static void dbUpdateReportXML(Connection connection, String reportID, + String reportXML) throws RaptorException { + PreparedStatement stmt = null; + ResultSet rs = null; + + try { + String sql = ""; + if(!Globals.isMySQL()) + sql = Globals.getDBUpdateReportXml(); + else + sql = Globals.getDBUpdateReportXmlMySqlSelect(); + stmt = connection.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE, + ResultSet.CONCUR_UPDATABLE); + stmt.setInt(1,Integer.parseInt(reportID)); + rs = stmt.executeQuery(); + Writer out = null; + /*if(Globals.isWeblogicServer()) { + java.sql.Clob clob = null; + if (rs.next()) + clob = rs.getClob(1); + else + throw new RaptorException("Report " + reportID + " not found in the database"); + + if (clob.length() > reportXML.length()) + clob.truncate(0); + //clob.trim(reportXML.length()); + out = ((weblogic.jdbc.vendor.oracle.OracleThinClob)clob).getCharacterOutputStream(); + } else*/ + if (Globals.isPostgreSQL()) { + if (rs.next()) { + rs.updateString("report_xml",reportXML); + rs.updateRow(); + connection.commit(); + //sb.append(rs.getString(1)); + } + else + throw new RaptorException("Report " + reportID + " not found in the database"); + } else if (Globals.isMySQL()) { + if(rs.next()) { + final InputStream stream = rs.getBinaryStream( "report_xml" ); + InputStream streamNew = new ByteArrayInputStream(reportXML.getBytes(StandardCharsets.UTF_8)); + final PreparedStatement update = connection.prepareStatement( Globals.getDBUpdateReportXmlMySql() ); + update.setBinaryStream( 1,streamNew ); + update.setInt( 2,Integer.parseInt(reportID) ); + update.execute(); + } else + throw new RaptorException("Report " + reportID + " not found in the database"); + + } else { + /*oracle.sql.CLOB clob = null; + if (rs.next()) + clob = (oracle.sql.CLOB) rs.getObject(2); + else + throw new RaptorException("Report " + reportID + " not found in the database"); + + if (clob.length() > reportXML.length()) + clob.trim(reportXML.length()); + out = clob.getCharacterOutputStream();*/ + throw new RaptorException("only maria db support for this "); + } + if(!(Globals.isPostgreSQL() || Globals.isMySQL())) { + out.write(reportXML); + out.flush(); + out.close(); + } + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (IOException ex) { + throw new RaptorException (ex.getMessage(), ex.getCause()); + } finally { + try { + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + } // dbUpdateReportXML + + public static void updateCustomReportRec(Connection connection, ReportWrapper rw, + String reportXML) throws RaptorException { + /* DbUtils.executeUpdate(connection,"UPDATE cr_report SET title='" + + Utils.oracleSafe(rw.getReportName()) + "', descr='" + + Utils.oracleSafe(rw.getReportDescr()) + "', public_yn='" + + (rw.isPublic() ? "Y" : "N") + "', menu_id='" + rw.getMenuID() + + "', menu_approved_yn='" + (rw.isMenuApproved() ? "Y" : "N") + "', owner_id=" + + rw.getOwnerID() + ", maint_id=" + rw.getUpdateID() + + ", maint_date=TO_DATE('" + rw.getUpdateDate() + "', '" + + Globals.getOracleTimeFormat() + "'), dashboard_type_yn='"+ (rw.isDashboardType()?"Y":"N")+"', dashboard_yn= '" + + (rw.getReportType().equals(AppConstants.RT_DASHBOARD)?"Y":"N") + "' WHERE rep_id = " + rw.getReportID());*/ + + String sql = Globals.getUpdateCustomReportRec(); + + sql = sql.replace("[Utils.oracleSafe(rw.getReportName())]", Utils.oracleSafe(rw.getReportName())); + sql = sql.replace("[Utils.oracleSafe(rw.getReportDescr())]", Utils.oracleSafe(rw.getReportDescr())); + sql = sql.replace("[(rw.isPublic()]",(rw.isPublic() ? "Y" : "N")); + sql = sql.replace("[rw.getMenuID()]", rw.getMenuID()); + sql = sql.replace("[(rw.isMenuApproved()]", (rw.isMenuApproved() ? "Y" : "N")); + sql = sql.replace("[rw.getOwnerID()]",rw.getOwnerID()); + sql = sql.replace("[rw.getUpdateID()]",rw.getUpdateID()); + sql = sql.replace("[rw.getUpdateDate()]",rw.getUpdateDate()); + sql = sql.replace("[Globals.getTimeFormat()]", Globals.getTimeFormat()); + sql = sql.replace("[(rw.isDashboardType()]", (rw.isDashboardType()?"Y":"N")); + sql = sql.replace("[(rw.getReportType().equals(AppConstants.RT_DASHBOARD)]", (rw.getReportType().equals(AppConstants.RT_DASHBOARD)?"Y":"N")); + sql = sql.replace("[rw.getReportID()]", rw.getReportID()); + + DbUtils.executeUpdate(connection, sql); + + dbUpdateReportXML(connection, rw.getReportID(), reportXML); + } // updateCustomReportRec + + public static boolean isDashboardType ( String reportID ) throws RaptorException { + return false; +/* String sql = "select dashboard_type_yn from cr_report where rep_id = ?"; + Connection connection = DbUtils.getConnection(); + PreparedStatement stmt = null; + ResultSet rs = null; + boolean dashboardType= false; + try { + stmt = connection.prepareStatement(sql); + stmt.setString(1, reportID); + rs = stmt.executeQuery(); + if(rs.next()) { + dashboardType = nvls(rs.getString(1),"N").trim().toUpperCase().startsWith("Y"); + } + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } finally { + try { + rs.close(); + stmt.close(); + DbUtils.clearConnection(connection); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + return dashboardType;*/ + } + + public static boolean isReportsAlreadyScheduled ( String reportID ) throws RaptorException { + //String sql = "select rep_id from cr_report_schedule where rep_id = ?"; + String sql = Globals.getIsReportAlreadyScheduled(); + + Connection connection = DbUtils.getConnection(); + PreparedStatement stmt = null; + ResultSet rs = null; + boolean isScheduled= false; + try { + stmt = connection.prepareStatement(sql); + stmt.setInt(1, Integer.parseInt(reportID)); + rs = stmt.executeQuery(); + if(rs.next()) { + isScheduled = true; + } + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } finally { + try { + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + DbUtils.clearConnection(connection); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + return isScheduled; +} + + public static void createCustomReportRec(Connection connection, ReportWrapper rw, + String reportXML) throws RaptorException { + + /*DbUtils + .executeUpdate( + connection, + "INSERT INTO cr_report(rep_id, title, descr, public_yn, menu_id, menu_approved_yn, report_xml, owner_id, create_id, create_date, maint_id, maint_date, dashboard_type_yn, dashboard_yn, folder_id) VALUES(" + + rw.getReportID() + + ", '" + + Utils.oracleSafe(rw.getReportName()) + + "', '" + + Utils.oracleSafe(rw.getReportDescr()) + + "', '" + + (rw.isPublic() ? "Y" : "N") + + "', '" + + rw.getMenuID() + + "', '" + + (rw.isMenuApproved() ? "Y" : "N") + + "', '', " + + rw.getOwnerID() + + ", " + + rw.getCreateID() + + ", TO_DATE('" + + rw.getCreateDate() + + "', '" + + Globals.getOracleTimeFormat() + + "'), " + + rw.getUpdateID() + + ", TO_DATE('" + + rw.getUpdateDate() + + "', '" + + Globals.getOracleTimeFormat() + + "'), '" + + (rw.isDashboardType()?"Y":"N") + + "', '" + + (rw.getReportType().equals(AppConstants.RT_DASHBOARD)?"Y":"N") + + "', " + + rw.getFolderId() + + ")");*/ + String sql = Globals.getCreateCustomReportRec(); + + sql = sql.replace("[rw.getReportID()]", rw.getReportID()); + sql = sql.replace("[Utils.oracleSafe(rw.getReportName())]", Utils.oracleSafe(rw.getReportName())); + sql = sql.replace("[Utils.oracleSafe(rw.getReportDescr())]", Utils.oracleSafe(rw.getReportDescr())); + sql = sql.replace("[rw.isPublic()]", (rw.isPublic() ? "Y" : "N")); + sql = sql.replace("[rw.getMenuID()]", rw.getMenuID()); + sql = sql.replace("[rw.isMenuApproved()]", (rw.isMenuApproved() ? "Y" : "N")); + sql = sql.replace("[rw.getOwnerID()]", rw.getOwnerID()); + sql = sql.replace("[rw.getCreateID()]", rw.getCreateID()); + sql = sql.replace("[rw.getCreateDate()]", rw.getCreateDate()); + sql = sql.replace("[Globals.getTimeFormat()]", Globals.getTimeFormat()); + sql = sql.replace("[rw.getUpdateID()]", rw.getUpdateID()); + sql = sql.replace("[rw.getUpdateDate()]", rw.getUpdateDate()); + sql = sql.replace("[rw.isDashboardType()]", (rw.isDashboardType()?"Y":"N")); + sql = sql.replace("[rw.getReportType().equals(AppConstants.RT_DASHBOARD)]", (rw.getReportType().equals(AppConstants.RT_DASHBOARD)?"Y":"N")); + sql = sql.replace("[rw.getFolderId()]", rw.getFolderId()); + + + DbUtils.executeUpdate(connection,sql); + + dbUpdateReportXML(connection, rw.getReportID(), reportXML); + } // createCustomReportRec + + public static Vector getUserReportNames(HttpServletRequest request) { + return getUserReportNames(AppUtils.getUserID(request)); + } // getUserReportNames + + public static Vector getUserReportNames(String userID) { + Vector reportIdNames = new Vector(); + + try { + + String sql = Globals.getTheUserReportNames(); + sql = sql.replace("[userID]", userID); + DataSet ds = DbUtils.executeQuery(sql); + + //DataSet ds = DbUtils + // .executeQuery("SELECT cr.rep_id, cr.title FROM cr_report cr WHERE nvl(cr.owner_id, cr.create_id) = " + // + userID); + + for (int i = 0; i < ds.getRowCount(); i++) + reportIdNames.add(new IdNameValue(ds.getString(i, 0), ds.getString(i, 1))); + } catch (Exception e) { + } + + return reportIdNames; + } // getUserReportNames + + public static String getReportOwnerID(String reportID) throws RaptorException { + + // String sql = "SELECT nvl(cr.owner_id, cr.create_id) owner FROM cr_report cr WHERE rep_id = ?"; + + String sql = Globals.getTheReportOwnerId(); + + Connection connection = DbUtils.getConnection(); + PreparedStatement stmt = null; + ResultSet rs = null; + String reportOwnerID = null; + try { + stmt = connection.prepareStatement(sql); + stmt.setInt(1, Integer.parseInt(reportID)); + rs = stmt.executeQuery(); + if(rs.next()) { + reportOwnerID = rs.getString(1); + } + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } finally { + try { + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + DbUtils.clearConnection(connection); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + + return reportOwnerID; + } // getReportOwnerID + + public static void deleteReportRecord(String reportID) throws RaptorException { + Connection con = DbUtils.startTransaction(); + + /*try { + DbUtils.executeUpdate(con, "DELETE cr_report_log WHERE rep_id = " + reportID); + DbUtils.executeUpdate(con, "DELETE cr_report_schedule_users WHERE rep_id = " + + reportID); + DbUtils.executeUpdate(con, "DELETE cr_report_schedule WHERE rep_id = " + reportID); + DbUtils.executeUpdate(con, "DELETE cr_report_access WHERE rep_id = " + reportID); + DbUtils.executeUpdate(con, "DELETE cr_report_email_sent_log WHERE rep_id = " + reportID); + DbUtils.executeUpdate(con, "DELETE cr_favorite_reports WHERE rep_id = " + reportID); + DbUtils.executeUpdate(con, "DELETE cr_report WHERE rep_id = " + reportID); + DbUtils.commitTransaction(con); + } */ + + try{ + String sql1= Globals.getDeleteReportRecordLog(); + sql1 = sql1.replace("[reportID]", reportID); + String sql2= Globals.getDeleteReportRecordUsers(); + sql2 = sql2.replace("[reportID]", reportID); + String sql3= Globals.getDeleteReportRecordSchedule(); + sql3 = sql3.replace("[reportID]", reportID); + String sql4= Globals.getDeleteReportRecordAccess(); + sql4 = sql4.replace("[reportID]", reportID); + String sql5= Globals.getDeleteReportRecordEmail(); + sql5 = sql5.replace("[reportID]", reportID); + String sql6= Globals.getDeleteReportRecordFavorite(); + sql6 = sql6.replace("[reportID]", reportID); + String sql7= Globals.getDeleteReportRecordReport(); + sql7 = sql7.replace("[reportID]", reportID); + + DbUtils.executeUpdate(con, sql1); + DbUtils.executeUpdate(con, sql2); + DbUtils.executeUpdate(con, sql3); + DbUtils.executeUpdate(con, sql4); + DbUtils.executeUpdate(con, sql5); + DbUtils.executeUpdate(con, sql6); + DbUtils.executeUpdate(con, sql7); + DbUtils.commitTransaction(con); + + } + + + catch (Exception e) { + DbUtils.rollbackTransaction(con); + } finally { + DbUtils.clearConnection(con); + } + } // deleteReportRecord + + public static ArrayList loadQuickLinks(HttpServletRequest request, String menuId, boolean b) throws RaptorException { + String userID = AppUtils.getUserID(request); + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + + // DataSet ds = DbUtils.executeQuery("SELECT cr.rep_id, cr.title FROM + // cr_report cr WHERE cr.public_yn = 'Y' AND cr.menu_id = + // '"+nvls(menuId)+"' AND cr.menu_approved_yn = 'Y' ORDER BY cr.title"); + // Copied from SearchHandler and simplified + /*String query = "SELECT cr.rep_id, " + + "cr.title, " + + "cr.descr " + + "FROM cr_report cr, " + + "(SELECT rep_id, " + + "MIN(read_only_yn) read_only_yn " + + "FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = " + + userID + + ") " + + "UNION ALL " + + "(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN (" + + roleList.toString() + "))" + ") report_access " + + "GROUP BY rep_id) ra " + "WHERE INSTR('|'||cr.menu_id||'|', '|'||'" + + nvls(menuId) + "'||'|') > 0 AND " + "cr.menu_approved_yn = 'Y' AND " + + "cr.rep_id = ra.rep_id (+) AND " + + "(nvl(cr.owner_id, cr.create_id) = " + userID + + " OR cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL) " + + "ORDER BY cr.title";*/ + + String query = Globals.getLoadQuickLinks(); + query = query.replace("[userID]", userID); + query = query.replace("[roleList.toString()]", roleList.toString()); + query = query.replace("[nvls(menuId)]", nvls(menuId)); + + DataSet ds = DbUtils + .executeQuery(query); + + ArrayList quickLinks = new ArrayList(ds.getRowCount()); + StringBuffer link = new StringBuffer(""); + for (int i = 0; i < ds.getRowCount(); i++) { + link = new StringBuffer(""); + link.append("" +ds.getString(i, 1) + "" + (Globals.getShowDescrAtRuntime() ? " - " + ds.getString(i, 2) : "") ); + quickLinks.add(link.toString()); + } + + return quickLinks; + } // loadQuickLinks + + public static ArrayList getQuickLinksJSON(HttpServletRequest request, String menuId, boolean b) throws RaptorException { + String userID = AppUtils.getUserID(request); + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + + String query = Globals.getLoadQuickLinks(); + query = query.replace("[userID]", userID); + query = query.replace("[roleList.toString()]", roleList.toString()); + query = query.replace("[nvls(menuId)]", nvls(menuId)); + + DataSet ds = DbUtils + .executeQuery(query); + + ArrayList quickLinksArray = new ArrayList(ds.getRowCount()); + for (int i = 0; i < ds.getRowCount(); i++) { + QuickLink quickLink = new QuickLink(); + StringBuffer link = new StringBuffer(""); + link.append(AppUtils.getReportExecuteActionURLNG() +"c_master="+ ds.getString(i, 0)); + if(b) link.append("&PAGE_ID="+menuId+"&refresh=Y"); + quickLink.setReportURL(link.toString()); + quickLink.setReportName(ds.getString(i, 1)); + quickLink.setShowDescr(Globals.getShowDescrAtRuntime()); + quickLink.setReportDescr(ds.getString(i, 2)); + quickLinksArray.add(quickLink); + } + + return quickLinksArray; + } // loadQuickLinks + + //this will retrieve all the reports within the specified folder. + public static ReportSearchResult loadFolderReports(HttpServletRequest request, String menuId, boolean b, String folderId, boolean isUserReport, boolean isPublicReport) throws RaptorException { + String HTML_FORM = "forma"; + String userID = AppUtils.getUserID(request); + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + String rep_title_sql = "''"; + String PRIVATE_ICON = "Private "; + + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + + /*String sql= "SELECT cr.rep_id, " + + "cr.rep_id report_id, " + + rep_title_sql+ + "||DECODE(cr.public_yn, 'Y', '', '" + + PRIVATE_ICON + + "')||cr.title||'' title, " + + "cr.descr, " + + "au.first_name||' '||au.last_name owner_name, " + + "TO_CHAR(cr.create_date, 'MM/DD/YYYY') create_date, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'N', NVL(ra.read_only_yn, 'Y')) read_only_yn, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'Y', 'N') user_is_owner_yn " + + " FROM cr_report cr, " + + "app_user au, " + + "(SELECT rep_id, MIN(read_only_yn) read_only_yn " + + "FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = " + + userID + + ") " + + "UNION ALL " + + "(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN " + + "(-1,1000,1))" + ") report_access GROUP BY rep_id) ra " + + "WHERE TO_CHAR(cr.rep_id) = nvl('', TO_CHAR(cr.rep_id)) AND UPPER(cr.title) LIKE UPPER('%%') " + + "AND nvl(cr.owner_id, cr.create_id) = au.user_id AND cr.rep_id = ra.rep_id (+) " + + " AND cr.folder_id= '" + folderId + "'" ;*/ + + /*String sql = "" + + "SELECT cr.rep_id, " + + "cr.rep_id report_id, " + + rep_title_sql + "||DECODE(cr.public_yn, 'Y', '', '" + PRIVATE_ICON + "')||cr.title||'' title, " + + "cr.descr, " + + "au.first_name||' '||au.last_name owner_name, " + + "TO_CHAR(cr.create_date, 'MM/DD/YYYY') create_date, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + userID + + ", 'N', NVL(ra.read_only_yn, 'Y')) read_only_yn, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + userID + + ", 'Y', 'N') user_is_owner_yn " + + "FROM cr_report cr, " + + "app_user au, " + + "(SELECT rep_id, " + + "MIN(read_only_yn) read_only_yn " + + "FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = " + + userID + + ") " + + "UNION ALL " + + "(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN (" + + roleList.toString() + "))" + ") report_access " + "GROUP BY rep_id) ra " + + "WHERE " + "nvl(cr.owner_id, cr.create_id) = au.user_id " + + "AND cr.rep_id = ra.rep_id (+) AND cr.folder_id= '" + folderId + "'";*/ + + String sql = Globals.getLoadFolderReports(); + sql = sql.replace("[userID]", userID); + sql = sql.replace("[PRIVATE_ICON]", PRIVATE_ICON); + sql = sql.replace("[rep_title_sql]", rep_title_sql); + sql = sql.replace("[roleList.toString()]", roleList.toString()); + sql = sql.replace("[folderId]", folderId); + + + // String user_sql = " AND nvl(cr.owner_id, cr.create_id) = " + userID; + // String public_sql = " AND (nvl(cr.owner_id, cr.create_id) = " + userID + // + " OR cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL)"; + + String user_sql = Globals.getLoadFolderReportsUser(); + user_sql = user_sql.replace("[userID]", userID); + String public_sql = Globals.getLoadFolderReportsPublicSql(); + public_sql = public_sql.replace("[userID]", userID); + + if (isUserReport) + // My reports - user is owner + sql += user_sql; + else if (isPublicReport) + // Public reports - user has read or write access to the report + // (user is owner or report is public or user has explicit user or + // role access) + if (!AppUtils.isSuperUser(request)) + sql += public_sql; + else if (!AppUtils.isSuperUser(request)) + // All reports + // If user is super user - gets unrestricted access to all reports + // (read_only gets overriden later) + // else - not super user - doesn't get access to private reports of + // other users (= Public reports); Admin users get edit right + // override later + sql += public_sql; + logger.debug(EELFLoggerDelegate.debugLogger, ("query is for folder list is : " + sql)); + + DataSet ds = DbUtils.executeQuery(sql); + + /*Vector quickLinks = new Vector(ds.getRowCount()); + StringBuffer link = new StringBuffer(""); + for (int i = 0; i < ds.getRowCount(); i++) { + link = new StringBuffer(""); + link.append("" +ds.getString(i, 2) + "" + (Globals.getShowDescrAtRuntime() ? " - " + ds.getString(i, 2) : "") ); + quickLinks.add(link.toString()); + } + + return quickLinks;*/ + ReportSearchResult rsr = new ReportSearchResult(-1, ds.getRowCount(), 6, 7); + rsr.parseData(ds, request); + //rsr.truncateToPage(pageNo); + + return rsr; + } // loadFolderReports + + public static ArrayList loadQuickDownloadLinks(String userID, HttpServletRequest request) throws RaptorException { + /*String query = " SELECT a.file_name, b.title,to_char(a.dwnld_start_time, 'Dy DD-Mon-YYYY HH24:MI:SS') as time, "+ + " a.dwnld_start_time " + + " FROM cr_report_dwnld_log a, cr_report b where a.user_id = "+userID +" and "+ + " a.rep_id = b.rep_id " + + " and (a.dwnld_start_time) >= to_date(to_char(sysdate-24/24, 'mm/dd/yyyy'), 'mm/dd/yyyy') " + + " and a.record_ready_time is not null " + + " order by a.dwnld_start_time desc"; */ + + String query = Globals.getLoadQuickDownloadLinks(); + query = query.replace("[userID]", userID); + + + DataSet ds = DbUtils + .executeQuery(query); + ArrayList quickDownloadLinks = new ArrayList(ds.getRowCount()); + logger.debug(EELFLoggerDelegate.debugLogger, ("ROW SIZE " + ds.getRowCount())); + for (int i = 0; i < ds.getRowCount(); i++) { + quickDownloadLinks.add("" + ds.getString(i, 1)+ "" + " "+ ds.getString(i, 2)); + } + logger.debug(EELFLoggerDelegate.debugLogger, ("VECTOR SIZE " + quickDownloadLinks.size())); + + return quickDownloadLinks; + } // loadQuickLinks + + public static HashMap loadReportsToSchedule (HttpServletRequest request) throws RaptorException { + String userID = AppUtils.getUserID(request); + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + /*StringBuffer query = new StringBuffer(""); + query.append("SELECT cr.rep_id, "); + query.append("Initcap(cr.title), "); + query.append("cr.descr "); + query.append("FROM cr_report cr, "); + query.append("(SELECT rep_id, "); + query.append("MIN(read_only_yn) read_only_yn "); + query.append("FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = "); + query.append(userID); + query.append(") "); + query.append("UNION ALL "); + query.append("(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN ("); + query.append(roleList.toString() + "))" + ") report_access "); + query.append("GROUP BY rep_id) ra " + "WHERE "); + query.append("cr.rep_id = ra.rep_id (+) AND "); + query.append(" (cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL or cr.owner_id = " + userID +") "); + query.append("ORDER BY Initcap(cr.title)") ;*/ + + String sql = Globals.getLoadReportsToSchedule(); + sql = sql.replace("[userID]", userID); + sql = sql.replace("[roleList.toString()]", roleList.toString()); + + // DataSet ds = DbUtils + // .executeQuery(query.toString()); + + DataSet ds = DbUtils + .executeQuery(sql); + HashMap map = new HashMap(); + for (int i = 0; i < ds.getRowCount(); i++) { + map.put(ds.getItem(i,0), ds.getItem(i,1)); + } + + return map; + } + + public static HashMap loadReportsToAddInDashboard (HttpServletRequest request) throws RaptorException { + String userID = AppUtils.getUserID(request); + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + /*StringBuffer query = new StringBuffer(""); + query.append("SELECT cr.rep_id, "); + query.append("cr.title, "); + query.append("cr.descr "); + query.append("FROM cr_report cr, "); + query.append("(SELECT rep_id, "); + query.append("MIN(read_only_yn) read_only_yn "); + query.append("FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = "); + query.append(userID); + query.append(") "); + query.append("UNION ALL "); + query.append("(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN ("); + query.append(roleList.toString() + "))" + ") report_access "); + query.append("GROUP BY rep_id) ra " + "WHERE "); + query.append("cr.rep_id = ra.rep_id (+) AND "); + query.append("(nvl(cr.owner_id, cr.create_id) = " + userID); + query.append(" OR cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL) "); + query.append(" AND (cr.dashboard_yn = 'N' or cr.dashboard_yn is null) "); + query.append("ORDER BY cr.title") ;*/ + + String sql = Globals.getLoadReportsToAddInDashboard(); + sql = sql.replace("[userID]", userID); + sql = sql.replace("[roleList.toString()]", roleList.toString()); + + // DataSet ds = DbUtils + // .executeQuery(query.toString()); + + DataSet ds = DbUtils + .executeQuery(sql); + + HashMap map = new HashMap(); + for (int i = 0; i < ds.getRowCount(); i++) { + map.put(ds.getItem(i,0), ds.getItem(i,1)); + } + + return map; + } + + public static Vector loadMyRecentLinks(String userID, HttpServletRequest request) throws RaptorException { + /* StringBuffer query = new StringBuffer(""); + query.append("select rep_id, title, descr, form_fields from ( select rownum, rep_id, title, descr, form_fields from "); + query.append(" (select cr.rep_id, cr.title, a.form_fields, cr.descr, a.log_time, a.user_id, a.action, a.action_value " ); + query.append(" from cr_report_log a, cr_report cr where user_id = " + userID); + query.append(" and action = 'Report Execution Time' and a.rep_id = cr.rep_id order by log_time desc) x where rownum <= 6 ) y where rownum >= 1");*/ +// DataSet ds = DbUtils +// .executeQuery( +// " SELECT a.file_name, b.title,to_char(a.dwnld_start_time, 'Dy DD-Mon-YYYY HH24:MI:SS') as time, "+ +// " a.dwnld_start_time " + +// " FROM cr_report_dwnld_log a, cr_report b where a.user_id = "+userID +" and "+ +// " a.rep_id = b.rep_id and (a.dwnld_start_time) >= to_date(to_char(sysdate-24/24, 'mm/dd/yyyy'), 'mm/dd/yyyy') " + +// " and a.record_ready_time is not null " + +// " order by a.dwnld_start_time desc"); +// DataSet ds = DbUtils + // .executeQuery(query.toString()); + + + String sql = Globals.getLoadMyRecentLinks(); + sql = sql.replace("[userID]", userID); + + DataSet ds = DbUtils + .executeQuery(sql); + + Vector myRecentLinks = new Vector(ds.getRowCount()); + logger.debug(EELFLoggerDelegate.debugLogger, ("ROW SIZE " + ds.getRowCount())); + for (int i = 0; i < ds.getRowCount(); i++) { + myRecentLinks.add("" + ds.getString(i, 1)+ ""); + } + logger.debug(EELFLoggerDelegate.debugLogger, ("VECTOR SIZE " + myRecentLinks.size())); + + return myRecentLinks; + } // loadQuickLinks + + public static void createReportLogEntry(Connection connection, String reportID, + String userID, String action, String executionTime,String form_fields) throws RaptorException { + if(form_fields.length()>=4000) form_fields = ""; + //String stmt = "INSERT INTO cr_report_log (rep_id, log_time, user_id, action, action_value, form_fields) VALUES(" + // + reportID + ", SYSDATE, " + userID + ", '" + action + "' , '" + executionTime + "', '"+ form_fields +"')"; + + String stmt = Globals.getCreateReportLogEntry(); + stmt = stmt.replace("[reportID]", reportID); + stmt = stmt.replace("[userID]", userID); + stmt = stmt.replace("[action]", action); + stmt = stmt.replace("[executionTime]", executionTime); + stmt = stmt.replace("[form_fields]", form_fields); + + if (Globals.getEnableReportLog()) + if (connection == null) + DbUtils.executeUpdate(stmt); + else + DbUtils.executeUpdate(connection, stmt); + } // createReportLogEntry + + public static void createReportLogEntryForExecutionTime(Connection connection, String reportID, + String userID, String executionTime, String action, String formFields) throws RaptorException { + if(formFields.length()>=4000) formFields = ""; + //String stmt = "INSERT INTO cr_report_log (rep_id, log_time, user_id, action, action_value, form_fields) VALUES(" + // + reportID + ", sysdate+1/(24*60*60) , " + userID + ", '" + action + "' , '" + executionTime + "', '"+ formFields +"')"; + + String stmt = Globals.getCreateReportLogEntryExecTime(); + stmt = stmt.replace("[reportID]", reportID); + stmt = stmt.replace("[userID]", userID); + stmt = stmt.replace("[action]", action); + stmt = stmt.replace("[executionTime]", executionTime); + stmt = stmt.replace("[formFields]", formFields); + + if (Globals.getEnableReportLog()) + if (connection == null) + DbUtils.executeUpdate(stmt); + else + DbUtils.executeUpdate(connection, stmt); + } // createReportLogEntry + + public static void clearReportLogEntries(String reportId, String userId) throws RaptorException { + String sql = Globals.getClearReportLogEntries(); + Connection connection = DbUtils.getConnection(); + PreparedStatement stmt = null; + String reportOwnerID = null; + int rowsAffected = 0; + try { + stmt = connection.prepareStatement(sql); + stmt.setInt(1, Integer.parseInt(reportId)); + stmt.setInt(2, Integer.parseInt(userId)); + rowsAffected = stmt.executeUpdate(); + if(rowsAffected > 0) connection.commit(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } finally { + try { + stmt.close(); + connection.close(); + DbUtils.clearConnection(connection); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + } // clearReportLogEntries + + public static Vector loadReportLogEntries(String reportId) throws RaptorException { + /* StringBuffer query = new StringBuffer("SELECT x.log_time, x.user_id,") ; + query.append(" (CASE WHEN x.action = 'Report Execution Time' THEN "); + query.append(" ''||x.action||''"); + query.append(" ELSE x.action END) action, " ); + query.append(" (CASE WHEN x.action = 'Report Execution Time' THEN "); + query.append(" action_value " ); + query.append(" ELSE 'N/A' END) time_taken, " ); + query.append( " (CASE WHEN x.action = 'Report Execution Time' THEN '\"Run' ELSE 'N/A' END) run_image, " ); + query.append(" x.name FROM "); + query.append(" (SELECT rl.rep_id, TO_CHAR(rl.log_time, 'Month DD, YYYY HH:MI:SS AM') log_time, rl.action_value, fuser.last_name ||', '||fuser.first_name name, "); + query.append(" rl.user_id, rl.action, rl.form_fields FROM cr_report_log rl, fn_user fuser WHERE rl.rep_id = "+ nvls(reportId)+ " and rl.action != 'Report Run' and fuser.user_id = rl.user_id" ); + query.append(" ORDER BY rl.log_time DESC) x WHERE ROWNUM <= 100");*/ +// DataSet ds = DbUtils +// .executeQuery("SELECT x.log_time, x.user_id, x.action FROM (SELECT TO_CHAR(rl.log_time, 'Month DD, YYYY HH:MI:SS AM') log_time, rl.user_id, rl.action FROM cr_report_log rl WHERE rl.rep_id = " +// + nvls(reportId) + " ORDER BY rl.log_time DESC) x WHERE ROWNUM <= 100"); + // DataSet ds = DbUtils.executeQuery(query.toString()); + + String sql = Globals.getLoadReportLogEntries(); + sql = sql.replace("[AppUtils.getRaptorActionURL()]", AppUtils.getRaptorActionURL()); + sql = sql.replace("[AppUtils.getImgFolderURL()]", AppUtils.getImgFolderURL()); + sql = sql.replace("[nvls(reportId)]", nvls(reportId)); + + + DataSet ds = DbUtils.executeQuery(sql); + + Vector logEntries = new Vector(ds.getRowCount()); + + for (int i = 0; i < ds.getRowCount(); i++) + logEntries.add(new ReportLogEntry(ds.getString(i, 0), ds + .getString(i, 5), ds.getString(i, 2), ds.getString(i, 3), ds.getString(i, 4))); + + return logEntries; + } // loadReportLogEntries + + public static boolean doesUserCanScheduleReport(HttpServletRequest request, String scheduleId) throws RaptorException { + boolean flagLimit = false; + boolean flagScheduleIdPresent = false; + String userId = AppUtils.getUserID(request); + if(AppUtils.isAdminUser(request))return true; + //String query = "select crs.sched_user_id, count(*) from cr_report_schedule crs where sched_user_id = " + userId + " group by crs.sched_user_id having count(*) >= " + Globals.getScheduleLimit(); + String query = Globals.getDoesUserCanScheduleReport(); + query = query.replace("[userId]", userId); + query = query.replace("[Globals.getScheduleLimit()]", String.valueOf(Globals.getScheduleLimit())); + + DataSet ds = DbUtils.executeQuery(query); + logger.debug(EELFLoggerDelegate.debugLogger, (" User Schedule ds.getRowCount() " + ds.getRowCount() + " " +(ds.getRowCount()>0))); + if(ds.getRowCount() > 0) flagLimit = true; + else flagLimit = false; + logger.debug(EELFLoggerDelegate.debugLogger, ("scheduleId " + scheduleId)); + if(scheduleId==null || scheduleId.trim().length()<=0) return !flagLimit; + //query = "select crs.schedule_id from cr_report_schedule crs where schedule_id = " + scheduleId; + query = Globals.getDoesUserCanSchedule(); + query = query.replace("[scheduleId]", scheduleId); + + if(ds.getRowCount() > 0) flagScheduleIdPresent = true; + else flagScheduleIdPresent = false; + if(!flagLimit) return true; + if(flagLimit && flagScheduleIdPresent) return true; + else return false; + } + + public static String getSystemDateTime() throws RaptorException { + //String query = "select to_char(sysdate,'MM/dd/yyyy HH24:mi:ss') from dual"; + String query = Globals.getTheSystemDateTime(); + + DataSet ds = DbUtils.executeQuery(query); + String timeStr = ""; + if(ds.getRowCount() > 0) { + timeStr = ds.getString(0,0); + } + return timeStr; + + } + + public static String getNextDaySystemDateTime() throws RaptorException { + //String query = "select to_char(sysdate+1,'MM/dd/yyyy HH24:mi:ss') from dual"; + String query = Globals.getTheNextDayDateTime(); + DataSet ds = DbUtils.executeQuery(query); + String timeStr = ""; + if(ds.getRowCount() > 0) { + timeStr = ds.getString(0,0); + } + return timeStr; + + } + + public static String getNext15MinutesOfSystemDateTime() throws RaptorException { + //String query = "select to_char(sysdate+15/(24*60),'MM/dd/yyyy HH24:mi:ss') from dual"; + String query = Globals.getTheNextFifteenMinDateTime(); + + DataSet ds = DbUtils.executeQuery(query); + String timeStr = ""; + if(ds.getRowCount() > 0) { + timeStr = ds.getString(0,0); + } + return timeStr; + + } + + public static String getNext30MinutesOfSystemDateTime() throws RaptorException { + //String query = "select to_char(sysdate+30/(24*60),'MM/dd/yyyy HH24:mi:ss') from dual"; + String query = Globals.getTheNextThirtyMinDateTime(); + DataSet ds = DbUtils.executeQuery(query); + String timeStr = ""; + if(ds.getRowCount() > 0) { + timeStr = ds.getString(0,0); + } + return timeStr; + + } + + public static String getTemplateFile(String reportId) throws RaptorException { + //String query = "select template_file from cr_report_template_map where report_id = " + reportId; + String query = Globals.getTheTemplateFile(); + query = query.replace("[reportId]", reportId); + String templateFile = ""; + try { + DataSet ds = DbUtils.executeQuery(query); + if(ds.getRowCount() > 0) { + templateFile = ds.getString(0,0); + } + }catch(RaptorException ex) { + logger.debug(EELFLoggerDelegate.debugLogger, ("SQL Exception while trying to access cr_report_template_map ")); + } + return templateFile; + + } + + + public static HashMap loadPDFImgLookUp() throws RaptorException { + StringBuffer query = new StringBuffer(""); + HashMap pdfImgMap = new HashMap(); + //query.append("select image_id, image_loc from cr_raptor_pdf_img"); + query.append(Globals.getLoadPdfImgLookup()); + DataSet ds = DbUtils.executeQuery(query.toString()); + for (int i = 0; i < ds.getRowCount(); i++) { + pdfImgMap.put(ds.getString(i, 0), ds.getString(i,1)); + } + return pdfImgMap; + } // loadQuickLinks + + public static HashMap loadActionImgLookUp() throws RaptorException { + StringBuffer query = new StringBuffer(""); + HashMap pdfImgMap = new HashMap(); + //query.append("select image_id, image_loc from cr_raptor_action_img"); + query.append(Globals.getLoadActionImgLookup()); + DataSet ds = DbUtils.executeQuery(query.toString()); + for (int i = 0; i < ds.getRowCount(); i++) { + pdfImgMap.put(ds.getString(i, 0), ds.getString(i,1)); + } + return pdfImgMap; + } // loadQuickLinks + +} // ReportLoader + diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/SearchHandler.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/SearchHandler.java new file mode 100644 index 00000000..5d71d147 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/SearchHandler.java @@ -0,0 +1,497 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * SearchHandler.java - This class is used to search reports and sort them in different order + * based on preference. It can also download the list in CSV format. + * ------------------------------------------------------------------------------------------- + * + * + * + * Changes + * ------- + * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 13-Aug-2009 : Version 8.5 (Sundar);
  • Refresh is added while running report.
  • + *
+ * 27-Jul-2009 : Version 8.4 (Sundar);
  • A new sort order PUBLIC is added.
  • + *
  • In Public reports option it brings all the reports + * including the one which logged in user didn't create + * and which is not public. This is available for Super users and "Admin equivalent Super Users".
  • + *
+ * + */ +package org.onap.portalsdk.analytics.model; + +import java.io.*; +import java.sql.*; +import java.util.*; +import javax.servlet.http.*; + +import org.onap.portalsdk.analytics.controller.*; +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.model.search.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class SearchHandler extends org.onap.portalsdk.analytics.RaptorObject { + private static final String HTML_FORM = "forma"; + private final static String PRIVATE_ICON = "Private "; + + public SearchHandler() { + } + + public void createCSVFileContent(Writer out, ReportSearchResult sr) throws IOException { + PrintWriter csvOut = new PrintWriter(out); + HtmlStripper strip = new HtmlStripper(); + + for (int c = 1; c < sr.getNumColumns(); c++) { + SearchResultColumn column = sr.getColumn(c); + if (column.getLinkURL() == null) + csvOut.print("\"" + column.getColumnTitle() + "\","); + } // for + csvOut.println(); + + for (int r = 0; r < sr.getNumRows(); r++) { + SearchResultRow row = sr.getRow(r); + + int c = 1; + for (row.resetNext(1); row.hasNext();) { + SearchResultField field = row.getNext(); + if (sr.getColumn(c++).getLinkURL() == null) + if (field.getDisplayValue().startsWith(PRIVATE_ICON)) + csvOut.print("\"" + + strip.stripHtml(field.getDisplayValue().substring(PRIVATE_ICON.length())) + + "\","); + else + csvOut.print("\"" + strip.stripHtml(field.getDisplayValue()) + "\","); + } // for + + csvOut.println(); + } // for + } // createCSVFileContent + + public String saveCSVPageFile(HttpServletRequest request, ReportSearchResult sr) { + try { + String csvFName = AppUtils.generateFileName(request, + (sr.getPageNo() < 0) ? AppConstants.FT_CSV_ALL : AppConstants.FT_CSV); + + BufferedWriter csvOut = new BufferedWriter(new FileWriter(AppUtils + .getTempFolderPath() + + csvFName)); + createCSVFileContent(csvOut, sr); + csvOut.close(); + + if (sr.getPageNo() < 0) + sr.setCsvAllRowsFileName(csvFName); + else + sr.setCsvPageFileName(csvFName); + + return csvFName; + } catch (Exception e) { + (new ErrorHandler()).processError(request, "Exception saving data to CSV file: " + + e.getMessage()); + return null; + } + } // saveCSVPageFile + + public ReportSearchResultJSON loadReportSearchResult(HttpServletRequest request) + throws RaptorException { + String userID = AppUtils.getUserID(request); + String fReportID = nvl(AppUtils.getRequestValue(request, AppConstants.RI_F_REPORT_ID)); + String fReportName = nvl(AppUtils.getRequestValue(request, + AppConstants.RI_F_REPORT_NAME)); + String sortOrder = nvl(AppUtils.getRequestValue(request, AppConstants.RI_SORT_ORDER), + AppConstants.RI_F_REPORT_NAME); + + String menuId = nvl(AppUtils.getRequestValue(request, AppConstants.RI_LIST_CATEGORY)); + + boolean userOnly = AppUtils.getRequestFlag(request, AppConstants.RI_USER_REPORTS); + boolean publicOnly = AppUtils.getRequestFlag(request, AppConstants.RI_PUBLIC_REPORTS); + boolean favoriteOnly = AppUtils.getRequestFlag(request, AppConstants.RI_FAVORITE_REPORTS); + + int pageNo = 0; + try { + pageNo = Integer.parseInt(request.getParameter(AppConstants.RI_NEXT_PAGE)); + } catch (Exception e) { + } + + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + String rep_title_sql = "''"; + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + // + /*String sql = "SELECT cr.rep_id, " + + "cr.rep_id report_id, " + + rep_title_sql+ + "||DECODE(cr.public_yn, 'Y', '', '" + + PRIVATE_ICON + + "')||cr.title||'' title, " + + "cr.descr, " + + "au.first_name||' '||au.last_name owner_name, " + + "TO_CHAR(cr.create_date, 'MM/DD/YYYY') create_date, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'N', NVL(ra.read_only_yn, 'Y')) read_only_yn, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'Y', 'N') user_is_owner_yn, " + + "case when report_xml like '%N%' " + + "then 'N' " + + "when report_xml like '%Y%' " + + "or 1 = (select distinct 1 from cr_report_schedule where rep_id = cr.rep_id) " + + "then 'Y' " + + "else 'N' end " + + "FROM cr_report cr, " + + "app_user au, " + + "(SELECT rep_id, " + + "MIN(read_only_yn) read_only_yn " + + "FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = " + + userID + + ") " + + "UNION ALL " + + "(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN (" + + roleList.toString() + "))" + ") report_access " + "GROUP BY rep_id) ra " + + "WHERE TO_CHAR(cr.rep_id) = nvl('" + fReportID + + "', TO_CHAR(cr.rep_id)) AND " + "UPPER(cr.title) LIKE UPPER('%" + + fReportName + "%') AND " + "nvl(cr.owner_id, cr.create_id) = au.user_id " + + "AND cr.rep_id = ra.rep_id (+) ";*/ + + String sql = Globals.getLoadReportSearchResult(); + String rep_id = ""; + String rep_id_options = ""; + String rep_id_sql = Globals.getLoadReportSearchRepIdSql(); + //rep_id_sql = " AND ROUND(cr.rep_id, 0) like coalesce('%%', ROUND(cr.rep_id, 0)) "; + if(request.getParameter("rep_id")!=null) { + rep_id = request.getParameter("rep_id"); + } + if(request.getParameter("rep_id_options")!=null) { + rep_id_options = request.getParameter("rep_id_options"); + } + + /*Default: AND FORMAT(cr.rep_id, 0) like coalesce('%%', FORMAT(cr.rep_id, 0)) */ + + /*Equal to AND cr.rep_id = 1000 0 */ + /*Less than : AND cr.rep_id < 1000 1 */ + /*Greater than AND cr.rep_id > 1000 2 */ + + + if(AppUtils.nvl(rep_id).length()>0 ) { + if(AppUtils.nvl(rep_id_options).length()>0 ) { + switch (rep_id_options) { + case "0": + rep_id_sql = " AND cr.rep_id = "+ rep_id+" "; + break; + case "1": + rep_id_sql = " AND cr.rep_id < "+ rep_id+" "; + break; + case "2": + rep_id_sql = " AND cr.rep_id > "+ rep_id+" "; + break; + default: + rep_id_sql = Globals.getLoadReportSearchRepIdSql(); + break; + } + } else { + rep_id_sql = " AND cr.rep_id = "+ rep_id+" "; + } + } else { + rep_id_sql = Globals.getLoadReportSearchRepIdSql(); //equal is default + } + + sql = sql.replace("[fReportID]", rep_id_sql); + + String rep_name = ""; + String rep_name_options = ""; + String rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%%') "; + if(request.getParameter("rep_name")!=null) { + rep_name = request.getParameter("rep_name"); + } + if(request.getParameter("rep_name_options")!=null) { + rep_name_options = request.getParameter("rep_name_options"); + } + + /* Report name AND UPPER(cr.title) LIKE UPPER('Dash%') 0 */ + + /* Report name AND UPPER(cr.title) LIKE UPPER('%1') 1 */ + /* Report name AND UPPER(cr.title) LIKE UPPER('%1%') 2 */ + + if(AppUtils.nvl(rep_name).length()>0 ) { + if(AppUtils.nvl(rep_name_options).length()>0 ) { + switch (rep_name_options) { + case "0": + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('"+rep_name+"%') "; + break; + case "1": + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%"+rep_name+"') "; + break; + case "2": + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%"+rep_name+"%') "; + break; + default: + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%%') "; + break; + } + } else { + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%"+rep_name+"%') "; //contains is default + } + } else { + rep_name_sql = " AND UPPER(cr.title) LIKE UPPER('%%') "; + } + sql = sql.replace("[fReportName]", rep_name_sql); + + if (menuId.length() > 0){ + /*sql += "AND INSTR('|'||cr.menu_id||'|', '|'||'" + menuId + "'||'|') > 0 " + * +"AND + * cr.menu_approved_yn = + * 'Y' " + ;*/ + String sql_add = Globals.getLoadReportSearchInstr(); + sql+= sql_add; + } + + //String user_sql = " AND nvl(cr.owner_id, cr.create_id) = " + userID; + String user_sql = Globals.getLoadReportSearchResultUser(); + + //String public_sql = " AND (nvl(cr.owner_id, cr.create_id) = " + userID + // + " OR cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL)"; + String public_sql = Globals.getLoadReportSearchResultPublic(); + + //String fav_sql = " AND cr.rep_id in (select rep_id from cr_favorite_reports where user_id = " + userID +" ) "; + String fav_sql = Globals.getLoadReportSearchResultFav(); + + if (userOnly) + // My reports - user is owner + sql += " " + user_sql; + else if (publicOnly) { + // Public reports - user has read or write access to the report + // (user is owner or report is public or user has explicit user or + // role access) + if (!AppUtils.isSuperUser(request)) + sql += " " + public_sql; + } else if (favoriteOnly) { + sql += " " + public_sql; + sql += " " + fav_sql; + } else if (!AppUtils.isSuperUser(request)) { + // All reports + // If user is super user - gets unrestricted access to all reports + // (read_only gets overriden later) + // else - not super user - doesn't get access to private reports of + // other users (= Public reports); Admin users get edit right + // override later + //sql += public_sql; + sql += " " + public_sql; + } + + + + if (sortOrder.equals(AppConstants.RI_F_OWNER_ID)){ + //sql += " ORDER BY DECODE(nvl(cr.owner_id, cr.create_id), " + userID + //+ ", ' ', upper(au.first_name||' '||au.last_name)), upper(cr.title)"; + String sql_sort = Globals.getLoadReportSearchResultSort(); + sql+=" " + sql_sort; + } + else if (sortOrder.equals(AppConstants.RI_F_REPORT_ID)) + sql += " ORDER BY cr.rep_id"; + else if(sortOrder.equals(AppConstants.RI_F_REPORT_CREATE_DATE)) + sql += " ORDER BY cr.create_date"; + else if(sortOrder.equals(AppConstants.RI_F_PUBLIC)) + sql += " ORDER BY cr.public_yn desc"; + + else + // if(sortOrder.equals(AppConstants.RI_F_REPORT_NAME)) + sql += " ORDER BY upper(cr.title)"; + + sql = sql.replace("[rep_title_sql]", "cr.title"); + sql = sql.replace("[PRIVATE_ICON]", PRIVATE_ICON); + sql = sql.replace("[userID]", userID); + sql = sql.replace("[roleList.toString()]", roleList.toString()); + + //System.out.println("query is for search list is : " + sql); + DataSet ds = DbUtils.executeQuery(sql); + + ReportSearchResultJSON rsr = new ReportSearchResultJSON(0, 6, 7); + rsr.parseData(ds, request, 0, 20, 6, 7); + //saveCSVPageFile(request, rsr); + //rsr.truncateToPage(pageNo); + //saveCSVPageFile(request, rsr); + + return rsr; + } // loadReportSearchResult + + public ReportSearchResult loadFolderReportResult(HttpServletRequest request) + throws Exception { + String userID = AppUtils.getUserID(request); + String fReportID = nvl(AppUtils.getRequestValue(request, AppConstants.RI_F_REPORT_ID)); + String fReportName = nvl(AppUtils.getRequestValue(request, + AppConstants.RI_F_REPORT_NAME)); + String sortOrder = nvl(AppUtils.getRequestValue(request, AppConstants.RI_SORT_ORDER), + AppConstants.RI_F_REPORT_NAME); + + String menuId = nvl(AppUtils.getRequestValue(request, AppConstants.RI_LIST_CATEGORY)); + + boolean userOnly = AppUtils.getRequestFlag(request, AppConstants.RI_USER_REPORTS); + boolean publicOnly = AppUtils.getRequestFlag(request, AppConstants.RI_PUBLIC_REPORTS); + + int pageNo = 0; + try { + pageNo = Integer.parseInt(request.getParameter(AppConstants.RI_NEXT_PAGE)); + } catch (Exception e) { + } + + StringBuffer roleList = new StringBuffer(); + roleList.append("-1"); + String rep_title_sql = "''"; + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) + roleList.append("," + ((String) iter.next())); + // + /*String sql = "SELECT cr.rep_id, " + + "cr.rep_id report_id, " + + rep_title_sql+ + "||DECODE(cr.public_yn, 'Y', '', '" + + PRIVATE_ICON + + "')||cr.title||'' title, " + + "cr.descr, " + + "au.first_name||' '||au.last_name owner_name, " + + "TO_CHAR(cr.create_date, 'MM/DD/YYYY') create_date, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'N', NVL(ra.read_only_yn, 'Y')) read_only_yn, " + + "DECODE(NVL(cr.owner_id, cr.create_id), " + + userID + + ", 'Y', 'N') user_is_owner_yn " + + "FROM cr_report cr, " + + "app_user au, " + + "(SELECT rep_id, " + + "MIN(read_only_yn) read_only_yn " + + "FROM ((SELECT ua.rep_id, ua.read_only_yn FROM cr_report_access ua WHERE ua.user_id = " + + userID + + ") " + + "UNION ALL " + + "(SELECT ra.rep_id, ra.read_only_yn FROM cr_report_access ra WHERE ra.role_id IN (" + + roleList.toString() + "))" + ") report_access " + "GROUP BY rep_id) ra " + + "WHERE TO_CHAR(cr.rep_id) = nvl('" + fReportID + + "', TO_CHAR(cr.rep_id)) AND " + "UPPER(cr.title) LIKE UPPER('%" + + fReportName + "%') AND " + "nvl(cr.owner_id, cr.create_id) = au.user_id " + + "AND cr.rep_id = ra.rep_id (+) ";*/ + + String sql = Globals.getLoadFolderReportResult(); + sql = sql.replace("[rep_title_sql]", rep_title_sql); + sql = sql.replace("[PRIVATE_ICON]", PRIVATE_ICON); + sql = sql.replace("[userID]", userID); + sql = sql.replace("[roleList.toString()]", roleList.toString()); + sql = sql.replace("[fReportID]", fReportID); + sql = sql.replace("[fReportName]", fReportName); + + if (menuId.length() > 0){ + /*sql += "AND INSTR('|'||cr.menu_id||'|', '|'||'" + menuId + "'||'|') > 0 " + * +"AND + * cr.menu_approved_yn = + * 'Y' " + ;*/ + String sql_add = Globals.getLoadReportSearchInstr(); + sql+= sql_add; + } + + //String user_sql = " AND nvl(cr.owner_id, cr.create_id) = " + userID; + String user_sql = Globals.getLoadReportSearchResultUser(); + + //String public_sql = " AND (nvl(cr.owner_id, cr.create_id) = " + userID + // + " OR cr.public_yn = 'Y' OR ra.read_only_yn IS NOT NULL)"; + String public_sql = Globals.getLoadReportSearchResultPublic(); + + if (userOnly) + // My reports - user is owner + sql += user_sql; + else if (publicOnly) + // Public reports - user has read or write access to the report + // (user is owner or report is public or user has explicit user or + // role access) + if (!AppUtils.isSuperUser(request)) + sql += public_sql; + else if (!AppUtils.isSuperUser(request)) { + // All reports + // If user is super user - gets unrestricted access to all reports + // (read_only gets overriden later) + // else - not super user - doesn't get access to private reports of + // other users (= Public reports); Admin users get edit right + // override later + sql += public_sql; + } + + if (sortOrder.equals(AppConstants.RI_F_OWNER_ID)){ + + + //sql += " ORDER BY DECODE(nvl(cr.owner_id, cr.create_id), " + userID + // + ", ' ', au.first_name||' '||au.last_name), cr.title"; + + String sql_sort = Globals.getLoadFolderReportResultSort(); + sql+=sql_sort; + } + else if (sortOrder.equals(AppConstants.RI_F_REPORT_ID)) + sql += " ORDER BY cr.rep_id"; + else if(sortOrder.equals(AppConstants.RI_F_REPORT_CREATE_DATE)) + sql += " ORDER BY cr.create_date"; + else if(sortOrder.equals(AppConstants.RI_F_PUBLIC)) + sql += " ORDER BY cr.public_yn desc"; + else + // if(sortOrder.equals(AppConstants.RI_F_REPORT_NAME)) + sql += " ORDER BY cr.title"; + + //System.out.println("query is for search list is : " + sql); + DataSet ds = DbUtils.executeQuery(sql); + + ReportSearchResult rsr = new ReportSearchResult(-1, 6, 7); + rsr.parseData(ds, request); + saveCSVPageFile(request, rsr); + rsr.truncateToPage(pageNo); + saveCSVPageFile(request, rsr); + + return rsr; + } // loadFolderReportResult + + +} // SearchHandler diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ChartSeqComparator.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ChartSeqComparator.java new file mode 100644 index 00000000..7e6246ce --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ChartSeqComparator.java @@ -0,0 +1,67 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.Comparator; + +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; + +public class ChartSeqComparator implements Comparator { + + public int compare(Object o1, Object o2) { + DataColumnType dct1 = (DataColumnType) o1; + DataColumnType dct2 = (DataColumnType) o2; + + int dct1ChartSeq = (dct1.getChartSeq()!=null ? dct1.getChartSeq().intValue(): -1); + int dct2ChartSeq = (dct2.getChartSeq()!=null ? dct2.getChartSeq().intValue(): -1); + + if (dct1ChartSeq == dct2ChartSeq) + return 0; + else if (dct1ChartSeq < 0) // Position columns + // with seq -1 at + // the end + return 1; + else if (dct2ChartSeq < 0) + return -1; + else if (dct1ChartSeq < dct2ChartSeq) + return -1; + else + return 1; + } // compare + +} // ChartSeqComparator diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameColLookup.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameColLookup.java new file mode 100644 index 00000000..aef09763 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameColLookup.java @@ -0,0 +1,55 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.*; + +public class IdNameColLookup extends IdNameLookup { + private String colId = null; + + public IdNameColLookup(String colId, String dbTableName, String dbIdField, + String dbNameField, String dbSortByField) { + super(dbTableName, dbIdField, dbNameField, dbSortByField, false); + this.colId = colId; + } // IdNameColLookup + + public String getColId() { + return colId; + } + +} // IdNameColLookup diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameList.java new file mode 100644 index 00000000..3e88a8c1 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameList.java @@ -0,0 +1,201 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.*; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.system.*; + +public class IdNameList extends Vector { + protected int pageNo = -1; + + protected int pageSize = 50; + + private int nextElemIdx = 0; + + private String oldSql = null; + + public IdNameList() { + super(); + pageSize = Globals.getFormFieldsListSize(); + } // IdNameList + + public int getPageNo() { + return pageNo; + } // getPageNo + + public int getPageSize() { + return pageSize; + } // getPageSize + + public int getDataSize() { + return size(); + } // getDataSize + + public void resetNext() { + resetNext(0); + } // resetNext + + public void resetNext(int toPos) { + nextElemIdx = toPos; + } // resetNext + + public boolean hasNext() { + return (nextElemIdx < size()); + } // hasNext + + public IdNameValue getNext() { + return hasNext() ? getValue(nextElemIdx++) : null; + } // getNext + + public int getCount() { + return size(); + } // getCount + + public IdNameValue getValue(int idx) { + return (IdNameValue) get(idx); + } // getValue + + public void addValue(IdNameValue value) { + add(value); + } // addValue + + public void addValue(String id, String name, boolean defaultValue) { + addValue(new IdNameValue(id, name, defaultValue)); + } // addValue + + public void addValue(String id, String name, boolean defaultValue, boolean readOnly) { + addValue(new IdNameValue(id, name, defaultValue, readOnly)); + } // addValue + + public void addValue(String id, String name) { + addValue(new IdNameValue(id, name)); + } // addValue + + public void addValue(int idx, IdNameValue value) { + add(idx, value); + } // addValue + + public void addValue(int idx, String id, String name) { + addValue(idx, new IdNameValue(id, name)); + } // addValue + + public String getNameById(String id) { + for (int i = 0; i < size(); i++) { + IdNameValue value = getValue(i); + if (value.getId().equals(id)) + return value.getName(); + } // for + + return null; + } // getNameById + + public String getIdByName(String name) { + for (int i = 0; i < size(); i++) { + IdNameValue value = getValue(i); + if (value.getName().equals(name)) + return value.getId(); + } // for + + return null; + } // getIdByName + + public boolean canUseSearchString() { + return true; + } + + public String getBaseSQL() { + return null; + } + + public String getOldSql() { + return oldSql; + } + + public void setOldSql(String oldSql) { + this.oldSql = oldSql; + } + public String getBaseWholeSQL() { + return null; + } + + public String getBaseWholeReadonlySQL() { + return null; + } + + public String getBaseSQLForPDFExcel(boolean multiParam) { + return null; + } + + public void clearData() { + } + + public void loadData(String pageNo, String searchString, String dbInfo,String userId) throws RaptorException {} + public void loadUserData(String pageNo, String searchString, String dbInfo,String userId) throws RaptorException {} + public void loadUserData(int pageNo, String searchString, String dbInfo, String userId) throws RaptorException {} + public void loadUserData(String searchString, int pageNo, String dbInfo) throws RaptorException {} + + public void loadData(String pageNo) throws RaptorException {} + public void loadData(int pageNo) throws RaptorException {} + public void loadData(String pageNo, String searchString, String dbInfo) throws RaptorException {} + private void loadData(int pageNo, String searchString, String dbInfo) throws RaptorException {} + +/* + public void loadData(int pageNo, String dbInfo) throws RaptorException { + } + + public void loadUserData(int pageNo, String dbInfo, String userId) throws RaptorException { + } + + + + + public void loadData(String pageNo, String searchString) throws RaptorException { + } + +*/ + protected static String nvl(String s) { + return (s == null) ? "" : s; + } + + protected static String nvl(String s, String sDefault) { + return nvl(s).equals("") ? sDefault : s; + } + +} // IdNameList diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameLookup.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameLookup.java new file mode 100644 index 00000000..69179e33 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameLookup.java @@ -0,0 +1,222 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.*; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.model.*; +import org.onap.portalsdk.analytics.model.runtime.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; + +public class IdNameLookup extends IdNameSql { + private String dbTableName = null; + + private String dbIdField = null; + + private String dbNameField = null; + + private String dbSortByField = null; + + private String searchString = ""; + + public IdNameLookup(int pageNo, String dbTableName, String dbIdField, String dbNameField) { + this(dbTableName, dbIdField, dbNameField); + + this.pageNo = pageNo; + } // IdNameLookup + + public IdNameLookup(String dbTableName, String dbIdField, String dbNameField) { + this(dbTableName, dbIdField, dbNameField, null, "", false); + } // IdNameLookup + +/* public IdNameLookup(String dbTableName, String dbIdField, String dbNameField, + String dbSortByField) { + super(); + + setDbTableName(dbTableName); + setDbIdField(dbIdField); + setDbNameField(dbNameField); + setDbSortByField(dbSortByField); + updateParentSQL(); + } // IdNameLookup + + public IdNameLookup(String dbTableName, String dbIdField, String dbNameField, + String dbSortByField, String defaultSQL) { + super(); + + setDbTableName(dbTableName); + setDbIdField(dbIdField); + setDbNameField(dbNameField); + setDbSortByField(dbSortByField); + setDefaultSQL(defaultSQL); + updateParentSQL(); + } // IdNameLookup +*/ + public IdNameLookup(String dbTableName, String dbIdField, String dbNameField, + String dbSortByField, boolean textField) { + super(); + setDbTableName(dbTableName); + setDbIdField(dbIdField); + setDbNameField(dbNameField); + setDbSortByField(dbSortByField); + if(!textField) + updateParentSQL(); + } // IdNameLookup + + public IdNameLookup(String dbTableName, String dbIdField, String dbNameField, + String dbSortByField, String defaultSQL, boolean textField) { + super(); + + setDbTableName(dbTableName); + setDbIdField(dbIdField); + setDbNameField(dbNameField); + setDbSortByField(dbSortByField); + setDefaultSQL(defaultSQL); + if(!textField) + updateParentSQL(); + } // IdNameLookup + + public String getDbTableName() { + return dbTableName; + } + + public String getDbIdField() { + return dbIdField; + } + + public String getDbNameField() { + return dbNameField; + } + + public String getDbSortByField() { + return dbSortByField; + } + + public void setDbTableName(String dbTableName) { + this.dbTableName = dbTableName; + } + + public void setDbIdField(String dbIdField) { + this.dbIdField = dbIdField; + } + + public void setDbNameField(String dbNameField) { + this.dbNameField = dbNameField; + } + + + public void setDbSortByField(String dbSortByField) { + this.dbSortByField = dbSortByField; + } + + private void updateParentSQL() { + String sql_start = "SELECT DISTINCT " + dbIdField + " id, " + dbNameField + " name"; + String sql_end = " FROM " + dbTableName + " WHERE " + dbIdField + " IS NOT NULL"; + if (searchString.length() > 0) + sql_end += " AND UPPER(" + dbNameField + ") LIKE UPPER('" + searchString + "')"; + + String sql_middle = ""; + if (dbSortByField != null && (!dbSortByField.equals(dbNameField)) && (!dbSortByField.trim().startsWith("TO_DATE"))) + sql_middle = ", " + + ((dbSortByField.indexOf(' ') > 0) ? dbSortByField.substring(0, + dbSortByField.indexOf(' ')) : dbSortByField) + " sort"; + + setSqlNoOrderBy(sql_start + sql_middle + sql_end); +// System.out.println("SQL Start " + sql_start); +// System.out.println("SQL Middle " + sql_middle); +// System.out.println("SQL End " + sql_end); +// System.out.println("DbSortByField " + dbSortByField); + + setSql(sql_start + sql_middle + sql_end + " ORDER BY " + nvl(dbSortByField, "2")); + } // updateParentSQL + + public boolean canUseSearchString() { + return true; + } + + public String getBaseSQL() { + return "SELECT " + dbIdField + " FROM " + dbTableName; + } // getBaseSQL + + public String getBaseWholeSQL() { + return "SELECT " + dbIdField + " FROM " + dbTableName; + } // getBaseSQL + + /* + public void loadData(int pageNo) throws RaptorException { + loadData(pageNo, ""); + } // loadData + + public void loadData(String pageNo) throws RaptorException { + loadData(pageNo, ""); + } // loadData +*/ + + public void loadData(String pageNo, String searchString, String dbInfo) throws RaptorException { + int iPageNo = 0; + + if (pageNo != null) + try { + iPageNo = Integer.parseInt(pageNo); + } catch (NumberFormatException e) { + } + + loadData(iPageNo, searchString, dbInfo); + } // loadData + + private void loadData(int pageNo, String searchString, String dbInfo) throws RaptorException { + boolean dataAlreadyLoaded = (this.pageNo == pageNo) + && (this.searchString.equals(searchString)); + + if (dataAlreadyLoaded) + return; + + if (!this.searchString.equals(searchString)) { + dataSize = -1; + pageNo = 0; + } // if + + this.pageNo = pageNo; + this.searchString = searchString; + updateParentSQL(); + performLoadData(searchString,dbInfo); + } // loadData + +} // IdNameLookup diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameSql.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameSql.java new file mode 100644 index 00000000..ec063a80 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameSql.java @@ -0,0 +1,417 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * IdNameSql.java - This class is used to generate form field items when sql is provided. + * ------------------------------------------------------------------------------------------- + * + * Created By : Stan Pishamanov + * Modified By: Sundar Ramalingam + * + * Changes + * ------- + * 08-Jun-2009 : Version 8.3 (RS); Rownum references is avoided for reports connnecting to Daytona + * Database. + * + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.HashMap; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class IdNameSql extends IdNameList { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(IdNameSql.class); + + protected int dataSize = -1; + + protected int dataSizeUsedInPopup = -1; + + private String sql = null; + + private String oldSql = null; + + private String defaultSQL = null; + + private String sqlNoOrderBy = null; + + public IdNameSql(int pageNo, String sql, String defaultSQL) { + this(sql,defaultSQL); + this.pageNo = pageNo; + } // IdNameSql + + public IdNameSql(String sql) { + this(); + setSql(sql); + } // IdNameSql + + public IdNameSql(String sql, String defaultSQL) { + this(); + setDefaultSQL(defaultSQL); + setSql(sql); + } // IdNameSql + + protected IdNameSql() { + super(); + } // IdNameSql + + public boolean canUseSearchString() { + return true; + } + + public String getSql() { + return sql; + } + + public String getOldSql() { + return oldSql; + } + + public String getBaseSQL() { + return "SELECT id FROM (" + sql + ") xid"; + } + + public String getBaseWholeSQL() { + return "SELECT id, name FROM (" + sql + ") xid"; + } + + public String getBaseWholeReadonlySQL() { + return "SELECT id, name, ff_readonly FROM (" + sql + ") xid"; + } + + public String getBaseSQLForPDFExcel(boolean multiParam) { + if(!multiParam) + return "SELECT id, name FROM (" + sql + ") xid where id = '[VALUE]'"; + else + return "SELECT id, name FROM (" + sql + ") xid where id in [VALUE]"; + + } + + // public String getSqlNoOrderBy() { return sqlNoOrderBy; } + + protected void setSql(String sql) { + this.sql = sql; + } + + public void setOldSql(String oldSql) { + this.oldSql = oldSql; + } + + protected void setSqlNoOrderBy(String sql) { + this.sqlNoOrderBy = sql; + } + + public int getDataSize() { + return dataSize; + } // getDataSize + + public int getDataSizeUsedinPopup() { + return dataSizeUsedInPopup; + } // getDataSizeUsedinPopup + + public void setDataSizeUsedinPopup(int dataSizePop) { + this.dataSizeUsedInPopup = dataSizePop; + } // getDataSizeUsedinPopup + + public void clearData() { + removeAllElements(); + } // clearData + +/* public void loadData(String pageNo, String searchString, String dbInfo, String userId) throws RaptorException { + // setSql(searchString); + loadUserData(pageNo, searchString, dbInfo,userId); + } // loadData +*/ + + public void loadUserData(String pageNo, String searchString, String dbInfo,String userId) throws RaptorException { + int iPageNo = 0; + + if (pageNo != null) + try { + iPageNo = Integer.parseInt(pageNo); + } catch (NumberFormatException e) { + } + + loadUserData(iPageNo, searchString, dbInfo,userId); + } // loadData + + public void loadUserData(int pageNo, String searchString, String dbInfo, String userId) throws RaptorException { + if(userId!=null) { + String sql = Utils.replaceInString(getSql(), "[LOGGED_USERID]", userId); + //String defaultSQL = ""; + if(defaultSQL!=null && (defaultSQL.trim().toLowerCase().startsWith("select")) ) { + defaultSQL = Utils.replaceInString(getDefaultSQL(), "[LOGGED_USERID]", userId); + setDefaultSQL(defaultSQL); + } + setSql(sql); + + } + loadData(searchString,pageNo, dbInfo); + } + + public void loadData(String searchString, int pageNo, String dbInfo) throws RaptorException { + + //boolean dataAlreadyLoaded = (this.pageNo == pageNo); + + //if (dataAlreadyLoaded) + // return; + + this.pageNo = pageNo; + + performLoadData(searchString, dbInfo); + } // loadData + + protected void performLoadData(String searchString, String dbInfo) throws RaptorException { + long currentTime = System.currentTimeMillis(); + int startRow = 0; + int endRow = dataSize; + String readOnlyInSql = "ff_readonly"; + String dbType = Globals.getDBType(); + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + if (pageNo >= 0) { + startRow = pageNo * pageSize; + endRow = startRow + pageSize; + } // if + DataSet ds = null; + DataSet dsDefault = null; + StringBuffer query = new StringBuffer(""); + StringBuffer queryPop = new StringBuffer(""); + String sql = getSql(); + boolean avail_ReadOnly = (sql.toLowerCase().indexOf(readOnlyInSql)!=-1); + + if (dbType.equals("DAYTONA") && getSql().trim().toUpperCase().startsWith("SELECT")) { + query.append(getSql()); + } else { + if(avail_ReadOnly) // need to add readonlyinsql + if(!(Globals.isMySQL() && dbType.equals(AppConstants.MYSQL))) + query.append("SELECT rownum, id, name, " + readOnlyInSql +" FROM ("+ Globals.getReportSqlForFormfield() +", " + readOnlyInSql + " FROM (" + sql + + ") x "+ Globals.getReportSqlForFormfieldSuffix()); + else + query.append("SELECT id, name, " + readOnlyInSql +" FROM ("+ Globals.getReportSqlForFormfield() +", " + readOnlyInSql + " FROM (" + sql + + ") x "+ Globals.getReportSqlForFormfieldSuffix()); + else + query.append(Globals.getReportSqlForFormfieldPrefix()+ Globals.getReportSqlForFormfield() +" FROM (" + sql + + ") x " + Globals.getReportSqlForFormfieldSuffix()); + if(pageNo!= -2 && (dbType.equals(AppConstants.ORACLE)) ) { + query.append(" WHERE rownum <= " + ((dataSize < 0) ? (endRow + 1) : endRow)); + } else if(pageNo!=2 && (dbType.equals(AppConstants.POSTGRESQL))) { + query.append(" LIMIT " + ((dataSize < 0) ? (endRow + 1) : endRow)); + + } else if(pageNo!=2 && (dbType.equals(AppConstants.MYSQL))) { + query.append(" LIMIT " + startRow); //((dataSize < 0) ? (endRow + 1) : endRow) + + } + if(searchString!=null && searchString.length()>0 && !searchString.equals("%")) { + if(pageNo == -2) query.append(" WHERE "); + else query.append(" and "); + query.append("name like '"+ searchString +"'"); + } + if(dbType.equals(AppConstants.POSTGRESQL)) { + query.append(") xx OFFSET " + startRow); + } else if(dbType.equals(AppConstants.MYSQL)) { + query.append(" ," + ((dataSize < 0) ? (endRow + 1) : endRow) +") xx"); + } else if(dbType.equals(AppConstants.ORACLE)) + query.append(") xx WHERE rownum>" + startRow); + } + String defaultQuery =""; + boolean readOnly = true; + ds = ConnectionUtils.getDataSet(query.toString(), dbInfo); + + // if ( (dbInfo!=null) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + // Globals.getRDbUtils().setDBPrefix(dbInfo); + // ds = RemDbUtils.executeQuery(query); + // } + // else + // ds = DbUtils.executeQuery(query); + clearData(); + if (dbType.equals("DAYTONA") && (getDefaultSQL()!=null && getDefaultSQL().trim().toUpperCase().startsWith("SELECT"))) { + defaultQuery = getDefaultSQL(); + } else if (getDefaultSQL()!=null && getDefaultSQL().length()>10 && getDefaultSQL().substring(0,10).toLowerCase().startsWith("select")) { + defaultQuery = Globals.getReportSqlForFormfieldPrefix()+ Globals.getReportSqlForFormfield() +" FROM (" + getDefaultSQL() + + ") x " + + ") xx "; + logger.debug(EELFLoggerDelegate.debugLogger, ("Default Query " +defaultQuery)); + } + HashMap defaultMap = new HashMap(); + if(!isNull(defaultQuery)) { + dsDefault = ConnectionUtils.getDataSet(defaultQuery, dbInfo); + if(dsDefault!=null && dsDefault.getRowCount()>0) { + for (int i = 0; i < dsDefault.getRowCount(); i++) { + //addValue(dsDefault.getString(i, 0), dsDefault.getString(i, 1), true); + defaultMap.put(dsDefault.getString(i, "id"), dsDefault.getString(i, "name")); + } + } + } + + for (int i = 0; i < ((pageNo!=-2)?Math.min(ds.getRowCount(), pageSize):ds.getRowCount()); i++) { + //if(getCount()==0) + // addValue(ds.getString(i, 0), ds.getString(i, 1)); + if(i==0 && avail_ReadOnly) + readOnly = ds.getString(i, "ff_readonly").toUpperCase().startsWith("Y")||ds.getString(i, "ff_readonly").toUpperCase().startsWith("T"); + if(getCount()>=0) {//&& !((IdNameValue)getValue(0)).getId().equals(ds.getString(i, 0))) + if(defaultMap.get(ds.getString(i, "id")) == null) + if(avail_ReadOnly) + addValue(ds.getString(i, "id"), ds.getString(i, "name"), false, readOnly); + else + addValue(ds.getString(i, "id"), ds.getString(i, "name"), false); + else + if(avail_ReadOnly) + addValue(ds.getString(i, "id"), ds.getString(i, "name"), true, readOnly); + else + addValue(ds.getString(i, "id"), ds.getString(i, "name"), true); + } + } + + if (!(dbType.equals("DAYTONA"))) { + if (ds.getRowCount() <= pageSize) { + if(dsDefault!=null && dsDefault.getRowCount()>0) + dataSize = ds.getRowCount()+1; + else + dataSize = ds.getRowCount(); + + //System.out.println("IDNAME SQL COUNT");*/ + if(searchString!=null && searchString.length()>0 && !searchString.equals("%")) { + queryPop = new StringBuffer(""); + queryPop.append("SELECT count(*) num_rows FROM ("+ Globals.getReportSqlForFormfield() +", name FROM (" + sql + + ") x "); + if(searchString!=null && searchString.length()>0 && !searchString.equals("%")) + queryPop.append(" where name like '"+ searchString +"'"); + queryPop.append(") xx "); + + ds = ConnectionUtils.getDataSet(queryPop.toString(), dbInfo); + try { + dataSizeUsedInPopup = Integer.parseInt(ds.getString(0, 0)); + } catch (NumberFormatException e) { + } + } else if(dataSizeUsedInPopup == -3) { + queryPop = new StringBuffer(""); + //System.out.println("IDNAME SQL COUNT"); + //queryPop.append("SELECT count(*) num_rows FROM ("+query.toString()+") x"); + queryPop.append("SELECT count(*) num_rows FROM ("+ Globals.getReportSqlForFormfield() +", name FROM (" + sql + + ") x "); + queryPop.append(") xx "); + + ds = ConnectionUtils.getDataSet(queryPop.toString(), dbInfo); + // if ( (dbInfo!=null) && + // (!dbInfo.equals(AppConstants.DB_LOCAL))) { + // Globals.getRDbUtils().setDBPrefix(dbInfo); + // ds = RemDbUtils.executeQuery(query); + // } + // else + // ds = DbUtils.executeQuery(query); + // + try { + dataSizeUsedInPopup = Integer.parseInt(ds.getString(0, 0)); + } catch (NumberFormatException e) { + } + + } + + } else { + //pageNo = 0; + if(pageNo!= -2) { + queryPop = new StringBuffer(""); + //System.out.println("IDNAME SQL COUNT"); + //queryPop.append("SELECT count(*) num_rows FROM ("+query.toString()+") x"); + queryPop.append("SELECT count(*) num_rows FROM ("+ Globals.getReportSqlForFormfield() +" FROM (" + sql + + ") x "); + queryPop.append(") xx "); + + ds = ConnectionUtils.getDataSet(queryPop.toString(), dbInfo); + // if ( (dbInfo!=null) && + // (!dbInfo.equals(AppConstants.DB_LOCAL))) { + // Globals.getRDbUtils().setDBPrefix(dbInfo); + // ds = RemDbUtils.executeQuery(query); + // } + // else + // ds = DbUtils.executeQuery(query); + // + try { + dataSize = Integer.parseInt(ds.getString(0, 0)); + dataSizeUsedInPopup = Integer.parseInt(ds.getString(0, 0)); + } catch (NumberFormatException e) { + } + } + } // else + } // dataSize < 0 + long totalTime = System.currentTimeMillis() - currentTime; + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] ------->Time Taken to the above formfield Query (+ count Query if any) --- " + totalTime)); + } // performLoadData + + + public String getDefaultSQL() { + + return defaultSQL; + } + + + public void setDefaultSQL(String defaultSQL) { + + this.defaultSQL = defaultSQL; + } + + public void setSQL(String sql_) + { + this.sql = sql_; + } + + public static boolean isNull(String a) { + if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) + return true; + else + return false; + } +} // IdNameSql diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameValue.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameValue.java new file mode 100644 index 00000000..2e1dfb13 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/IdNameValue.java @@ -0,0 +1,118 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +public class IdNameValue { + private String id = null; + + private String name = null; + + private boolean defaultValue = false; + + private boolean readOnly = false; + + public IdNameValue() { + super(); + } + + public IdNameValue(String id, String name) { + this(); + + setId(id); + setName(name); + setDefaultValue(false); + + } // IdNameValue + + public IdNameValue(String id, String name, boolean defaultValue) { + this(); + + setId(id); + setName(name); + setDefaultValue(defaultValue); + } // IdNameValue + + public IdNameValue(String id, String name, boolean defaultValue, boolean readOnly) { + this(); + + setId(id); + setName(name); + setDefaultValue(defaultValue); + setReadOnly(readOnly); + } // IdNameValue + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public void setId(String id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(boolean defaultValue) { + this.defaultValue = defaultValue; + } + + /** + * @return the visibility + */ + public boolean isReadOnly() { + return readOnly; + } + + /** + * @param readOnly the value to set + */ + public void setReadOnly(boolean readOnly) { + this.readOnly = readOnly; + } + + +} // IdNameValue diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/NameComparator.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/NameComparator.java new file mode 100644 index 00000000..ed0c3975 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/NameComparator.java @@ -0,0 +1,52 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.Comparator; + +import org.onap.portalsdk.analytics.model.base.IdNameValue; + +public class NameComparator implements Comparator { + + public int compare(Object o1, Object o2) { + return ((IdNameValue) o1).getName() + .compareToIgnoreCase((((IdNameValue) o2).getName())); + } // compare + +} // NameComparator + diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderBySeqComparator.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderBySeqComparator.java new file mode 100644 index 00000000..3ec14321 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderBySeqComparator.java @@ -0,0 +1,55 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.Comparator; + +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; + +public class OrderBySeqComparator implements Comparator { + + public int compare(Object o1, Object o2) { + if (((DataColumnType) o1).getOrderBySeq() == ((DataColumnType) o2).getOrderBySeq()) + return 0; + else if (((DataColumnType) o1).getOrderBySeq() < ((DataColumnType) o2).getOrderBySeq()) + return -1; + else + return 1; + } // compare + +} // OrderSeqComparator diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderSeqComparator.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderSeqComparator.java new file mode 100644 index 00000000..66aa2a22 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/OrderSeqComparator.java @@ -0,0 +1,55 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.Comparator; + +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; + +public class OrderSeqComparator implements Comparator { + + public int compare(Object o1, Object o2) { + if (((DataColumnType) o1).getOrderSeq() == ((DataColumnType) o2).getOrderSeq()) + return 0; + else if (((DataColumnType) o1).getOrderSeq() < ((DataColumnType) o2).getOrderSeq()) + return -1; + else + return 1; + } // compare + +} // OrderSeqComparator diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportSecurity.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportSecurity.java new file mode 100644 index 00000000..a7ef8592 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportSecurity.java @@ -0,0 +1,424 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.util.Hashtable; +import java.util.Iterator; +import java.util.Vector; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.UserAccessException; +import org.onap.portalsdk.analytics.model.definition.SecurityEntry; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class ReportSecurity extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportSecurity.class); + + private String reportID = null; + + private String ownerID = null; + + private String createID = null; + + private String createDate = null; + + private String updateID = null; + + private String updateDate = null; + + private boolean isPublic = false; + + private Hashtable reportRoles = new Hashtable(); + + private Hashtable reportUsers = new Hashtable(); + + public ReportSecurity(String reportID) { + this(reportID, null, null, null, null, null, false); + } // ReportSecurity + + public ReportSecurity(String reportID, String ownerID, String createID, String createDate, + String updateID, String updateDate, boolean isPublic) { + super(); + + if (ownerID == null) + // Need to load the report record from the database + if (!reportID.equals("-1")) + try { + /*DataSet ds = DbUtils + .executeQuery("SELECT NVL(cr.owner_id, cr.create_id) owner_id, cr.create_id, TO_CHAR(cr.create_date, '" + + Globals.getOracleTimeFormat() + + "') create_date, maint_id, TO_CHAR(cr.maint_date, '" + + Globals.getOracleTimeFormat() + + "') update_date, cr.public_yn FROM cr_report cr WHERE cr.rep_id=" + + reportID);*/ + String sql = Globals.getReportSecurity(); + sql = sql.replace("[rw.getReportID()]", reportID); + DataSet ds = DbUtils.executeQuery(sql); + ownerID = ds.getString(0, 0); + createID = ds.getString(0, 1); + createDate = ds.getString(0, 2); + updateID = ds.getString(0, 3); + updateDate = ds.getString(0, 4); + isPublic = nvl(ds.getString(0, 5)).equals("Y"); + } catch (Exception e) { + String eMsg = "ReportSecurity.ReportSecurity: Unable to load report record details. Exception: " + + e.getMessage(); + //Log.write(eMsg); + logger.debug(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] "+eMsg)); + throw new RuntimeException(eMsg); + } + + this.reportID = reportID; + this.ownerID = ownerID; + this.createID = createID; + this.createDate = createDate; + this.updateID = updateID; + this.updateDate = updateDate; + this.isPublic = isPublic; + + /* + * reportUsers.put(ownerID, "N"); // Owner has full access + * reportRoles.put(AppUtils.getSuperRoleID(), "N"); // Super role has + * full access for(Iterator iter=AppUtils.getAdminRoleIDs().iterator(); + * iter.hasNext(); ) reportRoles.put((String) iter.next(), "Y"); // + * Admin role(s) have read-only access + */ + try { + String reportUserAccessSql= Globals.getReportUserAccess(); + reportUserAccessSql = reportUserAccessSql.replace("[reportID]", reportID); + + DataSet ds = DbUtils + .executeQuery(reportUserAccessSql); + for (int i = 0; i < ds.getRowCount(); i++) { + String roleID = nvl(ds.getString(i, 0)); + if (roleID.length() > 0) + reportRoles.put(roleID, ds.getString(i, 2)); + + String userID = nvl(ds.getString(i, 1)); + if (userID.length() > 0) + reportUsers.put(userID, ds.getString(i, 2)); + } // for + } catch (Exception e) { + String eMsg = "ReportSecurity.ReportSecurity: Unable to load access priviledges - error " + + e.getMessage(); + logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] " + eMsg)); + throw new RuntimeException(eMsg); + } + } // ReportSecurity + + public String getOwnerID() { + return ownerID; + } + + public String getCreateID() { + return createID; + } + + public String getCreateDate() { + return createDate; + } + + public String getUpdateID() { + return updateID; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setOwnerID(String ownerID) { + this.ownerID = ownerID; + } + + public void setPublic(boolean isPublic) { + this.isPublic = isPublic; + } + + public void reportCreate(String reportID, String userID, boolean isPublic) { + this.reportID = reportID; + this.ownerID = userID; + this.createID = userID; + this.createDate = Utils.getCurrentDateTime(); + this.updateID = userID; + this.updateDate = this.createDate; + this.isPublic = isPublic; + } // reportCreate + + public void reportUpdate(HttpServletRequest request) throws RaptorException { + checkUserWriteAccess(request); + String userID = AppUtils.getUserID(request); + this.updateID = userID; + this.updateDate = Utils.getCurrentDateTime(); + } // reportUpdate + + /** ************************************************************* */ + + public Vector getReportUsers(HttpServletRequest request) throws RaptorException { + HttpSession session = request.getSession(); + String query = Globals.getCustomizedScheduleQueryForUsers(); + String[] sessionParameters = Globals.getSessionParams().split(","); + session.setAttribute("login_id", AppUtils.getUserBackdoorLoginId(request)); + String param = ""; + for (int i = 0; i < sessionParameters.length; i++) { + param = (String)session.getAttribute(sessionParameters[0]); + query = Utils.replaceInString(query, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + } + boolean isAdmin = AppUtils.isAdminUser(request); + Vector allUsers = AppUtils.getAllUsers(query,param, isAdmin); + Vector rUsers = new Vector(allUsers.size()); + + for (Iterator iter = allUsers.iterator(); iter.hasNext();) { + IdNameValue user = (IdNameValue) iter.next(); + String readOnlyAccess = (String) reportUsers.get(user.getId()); + if (readOnlyAccess != null) + rUsers.add(new SecurityEntry(user.getId(), user.getName(), readOnlyAccess + .equals("Y"))); + } // for + + return rUsers; + } // getReportUsers + + public Vector getReportRoles(HttpServletRequest request) throws RaptorException { + HttpSession session = request.getSession(); + String query = Globals.getCustomizedScheduleQueryForRoles(); + String[] sessionParameters = Globals.getSessionParams().split(","); + String param = ""; + for (int i = 0; i < sessionParameters.length; i++) { + param = (String)session.getAttribute(sessionParameters[0]); + query = Utils.replaceInString(query, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + + } + boolean isAdmin = AppUtils.isAdminUser(request); + Vector allRoles = AppUtils.getAllRoles(query, param, isAdmin); + Vector rRoles = new Vector(allRoles.size()); + + for (Iterator iter = allRoles.iterator(); iter.hasNext();) { + IdNameValue role = (IdNameValue) iter.next(); + String readOnlyAccess = (String) reportRoles.get(role.getId()); + if (readOnlyAccess != null) + rRoles.add(new SecurityEntry(role.getId(), role.getName(), readOnlyAccess + .equals("Y"))); + } // for + + return rRoles; + } // getReportRoles + + /** ************************************************************* */ + + private void validateReadOnlyAccess(String readOnlyAccess) throws Exception { + if (!(readOnlyAccess != null && (readOnlyAccess.equals("Y") || readOnlyAccess + .equals("N")))) + throw new RuntimeException( + "[ReportSecurity.validateReadOnlyAccess] Invalid parameter value"); + } // validateReadOnlyAccess + + public void addUserAccess(String userID, String readOnlyAccess) throws Exception { + validateReadOnlyAccess(readOnlyAccess); + reportUsers.put(userID, readOnlyAccess); + String addUserAccessSql= Globals.getAddUserAccess(); + addUserAccessSql = addUserAccessSql.replace("[reportID]", reportID); + addUserAccessSql = addUserAccessSql.replace("[userID]", userID); + addUserAccessSql = addUserAccessSql.replace("[readOnlyAccess]", readOnlyAccess); + DbUtils + .executeUpdate(addUserAccessSql); + } // addUserAccess + + public void updateUserAccess(String userID, String readOnlyAccess) throws Exception { + validateReadOnlyAccess(readOnlyAccess); + reportUsers.remove(userID); + reportUsers.put(userID, readOnlyAccess); + String updateUserAccessSql= Globals.getUpdateUserAccess(); + updateUserAccessSql = updateUserAccessSql.replace("[reportID]", reportID); + updateUserAccessSql = updateUserAccessSql.replace("[userID]", userID); + updateUserAccessSql = updateUserAccessSql.replace("[readOnlyAccess]", readOnlyAccess); + DbUtils.executeUpdate(updateUserAccessSql); + } // updateUserAccess + + public void removeUserAccess(String userID) throws Exception { + reportUsers.remove(userID); + + String removeUserAccessSql= Globals.getRemoveUserAccess(); + removeUserAccessSql = removeUserAccessSql.replace("[reportID]", reportID); + removeUserAccessSql = removeUserAccessSql.replace("[userID]", userID); + DbUtils.executeUpdate(removeUserAccessSql); + } // removeUserAccess + + public void addRoleAccess(String roleID, String readOnlyAccess) throws Exception { + validateReadOnlyAccess(readOnlyAccess); + reportRoles.put(roleID, readOnlyAccess); + String addRoleAccessSql= Globals.getAddRoleAccess(); + addRoleAccessSql = addRoleAccessSql.replace("[reportID]", reportID); + addRoleAccessSql = addRoleAccessSql.replace("[roleID]", roleID); + addRoleAccessSql = addRoleAccessSql.replace("[readOnlyAccess]", readOnlyAccess); + DbUtils + .executeUpdate(addRoleAccessSql); + } // addRoleAccess + + public void updateRoleAccess(String roleID, String readOnlyAccess) throws Exception { + validateReadOnlyAccess(readOnlyAccess); + reportRoles.remove(roleID); + reportRoles.put(roleID, readOnlyAccess); + String updateRoleAccessSql= Globals.getUpdateRoleAccess(); + updateRoleAccessSql = updateRoleAccessSql.replace("[reportID]", reportID); + updateRoleAccessSql = updateRoleAccessSql.replace("[roleID]", roleID); + updateRoleAccessSql = updateRoleAccessSql.replace("[readOnlyAccess]", readOnlyAccess); + DbUtils.executeUpdate(updateRoleAccessSql); + } // updateRoleAccess + + public void removeRoleAccess(String roleID) throws Exception { + reportRoles.remove(roleID); + String removeRoleAccessSql= Globals.getRemoveRoleAccess(); + removeRoleAccessSql = removeRoleAccessSql.replace("[reportID]", reportID); + removeRoleAccessSql = removeRoleAccessSql.replace("[roleID]", roleID); + DbUtils.executeUpdate(removeRoleAccessSql); + } // removeRoleAccess + + /** ************************************************************* */ + + public void checkUserReadAccess(HttpServletRequest request, String userID) throws RaptorException { + if(userID == null) + userID = AppUtils.getUserID(request); + if(userID != null) { + //userID = AppUtils.getUserID(request); + if (nvl(reportID).equals("-1")) + return; + + if (true) //todo: replace with proper check isPublic + return; + + if (userID.equals(ownerID)) + return; + + if (reportUsers.get(userID) != null) + return; + } + Vector userRoles = null; + String userName = null; + if(userID == null) { + userRoles = AppUtils.getUserRoles(request); + userName = AppUtils.getUserName(request); + userID = AppUtils.getUserID(request); + } else { + userRoles = AppUtils.getUserRoles(userID); + userName = AppUtils.getUserName(userID); + } + if (nvl(reportID).equals("-1")) + return; + + if (isPublic) + return; + + if (userID.equals(ownerID)) + return; + + if (reportUsers.get(userID) != null) + return; + + for (Iterator iter = userRoles.iterator(); iter.hasNext();) { + String userRole = (String) iter.next(); + if (nvl(userRole).equals(AppUtils.getSuperRoleID())) + return; + } + for (Iterator iter = userRoles.iterator(); iter.hasNext();) { + String userRole = (String) iter.next(); + + if (nvl(userRole).equals(AppUtils.getSuperRoleID())) + return; + + if (reportRoles.get(userRole) != null) + return; + + for (Iterator iterA = AppUtils.getAdminRoleIDs().iterator(); iterA.hasNext();) + if (nvl(userRole).equals((String) iterA.next())) + return; + } // for + + throw new UserAccessException(reportID, "[" + userID + "] " + + userName, AppConstants.UA_READ); + } // checkUserReadAccess + + public void checkUserWriteAccess(HttpServletRequest request) throws RaptorException { + String userID = AppUtils.getUserID(request); + if (nvl(reportID).equals("-1")) + return; + + if (userID.equals(ownerID)) + return; + + if (nvl((String) reportUsers.get(userID)).equals("N")) + return; + + for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) { + String userRole = (String) iter.next(); + + if (nvl(userRole).equals(AppUtils.getSuperRoleID())) + return; + + if (nvl((String) reportRoles.get(userRole)).equals("N")) + return; + + for (Iterator iterA = AppUtils.getAdminRoleIDs().iterator(); iterA.hasNext();) + if (nvl(userRole).equals((String) iterA.next())) + return; + } // for + + throw new UserAccessException(reportID, "[" + userID + "] " + + AppUtils.getUserName(request), AppConstants.UA_WRITE); + } // checkUserWriteAccess + + public void checkUserDeleteAccess(HttpServletRequest request) throws RaptorException { + String userID = AppUtils.getUserID(request); + if (Globals.getDeleteOnlyByOwner()) { + if (!userID.equals(ownerID)) + throw new UserAccessException(reportID, "[" + userID + "] " + + AppUtils.getUserName(request), AppConstants.UA_DELETE); + } else + checkUserWriteAccess(request); + } // checkUserDeleteAccess + +} // ReportSecurity diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportUserRole.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportUserRole.java new file mode 100644 index 00000000..2d6bd6d4 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportUserRole.java @@ -0,0 +1,135 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.io.*; +import java.sql.*; +import java.util.*; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.onap.portalsdk.analytics.controller.ActionHandler; +import org.onap.portalsdk.analytics.error.*; +import org.onap.portalsdk.analytics.model.base.*; +import org.onap.portalsdk.analytics.model.definition.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +@Entity +public class ReportUserRole extends org.onap.portalsdk.analytics.RaptorObject implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + private Long repId = null; + + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + private Long orderNo = null; + + private Long roleId = null; + + private Long userId = null; + + private String readOnlyYn = null; + + public ReportUserRole() { + super(); + } + + public ReportUserRole(Long repId, Long orderNo, Long roleId, Long userId, String readOnlyYn) { + super(); + this.repId = repId; + this.orderNo = orderNo; + this.roleId = roleId; + this.userId = userId; + this.readOnlyYn = readOnlyYn; + } + + public Long getRepId() { + return repId; + } + + public void setRepId(Long repId) { + this.repId = repId; + } + + public Long getOrderNo() { + return orderNo; + } + + public void setOrderNo(Long orderNo) { + this.orderNo = orderNo; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getReadOnlyYn() { + return readOnlyYn; + } + + public void setReadOnlyYn(String readOnlyYn) { + this.readOnlyYn = readOnlyYn; + } + + + +} \ No newline at end of file diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java new file mode 100644 index 00000000..7dcf1afc --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/base/ReportWrapper.java @@ -0,0 +1,5736 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.base; + +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.TreeSet; +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.transform.stream.StreamResult; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.RaptorRuntimeException; +import org.onap.portalsdk.analytics.error.UserDefinedException; +import org.onap.portalsdk.analytics.model.DataCache; +import org.onap.portalsdk.analytics.model.ReportLoader; +import org.onap.portalsdk.analytics.model.definition.TableSource; +import org.onap.portalsdk.analytics.model.runtime.FormField; +import org.onap.portalsdk.analytics.model.runtime.ReportParamValues; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.SQLCorrector; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.xmlobj.ChartAdditionalOptions; +import org.onap.portalsdk.analytics.xmlobj.ChartDrillFormfield; +import org.onap.portalsdk.analytics.xmlobj.ChartDrillOptions; +import org.onap.portalsdk.analytics.xmlobj.ColFilterList; +import org.onap.portalsdk.analytics.xmlobj.ColFilterType; +import org.onap.portalsdk.analytics.xmlobj.CustomReportType; +import org.onap.portalsdk.analytics.xmlobj.DashboardEditorList; +import org.onap.portalsdk.analytics.xmlobj.DashboardReports; +import org.onap.portalsdk.analytics.xmlobj.DashboardReportsNew; +import org.onap.portalsdk.analytics.xmlobj.DataColumnList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.DataSourceList; +import org.onap.portalsdk.analytics.xmlobj.DataSourceType; +import org.onap.portalsdk.analytics.xmlobj.DataminingOptions; +import org.onap.portalsdk.analytics.xmlobj.FormFieldList; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.analytics.xmlobj.FormatList; +import org.onap.portalsdk.analytics.xmlobj.FormatType; +import org.onap.portalsdk.analytics.xmlobj.JavascriptItemType; +import org.onap.portalsdk.analytics.xmlobj.JavascriptList; +import org.onap.portalsdk.analytics.xmlobj.Marker; +import org.onap.portalsdk.analytics.xmlobj.ObjectFactory; +import org.onap.portalsdk.analytics.xmlobj.PDFAdditionalOptions; +import org.onap.portalsdk.analytics.xmlobj.PredefinedValueList; +import org.onap.portalsdk.analytics.xmlobj.ReportMap; +import org.onap.portalsdk.analytics.xmlobj.Reports; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreList; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +/**
+ * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting)
+ *
+ * + * --------------------------------------------------------------------------------------------------
+ * ReportWrapper.java - This is the base class for the RAPTOR. This involves in creating,
+ * modifying, running RAPTOR reports.
+ * --------------------------------------------------------------------------------------------------
+ * + * + * Change Log

+ * + * 31-Aug-2009 : Version 8.5.1 (Sundar);
  • All the elements in the meta xml is copied to the target reports.
+ * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 27-Jul-2009 : Version 8.4 (Sundar);
  • verifySQLBasedReportAccess method checks for Admin user instead of super user.
+ * 09-Jul-2009 : Version 8.4 (Sundar);
  • Bug due to parsing and removing formfields from "and" is bulletproofed to the right "and" to which the formfield is associated.
+ * 08-Jul-2009 : Version 8.4 (Sundar);
  • Bug due to parsing and removing formfields when there is no parameter for Daytona specific database is resolved.
+ * 29-Jun-2009 : Version 8.4 (Sundar);
  • isLastSeriesALineChart() and setLastSeriesALineChart(String value) method have been added for the Bar Chart enhancements.
+ * 23-Jun-2009 : Version 8.4 (Sundar);
  • check for cr.getChartAdditionalOptions() for null value is added.
+ * 22-Jun-2009 : Version 8.4 (Sundar);
  • Wrapper functions to call JAXB were added. These Wrapper + * functions are related to the Pareto chart, Time Difference Chart, Multiple Pie Chart and generic Chart Options.
+ * + */ + +public class ReportWrapper extends org.onap.portalsdk.analytics.RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportWrapper.class); + + protected CustomReportType cr = null; + + protected Vector allColumns = null; + + protected Vector allVisibleColumns = null; + + protected Vector allFilters = null; + + protected String generatedSQL = null; + + protected String generatedChartSQL = null; + + protected String wholeSQL = null; // For display purposes only + + + protected String reportID = null; + + protected String menuID = ""; + + protected boolean menuApproved = false; + + protected String reportDefType = ""; + + protected ReportSecurity reportSecurity = null; + + protected String reportSQLWithRowNum = null; + + protected String reportSQLOnlyFirstPart = null; + + + private ReportWrapper(CustomReportType cr, String reportID, ReportSecurity reportSecurity) { + super(); + + if (reportID == null) + reportID = "-1"; + + this.cr = cr; + this.reportID = reportID; + + this.reportSecurity = reportSecurity; + } // ReportWrapper + + public ReportWrapper(ReportWrapper rw) { + this(rw.getCustomReport(), // .cloneCustomReport() + rw.getReportID(), rw.reportSecurity); + + this.menuID = rw.getMenuID(); + this.menuApproved = rw.isMenuApproved(); + + this.reportDefType = rw.getReportDefType(); + } // ReportWrapper + + public ReportWrapper(CustomReportType cr, String reportID, String ownerID, String createID, + String createDate, String updateID, String updateDate, String menuID, + boolean menuApproved) throws RaptorException { + this(cr, reportID, null); + + if (ownerID == null) + // Need to load the report record from the database + if (!reportID.equals("-1")) + try { + /*DataSet ds = DbUtils + .executeQuery("SELECT NVL(cr.owner_id, cr.create_id) owner_id, cr.create_id, TO_CHAR(cr.create_date, '" + + Globals.getOracleTimeFormat() + + "') create_date, maint_id, TO_CHAR(cr.maint_date, '" + + Globals.getOracleTimeFormat() + + "') update_date, cr.menu_id, cr.menu_approved_yn FROM cr_report cr WHERE cr.rep_id=" + + reportID);*/ + + String r_sql = Globals.getReportWrapperFormat(); + r_sql = r_sql.replace("[Globals.getTimeFormat()]", Globals.getTimeFormat()); + r_sql = r_sql.replace("[reportID]", reportID); + + DataSet ds = DbUtils + .executeQuery(r_sql); + + ownerID = ds.getString(0, 0); + createID = ds.getString(0, 1); + createDate = ds.getString(0, 2); + updateID = ds.getString(0, 3); + updateDate = ds.getString(0, 4); + menuID = nvl(ds.getString(0, 5)); + menuApproved = nvl(ds.getString(0, 6)).equals("Y"); + } catch (Exception e) { + String eMsg = "ReportWrapper.ReportWrapper: Unable to load report record details. Exception: " + + e.getMessage(); + //Log.write(eMsg); + logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] "+ eMsg)); + throw new RaptorRuntimeException(eMsg); + } + + this.menuID = nvl(menuID); + this.menuApproved = menuApproved; + + if (!reportID.equals("-1")) + updateReportDefType(); + + reportSecurity = new ReportSecurity(reportID, ownerID, createID, createDate, updateID, + updateDate, cr.isPublic()); + } // ReportWrapper + + public CustomReportType getCustomReport() { + return cr; + } + + public String getReportID() { + return reportID; + } + + public String getMenuID() { + return menuID; + } + + public boolean checkMenuIDSelected(String chkMenuID) { + return ("|" + menuID + "|").indexOf("|" + chkMenuID + "|") >= 0; + } + + public boolean isMenuApproved() { + return menuApproved; + } + + public String getReportDefType() { + return reportDefType; + } + + public void setMenuID(String menuID) { + this.menuID = menuID; + } + + public void setMenuApproved(boolean menuApproved) { + this.menuApproved = menuApproved; + } + + public void setReportDefType(String reportDefType) { + this.reportDefType = reportDefType; + } + + public void updateReportDefType() { + this.reportDefType = (nvl(cr.getReportSQL()).length() > 0) ? ((cr.getDataminingOptions()!=null && nvl(cr.getDataminingOptions().getClassifier()).length()>0) ? + AppConstants.RD_SQL_BASED_DATAMIN:AppConstants.RD_SQL_BASED) + : AppConstants.RD_VISUAL; + } + + public String getJavascriptElement() { + return cr.getJavascriptElement(); + } + + public int getPageSize() { + return cr.getPageSize()==null?50:cr.getPageSize(); + } + + public int getMaxRowsInExcelDownload() { + return cr.getMaxRowsInExcelDownload()==null?500:cr.getMaxRowsInExcelDownload(); + } + + public boolean isDisplayFolderTree() { + return cr.isDisplayFolderTree()!=null?cr.isDisplayFolderTree().booleanValue():false; + } + + public boolean isHideFormFieldAfterRun() { + return cr.isHideFormFieldAfterRun()!=null?cr.isHideFormFieldAfterRun().booleanValue():false; + } + + public void setHideFormFieldAfterRun(boolean hideFormFieldAfterRun) { + cr.setHideFormFieldAfterRun(hideFormFieldAfterRun); + } + + public boolean isReportInNewWindow() { + return cr.isReportInNewWindow()!=null?cr.isReportInNewWindow().booleanValue():false; + } + + public String getReportType() { + return cr.getReportType(); + } + + public String getReportName() { + return cr.getReportName(); + } + + public String getDBInfo() { + return cr.getDbInfo(); + } + + public String getDBType() { + return cr.getDbType(); + } + + public boolean isDrillDownURLInPopupPresent() { + return cr.isDrillURLInPoPUpPresent()!=null?cr.isDrillURLInPoPUpPresent().booleanValue():false; + } + + public void setDrillDownURLInPopupPresent(boolean value) { + cr.setDrillURLInPoPUpPresent(value); + } + + public String getReportDescr() { + return cr.getReportDescr(); + } + + public String getChartType() { + return cr.getChartType(); + } + + public boolean displayChartTitle() { + return cr.isShowChartTitle(); + } + + public void setShowChartTitle(boolean showTitle) { + cr.setShowChartTitle(showTitle); + } + + + public String getChartTypeFixed() { + return cr.getChartTypeFixed(); + } + + public boolean isChartTypeFixed() { + return nvl(cr.getChartTypeFixed()).length() > 0 ? cr.getChartTypeFixed().equals("Y") + : (!Globals.getAllowRuntimeChartSel()); + } + + public String getChartLeftAxisLabel() { + return cr.getChartLeftAxisLabel(); + } + + public String getChartRightAxisLabel() { + return cr.getChartRightAxisLabel(); + } + + public String getChartWidth() { + return cr.getChartWidth(); + } + + public int getChartWidthAsInt() { + return getIntValue(cr.getChartWidth(), Globals.getDefaultChartWidth()); + } + + public String getChartHeight() { + return cr.getChartHeight()==null?"500":cr.getChartHeight(); + } + + /*public boolean isChartMultiSeries() { + //String s = cr.getChartMultiSeries(); + return + return (nvl(s).length()>0)? (s.equals("Y")||s.equals("y")||s.equalsIgnoreCase("true")?true:false):true; + }*/ + + public boolean displayPieOrderinRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartMultiplePieOrder():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + } + + public boolean isMultiplePieOrderByRow() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartMultiplePieOrder():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return (nvl(s).length()>0)? (s.equals("row")?true:false):true; + } + + public boolean isMultiplePieOrderByColumn() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartMultiplePieOrder():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return (nvl(s).length()>0)&&(s.equals("column"))?true:false; + } + + public boolean displayPieLabelDisplayinRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartMultiplePieLabelDisplay():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + } + + public String getMultiplePieLabelDisplay() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartMultiplePieLabelDisplay():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return s; + } + + public boolean displayChartDisplayinRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartDisplay():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + } + + public boolean isChartDisplayIn3D() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartDisplay():""; + if(nvl(s).length()<=0) return true; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return (nvl(s).length()>0)&&(s.equals("3D"))?true:false; + } + + public boolean displayChartOrientationInRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartOrientation():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + + } + + public String getLinearRegression() { + String s = ""; + s = nvl((cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLinearRegression():"Y"); + return s; + } + + public void setLinearRegression(String linear) { + cr.getChartAdditionalOptions().setLinearRegression(linear); + } + + public String getLinearRegressionColor() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLinearRegressionColor():""; + } + + public String getCustomizedRegressionPoint() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getMaxRegression():""; + } + + public void setCustomizedRegressionPoint( String d) { + cr.getChartAdditionalOptions().setMaxRegression(d); + } + + public void setLinearRegressionColor(String color) { + cr.getChartAdditionalOptions().setLinearRegressionColor(color); + } + + public String getExponentialRegressionColor() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getExponentialRegressionColor():""; + } + + public void setExponentialRegressionColor(String color) { + cr.getChartAdditionalOptions().setExponentialRegressionColor(color); + } + + public void setRangeAxisUpperLimit(String d) { + if(cr.getChartAdditionalOptions()!=null) + cr.getChartAdditionalOptions().setRangeAxisUpperLimit(d); + } + + public void setRangeAxisLowerLimit(String d) { + if(cr.getChartAdditionalOptions()!=null) + cr.getChartAdditionalOptions().setRangeAxisLowerLimit(d); + } + + public String getRangeAxisUpperLimit() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getRangeAxisUpperLimit():""; + } + + public String getRangeAxisLowerLimit() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getRangeAxisLowerLimit():""; + } + + public boolean isChartAnimate() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isAnimate()!=null?cr.getChartAdditionalOptions().isAnimate():false):false; + } + + public boolean isAnimateAnimatedChart() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isAnimateAnimatedChart()!=null?cr.getChartAdditionalOptions().isAnimateAnimatedChart():false):true; + } + + public void setAnimateAnimatedChart(boolean animate) { + cr.getChartAdditionalOptions().setAnimateAnimatedChart(animate); + } + + public void setChartStacked(boolean stacked) { + cr.getChartAdditionalOptions().setStacked(stacked); + } + + public boolean isChartStacked() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isStacked()!=null?cr.getChartAdditionalOptions().isStacked():true):false; + } + + public void setBarControls(boolean barControls) { + cr.getChartAdditionalOptions().setBarControls(barControls); + } + + public boolean displayBarControls() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isBarControls()!=null?cr.getChartAdditionalOptions().isBarControls():false):false; + } + + public void setXAxisDateType(boolean dateType) { + cr.getChartAdditionalOptions().setXAxisDateType(dateType); + } + + public boolean isXAxisDateType() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isXAxisDateType()!=null?cr.getChartAdditionalOptions().isXAxisDateType():false):false; + } + + public void setLessXaxisTickers(boolean lessTickers) { + cr.getChartAdditionalOptions().setLessXaxisTickers(lessTickers); + } + + public boolean isLessXaxisTickers() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isLessXaxisTickers()!=null?cr.getChartAdditionalOptions().isLessXaxisTickers():false):false; + } + + public void setTimeAxis(boolean timeAxis) { + cr.getChartAdditionalOptions().setTimeAxis(timeAxis); + } + + public boolean isTimeAxis() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isTimeAxis()!=null?cr.getChartAdditionalOptions().isTimeAxis():true):true; + } + + public void setLogScale(boolean logScale) { + cr.getChartAdditionalOptions().setLogScale(logScale); + } + + public boolean isLogScale() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isLogScale()!=null?cr.getChartAdditionalOptions().isLogScale():false):false; + } + + + public void setMultiSeries(boolean multiSeries) { + cr.getChartAdditionalOptions().setMultiSeries(multiSeries); + cr.setChartMultiSeries(multiSeries?"Y":"N"); + } + + public boolean isMultiSeries() { + if(AppUtils.nvl(cr.getChartMultiSeries()).equals("Y")) + cr.getChartAdditionalOptions().setMultiSeries(true); + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isMultiSeries()!=null?cr.getChartAdditionalOptions().isMultiSeries():false):false; + } + + public void setTimeSeriesRender(String timeSeriesRenderer) { + cr.getChartAdditionalOptions().setTimeSeriesRender(timeSeriesRenderer); + } + + public String getTimeSeriesRender() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getTimeSeriesRender():"line"; + } + + public void setShowXAxisLabel(boolean showXaxisLabel) { + cr.getChartAdditionalOptions().setShowXAxisLabel(showXaxisLabel); + } + + public boolean isShowXaxisLabel() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isShowXAxisLabel()!=null?cr.getChartAdditionalOptions().isShowXAxisLabel():false):false; + } + + public void setAddXAxisTickers(boolean addXAxisTickers) { + cr.getChartAdditionalOptions().setAddXAxisTickers(addXAxisTickers); + } + + public boolean isAddXAxisTickers() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().isAddXAxisTickers()!=null?cr.getChartAdditionalOptions().isAddXAxisTickers():false):true; + } + + public void setZoomIn(Integer zoomIn) { + cr.getChartAdditionalOptions().setZoomIn(zoomIn); + } + + public Integer getZoomIn() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().getZoomIn()!=null?cr.getChartAdditionalOptions().getZoomIn():new Integer("25")): new Integer("25"); + } + + public void setTimeAxisType(String timeAxisType) { + cr.getChartAdditionalOptions().setTimeAxisType(timeAxisType); + } + + public String getTimeAxisType() { + return (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().getTimeAxisType()!=null?cr.getChartAdditionalOptions().getTimeAxisType():"hourly"): "hourly"; + } + + public void setTopMargin(Integer topMargin) { + cr.getChartAdditionalOptions().setTopMargin(topMargin); + } + + public Integer getTopMargin() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getTopMargin(): new Integer("30"); + } + + public void setBottomMargin(Integer bottomMargin) { + cr.getChartAdditionalOptions().setBottomMargin(bottomMargin); + } + + public Integer getBottomMargin() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getBottomMargin(): new Integer("50"); + } + + public void setRightMargin(Integer rightMargin) { + cr.getChartAdditionalOptions().setRightMargin(rightMargin); + } + + public Integer getRightMargin() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getRightMargin(): new Integer("60"); + } + + public void setLeftMargin(Integer leftMargin) { + cr.getChartAdditionalOptions().setLeftMargin(leftMargin); + } + + public Integer getLeftMargin() { + return (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLeftMargin(): new Integer("100"); + } + + + public boolean isVerticalOrientation() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartOrientation():""; + if(nvl(s).length()<=0) return true; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return (nvl(s).length()>0)&&(s.equals("vertical"))?true:false; + } + + public boolean isHorizontalOrientation() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getChartOrientation():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return (nvl(s).length()>0)&&(s.equals("horizontal"))?true:false; + } + + public boolean displaySecondaryChartRendererInRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getSecondaryChartRenderer():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + + } + + public String getSecondaryChartRenderer() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getSecondaryChartRenderer():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return s; + } + + public String getOverlayItemValueOnStackBar() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getOverlayItemValueOnStackBar():"N"; + return s; + } + + public boolean displayIntervalInputInRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getIntervalFromdate():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + } + + public boolean showLegendDisplayOptionsInRunPage() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getHidechartLegend():""; + if(nvl(s).indexOf("|")!= -1) { + s = s.substring(s.indexOf("|")+1); + return getFlagInBoolean(s); + } else return false; + } + + public String getIntervalFromdate() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getIntervalFromdate():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return nvl(s,""); + } + + public String getIntervalTodate() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getIntervalTodate():""; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return nvl(s,""); + } + + public String getIntervalLabel() { + return cr.getChartAdditionalOptions()!=null ? nvl(cr.getChartAdditionalOptions().getIntervalLabel()):""; + } + + public String getLegendPosition() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLegendPosition():""; + return nvl(s,"bottom"); + } + + public String getLegendLabelAngle() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLabelAngle():""; + return nvl(s,"UP90"); + } + + public String getMaxLabelsInDomainAxis() { + String s = ""; + s = (cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getMaxLabelsInDomainAxis():""; + return nvl(s,"99"); + } + + public boolean isLastSeriesALineChart() { + String s = ""; + s = nvl((cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLastSeriesALineChart():""); + return s.equals("Y"); + } + + public boolean isLastSeriesABarChart() { + String s = ""; + s = nvl((cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getLastSeriesABarChart():""); + return s.equals("Y"); + } + + public void setChartLegendDisplay(String value) { + cr.getChartAdditionalOptions().setHidechartLegend(value); + } + + public boolean hideChartLegend() { + String s = ""; + s = nvl((cr.getChartAdditionalOptions()!=null)?cr.getChartAdditionalOptions().getHidechartLegend():"N"); + if(nvl(s).length()<=0) s = "N"; + if(nvl(s).indexOf("|")!= -1) s = s.substring(0, s.indexOf("|")); + return s.equals("Y"); + } + + public void setChartToolTips(String value) { + cr.getChartAdditionalOptions().setHideToolTips(value); + } + + public void setDomainAxisValuesAsString(String value) { + cr.getChartAdditionalOptions().setKeepDomainAxisValueAsString(value); + } + + public boolean hideChartToolTips() { + boolean s = true; + s = (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().getHideToolTips()!=null? + (cr.getChartAdditionalOptions().getHideToolTips().equals("Y")?true:false):(Globals.hideToolTipsGlobally()?true:false)):(Globals.hideToolTipsGlobally()?true:false); + return s; + } + + public boolean keepDomainAxisValueInChartAsString() { + boolean s = true; + s = (cr.getChartAdditionalOptions()!=null)?(cr.getChartAdditionalOptions().getKeepDomainAxisValueAsString()!=null? + (cr.getChartAdditionalOptions().getKeepDomainAxisValueAsString().equals("Y")?true:false):false):false; + return s; + } + + public int getChartHeightAsInt() { + return getIntValue(cr.getChartHeight(), Globals.getDefaultChartHeight()); + } + + public boolean isPublic() { + return cr.isPublic(); + } + + public boolean isDashboardType() throws RaptorException { + return cr.isDashboardType()!=null?cr.isDashboardType().booleanValue():false; + } + + // public String getCreateId() { return cr.getCreateId(); } + // public Calendar getCreateDate() { return cr.getCreateDate(); } + public String getReportSQL() { + return cr.getReportSQL(); + } + + public String getReportTitle() { + return cr.getReportTitle(); + } + + public String getReportSubTitle() { + return cr.getReportSubTitle(); + } + + public String getReportHeader() { + return cr.getReportHeader(); + } + + public String getReportFooter() { + return cr.getReportFooter(); + } + + public String getNumDashCols() { + return cr.getNumDashCols(); + } + + public int getNumDashColsAsInt() { + return getIntValue(cr.getNumDashCols(), 1); + } + + public String getNumFormCols() { + return cr.getNumFormCols(); + } + + public int getNumFormColsAsInt() { + return getIntValue(cr.getNumFormCols(), 5); + } + + public String getDisplayOptions() { + return cr.getDisplayOptions(); + } + + + +//Additional Methods + + public int getJumpTo() { + return cr.getJumpTo()==null?1:cr.getJumpTo(); + } + public void setJumpTo(int value){ + cr.setJumpTo(value); + } + + + public int getSearchPageSize(){ + return cr.getSearchPageSize()==null?20:cr.getSearchPageSize(); + } + public void setSearchPageSize(int value){ + cr.setSearchPageSize(value); + } + + + public boolean isToggleLayout(){ + if(cr.isToggleLayout()!=null) + return cr.isToggleLayout(); + + else + return Globals.displayRuntimeOptionsAsDefault(); + + } + public void setToggleLayout(boolean value){ + cr.setToggleLayout(value); + } + + public boolean isShowPageSize(){ + if(cr.isShowPageSize()!=null) + return cr.isShowPageSize(); + + else + return Globals.displayRuntimeOptionsAsDefault(); + + } + public void setShowPageSize(boolean value){ + cr.setShowPageSize(value); + } + + public boolean isShowNavPos(){ + if(cr.isShowNavPos()!=null) + return cr.isShowNavPos(); + + else + return Globals.displayRuntimeOptionsAsDefault(); + + } + public void setShowNavPos(boolean value){ + cr.setShowNavPos(value); + } + + public boolean isShowGotoOption(){ + if(cr.isShowGotoOption()!=null) + return cr.isShowGotoOption(); + + else + return Globals.displayRuntimeOptionsAsDefault(); + + } + public void setShowGotoOption(boolean value){ + cr.setShowGotoOption(value); + } + + public boolean isPageNav(){ + + if(cr.isPageNav()!=null) + return cr.isPageNav(); + + else + return Globals.displayRuntimeOptionsAsDefault(); + + } + + public void setPageNav(boolean value){ + cr.setPageNav(value); + } + + + public String getNavPosition(){ + if(cr.getNavPosition()!=null) + return cr.getNavPosition(); + + else + return "top"; + //return cr.getNavPosition(); + } + public void setNavPosition(String value){ + cr.setNavPosition(value); + } + + + public String getDashboardEditor(){ + return getDashBoardReportsNew().getDashboardEditor(); + } + + public void setDashboardEditor(String value){ + getDashBoardReportsNew().setDashboardEditor(value); + } + + + public DashboardEditorList getDashboardEditorList(){ + return getDashBoardReportsNew().getDashboardEditorList(); + } + + public void setDashboardEditorList(DashboardEditorList value){ + getDashBoardReportsNew().setDashboardEditorList(value); + } + + public PDFAdditionalOptions getPDFAdditionalOptions() { + try { + if(cr.getPdfAdditionalOptions()==null) + addPDFAdditionalOptions(new ObjectFactory()); + } catch(RaptorException ex) { + ex.printStackTrace(); + } + return cr.getPdfAdditionalOptions(); + } + + public String getPDFFont(){ + return getPDFAdditionalOptions().getPDFFont()!=null?getPDFAdditionalOptions().getPDFFont():Globals.getDataFontFamily(); + } + public void setPDFFont(String value){ + getPDFAdditionalOptions().setPDFFont(value); + } + + public int getPDFFontSize() { + return getPDFAdditionalOptions().getPDFFontSize()==null?9:getPDFAdditionalOptions().getPDFFontSize(); + } + public void setPDFFontSize(int value){ + getPDFAdditionalOptions().setPDFFontSize(value); + } + + public String getPDFOrientation(){ + return getPDFAdditionalOptions().getPDFOrientation()!=null?"portrait":"landscape"; + } + public void setPDFOrientation(String value){ + getPDFAdditionalOptions().setPDFOrientation(value); + } + + public String getPDFLogo1(){ + return getPDFAdditionalOptions().getPDFLogo1(); + } + public void setPDFLogo1(String value){ + getPDFAdditionalOptions().setPDFLogo1(value); + } + + public String getPDFLogo2(){ + return getPDFAdditionalOptions().getPDFLogo2(); + } + public void setPDFLogo2(String value){ + getPDFAdditionalOptions().setPDFLogo2(value); + } + + public int getPDFLogo1Size() { + return getPDFAdditionalOptions().getPDFLogo1Size()==null?0:getPDFAdditionalOptions().getPDFLogo1Size(); + } + public void setPDFLogo1Size(int value){ + getPDFAdditionalOptions().setPDFLogo1Size(value); + } + + public int getPDFLogo2Size() { + return getPDFAdditionalOptions().getPDFLogo2Size()==null?0:getPDFAdditionalOptions().getPDFLogo2Size(); + } + public void setPDFLogo2Size(int value){ + getPDFAdditionalOptions().setPDFLogo2Size(value); + } + + public boolean isPDFCoverPage(){ + + if(getPDFAdditionalOptions().isPDFCoverPage()!=null) + return getPDFAdditionalOptions().isPDFCoverPage(); + + else + return true; + + } + + public void setPDFCoverPage(boolean value){ + getPDFAdditionalOptions().setPDFCoverPage(value); + } + + public String getPDFFooter1(){ + return getPDFAdditionalOptions().getPDFFooter1(); + } + public void setPDFFooter1(String value){ + getPDFAdditionalOptions().setPDFFooter1(value); + } + + public String getPDFFooter2(){ + return getPDFAdditionalOptions().getPDFFooter2(); + } + public void setPDFFooter2(String value){ + getPDFAdditionalOptions().setPDFFooter2(value); + } + + + +//End of Additional Methods + + public String getDataContainerHeight() { + return cr.getDataContainerHeight(); + } + + public String getDataContainerWidth() { + return cr.getDataContainerWidth(); + } + + public boolean isAllowSchedule() { + String allowSchedule = getAllowSchedule(); + return (allowSchedule !=null )? allowSchedule.startsWith("Y"):false; + } + + public String getAllowSchedule() { + return cr.getAllowSchedule(); + } + + /* Multi Group */ + + public boolean isMultiGroupColumn() { + String multiGroupColumn = getMultiGroupColumn(); + return (multiGroupColumn !=null )? multiGroupColumn.startsWith("Y"):false; + } + + public String getMultiGroupColumn() { + return cr.getMultiGroupColumn(); + } + + public void setMultiGroupColumn(String value) { + cr.setMultiGroupColumn(value); + } + + private int getColumnGroupLevel(String colId) throws RaptorException { + DataColumnType dc = getColumnById(colId); + return (dc == null) ? 0 : dc.getLevel(); + } // getColumnGroupLevel + + public int getMaxGroupLevel() { + List reportCols = getAllColumns(); + int maxLevel = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.getLevel()!=null) { + if(maxLevel < dc.getLevel()) + maxLevel = dc.getLevel(); + } + } // for + return maxLevel; + } // getMaxGroupLevel + + private int getColumnGroupStart(String colId) throws RaptorException { + DataColumnType dc = getColumnById(colId); + return (dc == null) ? 0 : dc.getStart(); + } // getColumnGroupStart + + private int getColumnGroupColSpan(String colId) throws RaptorException { + DataColumnType dc = getColumnById(colId); + return (dc == null) ? 0 : dc.getColspan(); + } // getColumnGroupColSpan + + public void setTopDown(String value) { + cr.setTopDown(value); + } + + public boolean isTopDown() { + String topDown = getTopDownOption(); + return (topDown !=null )? topDown.startsWith("Y"):false; + } + + public String getTopDownOption() { + return cr.getTopDown(); + } + + public void setSizedByContent(String value) { + cr.setSizedByContent(value); + } + + public boolean isSizedByContent() { + String sizedByContent = getSizedByContentOption(); + return (sizedByContent !=null )? sizedByContent.startsWith("Y"):false; + } + + public String getSizedByContentOption() { + return cr.getSizedByContent(); + } + + public String getDashboardOptions() { + return cr.getDashboardOptions(); + } + + public boolean isDashboardOptionHideChart() { + return nvl(getDashboardOptions()).length() > 0 && (getDashboardOptions().charAt(0) == 'Y'); + } + + public boolean isDashboardOptionHideData() { + return nvl(getDashboardOptions()).length() > 0 && (getDashboardOptions().charAt(1) == 'Y'); + } + + public boolean isDashboardOptionHideBtns() { + return nvl(getDashboardOptions()).length() > 0 && (getDashboardOptions().charAt(2) == 'Y'); + } + + public boolean isDisplayOptionHideForm() { + return nvl(getDisplayOptions()).length() > 0 && (getDisplayOptions().charAt(0) == 'Y'); + } + + public boolean isDisplayOptionHideChart() { + return nvl(getDisplayOptions()).length() > 1 && (getDisplayOptions().charAt(1) == 'Y'); + } + + public boolean isDisplayOptionHideData() { + return nvl(getDisplayOptions()).length() > 2 && (getDisplayOptions().charAt(2) == 'Y'); + } + + public boolean isDisplayOptionHideBtns() { + return nvl(getDisplayOptions()).length() > 3 && (getDisplayOptions().charAt(3) == 'Y'); + } + + public boolean isDisplayOptionHideMap() { + return nvl(getDisplayOptions()).length() > 4 && (getDisplayOptions().charAt(4) == 'Y'); + } + + public boolean isDisplayOptionHideExcelIcons() { + return nvl(getDisplayOptions()).length() > 5 && (getDisplayOptions().charAt(5) == 'Y'); + } + + public boolean isDisplayOptionHidePDFIcons() { + return nvl(getDisplayOptions()).length() > 6 && (getDisplayOptions().charAt(6) == 'Y'); + } + + public String getComment() { + return cr.getComment(); + } + + public DataSourceList getDataSourceList() { + return cr.getDataSourceList(); + } + + public ChartAdditionalOptions getChartAdditionalOptions() { + return cr.getChartAdditionalOptions(); + } + + public ChartDrillOptions getChartDrillOptions() { + return cr.getChartDrillOptions(); + } + + + public DataminingOptions getDataminingOptions() { + return cr.getDataminingOptions(); + } + + public DashboardReports getDashBoardReports() { + return cr.getDashBoardReports(); + } + + + public DashboardReportsNew getDashBoardReportsNew() { + try { + if(cr.getDashBoardReportsNew()==null) + addDashboardReportsNew(new ObjectFactory()); + } catch(RaptorException ex) { + ex.printStackTrace(); + } + return cr.getDashBoardReportsNew(); + } + + public String getDashboardLayoutHTML() { + return cr.getDashboardLayoutHTML(); + } + + public FormFieldList getFormFieldList() { + return cr.getFormFieldList(); + } + + public JavascriptList getJavascriptList() { + return cr.getJavascriptList(); + } + + public SemaphoreList getSemaphoreList() { + return cr.getSemaphoreList(); + } + + public void setPageSize(int value) { + cr.setPageSize(value); + } + + public void setAllowSchedule(String value) { + cr.setAllowSchedule(value); + } + + public void setMaxRowsInExcelDownload(int value) { + cr.setMaxRowsInExcelDownload(value); + } + + public void setReportInNewWindow (boolean value) { + cr.setReportInNewWindow(value); + } + + public void setDisplayFolderTree (boolean value) { + cr.setDisplayFolderTree(value); + } + + public void setReportType(String value) { + cr.setReportType(value); + } + + public void setReportName(String value) { + cr.setReportName(value); + } + + public void setDBInfo(String value) { + if (!(cr.getDbInfo() != null && cr.getDbInfo().length() > 0)) + cr.setDbInfo(value); + } + + public void setDBType(String value) { + if (!(cr.getDbType() != null && cr.getDbType().length() > 0)) + cr.setDbType(value); + } + + public void setReportDescr(String value) { + cr.setReportDescr(value); + } + + public void setChartType(String value) { + cr.setChartType(value); + } + + public void setChartMultiplePieOrder(String value) { + cr.getChartAdditionalOptions().setChartMultiplePieOrder(value); + } + + public void setChartMultiplePieLabelDisplay(String value) { + cr.getChartAdditionalOptions().setChartMultiplePieLabelDisplay(value); + } + + public void setChartOrientation(String value) { + cr.getChartAdditionalOptions().setChartOrientation(value); + } + + public void setSecondaryChartRenderer(String value) { + cr.getChartAdditionalOptions().setSecondaryChartRenderer(value); + } + + public void setOverlayItemValueOnStackBar(String value) { + cr.getChartAdditionalOptions().setOverlayItemValueOnStackBar(value); + } + + public void setIntervalFromdate(String value) { + cr.getChartAdditionalOptions().setIntervalFromdate(value); + } + + public void setIntervalLabel(String value) { + cr.getChartAdditionalOptions().setIntervalLabel(value); + } + + public void setIntervalTodate(String value) { + cr.getChartAdditionalOptions().setIntervalTodate(value); + } + + public void setLegendPosition(String value) { + cr.getChartAdditionalOptions().setLegendPosition(value); + } + + public void setLegendLabelAngle(String value) { + cr.getChartAdditionalOptions().setLabelAngle(value); + } + + public void setMaxLabelsInDomainAxis(String value) { + if(nvl(value).length()<=0) value = "99"; + cr.getChartAdditionalOptions().setMaxLabelsInDomainAxis(value); + } + + public void setLastSeriesALineChart(String value) { + cr.getChartAdditionalOptions().setLastSeriesALineChart(value); + } + + public void setLastSeriesABarChart(String value) { + cr.getChartAdditionalOptions().setLastSeriesABarChart(value); + } + + public void setChartDisplay(String value) { + cr.getChartAdditionalOptions().setChartDisplay(value); + } + + public void setChartAnimate(boolean animate) { + if(cr.getChartAdditionalOptions()!=null) + cr.getChartAdditionalOptions().setAnimate(animate); + else { + try { + if(getChartAdditionalOptions()==null) + addChartAdditionalOptions(new ObjectFactory()); + } catch(RaptorException ex) { + ex.printStackTrace(); + } + if(cr.getChartAdditionalOptions()!=null) + cr.getChartAdditionalOptions().setAnimate(animate); + + } + + } + + public void addChartAdditionalOptions(ObjectFactory objFactory) throws RaptorException { + ChartAdditionalOptions chartOptions = objFactory.createChartAdditionalOptions(); + cr.setChartAdditionalOptions(chartOptions); + } + + public void addDashboardReportsNew(ObjectFactory objFactory) throws RaptorException { + DashboardReportsNew dashboardReports = objFactory.createDashboardReportsNew(); + cr.setDashBoardReportsNew(dashboardReports); + } + + public void addPDFAdditionalOptions(ObjectFactory objFactory) throws RaptorException { + PDFAdditionalOptions pdfOptions = objFactory.createPDFAdditionalOptions(); + cr.setPdfAdditionalOptions(pdfOptions); + } + + public void setChartTypeFixed(String value) { + cr.setChartTypeFixed(value); + } + + public void setChartLeftAxisLabel(String value) { + cr.setChartLeftAxisLabel(value); + } + + public void setChartRightAxisLabel(String value) { + cr.setChartRightAxisLabel(value); + } + + public void setChartWidth(String value) { + cr.setChartWidth(value); + } + + public void setChartHeight(String value) { + cr.setChartHeight(value); + } + + public void setChartMultiSeries(String value) { + cr.setChartMultiSeries(value); + } + + public void setPublic(boolean value) { + cr.setPublic(value); + if (reportSecurity != null) + reportSecurity.setPublic(value); + } + + // public void setCreateId(String value) { cr.setCreateId(value); } + // public void setCreateDate(Calendar value) { cr.setCreateDate(value); } + public void setReportSQL(String value) { + cr.setReportSQL(value); + } + + public void setReportTitle(String value) { + cr.setReportTitle(value); + } + + public void setReportSubTitle(String value) { + cr.setReportSubTitle(value); + } + + public void setReportHeader(String value) { + cr.setReportHeader(value); + } + + public void setReportFooter(String value) { + cr.setReportFooter(value); + } + + public void setNumFormCols(String value) { + cr.setNumFormCols(value); + } + + public void setNumDashCols(String value) { + cr.setNumDashCols(value); + } + + public void setDisplayOptions(String value) { + cr.setDisplayOptions(value); + } + + public void setDataContainerHeight(String value) { + cr.setDataContainerHeight(value); + } + + public void setDataContainerWidth(String value) { + cr.setDataContainerWidth(value); + } + + public void setDashboardOptions(String value) { + cr.setDashboardOptions(value); + } + + public void setComment(String value) { + cr.setComment(value); + } + + public void setDashboardType(boolean dashboardType) { + cr.setDashboardType(dashboardType); + } + + public void setDashboardLayoutHTML(String html) { + cr.setDashboardLayoutHTML(html); + } + + public void setDataSourceList(DataSourceList value) { + cr.setDataSourceList(value); + } + + public void setFormFieldList(FormFieldList value) { + cr.setFormFieldList(value); + } + + public void setDashBoardReports(DashboardReports value) { + cr.setDashBoardReports(value); + } + + public void setSemaphoreList(SemaphoreList value) { + cr.setSemaphoreList(value); + } + + public void setJavascriptList(JavascriptList value) { + cr.setJavascriptList(value); + } + + public void setJavascriptElement(String javascriptElement) { + cr.setJavascriptElement(javascriptElement); + } + + public void checkUserReadAccess(HttpServletRequest request) throws RaptorException { + reportSecurity.checkUserReadAccess(request, null); + } + public void checkUserReadAccess(HttpServletRequest request, String userID) throws RaptorException { + reportSecurity.checkUserReadAccess(request, userID); + } + + public void checkUserWriteAccess(HttpServletRequest request) throws RaptorException { + reportSecurity.checkUserWriteAccess(request); + verifySQLBasedReportAccess(request); + } + + public String getOwnerID() { + return reportSecurity.getOwnerID(); + } + + public String getCreateID() { + return reportSecurity.getCreateID(); + } + + public String getCreateDate() { + return reportSecurity.getCreateDate(); + } + + public String getUpdateID() { + return reportSecurity.getUpdateID(); + } + + public String getUpdateDate() { + return reportSecurity.getUpdateDate(); + } + + public ReportSecurity getReportSecurity() { + return reportSecurity; + } + + /****Report Maps - Start****/ + public ReportMap getReportMap() { + return cr.getReportMap(); + } + + public void setReportMap(ReportMap reportMap) { + cr.setReportMap(reportMap); + } + /****Report Maps - End****/ + + /****Report Chart Drilldown - Start****/ + public ChartDrillOptions getReportChartDrillOptions() { + return cr.getChartDrillOptions(); + } + + public void setReportChartDrillOptions(ChartDrillOptions chartDrillOptions) { + cr.setChartDrillOptions(chartDrillOptions); + } + /****Report Maps - End****/ + + + /** ************************************************************************************************* */ + + public String getFormHelpText() { + String formHelpText = nvl(getComment()); + + if (formHelpText.indexOf('|') >= 0) + formHelpText = formHelpText.substring(formHelpText.lastIndexOf('|') + 1); + + return formHelpText; + } // getFormHelpText + + public void setFormHelpText(String formHelpText) { + String comment = nvl(getComment()); + + if (comment.indexOf('|') >= 0) + comment = comment.substring(0, comment.lastIndexOf('|')); + if (comment.length() > 0) + comment += '|'; + + setComment(comment + formHelpText); + } // setFormHelpText + + public boolean isRuntimeColSortDisabled() { + String comment = nvl(getComment()); + + if (comment.indexOf('|') < 0) + return false; + + return comment.substring(0, comment.indexOf('|')).equals("Y"); + } // isRuntimeColSortDisabled + + public void setRuntimeColSortDisabled(boolean value) { + String comment = nvl(getComment()); + + if (comment.indexOf('|') >= 0) + comment = comment.substring(comment.indexOf('|') + 1); + + setComment((value ? "Y" : "N") + "|" + comment); + } // setRuntimeColSortDisabled + + /** ************************************************************************************************* */ + + protected void verifySQLBasedReportAccess(HttpServletRequest request) throws RaptorException { + String userID = AppUtils.getUserID(request); + if (getReportDefType().equals(AppConstants.RD_SQL_BASED) + && (!Globals.getAllowSQLBasedReports()) && (!AppUtils.isAdminUser(request))) + throw new org.onap.portalsdk.analytics.error.UserAccessException(reportID, "[" + userID + "] " + + AppUtils.getUserName(request), AppConstants.UA_WRITE); + } // verifySQLBasedReportAccess + + /** ************************************************************************************************* */ + + private String getColumnNameById(String colId) throws RaptorException { + DataColumnType dc = getColumnById(colId); + return (dc == null) ? "NULL" : dc.getColName(); + } // getColumnNameById + + // Checks if drill-down URL points to individual record display (return + // true) or another report (return false) + private boolean isViewAction(String value) throws RaptorException { + try { + Vector viewActions = org.onap.portalsdk.analytics.model.DataCache.getDataViewActions(); + + for (int i = 0; i < viewActions.size(); i++) + if (value.equals(AppUtils.getBaseActionURL() + ((String) viewActions.get(i)))) + return true; + } catch (Exception e) { + throw new RaptorRuntimeException("ReportWrapper.isViewAction Exception: " + + e.getMessage()); + } + + return false; + } // isViewAction + + public String getSelectExpr(DataColumnType dct) { + // String colName = + // dct.isCalculated()?dct.getColName():((nvl(dct.getTableId()).length()>0)?(dct.getTableId()+"."+dct.getColName()):dct.getColName()); + return getSelectExpr(dct, dct.getColName() /* colName */); + } // getSelectExpr + + /*private String getSelectExpr(DataColumnType dct, String colName) { + String colType = dct.getColType(); + if (colType.equals(AppConstants.CT_CHAR) + || ((nvl(dct.getColFormat()).length() == 0) && (!colType + .equals(AppConstants.CT_DATE)))) + return colName; + else + return "TO_CHAR(" + colName + ", '" + + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) + "')"; + } // getSelectExpr + */ + + private String getSelectExpr(DataColumnType dct, String colName) { + String colType = dct.getColType(); + if(colType.equals(AppConstants.CT_NUMBER)) { + return colName; + } else + if (colType.equals(AppConstants.CT_CHAR) + || ((nvl(dct.getColFormat()).length() == 0) && (!colType + .equals(AppConstants.CT_DATE)))) + return colName; + + else + return "TO_CHAR(" + colName + ", '" + + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) + "')"; + } // getSelectExpr + + + /** ************************************************************************************************* */ + + public DataSourceType getTableById(String tableId) { + for (Iterator iter = getDataSourceList().getDataSource().iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + if (ds.getTableId().equals(tableId)) + return ds; + } // for + + return null; + } // getTableById + + public DataSourceType getTableByDBName(String tableName) { + for (Iterator iter = getDataSourceList().getDataSource().iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + if (ds.getTableName().equals(tableName)) + return ds; + } // for + + return null; + } // getTableByDBName + + public DataSourceType getColumnTableById(String colId) { + return getTableById(getColumnById(colId).getTableId()); + } // getColumnTableById + + public DataColumnType getColumnById(String colId) { + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.getColId().toLowerCase().equals(colId.toLowerCase())) + return dc; + } // for + + return null; + } // getColumnById + + public DataColumnType getChartLegendColumn() { + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + return dc; + } // for + return null; + } // getChartLegendColumn + + /* + * public DataColumnType getChartValueColumn() { List reportCols = + * getAllColumns(); for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) { + * DataColumnType dc = (DataColumnType) iter.next(); if(dc.getChartSeq()>0) + * return dc; } // for + * + * return null; } // getChartValueColumn + */ + + public List getChartValueColumnsList( int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = getAllColumns(); + + ArrayList chartValueCols = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 ) { + if(!AppUtils.nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } + else if(filter == 0) chartValueCols.add(dc); + } else chartValueCols.add(dc); + } + } +// } else +// chartValueCols.add(dc); + } // for + Collections.sort(chartValueCols, new ChartSeqComparator()); + return chartValueCols; + } // getChartValueColumnsList + + + /* public ListModelList getChartValueColumnsListModelList( int filter, HashMap formValues) { / *filter; all=0;create without new chart =1; createNewChart=2 * / + List reportCols = getAllColumns(); + + ArrayList chartValueCols = new ArrayList(); + ListModelList chartValueListModelList = new ListModelList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 ) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } + else if(filter == 0) chartValueCols.add(dc); + } else chartValueCols.add(dc); + } +// } else +// chartValueCols.add(dc); + chartValueListModelList.add(new Item(dc.getColId(), dc.getDisplayName())); + } // for + Collections.sort(chartValueCols, new ChartSeqComparator()); + return chartValueListModelList; + } // getChartValueColumnsList */ + + + /** Check whether chart has series (Category) columns **/ + public boolean hasSeriesColumn() { + List reportCols = getAllColumns(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.isChartSeries()!=null && dc.isChartSeries().booleanValue()) + return true; + } // for + return false; + } // hasSeriesColumn + + + public List getChartDisplayNamesList( int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = getAllColumns(); + ArrayList chartValueColNames = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue()) ) { + chartValueColNames.add(dc.getDisplayName()); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueColNames.add(dc.getDisplayName()); + } + else if(filter == 0) chartValueColNames.add(dc.getDisplayName()); + } else if(filter == 0) chartValueColNames.add(dc.getDisplayName()); + } + // } else + // chartValueColNames.add(dc.getDisplayName()); + + } + return chartValueColNames; + } // getChartDisplayNamesList + + + public List getChartColumnColorsList(int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = getAllColumns(); + ArrayList chartValueColColors = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue()) ) { + chartValueColColors.add(dc.getChartColor()); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueColColors.add(dc.getChartColor()); + } + else if(filter == 0) chartValueColColors.add(dc.getChartColor()); + } else if(filter == 0) chartValueColColors.add(dc.getChartColor()); + } +// } else +// chartValueColColors.add(dc.getChartColor()); + } + return chartValueColColors; + } // getChartColumnColorsList + + public List getChartValueColumnAxisList( int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = getAllColumns(); + ArrayList chartValueColAxis = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue())) { + chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } + else if(filter == 0) chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } else if(filter == 0) chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } +// } else +// chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } + return chartValueColAxis; + } // getChartColumnAxisList + + + public List getChartValueNewChartList() { + ArrayList chartValueNewChartAxis = new ArrayList(); + for (Iterator iter = getChartValueColumnsList(2, null).iterator(); iter.hasNext();) + chartValueNewChartAxis.add(new Boolean(((DataColumnType) iter.next()).isCreateInNewChart())); + return chartValueNewChartAxis; + } // getChartValueNewChartList + + public List getAllChartGroups() { + ArrayList chartGroups = new ArrayList(); + String chartGroupName=""; + List reportCols = getAllColumns(); + Set groupSet = new TreeSet(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(dc.getChartSeq()!=null && dc.getChartSeq()> 0) { + chartGroupName = dc.getChartGroup(); + if(nvl(chartGroupName).length()>0) + groupSet.add(chartGroupName); + } + } + List l = new ArrayList(groupSet); + return l; + } // getAllChartGroups + + public HashMap getAllChartYAxis(ReportParamValues reportParamValues) { + String chartYAxis=""; + List reportCols = getAllColumns(); + HashMap hashMap = new HashMap(); + FormFieldList formFieldList = getFormFieldList(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(dc.getChartSeq()!=null && dc.getChartSeq()> 0) { + chartYAxis = dc.getYAxis(); + if(formFieldList!=null && reportParamValues!=null) { + for (Iterator iter1 = getFormFieldList().getFormField().iterator(); iter1.hasNext();) { + FormFieldType fft = (FormFieldType) iter1.next(); + String fieldDisplay = getFormFieldDisplayName(fft); + String fieldId = fft.getFieldId(); + if(!fft.getFieldType().equals(FormField.FFT_BLANK) && !fft.getFieldType().equals(FormField.FFT_LIST_MULTI) && !fft.getFieldType().equals(FormField.FFT_TEXTAREA)) { + String paramValue = Utils.oracleSafe(nvl(reportParamValues.getParamValue(fieldId))); + chartYAxis = Utils.replaceInString(chartYAxis, fieldDisplay, nvl( + paramValue, "")); + } + } + } + if(nvl(dc.getChartGroup()).length()>0) + hashMap.put(dc.getChartGroup(),chartYAxis); + } + } + return hashMap; + } // getAllChartGroups + + public List getChartGroupColumnAxisList( String chartGroupName, HashMap formValues ) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = getAllColumns(); + ArrayList chartGroupColAxis = new ArrayList(); + String chartGroup = chartGroupName.substring(0,chartGroupName.lastIndexOf("|")); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0) { + if( nvl(dc.getChartGroup()).indexOf("|") > 0 && (nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup))) { + //if( nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup)) { + //System.out.println("$$$$$$$DC " + dc.getColId()+ " " + dc.getColOnChart()); + chartGroupColAxis.add(dc); + } + } +// } else +// chartValueColAxis.add(nvl(dc.getColOnChart(), "0")); + } + Collections.sort(chartGroupColAxis, new ChartSeqComparator()); + return chartGroupColAxis; + } // getChartColumnAxisList + + public List getChartGroupValueColumnAxisList( String chartGroupName, HashMap formValues ) { + List reportCols = getAllColumns(); + String index = chartGroupName.substring(chartGroupName.lastIndexOf("|")+1); + String chartGroup = chartGroupName.substring(0,chartGroupName.lastIndexOf("|")); + //System.out.println("$$$$INDEX " + index); + ArrayList chartGroupValueColAxis = new ArrayList(); + int flag = 0; + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0) { + //System.out.println(" Chartgroup " + dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))); + if( nvl(dc.getChartGroup()).indexOf("|") > 0 && (nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup))) { + //if( nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup)) { + //System.out.println(" Added Chartgroupname " + chartGroup + " " + dc.getChartGroup() + " " + index); + chartGroupValueColAxis.add(dc); + } + } + } + return chartGroupValueColAxis; + } // getChartColumnAxisList + + public List getChartGroupDisplayNamesList( String chartGroupName, HashMap formValues) { + List reportCols = getAllColumns(); + ArrayList chartGroupValueColNames = new ArrayList(); + String chartGroup = chartGroupName.substring(0,chartGroupName.lastIndexOf("|")); + int flag = 0; + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); + //System.out.println("$$$$$CHART " + dc.getChartSeq()+ " " + dc.getChartGroup()+ " " + chartGroup); + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 ) { + if( nvl(dc.getChartGroup()).indexOf("|") > 0 && (nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup))) { + chartGroupValueColNames.add(dc.getDisplayName()); + } + } + } + return chartGroupValueColNames; + } // getChartDisplayNamesList + + + public List getChartGroupColumnColorsList(String chartGroupName, HashMap formValues) { + List reportCols = getAllColumns(); + ArrayList chartValueColColors = new ArrayList(); + String chartGroup = chartGroupName.substring(0,chartGroupName.lastIndexOf("|")); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); + flag = getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 ) { + if( nvl(dc.getChartGroup()).indexOf("|") > 0 && (nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup))) { + //if( nvl(dc.getChartGroup().substring(0,dc.getChartGroup().lastIndexOf("|"))).equals(chartGroup)) { + chartValueColColors.add(dc.getChartColor()); + } + } + } + return chartValueColColors; + } // getChartColumnColorsList + + + public List getCrossTabRowColumns() { + List reportCols = getAllColumns(); + Vector v = new Vector(reportCols.size()); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (nvl(dc.getCrossTabValue()).equals(AppConstants.CV_ROW)) + v.add(dc); + } // for + + return v; + } // getCrossTabRowColumns + + public List getCrossTabColColumns() { + List reportCols = getAllColumns(); + Vector v = new Vector(reportCols.size()); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (nvl(dc.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) + v.add(dc); + } // for + + return v; + } // getCrossTabColColumns + + public String getCrossTabDisplayTotal(String rowColPos) { + DataColumnType dct = getCrossTabValueColumn(); + if (dct == null) + return ""; + + String displayTotal = nvl(dct.getDisplayTotal()); + if (displayTotal.indexOf('|') >= 0) { + String displayColTotal = displayTotal.substring(0, displayTotal.indexOf('|')); + String displayRowTotal = displayTotal.substring(displayTotal.indexOf('|') + 1); + + if (rowColPos.equals(AppConstants.CV_COLUMN)) + displayTotal = displayColTotal; + else if (rowColPos.equals(AppConstants.CV_ROW)) + displayTotal = displayRowTotal; + else if (displayColTotal.equals(displayRowTotal)) + displayTotal = displayColTotal; + } // if + + return displayTotal; + } // getCrossTabDisplayTotal + + public DataColumnType getCrossTabValueColumn() { + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (nvl(dc.getCrossTabValue()).equals(AppConstants.CV_VALUE)) + return dc; + } // for + + return null; + } // getCrossTabValueColumn + + public int getCrossTabValueColumnIndex() { // Returns the index counting + // only visible columns + List reportCols = getAllColumns(); + + int idx = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (nvl(dc.getCrossTabValue()).equals(AppConstants.CV_VALUE)) + break; + if (dc.isVisible()) + idx++; + } // for + + return idx; + } // getCrossTabValueColumnIndex + + public ColFilterType getFilterById(String colId, int filterIndex) { + DataColumnType dc = getColumnById(colId); + try { + return (ColFilterType) dc.getColFilterList().getColFilter().get(filterIndex); + } catch (Exception e) { + return null; + } + } // getFilterById + + public boolean needFormInput() { + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (dct.getColFilterList() != null) { + List fList = dct.getColFilterList().getColFilter(); + for (Iterator iterF = fList.iterator(); iterF.hasNext();) { + ColFilterType cft = (ColFilterType) iterF.next(); + + if (nvl(cft.getArgType()).equals(AppConstants.AT_FORM)) + return true; + } // for + } // if + } // for + + return false; + } // needFormInput + + public int getNumSortColumns() { + int numSortCols = 0; + for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + if (dct.getOrderBySeq() != null && dct.getOrderBySeq() > 0) + numSortCols++; + } // for + + return numSortCols; + } // getNumSortColumns + + public SemaphoreType getSemaphoreById(String semaphoreId) { + if (getSemaphoreList() != null && semaphoreId != null) + for (Iterator iter = getSemaphoreList().getSemaphore().iterator(); iter.hasNext();) { + SemaphoreType sem = (SemaphoreType) iter.next(); + if (sem.getSemaphoreId().equals(semaphoreId)) + return sem; + } // for + + return null; + } // getSemaphoreById + + public void deleteSemaphore(SemaphoreType semaphore) { + if (getSemaphoreList() != null) { + if(getSemaphoreList().getSemaphore()!= null) + getSemaphoreList().getSemaphore().remove((SemaphoreType) semaphore); + } + } // deleteSemaphore + + + public void setSemaphore(SemaphoreType sem) { + if (getSemaphoreList() != null) { + getSemaphoreList().getSemaphore().add(sem); + } + + } // setSemaphore + + public static FormatType getSemaphoreFormatById(SemaphoreType semaphore, String formatId) { + if (semaphore != null) + for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter + .hasNext();) { + FormatType fmt = (FormatType) iter.next(); + if (fmt.getFormatId().equals(formatId)) + return fmt; + } // for + + return null; + } // getSemaphoreFormatById + + public FormFieldType getFormFieldById(String fieldId) { + if (getFormFieldList() != null && fieldId != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + if (fft.getFieldId().equals(fieldId)) + return fft; + } // for + + return null; + } // getFormFieldById + + public FormFieldType getFormFieldByDisplayValue(String fieldDisplay) { + // fieldDisplay expected to be [fieldName] + if (getFormFieldList() != null && fieldDisplay != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + if (fieldDisplay.equals(getFormFieldDisplayName(fft))) + return fft; + } // for + + return null; + } // getFormFieldById + + public String getFormFieldDisplayName(FormFieldType fft) { + return "[" + fft.getFieldName() + "]"; + } // getFormFieldDisplayName + + /** ************************************************************************************************* */ + + public void resetCache(boolean sqlOnly) { + generatedSQL = null; + if (!sqlOnly) { + allColumns = null; + allFilters = null; + } + } // resetCache + + public String getOuterJoinType(DataSourceType curTable) { + String refDefinition = nvl(curTable.getRefDefinition()); + int outerJoinIdx = refDefinition.indexOf(" (+)"); + if (outerJoinIdx < 0) + // No outer join + return ""; + + int equalSignIdx = refDefinition.indexOf("="); + if (refDefinition.indexOf(curTable.getTableId()) < equalSignIdx) + // Cur. table is on the left side + return (outerJoinIdx < equalSignIdx) ? AppConstants.OJ_CURRENT + : AppConstants.OJ_JOINED; + else + // Joined table is on the left side + return (outerJoinIdx < equalSignIdx) ? AppConstants.OJ_JOINED + : AppConstants.OJ_CURRENT; + } // getOuterJoinType + + public String getFormFieldName(ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + return (fft != null) ? fft.getFieldId() : filter.getColId() + "_f" + + filter.getFilterSeq(); + } // getFormFieldName + + public String getFormFieldDisplayName(DataColumnType column, ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + return (fft != null) ? fft.getFieldName() : column.getDisplayName() + " " + + filter.getExpression(); + } // getFormFieldDisplayName + + public Calendar getFormFieldRangeStart(ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + return (fft != null) ? fft.getRangeStartDate().toGregorianCalendar() : null; + } // getFormFieldRangeStart + + public Calendar getFormFieldRangeEnd(ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + //System.out.println("as " + fft.getRangeEndDate()); + return (fft != null) ? fft.getRangeEndDate().toGregorianCalendar() : null; + } // getFormFieldRangeEnd + + public String getFormFieldRangeStartSQL(ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + return (fft != null) ? fft.getRangeStartDateSQL() : null; + } // getFormFieldRangeStart + + public String getFormFieldRangeEndSQL(ColFilterType filter) { + FormFieldType fft = null; + if (filter.getArgType().equals(AppConstants.AT_FORM)) + fft = getFormFieldByDisplayValue(filter.getArgValue()); + + //System.out.println("as " + fft.getRangeEndDate()); + return (fft != null) ? fft.getRangeEndDateSQL() : null; + } // getFormFieldRangeEnd + + public String getUniqueTableId(String tableName) { + String tableIdPrefix = tableName.startsWith("MSA_") ? tableName.substring(4, 6) + : tableName.substring(0, 2); + String tableId = ""; + + int tableIdN = getDataSourceList().getDataSource().size() + 1; + do { + tableId = tableIdPrefix.toLowerCase() + (tableIdN++); + } while (getTableById(tableId) != null); + + return tableId; + } // getUniqueTableId + + /** ************************************************************************************************* */ + + protected void deleteDataSourceType(String tableId) { + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType dst = (DataSourceType) iter.next(); + if (dst.getTableId().equals(tableId)) + iter.remove(); + else if (nvl(dst.getRefTableId()).equals(tableId)) { + dst.setRefTableId(null); + dst.setRefDefinition(null); + } + } // for + + resetCache(false); + } // deleteDataSourceType + + public static void adjustColumnType(DataColumnType dct) { + dct.setColType(dct.getDbColType()); + + if (dct.isCalculated()) + if (dct.getColName().startsWith("SUM(") || dct.getColName().startsWith("COUNT(") + || dct.getColName().startsWith("AVG(") + || dct.getColName().startsWith("STDDEV(") + || dct.getColName().startsWith("VARIANCE(")) + dct.setColType(AppConstants.CT_NUMBER); + else if (dct.getColName().startsWith("DECODE(") || dct.getColName().startsWith("coalesce(")) + dct.setColType(AppConstants.CT_CHAR); + } // adjustColumnType + + public static boolean getColumnNoParseDateFlag(DataColumnType dct) { + return (nvls(dct.getComment()).indexOf(AppConstants.CF_NO_PARSE_DATE) >= 0); + } // getColumnNoParseDateFlag + + public static void setColumnNoParseDateFlag(DataColumnType dct, boolean noParseDateFlag) { + dct.setComment(noParseDateFlag ? AppConstants.CF_NO_PARSE_DATE : null); + } // setColumnNoParseDateFlag + + /** ************************************************************************************************* */ + + public static String getSQLBasedFFTColTableName(String fftColId) { + return fftColId.substring(0, fftColId.indexOf('.')); + } // getSQLBasedFFTColTableName + + public static String getSQLBasedFFTColColumnName(String fftColId) { + fftColId = (fftColId.indexOf('|') < 0) ? fftColId : fftColId.substring(0, fftColId + .indexOf('|')); + return fftColId.substring(fftColId.indexOf('.') + 1); + } // getSQLBasedFFTColColumnName + + public static String getSQLBasedFFTColDisplayFormat(String fftColId) { + return (fftColId.indexOf('|') < 0) ? "" : fftColId + .substring(fftColId.indexOf('|') + 1); + } // getSQLBasedFFTColDisplayFormat + + /** ************************************************************************************************* */ + + public List getAllColumns() { + if (cr == null) + throw new NullPointerException("CustomReport not initialized"); + + if (allColumns == null) { + allColumns = new Vector(); + + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + // allColumns.addAll(ds.getDataColumnList().getDataColumn()); + List dcList = ds.getDataColumnList().getDataColumn(); + for (Iterator iterC = dcList.iterator(); iterC.hasNext();) { + DataColumnType dc = (DataColumnType) iterC.next(); + + allColumns.add(dc); + } // for + } // for + + Collections.sort(allColumns, new OrderSeqComparator()); + } // if + + return allColumns; + } // getAllColumns + + public List getOnlyVisibleColumns() { + if (cr == null) + throw new NullPointerException("CustomReport not initialized"); + + if (allVisibleColumns == null) { + allVisibleColumns = new Vector(); + + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + // allColumns.addAll(ds.getDataColumnList().getDataColumn()); + List dcList = ds.getDataColumnList().getDataColumn(); + for (Iterator iterC = dcList.iterator(); iterC.hasNext();) { + DataColumnType dc = (DataColumnType) iterC.next(); + if(dc.isVisible()) + allVisibleColumns.add(dc); + } // for + } // for + + Collections.sort(allVisibleColumns, new OrderSeqComparator()); + } // if + + return allVisibleColumns; + } // getOnlyVisibleColumns + public int getVisibleColumnCount() { + if (cr == null) + throw new NullPointerException("CustomReport not initialized"); + int colCount = 0; + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + // allColumns.addAll(ds.getDataColumnList().getDataColumn()); + List dcList = ds.getDataColumnList().getDataColumn(); + for (Iterator iterC = dcList.iterator(); iterC.hasNext();) { + DataColumnType dc = (DataColumnType) iterC.next(); + if(dc.isVisible()) colCount ++; + } // for + } // for + + return colCount; + } + + public List getAllFilters() { + if (cr == null) + throw new NullPointerException("CustomReport not initialized"); + + // if(allFilters==null) { + allFilters = new Vector(); + + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (dct.getColFilterList() != null) { + List colFilters = dct.getColFilterList().getColFilter(); + + for (Iterator iterF = colFilters.iterator(); iterF.hasNext();) { + ColFilterType cft = (ColFilterType) iterF.next(); + + allFilters.add(cft); + } // for + } // if + } // for + + // Collections.sort(allFilters, ??); + // } // if + + return allFilters; + } // getAllFilters + + private String formatValue(String value, DataColumnType dc, boolean useDefaultDateFormat) throws RaptorException { + return formatValue(value, dc, useDefaultDateFormat, getColumnTableById(dc.getColId()), null); + } // formatValue + + private String formatValue(String value, DataColumnType dc, boolean useDefaultDateFormat, + DataSourceType ds, FormFieldType fft) throws RaptorException { + String fmtValue = null; + + if (nvl(value).length() == 0) + fmtValue = ""; + else if (value.equals(AppConstants.FILTER_MAX_VALUE) + || value.equals(AppConstants.FILTER_MIN_VALUE)) + fmtValue = "(SELECT " + + (value.equals(AppConstants.FILTER_MAX_VALUE) ? "MAX" : "MIN") + "(" + + dc.getColName() + ") FROM " + ds.getTableName() + ")"; + else if (dc.getColType().equals(AppConstants.CT_NUMBER)) { + try { + double vD = Double.parseDouble(value); + fmtValue = value; + } catch(NumberFormatException ex) { + throw new UserDefinedException("Expected number, Given String for the form field \"" + fft.getFieldName()+"\""); + } + } + else if (dc.getColType().equals(AppConstants.CT_DATE)) { + if (fft!=null && (fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) ) { + fmtValue = "TO_DATE('" + + value + + "', '" + + (useDefaultDateFormat ? AppConstants.DEFAULT_DATE_FORMAT : nvl(dc + .getColFormat(), AppConstants.DEFAULT_DATE_FORMAT));//+" HH24:MI:SS')"; + fmtValue = fmtValue + " HH24"; + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) + fmtValue = fmtValue + ":MI"; + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) + fmtValue = fmtValue + " HH24:MI:SS"; + } else { + fmtValue = "TO_DATE('" + + value + + "', '" + + (useDefaultDateFormat ? AppConstants.DEFAULT_DATE_FORMAT : nvl(dc + .getColFormat(), AppConstants.DEFAULT_DATE_FORMAT)) + "')"; + if (Globals.getMonthFormatUseLastDay()) + if (!useDefaultDateFormat) + if (nvl(dc.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT).equals( + "MM/YYYY") + || nvl(dc.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) + .equals("MONTH, YYYY")) + fmtValue = "ADD_MONTHS(" + fmtValue + ", 1)-1"; + } + }else { + fmtValue = value; + if (!fmtValue.startsWith("'")) + fmtValue = "'" + fmtValue + "'"; + } + + return fmtValue; + } // formatValue + + private String formatListValue(String listValue, DataColumnType dc, + boolean useDefaultDateFormat, boolean useOnlyPipeDelimiter) throws RaptorException { + return formatListValue("", listValue, dc, useDefaultDateFormat, useOnlyPipeDelimiter, + getColumnTableById(dc.getColId()), null); + } // formatListValue + + public String formatListValue(String fieldDisplay, String listValue, DataColumnType dc, + boolean useDefaultDateFormat, boolean useOnlyPipeDelimiter, DataSourceType ds, + String listBaseSQL) throws RaptorException { + StringBuffer fmtValue = new StringBuffer(""); + //if(nvl(listValue,"").trim().length()>0) { + // The below statement is commented so that pipe is taken out from parsing for text area form field +// StringTokenizer st = new StringTokenizer(listValue, useOnlyPipeDelimiter ? "|" + //: ",|\n\r\f"); + StringTokenizer st = new StringTokenizer(listValue, useOnlyPipeDelimiter ? "|" + : ",\n\r\f"); + + while (st.hasMoreTokens()) { + if (fmtValue.length() > 0) + fmtValue.append(", "); + + if (dc == null) { + // For SQL-based reports - value always string + String value = st.nextToken().trim(); + if (value.startsWith("'")) + fmtValue.append(value); + else + fmtValue.append("'" + value + "'"); + } else + fmtValue.append(formatValue(st.nextToken().trim(), dc, useDefaultDateFormat, + ds, null) ); + + } // while + + if (fmtValue.length() == 0) { + if(nvl(fieldDisplay).length() > 0) { + fmtValue.append(""); + } else { + fmtValue.append("("); + fmtValue.append(nvl(listBaseSQL, "NULL")); + fmtValue.append(")"); + } + } else if (fmtValue.charAt(0) != '(') { + fmtValue.insert(0, '('); + fmtValue.append(')'); + } + /* } else { + fmtValue = new StringBuffer("()"); + }*/ + return fmtValue.toString(); + } // formatListValue + + private String getColumnSelectStr(DataColumnType dc, ReportParamValues paramValues) { + String colName = dc.isCalculated() ? dc.getColName() + : ((nvl(dc.getTableId()).length() > 0) ? (dc.getTableId() + "." + dc + .getColName()) : dc.getColName()); + String paramValue = null; + if (dc.isCalculated()) + if (getFormFieldList() != null) + for (Iterator iter2 = getFormFieldList().getFormField().iterator(); iter2 + .hasNext();) { + FormFieldType fft = (FormFieldType) iter2.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = getFormFieldDisplayName(fft); + if (!paramValues.isParameterMultiValue(fieldId)) { + paramValue = paramValues.getParamValue(fieldId); + if(paramValue!=null && paramValue.length() > 0) { + colName = Utils.replaceInString(colName, fieldDisplay, Utils + .oracleSafe(nvl(paramValue, "NULL"))); + } else { + colName = Utils.replaceInString(colName, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + colName = Utils.replaceInString(colName, fieldDisplay, nvl( + paramValue, "NULL")); + } + } + } // for + + return colName; + } // getColumnSelectStr + + private void addExtraIdSelect(StringBuffer selectExtraIdCl, String drillDownParams, + boolean includeSelectExpr) { + // drillDownParams - example value "c_master=[bo1.RECID$]" + drillDownParams = drillDownParams.substring(10, drillDownParams.length() - 1); // i.e. + // "bo1.RECID$" + + selectExtraIdCl.append(", "); + if (includeSelectExpr) { + selectExtraIdCl.append(drillDownParams); + selectExtraIdCl.append(" "); + } // if + selectExtraIdCl.append(drillDownParams.replace('.', '_')); // i.e. + // "bo1_RECID$" + } // addExtraIdSelect + + private void addExtraDateSelect(StringBuffer selectExtraDateCl, String drillDownParams, + ReportParamValues paramValues, boolean includeSelectExpr) { + // drillDownParams - example value "ff1=[dl1]&fc2=[mo3]" + String colId = ""; + while (drillDownParams.indexOf('[') >= 0) { + int startIdx = drillDownParams.indexOf('['); + int endIdx = drillDownParams.indexOf(']'); + + if(startIdx<=endIdx) { + colId = drillDownParams.substring(startIdx + 1, endIdx); // i.e. + } else { + drillDownParams = drillDownParams.substring(endIdx + 1); + continue; + } + // "dl1" + + DataColumnType column = getColumnById(colId); + if (column != null) + if (column.getColType().equals(AppConstants.CT_DATE)) + if (!nvl(column.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT).equals( + AppConstants.DEFAULT_DATE_FORMAT)) + if (selectExtraDateCl.toString().indexOf( + " " + colId + AppConstants.DD_COL_EXTENSION) < 0) { + selectExtraDateCl.append(", "); + if (includeSelectExpr) { + selectExtraDateCl.append("TO_CHAR(" + + getColumnSelectStr(column, paramValues) + ", '" + + AppConstants.DEFAULT_DATE_FORMAT + "')"); + selectExtraDateCl.append(" "); + } // if + selectExtraDateCl.append(colId + AppConstants.DD_COL_EXTENSION); // i.e. + // "dl1_dde" + } // if + + drillDownParams = drillDownParams.substring(endIdx + 1); + } // while + } // addExtraDateSelect + + /* + * public String generateSQL() { return generateSQL(null); } // generateSQL + */ + public String generateSQL(String userId, HttpServletRequest request) throws RaptorException { + return generateSQL(new ReportParamValues(), userId, request); + } // generateSQL + + public String generateSQL(ReportParamValues paramValues, String userId, HttpServletRequest request) throws RaptorException { + return generateSQL(paramValues, null, AppConstants.SO_ASC, userId, request); + } // generateSQL + + public String generateSQL(ReportParamValues paramValues, String overrideSortByColId, + String overrideSortByAscDesc, String userId, HttpServletRequest request) throws RaptorException { + if (cr == null) + throw new NullPointerException("CustomReport not initialized"); + if(nvl(getWholeSQL()).length()>0) return getWholeSQL(); + if (paramValues.size() > 0) + resetCache(true); + //resetCache(true); + if (generatedSQL == null) { + if (getReportDefType().equals(AppConstants.RD_SQL_BASED) || getReportDefType().equals(AppConstants.RD_SQL_BASED_DATAMIN)) { + generatedSQL = generateSQLSQLBased(paramValues, overrideSortByColId, + overrideSortByAscDesc, userId, request ); + generatedChartSQL = generateSQLSQLBased(paramValues, null, + AppConstants.SO_ASC, userId, request ); + } else if (getReportDefType().equals(AppConstants.RD_VISUAL) && !getReportType().equals(AppConstants.RT_CROSSTAB)) { + generatedSQL = generateSQLVisual(paramValues, overrideSortByColId, + overrideSortByAscDesc, userId, request); + generatedChartSQL = generateSQLVisual(paramValues, null, + AppConstants.SO_ASC, userId, request); + } else { + generatedSQL = generateSQLCrossTabVisual(paramValues, overrideSortByColId, + overrideSortByAscDesc, userId, request); + } + + //debugLogger.debug("******************"); + //debugLogger.debug("SQL Before Changing new line \n" + generatedSQL); + //debugLogger.debug("******************"); + generatedSQL = replaceNewLine(generatedSQL, ""+ '\n', " "+'\n'+" " ); + //chart sql should not be null + if(nvl(generatedChartSQL).trim().length()>0) + generatedChartSQL = replaceNewLine(generatedChartSQL, ""+ '\n', " "+'\n'+" " ); + //(generatedSQL, "\n", " \n "); + //debugLogger.debug("******************"); + //debugLogger.debug("SQL After Changing new line \n" + generatedSQL); + //debugLogger.debug("******************"); + //generatedSQL = replaceNewLine(generatedSQL, "SELECT", "SELECT "); + //generatedSQL = replaceNewLine(generatedSQL, "select", "select "); + //debugLogger.debug("SQL After Changing new line \n" + generatedSQL); + //debugLogger.debug("[[[[[[[[[[[[[[[[[["); + //generatedSQL = Utils.replaceInString(generatedSQL, "\n", " "); + //generatedSQL = Utils.replaceInString(generatedSQL, "\t", " "); + } // if + + return generatedSQL; + } // generateSQL + + public String generateSQLSQLBased(ReportParamValues paramValues, + String overrideSortByColId, String overrideSortByAscDesc, String userId, HttpServletRequest request) throws RaptorException { + String sql = getReportSQL(); + DataSet ds = null; + //debugLogger.debug(" generateSQLSQLBased " + sql); + String[] reqParameters = Globals.getRequestParams().split(","); + String[] sessionParameters = Globals.getSessionParams().split(","); + String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(","); + javax.servlet.http.HttpSession session = request.getSession(); + String dbType = ""; + String dbInfo = getDBInfo(); + int fieldCount = 0; + // For Daytona removing all formfields which has null param value + Pattern re1 = null; + Matcher matcher = null; + int index = 0; + int posFormField = 0; + int posAnd = 0; + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + + sql = sql + " "; + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" SELECT "); + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ff][Rr][Oo][Mm]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" FROM "); + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" WHERE "); + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Nn]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" WHEN "); + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" AND "); + + if (getFormFieldList() != null) { + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { + + FormFieldType fft = (FormFieldType) iter.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = getFormFieldDisplayName(fft); + if(!fft.getFieldType().equals(FormField.FFT_BLANK)) { + if (paramValues.isParameterMultiValue(fieldId)) { + String replaceValue = formatListValue(fieldDisplay, Utils + .oracleSafe(nvl(paramValues.getParamValue(fieldId))), null, false, + true, null, paramValues.getParamBaseSQL(fieldId)); + if(replaceValue.length() > 0) { + sql = Utils.replaceInString(sql, fieldDisplay, replaceValue); + } else { + fieldCount++; + if(fieldCount == 1) { + //sql = sql + " "; + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" SELECT "); + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" WHERE "); + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" AND "); + } + //sql = getReportSQL(); + while(sql.indexOf(fieldDisplay) > 0) { +/* sql = Utils.replaceInString(sql, "SELECT ", "select "); + sql = Utils.replaceInString(sql, "WHERE", "where"); + sql = Utils.replaceInString(sql, " AND ", " and "); +*/ + re1 = Pattern.compile("(^[\r\n]|[\\s])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + //re1 = Pattern.compile("(^[\r\n]|[\\s])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\]", Pattern.DOTALL); +/* posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf("and", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); +*/ + posFormField = sql.indexOf(fieldDisplay); + int posSelectField = sql.lastIndexOf("SELECT ", posFormField); + int andField = 0; + int whereField = 0, whenField = 0; + andField = sql.lastIndexOf(" AND ", posFormField); + whereField = sql.indexOf(" WHERE" , posSelectField); + whenField = sql.indexOf(" WHEN" , posSelectField); + + if(posFormField > whereField) + andField = sql.lastIndexOf(" AND ", posFormField); + if (posFormField > andField && (andField > whereField || andField > whenField)) + posAnd = andField; + else + posAnd = 0; + matcher = re1.matcher(sql); + + + if (posAnd > 0 && matcher.find(posAnd-1)) { + //sql = Utils.replaceInString(sql, matcher.group(), " "); + matcher = re1.matcher(sql); + index = sql!=null?sql.lastIndexOf("["+fft.getFieldName()+"]"):-1; + + if(andField>0) + index = andField; + else + index = whereField; + if(index >= 0 && matcher.find(index-1)) { + sql = sql.replace(matcher.group(), " "); + } + } else { + + //sql = sql.replace + re1 = Pattern.compile("(^[\r\n]|[\\s])WHERE(.*?[^\r\n]*)\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + matcher = re1.matcher(sql); + if(whereField != -1) { + if(matcher.find(whereField-1)) { + matcher = re1.matcher(sql); + index = sql!=null?sql.lastIndexOf("["+fft.getFieldName()+"]"):-1; + if(index >= 0 && matcher.find(index-30)) { + sql = sql.replace(matcher.group(), " WHERE 1=1 "); + } + //sql = Utils.replaceInString(sql, matcher.group(), " where 1=1 "); + } /*else { + replaceValue = formatListValue("", Utils + .oracleSafe(nvl(paramValues.getParamValue(fieldId))), null, false, + true, null, paramValues.getParamBaseSQL(fieldId)); + sql = Utils.replaceInString(sql, fieldDisplay, replaceValue); + }*/ + } else { + sql = Utils.replaceInString(sql, fieldDisplay, replaceValue); + } + + } + } + } + + //sql = Utils.replaceInString(sql, " select ", " SELECT "); + //sql = Utils.replaceInString(sql, " where ", " WHERE "); + //sql = Utils.replaceInString(sql, " and ", " AND "); + + } else { + String paramValue = ""; + if(paramValues.isParameterTextAreaValueAndModified(fieldId)) { + String value = ""; + value = nvl(paramValues + .getParamValue(fieldId)); +// value = Utils.oracleSafe(nvl(value)); +// if (!(dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT"))) { +// value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; +// value = Utils.replaceInString(value, "|", ","); +// paramValue = XSSFilter.filterRequestOnlyScript(value); +// } else if (nvl(value.trim()).length()>0) { +// value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; +// value = Utils.replaceInString(value, "|", ","); +// paramValue = XSSFilter.filterRequestOnlyScript(value); +// } + paramValue = value; + } else + paramValue = Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId))); + + if (paramValue!=null && paramValue.length() > 0) { + if(paramValue.toLowerCase().trim().startsWith("select ")) { + paramValue = Utils.replaceInString(paramValue, "[LOGGED_USERID]", userId); + paramValue = Utils.replaceInString(paramValue, "[USERID]", userId); + paramValue = Utils.replaceInString(paramValue, "[USER_ID]", userId); + + paramValue = Utils.replaceInString(paramValue, "''", "'"); + ds = ConnectionUtils.getDataSet(paramValue, dbInfo); + if (ds.getRowCount() > 0) paramValue = ds.getString(0, 0); + } + //debugLogger.debug("SQLSQLBASED B4^^^^^^^^^ " + sql + " " + fft.getValidationType() + " " + fft.getFieldName() + " " + fft.getFieldId()); + if(fft!=null && (fft.getValidationType()!=null && (fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) ||fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ||fft.getValidationType().equals(FormField.VT_DATE) ))) { + //System.out.println("paramValues.getParamValue(fieldId_Hr) Inside if " + fft.getValidationType() + " " + fieldDisplay); + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) +((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ) ):"")); + } + else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { +/* System.out.println("paramValues.getParamValue(fieldId_Hr)" + paramValues + .getParamValue(fieldId+"_Hr") + " " + paramValues + .getParamValue(fieldId+"_Min")) ; +*/ sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) + ((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ) ):"") + ((nvl(paramValues + .getParamValue(fieldId+"_Min") ).length()>0)?":" + addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Min") ) ) ) : "") ) ; + } + else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) + ((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ) ):"") + ((nvl(paramValues + .getParamValue(fieldId+"_Min") ).length()>0)?":" + addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Min") ) ) ) : "") + ((nvl(paramValues + .getParamValue(fieldId+"_Sec") ).length()>0)?":"+addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Sec") ) ) ) : "" ) ) ; + } else { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } + + + } else { + if(paramValue!=null && paramValue.length() > 0) { + if(sql.indexOf("'"+fieldDisplay+"'")!=-1 || sql.indexOf("'"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"'")!=-1 + || sql.indexOf("'%"+fieldDisplay+"%'")!=-1 || sql.indexOf("'%"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"%'")!=-1 + || sql.indexOf("'_"+fieldDisplay+"_'")!=-1 || sql.indexOf("'_"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"_'")!=-1 + || sql.indexOf("'%_"+fieldDisplay+"_%'")!=-1 || sql.indexOf("^"+fieldDisplay+"^")!=-1 || sql.indexOf("'%_"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"_%'")!=-1) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } else { + if(sql.indexOf(fieldDisplay)!=-1) { + if(nvl(paramValue).length()>0) { + try { + double vD = Double.parseDouble(paramValue); + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + + } catch (NumberFormatException ex) { + if (/*dbType.equals("DAYTONA") &&*/ sql.trim().toUpperCase().startsWith("SELECT")) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } else + throw new UserDefinedException("Expected number, Given String for the form field \"" + fieldDisplay+"\""); + } + /*sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL"));*/ + } else + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + + } + } + } + else { + if (dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT")) { + sql = sql + " "; + re1 = Pattern.compile("(^[\r\n]|[\\s]|[^0-9a-zA-Z])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf(" AND ", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); + if (matcher.find(posAnd)) { + sql = sql.replace(matcher.group(), ""); + } + } else { + sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } + } + } + + } + + if (dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT")) { + sql = sql + " "; + re1 = Pattern.compile("(^[\r\n]|[\\s]|[^0-9a-zA-Z])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); //+[\'\\)|\'|\\s] + posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf(" AND ", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); + if (matcher.find(posAnd)) { + sql = sql.replace(matcher.group(), " "); + } + } else { + if( fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue()) { + sql = Pattern.compile("[[\\s*][,]]\\["+fft.getFieldName()+"\\](.*?)[,]",Pattern.MULTILINE).matcher(sql).replaceAll(" "); + //sql = Pattern.compile("[,][\\s*]\\["+fft.getFieldName()+"\\][\\s]",Pattern.MULTILINE).matcher(sql).replaceAll(" "); + sql = Pattern.compile("(,.+?)[\\s*]\\["+fft.getFieldName()+"\\][\\s]",Pattern.MULTILINE).matcher(sql).replaceAll(" "); + //sql = Pattern.compile("(?:,?)[\\s*]\\["+fft.getFieldName()+"\\]",Pattern.MULTILINE).matcher(sql).replaceAll(""); + //sql = Pattern.compile("[,][\\s*]\\["+fft.getFieldName()+"\\]",Pattern.MULTILINE).matcher(sql).replaceAll(" "); + //sql = Pattern.compile( "\\["+fft.getFieldName()+"\\](.*?[^\r\n]*)[,]",Pattern.DOTALL).matcher(sql).replaceAll(""); + + //sql = Pattern.compile("[,]|(.*?[^\r\n]*)"+fieldDisplay+"(.*?)\\s",Pattern.DOTALL).matcher(sql).replaceAll(""); + //sql = Pattern.compile("(.*?[^\r\n]*)"+fieldDisplay+"(.*?)\\s|[,]",Pattern.DOTALL).matcher(sql).replaceAll(""); +/* sql = Utils.replaceInString(sql, "," + fieldDisplay , nvl( + paramValue, "")); + sql = Utils.replaceInString(sql, fieldDisplay + "," , nvl( + paramValue, "")); +*/ } else { + //debugLogger.debug("ParamValue |" + paramValue + "| Sql |" + sql + "| Multi Value |" + paramValues.isParameterMultiValue(fieldId)); + sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + sql = Utils.replaceInString(sql, fieldDisplay , nvl( + paramValue, "NULL")); + //debugLogger.debug("SQLSQLBASED AFTER^^^^^^^^^ " + sql); + } + } + + } // else + } // if BLANK + } // for + if(request != null ) { + for (int i = 0; i < reqParameters.length; i++) { + if(!reqParameters[i].startsWith("ff")) { + if (nvl(request.getParameter(reqParameters[i].toUpperCase())).length() > 0) + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); + } + else + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); + } + + for (int i = 0; i < scheduleSessionParameters.length; i++) { + if(nvl(request.getParameter(scheduleSessionParameters[i])).trim().length()>0 ) + sql = Utils.replaceInString(sql, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); + } + } + if(session != null ) { + for (int i = 0; i < sessionParameters.length; i++) { + //if(!sessionParameters[i].startsWith("ff")) + // paramValue = Utils.replaceInString(paramValue, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); + // else { + //debugLogger.debug(" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i])); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + //} + } + } + } else { + //debugLogger.debug("BEFORE LOGGED USERID REPLACE " + sql); + //sql = Utils.replaceInString(sql, "'[logged_userId]'", "'"+userId+"'"); + //debugLogger.debug("Replacing string 2 " + sql); + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + sql = Utils.replaceInString(sql, "[USERID]", userId); + sql = Utils.replaceInString(sql, "[USER_ID]", userId); + //debugLogger.debug("AFTER LOGGED USERID REPLACE " + sql); + // Added for Simon's GM Project where they need to get page_id in their query + //debugLogger.debug("SQLSQLBASED no formfields " + sql); + if(request != null ) { + for (int i = 0; i < reqParameters.length; i++) { + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); + } + } + if(session != null ) { + for (int i = 0; i < sessionParameters.length; i++) { + //debugLogger.debug(" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i])); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + } + } + } + // if it is not multiple select and ParamValue is empty this is the place it can be replaced. + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + sql = Utils.replaceInString(sql, "[USERID]", userId); + sql = Utils.replaceInString(sql, "[USER_ID]", userId); + //debugLogger.debug("SQLSQLBASED no formfields after" + sql); + //debugLogger.debug("Replacing String 2 "+ sql); + //debugLogger.debug("Replaced String " + sql); + + int closeBracketPos = 0; + if (nvl(overrideSortByColId).length() > 0) { + if(sql.lastIndexOf(")")!= -1) closeBracketPos = sql.lastIndexOf(")"); + int idxOrderBy = (closeBracketPos>0)?sql.toUpperCase().indexOf("ORDER BY", closeBracketPos):sql.toUpperCase().lastIndexOf("ORDER BY"); + DataColumnType dct = getColumnById(overrideSortByColId+"_sort"); + if(dct!=null && dct.getColName().length()>0) { + overrideSortByColId = overrideSortByColId+"_sort"; + } + if (idxOrderBy < 0) + sql += " ORDER BY " + overrideSortByColId + " " + overrideSortByAscDesc; + else { + int braketCount = 0; + int idxOrderByClauseEnd = 0; + for (idxOrderByClauseEnd = idxOrderBy; idxOrderByClauseEnd < sql.length(); idxOrderByClauseEnd++) { + char ch = sql.charAt(idxOrderByClauseEnd); + + if (ch == '(') + braketCount++; + else if (ch == ')') { + if (braketCount == 0) + break; + braketCount--; + } + } // for + + sql = sql.substring(0, idxOrderBy) + " ORDER BY " + overrideSortByColId + " " + + overrideSortByAscDesc + sql.substring(idxOrderByClauseEnd); + } // else + } // if + sql = Pattern.compile("([\n][\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" "); + return sql; + } // generateSQLSQLBased + + public String generateSQLVisual(ReportParamValues paramValues, String overrideSortByColId, + String overrideSortByAscDesc, String userId, HttpServletRequest request)throws RaptorException { + StringBuffer selectCl = new StringBuffer(); + StringBuffer fromCl = new StringBuffer(); + StringBuffer whereCl = new StringBuffer(); + StringBuffer groupByCl = new StringBuffer(); + StringBuffer havingCl = new StringBuffer(); + StringBuffer orderByCl = new StringBuffer(); + StringBuffer selectExtraIdCl = new StringBuffer(); + StringBuffer selectExtraDateCl = new StringBuffer(); + + int whereClBracketCount = 0; + int havingClBracketCount = 0; + int whereClCarryoverBrackets = 0; + int havingClCarryoverBrackets = 0; + + // Identifying FROM clause tables and WHERE clause joins + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + if (fromCl.length() > 0) + fromCl.append(", "); + fromCl.append(ds.getTableName()); + fromCl.append(" "); + fromCl.append(ds.getTableId()); + + if (nvl(ds.getRefTableId()).length() > 0) { + if (whereCl.length() > 0) + whereCl.append(" AND "); + whereCl.append(ds.getRefDefinition()); + } // if + // Add the condition. + TableSource tableSource = null; + String dBInfo = this.cr.getDbInfo(); + Vector userRoles = AppUtils.getUserRoles(request); + tableSource = DataCache.getTableSource(ds.getTableName(), dBInfo,userRoles,userId, request); + if (userId != null && (!AppUtils.isSuperUser(request)) + && (!AppUtils.isAdminUser(request)) && tableSource != null + && nvl(tableSource.getFilterSql()).length() > 0) { + if (whereCl.length() > 0) + whereCl.append(" AND "); + whereCl.append(Utils.replaceInString(Utils.replaceInString(tableSource + .getFilterSql(), "[" + ds.getTableName() + "]", ds.getTableId()), + "[USER_ID]", userId)); + } // if + } // for + + List reportCols = getAllColumns(); + + boolean isGroupStmt = false; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.isGroupBreak()) { + isGroupStmt = true; + break; + } // if + } // for + + // Identifying SELECT and GROUP BY clause fields and WHERE and HAVING + // clause filters + // Collections.sort(reportCols, new OrderSeqComparator()); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + + // SELECT clause fields + //TODO: Uncomment if it's not working -- if (dc.isVisible()) { + if (selectCl.length() > 0) + selectCl.append(", "); + selectCl.append(getSelectExpr(dc, colName)); + selectCl.append(" "); + selectCl.append(dc.getColId()); + //TODO } // if + + // Checking for extra fields necessary for drill-down + if (nvl(dc.getDrillDownURL()).length() > 0) + if (isViewAction(dc.getDrillDownURL())) + addExtraIdSelect(selectExtraIdCl, nvl(dc.getDrillDownParams()), true); + else + addExtraDateSelect(selectExtraDateCl, nvl(dc.getDrillDownParams()), + paramValues, true); + + // GROUP BY clause fields + if (dc.isGroupBreak()) { + if (groupByCl.length() > 0) + groupByCl.append(", "); + groupByCl.append(colName); + } // if + + // WHERE/HAVING clause fields + //boolean isHavingCl = isGroupStmt && dc.isVisible() && (!dc.isGroupBreak()); + boolean isHavingCl = isGroupStmt && (!dc.isGroupBreak()); + StringBuffer filterCl = isHavingCl ? havingCl : whereCl; + // StringBuffer filterCl = + // isGroupStmt?(dc.isVisible()?(dc.isGroupBreak()?whereCl:havingCl):whereCl):whereCl; + if (dc.getColFilterList() != null) { + int fNo = 0; + List fList = dc.getColFilterList().getColFilter(); + for (Iterator iterF = fList.iterator(); iterF.hasNext(); fNo++) { + ColFilterType cf = (ColFilterType) iterF.next(); + + StringBuffer curFilter = new StringBuffer(); + if (filterCl.length() > 0) + curFilter.append(" " + cf.getJoinCondition() + " "); + if ((isHavingCl ? havingClCarryoverBrackets : whereClCarryoverBrackets) > 0) + for (int b = 0; b < (isHavingCl ? havingClCarryoverBrackets + : whereClCarryoverBrackets); b++) + filterCl.append('('); + curFilter.append(nvl(cf.getOpenBrackets())); + curFilter.append(colName + " "); + curFilter.append(cf.getExpression() + " "); + + boolean applyFilter = true; + if ((nvl(cf.getArgValue()).length() > 0) + || (nvl(cf.getArgType()).equals(AppConstants.AT_FORM))) + if (nvl(cf.getArgType()).equals(AppConstants.AT_FORMULA)) + curFilter.append(cf.getArgValue()); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_VALUE)) + curFilter.append(formatValue(cf.getArgValue(), dc, false)); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_LIST)) + curFilter.append(formatListValue(cf.getArgValue(), dc, false, + false)); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_COLUMN)) + curFilter.append(getColumnNameById(cf.getArgValue())); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_FORM)) { + String fieldName = getFormFieldName(cf); + String fieldValue = Utils.oracleSafe(paramValues + .getParamValue(fieldName)); + boolean isMultiValue = paramValues + .isParameterMultiValue(fieldName); + boolean usePipeDelimiterOnly = false; + + FormFieldType fft = getFormFieldByDisplayValue(cf.getArgValue()); + if (fft == null) + // If not FormField => applying default value + fieldValue = nvl(fieldValue, Utils + .oracleSafe(cf.getArgValue())); + else + usePipeDelimiterOnly = fft.getFieldType().equals( + FormField.FFT_CHECK_BOX) + || fft.getFieldType().equals(FormField.FFT_LIST_MULTI); + //Added for TimeStamp validation + String fieldId = fft.getFieldId(); + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)||fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)||fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { + fieldValue = nvl( + fieldValue + " " + addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ) ) ) ; + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { + fieldValue = fieldValue + (nvl(paramValues + .getParamValue(fieldId+"_Min")).length()>0 ? ":" + addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Min")))): "") ; + } + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { + fieldValue = fieldValue + (nvl(paramValues + .getParamValue(fieldId+"_Sec")).length()>0 ? ":"+ addZero(Utils.oracleSafe(nvl(paramValues + .getParamValue(fieldId+"_Sec")))) : ""); + } + } + + // End + if (nvl(fieldValue).length() == 0) + // Does not append filter with missing form + // field argument + applyFilter = false; + else if (isMultiValue || nvl(cf.getExpression()).equals("IN") + || nvl(cf.getExpression()).equals("NOT IN")) + curFilter.append(formatListValue(fieldValue, dc, true, + usePipeDelimiterOnly)); + else + curFilter.append(formatValue(fieldValue, dc, true, null, fft)); + } // else + curFilter.append(nvl(cf.getCloseBrackets())); + + if (applyFilter) { + filterCl.append(curFilter.toString()); + + if (isHavingCl) { + havingClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + havingClCarryoverBrackets = 0; + } else { + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + whereClCarryoverBrackets = 0; + } + } else if (nvl(cf.getOpenBrackets()).length() != nvl(cf.getCloseBrackets()) + .length()) + if (nvl(cf.getOpenBrackets()).length() > nvl(cf.getCloseBrackets()) + .length()) { + // Carry over opening brackets + if (isHavingCl) + havingClCarryoverBrackets += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + else + whereClCarryoverBrackets += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + + if (isHavingCl) + havingClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + else + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + } else { + // Adding closing brackets + if (filterCl.length() > 0) { + for (int b = 0; b < nvl(cf.getCloseBrackets()).length() + - nvl(cf.getOpenBrackets()).length(); b++) + filterCl.append(')'); + + if (isHavingCl) + havingClBracketCount += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + else + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + } // if + } // else + } // for + } // if + } // for + + // Identifying ORDER BY clause fields + DataColumnType overrideSortByCol = null; + if (overrideSortByColId != null) + overrideSortByCol = getColumnById(overrideSortByColId); + + if (overrideSortByCol != null) { + orderByCl.append(getColumnSelectStr(overrideSortByCol, paramValues)); + orderByCl.append(" "); + orderByCl.append(nvl(overrideSortByAscDesc, AppConstants.SO_ASC)); + } else if (getReportType().equals(AppConstants.RT_CROSSTAB)) { + /* + * for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) { + * DataColumnType dc = (DataColumnType) iter.next(); + * + * if(nvl(dc.getCrossTabValue()).equals(AppConstants.CV_ROW)||nvl(dc.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) { + * if(orderByCl.length()>0) orderByCl.append(", "); + * orderByCl.append(getColumnSelectStr(dc, paramValues)); + * orderByCl.append(" "); + * if(dc.getColType().equals(AppConstants.CT_DATE)) + * orderByCl.append(AppConstants.SO_DESC); else + * orderByCl.append(AppConstants.SO_ASC); } // if } // for + */ + } else { + Collections.sort(reportCols, new OrderBySeqComparator()); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + + if (dc.getOrderBySeq() > 0) { + if (orderByCl.length() > 0) + orderByCl.append(", "); + orderByCl.append(getColumnSelectStr(dc, paramValues)); + orderByCl.append(" "); + orderByCl.append(dc.getOrderByAscDesc()); + } // if + } // for + Collections.sort(reportCols, new OrderSeqComparator()); + } // else + + // Adding up the actual statement + StringBuffer sql = new StringBuffer(); + //sql.append("SELECT "); // Need to add PK for /*+ FIRST_ROWS */ "); + sql.append(Globals.getGenerateSqlVisualSelect()); + //sql.append((selectCl.length() == 0) ? "COUNT(*) cnt" : selectCl.toString()); + sql.append((selectCl.length() == 0) ? Globals.getGenerateSqlVisualCount() : selectCl.toString()); + if (groupByCl.length() == 0) + sql.append(selectExtraIdCl.toString()); + sql.append(selectExtraDateCl.toString()); + // sql.append(" FROM "); + sql.append((fromCl.length() == 0) ? Globals.getGenerateSqlVisualDual() : "FROM "+fromCl.toString()); + if (whereCl.length() > 0) { + if (whereClBracketCount > 0) { + for (int b = 0; b < whereClBracketCount; b++) + whereCl.append(')'); + } else if (whereClBracketCount < 0) { + for (int b = 0; b < Math.abs(whereClBracketCount); b++) + whereCl.insert(0, '('); + } // else + + sql.append(" WHERE "); + sql.append(whereCl.toString()); + } // if + if (groupByCl.length() > 0) { + sql.append(" GROUP BY "); + sql.append(groupByCl.toString()); + + if (havingCl.length() > 0) { + if (havingClBracketCount > 0) { + for (int b = 0; b < havingClBracketCount; b++) + havingCl.append(')'); + } else if (havingClBracketCount < 0) { + for (int b = 0; b < Math.abs(havingClBracketCount); b++) + havingCl.insert(0, '('); + } // else + + sql.append(" HAVING "); + sql.append(havingCl.toString()); + } + } + if (orderByCl.length() > 0) { + sql.append(" ORDER BY "); + sql.append(orderByCl.toString()); + } + //String sqlStr = Utils.replaceInString(sql.toString(), "[LOGGED_USERID]", userId); + //return sqlStr; + return sql.toString(); + } // generateSQLVisual + + public String generateSQLCrossTabVisual(ReportParamValues paramValues, String overrideSortByColId, + String overrideSortByAscDesc, String userId, HttpServletRequest request) throws RaptorException { + StringBuffer selectCl = new StringBuffer(); + StringBuffer fromCl = new StringBuffer(); + StringBuffer whereCl = new StringBuffer(); + StringBuffer groupByCl = new StringBuffer(); + StringBuffer havingCl = new StringBuffer(); + StringBuffer orderByCl = new StringBuffer(); + StringBuffer selectExtraIdCl = new StringBuffer(); + StringBuffer selectExtraDateCl = new StringBuffer(); + + int whereClBracketCount = 0; + int havingClBracketCount = 0; + int whereClCarryoverBrackets = 0; + int havingClCarryoverBrackets = 0; + + // Identifying FROM clause tables and WHERE clause joins + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + if (fromCl.length() > 0) + fromCl.append(", "); + fromCl.append(ds.getTableName()); + fromCl.append(" "); + fromCl.append(ds.getTableId()); + + if (nvl(ds.getRefTableId()).length() > 0) { + if (whereCl.length() > 0) + whereCl.append(" AND "); + whereCl.append(ds.getRefDefinition()); + } // if + // Add the condition. + TableSource tableSource = null; + String dBInfo = this.cr.getDbInfo(); + Vector userRoles = AppUtils.getUserRoles(request); + tableSource = DataCache.getTableSource(ds.getTableName(), dBInfo,userRoles,userId, request); + if (userId != null && (!AppUtils.isSuperUser(request)) + && (!AppUtils.isAdminUser(request)) && tableSource != null + && nvl(tableSource.getFilterSql()).length() > 0) { + if (whereCl.length() > 0) + whereCl.append(" AND "); + whereCl.append(Utils.replaceInString(Utils.replaceInString(tableSource + .getFilterSql(), "[" + ds.getTableName() + "]", ds.getTableId()), + "[USER_ID]", userId)); + } // if + } // for + + List reportCols = getAllColumns(); + + boolean isGroupStmt = false; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.isGroupBreak()) { + isGroupStmt = true; + break; + } // if + } // for + + // Identifying SELECT and GROUP BY clause fields and WHERE and HAVING + // clause filters + // Collections.sort(reportCols, new OrderSeqComparator()); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + + // SELECT clause fields + if (dc.isVisible()) { + if (selectCl.length() > 0) + selectCl.append(", "); + selectCl.append(getSelectExpr(dc, colName)); + selectCl.append(" "); + selectCl.append(dc.getColId()); + } // if + + // Checking for extra fields necessary for drill-down + if (nvl(dc.getDrillDownURL()).length() > 0) + if (isViewAction(dc.getDrillDownURL())) + addExtraIdSelect(selectExtraIdCl, nvl(dc.getDrillDownParams()), true); + else + addExtraDateSelect(selectExtraDateCl, nvl(dc.getDrillDownParams()), + paramValues, true); + + // GROUP BY clause fields + if (dc.isGroupBreak()) { + if (groupByCl.length() > 0) + groupByCl.append(", "); + groupByCl.append(colName); + } // if + + // WHERE/HAVING clause fields + boolean isHavingCl = isGroupStmt && dc.isVisible() && (!dc.isGroupBreak()); + //boolean isHavingCl = isGroupStmt && (!dc.isGroupBreak()); + //StringBuffer filterCl = isHavingCl ? havingCl : whereCl; + StringBuffer filterCl = + isGroupStmt?(dc.isVisible()?(dc.isGroupBreak()?whereCl:havingCl):whereCl):whereCl; + if (dc.getColFilterList() != null) { + int fNo = 0; + List fList = dc.getColFilterList().getColFilter(); + for (Iterator iterF = fList.iterator(); iterF.hasNext(); fNo++) { + ColFilterType cf = (ColFilterType) iterF.next(); + + StringBuffer curFilter = new StringBuffer(); + if (filterCl.length() > 0) + curFilter.append(" " + cf.getJoinCondition() + " "); + if ((isHavingCl ? havingClCarryoverBrackets : whereClCarryoverBrackets) > 0) + for (int b = 0; b < (isHavingCl ? havingClCarryoverBrackets + : whereClCarryoverBrackets); b++) + filterCl.append('('); + curFilter.append(nvl(cf.getOpenBrackets())); + curFilter.append(colName + " "); + curFilter.append(cf.getExpression() + " "); + + boolean applyFilter = true; + if ((nvl(cf.getArgValue()).length() > 0) + || (nvl(cf.getArgType()).equals(AppConstants.AT_FORM))) + if (nvl(cf.getArgType()).equals(AppConstants.AT_FORMULA)) + curFilter.append(cf.getArgValue()); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_VALUE)) + curFilter.append(formatValue(cf.getArgValue(), dc, false)); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_LIST)) + curFilter.append(formatListValue(cf.getArgValue(), dc, false, + false)); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_COLUMN)) + curFilter.append(getColumnNameById(cf.getArgValue())); + else if (nvl(cf.getArgType()).equals(AppConstants.AT_FORM)) { + String fieldName = getFormFieldName(cf); + String fieldValue = Utils.oracleSafe(paramValues + .getParamValue(fieldName)); + boolean isMultiValue = paramValues + .isParameterMultiValue(fieldName); + boolean usePipeDelimiterOnly = false; + + FormFieldType fft = getFormFieldByDisplayValue(cf.getArgValue()); + if (fft == null) + // If not FormField => applying default value + fieldValue = nvl(fieldValue, Utils + .oracleSafe(cf.getArgValue())); + else + usePipeDelimiterOnly = fft.getFieldType().equals( + FormField.FFT_CHECK_BOX) + || fft.getFieldType().equals(FormField.FFT_LIST_MULTI); + + if (nvl(fieldValue).length() == 0) + // Does not append filter with missing form + // field argument + applyFilter = false; + else if (isMultiValue || nvl(cf.getExpression()).equals("IN") + || nvl(cf.getExpression()).equals("NOT IN")) + curFilter.append(formatListValue(fieldValue, dc, true, + usePipeDelimiterOnly)); + else + curFilter.append(formatValue(fieldValue, dc, true)); + } // else + curFilter.append(nvl(cf.getCloseBrackets())); + + if (applyFilter) { + filterCl.append(curFilter.toString()); + + if (isHavingCl) { + havingClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + havingClCarryoverBrackets = 0; + } else { + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + whereClCarryoverBrackets = 0; + } + } else if (nvl(cf.getOpenBrackets()).length() != nvl(cf.getCloseBrackets()) + .length()) + if (nvl(cf.getOpenBrackets()).length() > nvl(cf.getCloseBrackets()) + .length()) { + // Carry over opening brackets + if (isHavingCl) + havingClCarryoverBrackets += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + else + whereClCarryoverBrackets += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + + if (isHavingCl) + havingClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + else + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + } else { + // Adding closing brackets + if (filterCl.length() > 0) { + for (int b = 0; b < nvl(cf.getCloseBrackets()).length() + - nvl(cf.getOpenBrackets()).length(); b++) + filterCl.append(')'); + + if (isHavingCl) + havingClBracketCount += (nvl(cf.getOpenBrackets()) + .length() - nvl(cf.getCloseBrackets()).length()); + else + whereClBracketCount += (nvl(cf.getOpenBrackets()).length() - nvl( + cf.getCloseBrackets()).length()); + } // if + } // else + } // for + } // if + } // for + + // Identifying ORDER BY clause fields + DataColumnType overrideSortByCol = null; + if (overrideSortByColId != null) + overrideSortByCol = getColumnById(overrideSortByColId); + + if (overrideSortByCol != null) { + orderByCl.append(getColumnSelectStr(overrideSortByCol, paramValues)); + orderByCl.append(" "); + orderByCl.append(nvl(overrideSortByAscDesc, AppConstants.SO_ASC)); + } else if (getReportType().equals(AppConstants.RT_CROSSTAB)) { + /* + * for(Iterator iter=reportCols.iterator(); iter.hasNext(); ) { + * DataColumnType dc = (DataColumnType) iter.next(); + * + * if(nvl(dc.getCrossTabValue()).equals(AppConstants.CV_ROW)||nvl(dc.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) { + * if(orderByCl.length()>0) orderByCl.append(", "); + * orderByCl.append(getColumnSelectStr(dc, paramValues)); + * orderByCl.append(" "); + * if(dc.getColType().equals(AppConstants.CT_DATE)) + * orderByCl.append(AppConstants.SO_DESC); else + * orderByCl.append(AppConstants.SO_ASC); } // if } // for + */ + } else { + Collections.sort(reportCols, new OrderBySeqComparator()); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + + if (dc.getOrderBySeq() > 0) { + if (orderByCl.length() > 0) + orderByCl.append(", "); + orderByCl.append(getColumnSelectStr(dc, paramValues)); + orderByCl.append(" "); + orderByCl.append(dc.getOrderByAscDesc()); + } // if + } // for + Collections.sort(reportCols, new OrderSeqComparator()); + } // else + + // Adding up the actual statement + StringBuffer sql = new StringBuffer(); + //sql.append("SELECT "); // Need to add PK for /*+ FIRST_ROWS */ "); + sql.append(Globals.getGenerateSqlVisualSelect()); + // sql.append((selectCl.length() == 0) ? "COUNT(*) cnt" : selectCl.toString()); + sql.append((selectCl.length() == 0) ? Globals.getGenerateSqlVisualCount() : selectCl.toString()); + if (groupByCl.length() == 0) + sql.append(selectExtraIdCl.toString()); + sql.append(selectExtraDateCl.toString()); + // sql.append(" FROM "); + sql.append((fromCl.length() == 0) ? Globals.getGenerateSqlVisualDual() : "FROM "+fromCl.toString()); + if (whereCl.length() > 0) { + if (whereClBracketCount > 0) { + for (int b = 0; b < whereClBracketCount; b++) + whereCl.append(')'); + } else if (whereClBracketCount < 0) { + for (int b = 0; b < Math.abs(whereClBracketCount); b++) + whereCl.insert(0, '('); + } // else + + sql.append(" WHERE "); + sql.append(whereCl.toString()); + } // if + if (groupByCl.length() > 0) { + sql.append(" GROUP BY "); + sql.append(groupByCl.toString()); + + if (havingCl.length() > 0) { + if (havingClBracketCount > 0) { + for (int b = 0; b < havingClBracketCount; b++) + havingCl.append(')'); + } else if (havingClBracketCount < 0) { + for (int b = 0; b < Math.abs(havingClBracketCount); b++) + havingCl.insert(0, '('); + } // else + + sql.append(" HAVING "); + sql.append(havingCl.toString()); + } + } + if (orderByCl.length() > 0) { + sql.append(" ORDER BY "); + sql.append(orderByCl.toString()); + } + + System.out.println("Created SQL statement: "+sql); + + //String sqlStr = Utils.replaceInString(sql.toString(), "[LOGGED_USERID]", userId); + //return sqlStr; + return sql.toString(); + } // generateSQLCrossTabVisual + + + public String generatePagedSQL(int pageNo, String userId, HttpServletRequest request, boolean getColumnNamesFromReportSQL, ReportParamValues paramValues) throws RaptorException { + int counter = 0; + if(!Globals.isMySQL()) + counter = 1; + return generateSubsetSQL(pageNo * getPageSize() + counter, ((pageNo + 1) * getPageSize()) + + ((pageNo == 0) ? 1 : 0), userId, request, getColumnNamesFromReportSQL, paramValues); + } // generatePagedSQL + + public String generateSubsetSQL(int startRow, int endRow, String userId, HttpServletRequest request, boolean getColumnNamesFromReportSQL, ReportParamValues paramValues) throws RaptorException { + //debugLogger.debug(" ******** End Row ********* " + endRow); + String dbInfo = getDBInfo(); + String dbType = ""; + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + List reportCols = getAllColumns(); + String wholeSQL_OrderBy = getWholeSQL(); + String reportSQL = getWholeSQL(); + reportSQL = reportSQL.replace(";", ""); + setWholeSQL(reportSQL); + if(nvl(reportSQL).length()>0) + reportSQL = generateSQL(userId, request); + + if (reportSQL.toUpperCase().indexOf("ORDER BY ") < 0) { + StringBuffer sortBy = null; + + if (reportSQL.toUpperCase().indexOf("GROUP BY ") < 0) + if (getDataSourceList().getDataSource().size() > 0) { + DataSourceType dst = (DataSourceType) getDataSourceList().getDataSource() + .get(0); + String tId = dst.getTableId(); + String tPK = dst.getTablePK(); + if (nvl(tPK).length() > 0) { + sortBy = new StringBuffer(); + StringTokenizer st = new StringTokenizer(tPK, ", "); + while (st.hasMoreTokens()) { + if (sortBy.length() > 0) + sortBy.append(","); + sortBy.append(tId); + sortBy.append("."); + sortBy.append(st.nextToken()); + } // while + } + } // if + if (reportSQL.trim().toUpperCase().startsWith("SELECT")) { + //if (!(dbType.equals("DAYTONA") && reportSQL.trim().toUpperCase().startsWith("SELECT"))) + // reportSQL += " ORDER BY " + ((sortBy == null) ? "1" : sortBy.toString()); + } + } + + StringBuffer colNames = new StringBuffer(); + StringBuffer colExtraIdNames = new StringBuffer(); + StringBuffer colExtraDateNames = new StringBuffer(); + + if(getColumnNamesFromReportSQL) { + DataSet ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); + List reportCols1 = getAllColumns(); + reportCols = new Vector(); + outer: + for (Iterator iter = reportCols1.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + for (int k=0; k 0) + colNames.append(", "); + colNames.append(dc.getColId()); + //TODO uncomment if it's not working} // if + + // Checking for extra fields necessary for drill-down + if (nvl(dc.getDrillDownURL()).length() > 0) + if (isViewAction(dc.getDrillDownURL())) + addExtraIdSelect(colExtraIdNames, nvl(dc.getDrillDownParams()), false); + else + addExtraDateSelect(colExtraDateNames, nvl(dc.getDrillDownParams()), null, + false); + } // for + + if (reportSQL.toUpperCase().indexOf("GROUP BY ") < 0) + colNames.append(colExtraIdNames.toString()); + //commented to avoid coldId_dde + //colNames.append(colExtraDateNames.toString()); + + /* + * if(pageNo==0) if(reportSQL.toUpperCase().indexOf(" WHERE ")<0) + * if(reportSQL.toUpperCase().indexOf(" GROUP BY ")<0) reportSQL = + * reportSQL.substring(0, reportSQL.toUpperCase().indexOf(" ORDER BY + * "))+" WHERE ROWNUM <= + * "+getPageSize()+reportSQL.substring(reportSQL.toUpperCase().indexOf(" + * ORDER BY ")); else reportSQL = "SELECT "+colNames.toString()+" FROM + * (SELECT ROWNUM rnum, "+colNames.toString()+" FROM ("+reportSQL+") x) + * y WHERE rnum <= "+getPageSize()+" ORDER BY rnum"; else reportSQL = + * reportSQL.substring(0, reportSQL.toUpperCase().indexOf(" WHERE "))+" + * WHERE ROWNUM <= "+getPageSize()+" AND + * "+reportSQL.substring(reportSQL.toUpperCase().indexOf(" WHERE ")+7); + * else reportSQL = "SELECT "+colNames.toString()+" FROM (SELECT ROWNUM + * rnum, "+colNames.toString()+" FROM ("+reportSQL+") x) y WHERE rnum >= + * "+(pageNo*getPageSize()+1)+" AND rnum <= + * "+((pageNo+1)*getPageSize())+" ORDER BY rnum"; + */ + if (dbType.equals("DAYTONA") && reportSQL.trim().toUpperCase().startsWith("SELECT")) { + if(endRow == -1) endRow = (getMaxRowsInExcelDownload()>0)?getMaxRowsInExcelDownload():Globals.getDownloadLimit(); + reportSQL = reportSQL + " LIMIT TO " +(startRow==0?startRow+1:startRow)+"->"+endRow; + return reportSQL; + } else if (dbType.equals("DAYTONA")) { + return reportSQL; + } + + //reportSQL = "SELECT " + colNames.toString() + " FROM (SELECT ROWNUM rnum, " + // + colNames.toString() + " FROM (" + reportSQL + ") x "; + + String rSQL = Globals.getGenerateSubsetSql(); + rSQL = rSQL.replace("[colNames.toString()]", colNames.toString()); + rSQL = rSQL.replace("[reportSQL]", reportSQL); + + reportSQL=rSQL; + //added rownum for total report where row header need to be shown + //reportSQLOnlyFirstPart = "SELECT rnum," + colNames.toString() + " FROM (SELECT ROWNUM rnum, " + //+ colNames.toString() + " FROM (" ; + + reportSQLOnlyFirstPart = Globals.getReportSqlOnlyFirstPart(); + reportSQLOnlyFirstPart = reportSQLOnlyFirstPart.replace("[colNames.toString()]", colNames.toString()); + + + reportSQLWithRowNum = reportSQL; + + /* if( endRow != -1) + reportSQL += " WHERE ROWNUM <= " + endRow; + reportSQL += " ) y WHERE rnum >= " + startRow + " ORDER BY rnum"; + return reportSQL;*/ + String parta = Globals.getReportSqlOnlySecondPartA(); + String partb = Globals.getReportSqlOnlySecondPartB(); + + String partSql = ""; + if(!AppUtils.isNotEmpty(getDBType())){ + setDBType(Globals.getDBType()); + } + + int closeBracketPos = 0; + if(wholeSQL_OrderBy.lastIndexOf(")")!= -1) closeBracketPos = wholeSQL_OrderBy.lastIndexOf(")"); + int idxOrderBy = (closeBracketPos>0)?wholeSQL_OrderBy.toUpperCase().indexOf("ORDER BY", closeBracketPos):wholeSQL_OrderBy.toUpperCase().lastIndexOf("ORDER BY"); + String orderbyclause = ""; + if (idxOrderBy < 0) { + orderbyclause = " ORDER BY 1 "; + partSql += " "+ orderbyclause+ " "; + } + else { + orderbyclause = wholeSQL_OrderBy.substring(idxOrderBy); + partSql += " "+ orderbyclause+ " "; + } + + if(getDBType().equals(AppConstants.MYSQL)) { + partSql = partSql+ " LIMIT "+ String.valueOf(startRow)+" , "+ String.valueOf(endRow); + } else if(getDBType().equals(AppConstants.ORACLE)) { + reportSQL = reportSQL.replace(" AS ", " "); + partSql = "where rownum >= "+ String.valueOf(startRow)+" and rownum <= "+(Integer.parseInt(String.valueOf(startRow)) + Integer.parseInt(String.valueOf(endRow))); + } else if(getDBType().equals(AppConstants.POSTGRESQL)) { + partSql = partSql + " LIMIT "+ String.valueOf(endRow)+" , "+ String.valueOf(startRow);//limit [pageSize] offset [startRow] + } + + // Limit only to MYSQL or MariaDB + //if (reportSQL.toUpperCase().indexOf("ORDER BY ") < 0) + //partSql += " ORDER BY 1"; + //else { + + + + /*if(!Globals.isMySQL()) + parta = parta.replace("[endRow]", String.valueOf(endRow)); + else + parta = parta.replace("[startRow]", String.valueOf(startRow)); + + //String partb = Globals.getReportSqlOnlySecondPartB(); + if(!Globals.isMySQL()) + partb = partb.replace("[startRow]", String.valueOf(startRow)); + else + partb = partb.replace("[pageSize]", String.valueOf(getPageSize())); + + if( endRow != -1) + reportSQL += parta;*/ + reportSQL += partSql; + + return reportSQL; + + } // generateSubsetSQL + + public String generateChartSQL(ReportParamValues paramValues, String userId, HttpServletRequest request ) throws RaptorException { + List reportCols = getAllColumns(); + List chartValueCols = getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, null); // parameter is 0 has this requires all columns. + String reportSQL = generateSQL(userId, request); + //if(nvl(reportSQL).length()>0) reportSQL = generatedChartSQL; + logger.debug(EELFLoggerDelegate.debugLogger, ("SQL " + reportSQL)); + String legendCol = "1 a"; + // String valueCol = "1"; + StringBuffer groupCol = new StringBuffer(); + StringBuffer seriesCol = new StringBuffer(); + StringBuffer valueCols = new StringBuffer(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + if (nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + legendCol = getSelectExpr(dc, colName)+" " + dc.getColId(); + // if(dc.getChartSeq()>0) + // valueCol = "NVL("+colName+", 0) "+dc.getColId(); + if ((!nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + && (dc.getChartSeq()==null || dc.getChartSeq() <= 0) && dc.isGroupBreak()) { + groupCol.append(", "); + groupCol.append(colName + " " + dc.getColId()); + } + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(dc.isChartSeries()!=null && dc.isChartSeries().booleanValue()) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))+ " " + dc.getColId()); + } + } + + /*for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(!dc.isChartSeries() && !(nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ formatChartColumn(getSelectExpr(dc,getColumnSelectStr(dc, paramValues)))+ " " + dc.getColId()); + } + }*/ + + for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + seriesCol.append("," + formatChartColumn(colName) + " " + dc.getColId()); + } // for + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + seriesCol.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + seriesCol.append(", " + AppConstants.RI_CHART_COLOR + " " + AppConstants.RI_CHART_COLOR ); + if(colName.equals(AppConstants.RI_CHART_MARKER_START)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_START + " " + AppConstants.RI_CHART_MARKER_START ); + if(colName.equals(AppConstants.RI_CHART_MARKER_END)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_END + " " + AppConstants.RI_CHART_MARKER_END ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_LEFT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_LEFT + " " + AppConstants.RI_CHART_MARKER_TEXT_LEFT ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_RIGHT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT + " " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT ); + if(colName.equals(AppConstants.RI_ANOMALY_TEXT)) + seriesCol.append(", " + AppConstants.RI_ANOMALY_TEXT + " " + AppConstants.RI_ANOMALY_TEXT ); + } + + //debugLogger.debug("ReportSQL Chart " + reportSQL ); + /*for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + valueCols.append("," + formatChartColumn(colName) + " " + dc.getColId()); + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //if(colName.equals(AppConstants.RI_CHART_TOTAL_COL) || colName.equals(AppConstants.RI_CHART_COLOR)) { + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + valueCols.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + valueCols.append(", " + AppConstants.RI_CHART_COLOR + " " + AppConstants.RI_CHART_COLOR ); + if (colName.equals(AppConstants.RI_CHART_INCLUDE)) + valueCols.append(", " + AppConstants.RI_CHART_INCLUDE + " " + AppConstants.RI_CHART_INCLUDE ); + //} + }*/ + String final_sql = ""; + reportSQL = Utils.replaceInString(reportSQL, " from ", " FROM "); + reportSQL = Utils.replaceInString(reportSQL, " select ", " SELECT "); + reportSQL = Utils.replaceInString(reportSQL, " union ", " UNION "); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); +// if(reportSQL.indexOf("UNION") != -1) { +// if(reportSQL.indexOf("FROM(")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM(") ); +// else if (reportSQL.indexOf("FROM (")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM (") ); +// //TODO ELSE THROW ERROR +// } +// else { +// final_sql += " "+reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM ")); +// } + int pos = 0; + int pos_first_select = 0; + int pos_dup_select = 0; + int pos_prev_select = 0; + int pos_last_select = 0; + if (reportSQL.indexOf("FROM", pos)!=-1) { + pos = reportSQL.indexOf("FROM", pos); + pos_dup_select = reportSQL.lastIndexOf("SELECT",pos); + pos_first_select = reportSQL.indexOf("SELECT");//,pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_select " + pos_first_select + " " + pos_dup_select)); + if(pos_dup_select > pos_first_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********pos_dup_select ********" + pos_dup_select)); + //pos_dup_select1 = pos_dup_select; + pos_prev_select = pos_first_select; + pos_last_select = pos_dup_select; + while (pos_last_select > pos_prev_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_last , pos_prev " + pos_last_select + " " + pos_prev_select)); + pos = reportSQL.indexOf("FROM", pos+2); + pos_prev_select = pos_last_select; + pos_last_select = reportSQL.lastIndexOf("SELECT",pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("in WHILE LOOP LAST " + pos_last_select)); + } + } + + } + final_sql += " "+reportSQL.substring(pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("Final SQL " + final_sql)); + String sql = "SELECT " + legendCol + ", " + legendCol+"_1" + seriesCol.toString()+ nvl(valueCols.toString(), ", 1") + + groupCol.toString() + + final_sql; + logger.debug(EELFLoggerDelegate.debugLogger, ("Final sql in generateChartSQL " +sql)); + + return sql; + } // generateChartSQL + + private String formatChartColumn(String colName) { + + logger.debug(EELFLoggerDelegate.debugLogger, ("Format Chart Column Input colName" + colName)); + colName = colName.trim(); + colName = Utils.replaceInString(colName, "TO_CHAR", "to_char"); + colName = Utils.replaceInString(colName, "to_number", "TO_NUMBER"); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); + colName = colName.replaceAll(",[\\s]*\\(", ",("); + StringBuffer colNameBuf = new StringBuffer(colName); + int pos = 0, posFormatStart = 0, posFormatEnd = 0; + String format = ""; + if(colNameBuf.indexOf("999")==-1 && colNameBuf.indexOf("990")==-1) { + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + while (colNameBuf.indexOf("to_char")!=-1) { + if(colNameBuf.indexOf("999")!=-1 || colNameBuf.indexOf("990")!=-1) { + pos = colNameBuf.indexOf("to_char"); + colNameBuf.insert(pos, " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ("); + pos = colNameBuf.indexOf("to_char"); + colNameBuf.replace(pos, pos+7, "TO_CHAR"); + //colName = Utils.replaceInString(colNameBuf.toString(), "to_char", " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ( TO_CHAR "); + logger.debug(EELFLoggerDelegate.debugLogger, ("After adding to_number " + colNameBuf.toString())); + //posFormatStart = colNameBuf.lastIndexOf(",'")+1; + posFormatStart = colNameBuf.indexOf(",'", pos)+1; + posFormatEnd = colNameBuf.indexOf(")",posFormatStart); + logger.debug(EELFLoggerDelegate.debugLogger, (posFormatStart + " " + posFormatEnd + " "+ pos)); + format = colNameBuf.substring(posFormatStart, posFormatEnd); + //posFormatEnd = colNameBuf.indexOf(")",posFormatEnd); + colNameBuf.insert(posFormatEnd+1, " ," + format + ") , "+ format + ")"); + logger.debug(EELFLoggerDelegate.debugLogger, ("colNameBuf " + colNameBuf.toString())); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + public String generateTotalSQLLinear(ReportParamValues paramValues, String userId, HttpServletRequest request) throws RaptorException { + List reportCols = getAllColumns(); + String reportSQL = generateSQL(userId,request); + //debugLogger.debug("After GenerateSQL " + reportSQL); + + StringBuffer sbSelect = new StringBuffer(); + StringBuffer sbTotal = new StringBuffer(); + StringBuffer colNames = new StringBuffer(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + + DataColumnType dc = (DataColumnType) iter.next(); + if (colNames.length() > 0) + colNames.append(", "); + colNames.append(dc.getColId()); + } + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + //if (!dct.isVisible()) + // continue; + + String colName = getColumnSelectStr(dct, paramValues); + + sbSelect.append((sbSelect.length() == 0) ? "SELECT " : ", "); + + sbSelect.append(colName); + sbSelect.append(" "); + sbSelect.append(dct.getColId()); + + + sbTotal.append((sbTotal.length() == 0) ? "SELECT " : ", "); + if (nvl(dct.getDisplayTotal()).length() > 0) { + // sbTotal.append(getSelectExpr(dct, + // dct.getDisplayTotal()+dct.getColId()+")")); + String displayTotal = dct.getDisplayTotal(); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < displayTotal.length(); i++) { + char ch = displayTotal.charAt(i); + if (ch == '+' || ch == '-') + sb.append(dct.getColId() + ")"); + sb.append(ch); + } // for + sb.append(dct.getColId() + ")"); + + //debugLogger.debug("SB " + sb.toString() + "\n " + getSelectExpr(dct, sb.toString())); + sbTotal.append(getSelectExpr(dct, sb.toString())); + //debugLogger.debug("SBTOTAL " + sbTotal.toString()); + } else + sbTotal.append("NULL"); + sbTotal.append(" total_"); + sbTotal.append(dct.getColId()); + } // for + + //debugLogger.debug(" ****** " + sbTotal.toString()); + logger.debug(EELFLoggerDelegate.debugLogger, ("REPORTWRAPPER " + reportSQL)); + int pos = 0; + int pos_first_select = 0; + int pos_dup_select = 0; + int pos_prev_select = 0; + int pos_last_select = 0; + + //reportSQL = Utils.replaceInString(reportSQL, " from ", " FROM "); + //reportSQL = Utils.replaceInString(reportSQL, "select ", "SELECT "); + reportSQL = replaceNewLine(reportSQL, " from ", " FROM "); + reportSQL = replaceNewLine(reportSQL, "from ", " FROM "); + reportSQL = replaceNewLine(reportSQL, "FROM ", " FROM "); + + reportSQL = " "+reportSQL; + reportSQL = replaceNewLine(reportSQL, "select ", " SELECT "); + reportSQL = replaceNewLine(reportSQL, "SELECT ", " SELECT "); + if (reportSQL.indexOf("FROM", pos)!=-1) { + pos = reportSQL.indexOf("FROM", pos); + pos_dup_select = reportSQL.lastIndexOf("SELECT",pos); + pos_first_select = reportSQL.indexOf("SELECT");//,pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_select " + pos_first_select + " " + pos_dup_select)); + if(pos_dup_select > pos_first_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********pos_dup_select ********" + pos_dup_select)); + //pos_dup_select1 = pos_dup_select; + pos_prev_select = pos_first_select; + pos_last_select = pos_dup_select; + while (pos_last_select > pos_prev_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_last , pos_prev " + pos_last_select + " " + pos_prev_select)); + pos = reportSQL.indexOf("FROM", pos+2); + pos_prev_select = pos_last_select; + pos_last_select = reportSQL.lastIndexOf("SELECT",pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("in WHILE LOOP LAST " + pos_last_select)); + } + } + + } + + + //sbSelect.append(reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM "))); + + logger.debug(EELFLoggerDelegate.debugLogger, (" *************** " + pos + " " + reportSQL)); + //sbSelect.append(" "+ reportSQL.substring(pos)); + sbSelect.append(" "+reportSQL.substring(pos)); + logger.debug(EELFLoggerDelegate.debugLogger, (" **************** " + sbSelect.toString())); + sbTotal.append(" FROM ("); + sbTotal.append(sbSelect.toString()); + sbTotal.append(") totalSQL"); + + String dbType = ""; + String dbInfo = getDBInfo(); + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + if (dbType.equals("DAYTONA")) { + sbTotal.append("("+ colNames+ ")"); + } + String sql = sbTotal.toString(); + sql = Utils.replaceInString(sql, " from ", " FROM "); + sql = Utils.replaceInString(sql, "select ", "SELECT "); + //sql = Utils.replaceInString(sql, " select ", " SELECT "); + logger.debug(EELFLoggerDelegate.debugLogger, ("Before SQL Corrector " + sql)); + String corrected_SQL = new SQLCorrector().fixSQL(new StringBuffer(sql)); + logger.debug(EELFLoggerDelegate.debugLogger, ("************")); + logger.debug(EELFLoggerDelegate.debugLogger, ("Corrected SQL " + corrected_SQL)); + return corrected_SQL; + //return sbTotal.toString(); + } // generateTotalSQLLinear + + public String generateTotalSQLCrossTab(String sql, String rowColPos, + String userId, HttpServletRequest request, ReportParamValues paramValues) throws RaptorException { + List reportCols = getAllColumns(); + String reportSQL = sql; + + StringBuffer sbSelect = new StringBuffer(); + StringBuffer sbGroup = new StringBuffer(); + // StringBuffer sbOrder = new StringBuffer(); + StringBuffer sbTotal = new StringBuffer(); + StringBuffer colNames = new StringBuffer(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + + DataColumnType dc = (DataColumnType) iter.next(); + if (colNames.length() > 0) + colNames.append(", "); + colNames.append(dc.getColId()); + } + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (!dct.isVisible()) + continue; + + + String colName = getColumnSelectStr(dct, paramValues); + String colExpr = getSelectExpr(dct, colName); + + sbSelect.append((sbSelect.length() == 0) ? "SELECT " : ", "); + + if (nvl(dct.getCrossTabValue()).equals(rowColPos)) { + //sbSelect.append(colExpr); + sbSelect.append(dct.getColId()); + sbGroup.append((sbGroup.length() == 0) ? " GROUP BY " : ", "); + sbGroup.append(dct.getColId()); + + /* + * sbOrder.append((sbOrder.length()==0)?" ORDER BY ":", "); + * sbOrder.append(dct.getColId()); + * if(dct.getColType().equals(AppConstants.CT_DATE)) + * sbOrder.append(" DESC"); + */ + + sbTotal.append((sbTotal.length() == 0) ? "SELECT " : ", "); + sbTotal.append(dct.getColId()); + } else if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE)) { + //sbSelect.append(colName); + sbSelect.append(dct.getColId()); + + String displayTotal = getCrossTabDisplayTotal(rowColPos); + if (displayTotal.length() > 0) { + // displayTotal += dct.getColId()+")"; + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < displayTotal.length(); i++) { + char ch = displayTotal.charAt(i); + if (ch == '+' || ch == '-') + sb.append(dct.getColId() + ")"); + sb.append(ch); + } // for + sb.append(dct.getColId() + ")"); + + displayTotal = sb.toString(); + } else + displayTotal = "COUNT(*)"; + + sbTotal.append((sbTotal.length() == 0) ? "SELECT " : ", "); + sbTotal.append(getSelectExpr(dct, displayTotal)); + sbTotal.append(" total_"); + sbTotal.append(dct.getColId()); + } else { + //sbSelect.append(colExpr); + sbSelect.append(dct.getColId()); + } // if + + sbSelect.append(" "); + sbSelect.append(dct.getColId()); + } // for + + sbSelect.append(reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM "))); + + sbTotal.append(" FROM ("); + sbTotal.append(sbSelect.toString()); + sbTotal.append(") totalSQL"); + sbTotal.append(sbGroup.toString()); + String dbType = ""; + String dbInfo = getDBInfo(); + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + if (dbType.equals("DAYTONA")) { + sbTotal.append("("+ colNames+ ")"); + } + + // sbTotal.append(sbOrder.toString()); + + //debugLogger.debug(getReportDefType() + " " + AppConstants.RD_SQL_BASED); + //debugLogger.debug("SQL To Delete " + sbTotal.toString()); + sql = ""; + if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + sql = Utils.replaceInString(sbTotal.toString(), " from ", " FROM "); + sql = Utils.replaceInString(sql, "select ", "SELECT "); + return new SQLCorrector().fixSQL(new StringBuffer(sql)); + } + + return sbTotal.toString(); + + } // generateTotalSQLCrossTab + + + public String generateTotalSQLCrossTab(ReportParamValues paramValues, String rowColPos, + String userId, HttpServletRequest request) throws RaptorException { + List reportCols = getAllColumns(); + String reportSQL = generateSQL(userId, request); + + StringBuffer sbSelect = new StringBuffer(); + StringBuffer sbGroup = new StringBuffer(); + // StringBuffer sbOrder = new StringBuffer(); + StringBuffer sbTotal = new StringBuffer(); + StringBuffer colNames = new StringBuffer(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + + DataColumnType dc = (DataColumnType) iter.next(); + if (colNames.length() > 0) + colNames.append(", "); + colNames.append(dc.getColId()); + } + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (!dct.isVisible()) + continue; + + String colName = getColumnSelectStr(dct, paramValues); + String colExpr = getSelectExpr(dct, colName); + + sbSelect.append((sbSelect.length() == 0) ? "SELECT " : ", "); + + if (nvl(dct.getCrossTabValue()).equals(rowColPos)) { + sbSelect.append(colExpr); + + sbGroup.append((sbGroup.length() == 0) ? " GROUP BY " : ", "); + sbGroup.append(dct.getColId()); + + /* + * sbOrder.append((sbOrder.length()==0)?" ORDER BY ":", "); + * sbOrder.append(dct.getColId()); + * if(dct.getColType().equals(AppConstants.CT_DATE)) + * sbOrder.append(" DESC"); + */ + + sbTotal.append((sbTotal.length() == 0) ? "SELECT " : ", "); + sbTotal.append(dct.getColId()); + } else if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE)) { + sbSelect.append(colName); + + String displayTotal = getCrossTabDisplayTotal(rowColPos); + if (displayTotal.length() > 0) { + // displayTotal += dct.getColId()+")"; + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < displayTotal.length(); i++) { + char ch = displayTotal.charAt(i); + if (ch == '+' || ch == '-') + sb.append(dct.getColId() + ")"); + sb.append(ch); + } // for + sb.append(dct.getColId() + ")"); + + displayTotal = sb.toString(); + } else + displayTotal = "COUNT(*)"; + + sbTotal.append((sbTotal.length() == 0) ? "SELECT " : ", "); + sbTotal.append(getSelectExpr(dct, displayTotal)); + sbTotal.append(" total_"); + sbTotal.append(dct.getColId()); + } else { + sbSelect.append(colExpr); + } // if + + sbSelect.append(" "); + sbSelect.append(dct.getColId()); + } // for + + sbSelect.append(reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM "))); + + sbTotal.append(" FROM ("); + sbTotal.append(sbSelect.toString()); + sbTotal.append(") totalSQL"); + sbTotal.append(sbGroup.toString()); + String dbType = ""; + String dbInfo = getDBInfo(); + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + if (dbType.equals("DAYTONA")) { + sbTotal.append("("+ colNames+ ")"); + } + + // sbTotal.append(sbOrder.toString()); + + //debugLogger.debug(getReportDefType() + " " + AppConstants.RD_SQL_BASED); + //debugLogger.debug("SQL To Delete " + sbTotal.toString()); + String sql = ""; + if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + sql = Utils.replaceInString(sbTotal.toString(), " from ", " FROM "); + sql = Utils.replaceInString(sql, "select ", "SELECT "); + return new SQLCorrector().fixSQL(new StringBuffer(sql)); + } + + return sbTotal.toString(); + + } // generateTotalSQLCrossTab + + public String generateDistinctValuesSQL(ReportParamValues paramValues, DataColumnType dct, + String userId, HttpServletRequest request) throws RaptorException { + DataSourceType dst = getColumnTableById(dct.getColId()); + String colName = getColumnSelectStr(dct, paramValues); + String colExpr = getSelectExpr(dct, colName); + ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + StringBuffer sb = new StringBuffer(); + sb.append("SELECT DISTINCT "); + if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) { + sb.append(dct.getColId()); + sb.append(" FROM ("); + //paramvalues added below to filter distinct values based on formfields. + //sb.append(generateSQL(paramValues, userId, request)); + sb.append(rr.getWholeSQL()); + sb.append(") " + (Globals.isPostgreSQL() || Globals.isMySQL() ?" AS ":"") + " report_sql ORDER BY 1"); + } else { + sb.append(colExpr); + sb.append(" "); + sb.append(dct.getColId()); + if (!colExpr.equals(colName)) { + sb.append(", "); + sb.append(colName); + } // if + sb.append(" FROM "); + sb.append(dst.getTableName()); + sb.append(" "); + sb.append(dst.getTableId()); + sb.append(" ORDER BY "); + sb.append(colName); + if (dct.getColType().equals(AppConstants.CT_DATE)) + sb.append(" DESC"); + } // else + + return sb.toString(); + } // generateDistinctValuesSQL + + /** ************************************************************************************************* */ + + public DataSourceType getTableWithoutColumns() { + List dsList = getDataSourceList().getDataSource(); + for (Iterator iter = dsList.iterator(); iter.hasNext();) { + DataSourceType ds = (DataSourceType) iter.next(); + + if (ds.getDataColumnList().getDataColumn().size() == 0) + return ds; + } // for + + return null; + } // getTableWithoutColumns + + public CustomReportType cloneCustomReportClearTables() throws RaptorException { + ReportWrapper nrw = new ReportWrapper(cloneCustomReport(), reportID, getOwnerID(), + getCreateID(), getCreateDate(), getUpdateID(), getUpdateDate(), getMenuID(), + isMenuApproved()); + + DataSourceType ndst = null; + while ((ndst = nrw.getTableWithoutColumns()) != null) + nrw.deleteDataSourceType(ndst.getTableId()); + + return nrw.getCustomReport(); + } // cloneCustomReportClearTables + + public String marshal() throws RaptorException { + StringWriter sw = new StringWriter(); + ObjectFactory objFactory = new ObjectFactory(); + + try { + JAXBContext jc = JAXBContext.newInstance("org.onap.portalsdk.analytics.xmlobj"); + Marshaller m = jc.createMarshaller(); + m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); + //JAXBElement jaxbElement = new JAXBElement(new QName("customReport"), Object.class, ""); + //m.marshal( System.out ); + //m.marshal(jaxbElement, new StreamResult(sw)); + m.marshal((getTableWithoutColumns() == null) ? objFactory.createCustomReport(cr) : objFactory.createCustomReport(cloneCustomReportClearTables()), + new StreamResult(sw)); + } catch (JAXBException ex) { + throw new RaptorException (ex.getMessage(), ex.getCause()); + } + return sw.toString(); + } // marshal + + public static CustomReportType unmarshalCR(String reportXML) throws RaptorException { + //CustomReport cr = null; + try { + JAXBContext jc = JAXBContext.newInstance("org.onap.portalsdk.analytics.xmlobj"); + Unmarshaller u = jc.createUnmarshaller(); + javax.xml.bind.JAXBElement doc = (javax.xml.bind.JAXBElement) u.unmarshal(new java.io.StringReader( + reportXML)); + return doc.getValue(); + } catch (JAXBException ex) { + ex.printStackTrace(); + throw new RaptorException (ex.getMessage(), ex.getCause()); + } + + + } // unmarshal + + protected static CustomReportType createBlankCR() throws RaptorException { + return createBlankCR("N/A"); + } // createBlank + + protected static CustomReportType createBlankCR(String createID) throws RaptorException { + ObjectFactory objFactory = new ObjectFactory(); + CustomReportType cr = objFactory.createCustomReportType(); + //CustomReport cr = null; + try { + //cr = (CustomReport) objFactory.createCustomReport(customReportType); + + cr.setReportName(""); + cr.setReportDescr(""); + cr.setChartType(""); + cr.setPublic(false); + cr.setCreateId(createID); + cr.setCreateDate(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar())); + // cr.setReportSQL(""); + cr.setReportType(""); + cr.setPageSize(50); + + DataSourceList dataSourceList = objFactory.createDataSourceList(); + cr.setDataSourceList(dataSourceList); + } catch (DatatypeConfigurationException ex) { + throw new RaptorException (ex.getMessage(), ex.getCause()); + } + return cr; + } // createBlank + + protected void replaceCustomReportWithClone() throws RaptorException { + try { + CustomReportType clone = cloneCustomReport(); + this.cr = clone; + } catch (Exception e) { + e.printStackTrace(); + logger.debug(EELFLoggerDelegate.debugLogger, ("[SYSTEM ERROR] ReportWrapper.replaceCustomReportWithClone generated exception for report [" + + reportID + "]. Exception: " + e.getMessage())); + throw new RaptorException("[SYSTEM ERROR] ReportWrapper.replaceCustomReportWithClone generated exception for report [" + + reportID + "]. Exception: " + e.getMessage(), e.getCause()); + } + } // replaceCustomReportWithClone + + /** ************************************************************************************************* */ + + public FormatType cloneFormatType(ObjectFactory objFactory, FormatType ft) + throws JAXBException { + FormatType nft = objFactory.createFormatType(); + + nft.setLessThanValue(ft.getLessThanValue()); + nft.setExpression(ft.getExpression()); + nft.setBold(ft.isBold()); + nft.setItalic(ft.isItalic()); + nft.setUnderline(ft.isUnderline()); + if (nvl(ft.getBgColor()).length() > 0) + nft.setBgColor(ft.getBgColor()); + if (nvl(ft.getFontColor()).length() > 0) + nft.setFontColor(ft.getFontColor()); + if (nvl(ft.getFontFace()).length() > 0) + nft.setFontFace(ft.getFontFace()); + if (nvl(ft.getFontSize()).length() > 0) + nft.setFontSize(ft.getFontSize()); + if (nvl(ft.getAlignment()).length() > 0) + nft.setAlignment(ft.getAlignment()); + if (nvl(ft.getComment()).length() > 0) + nft.setComment(ft.getComment()); + + nft.setFormatId(ft.getFormatId()); + + return nft; + } // cloneFormatType + + public SemaphoreType cloneSemaphoreType(ObjectFactory objFactory, SemaphoreType st) + throws JAXBException { + SemaphoreType nst = objFactory.createSemaphoreType(); + + nst.setSemaphoreName(st.getSemaphoreName()); + nst.setSemaphoreType(st.getSemaphoreType()); + nst.setSemaphoreId(st.getSemaphoreId()); + if (nvl(st.getComment()).length() > 0) + nst.setComment(st.getComment()); + + if (st.getFormatList() != null) { + FormatList formatList = objFactory.createFormatList(); + nst.setFormatList(formatList); + + for (Iterator iter = st.getFormatList().getFormat().iterator(); iter.hasNext();) + formatList.getFormat().add( + cloneFormatType(objFactory, (FormatType) iter.next())); + } // if + + return nst; + } // cloneSemaphoreType + + public Reports cloneDashboardType(ObjectFactory objFactory, Reports rpt) + throws JAXBException { + Reports nrpt = objFactory.createReports(); + + nrpt.setReportId(rpt.getReportId()); + nrpt.setBgcolor(rpt.getBgcolor()); + return nrpt; + } // cloneDashboardType + + public Marker cloneMarkerType(ObjectFactory objFactory, Marker marker) + throws JAXBException { + Marker nMarker = objFactory.createMarker(); + nMarker.setAddressColumn(marker.getAddressColumn()); + nMarker.setDataColumn(marker.getDataColumn()); + nMarker.setDataHeader(marker.getDataHeader()); + nMarker.setMarkerColor(marker.getMarkerColor()); + return nMarker; + } // cloneDashboardType + + public ChartDrillFormfield cloneChartDrillFormfield(ObjectFactory objFactory, ChartDrillFormfield chartDrillFormfield) + throws JAXBException { + ChartDrillFormfield nChartDrillFormfield = objFactory.createChartDrillFormfield(); + nChartDrillFormfield.setFormfield(chartDrillFormfield.getFormfield()); + return nChartDrillFormfield; + } // cloneDashboardType + + public boolean isChartDrillDownContainsName(String name) { + for (Iterator iter = getChartDrillOptions().getTargetFormfield().iterator(); iter + .hasNext();) { + org.onap.portalsdk.analytics.xmlobj.ChartDrillFormfield cdf = (org.onap.portalsdk.analytics.xmlobj.ChartDrillFormfield) iter.next(); + if(cdf.getFormfield().equals(name)) { + return true; + } + } + return false; + } + public FormFieldType cloneFormFieldType(ObjectFactory objFactory, FormFieldType fft) + throws JAXBException { + FormFieldType nfft = objFactory.createFormFieldType(); + + nfft.setColId(fft.getColId()); + nfft.setFieldName(fft.getFieldName()); + nfft.setFieldType(fft.getFieldType()); + if (nvl(fft.getVisible()).length() > 0) + nfft.setVisible(fft.getVisible()); + if (nvl(fft.getValidationType()).length() > 0) + nfft.setValidationType(fft.getValidationType()); + if (nvl(fft.getMandatory()).length() > 0) + nfft.setMandatory(fft.getMandatory()); + if (nvl(fft.getDefaultValue()).length() > 0) + nfft.setDefaultValue(fft.getDefaultValue()); + nfft.setOrderBySeq(fft.getOrderBySeq()); + if (nvl(fft.getFieldSQL()).length() > 0) + nfft.setFieldSQL(fft.getFieldSQL()); + if (nvl(fft.getFieldDefaultSQL()).length() > 0) + nfft.setFieldDefaultSQL(fft.getFieldDefaultSQL()); + if(fft.getRangeStartDate()!=null) + nfft.setRangeStartDate(fft.getRangeStartDate()); + if(fft.getRangeEndDate()!=null) + nfft.setRangeEndDate(fft.getRangeEndDate()); + if(fft.getRangeStartDateSQL()!=null) + nfft.setRangeStartDateSQL(fft.getRangeStartDateSQL()); + if(fft.getRangeEndDateSQL()!=null) + nfft.setRangeEndDateSQL(fft.getRangeEndDateSQL()); + + if (nvl(fft.getComment()).length() > 0) + nfft.setComment(fft.getComment()); + + if (fft.getPredefinedValueList() != null) { + PredefinedValueList predefinedValueList = objFactory.createPredefinedValueList(); + nfft.setPredefinedValueList(predefinedValueList); + + for (Iterator iter = fft.getPredefinedValueList().getPredefinedValue().iterator(); iter + .hasNext();) + predefinedValueList.getPredefinedValue().add(new String((String) iter.next())); + } // if + if (nvl(fft.getDependsOn()).length() > 0) + nfft.setDependsOn(fft.getDependsOn()); + + nfft.setGroupFormField((fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue())?true:false); + if (nvl(fft.getMultiSelectListSize()).length() > 0) + nfft.setMultiSelectListSize(fft.getMultiSelectListSize()); + + nfft.setFieldId(fft.getFieldId()); + return nfft; + } // cloneFormFieldType + + public JavascriptItemType cloneJavascriptType(ObjectFactory objFactory, JavascriptItemType jit) + throws JAXBException { + JavascriptItemType njit = objFactory.createJavascriptItemType(); + + njit.setId(jit.getId()); + njit.setFieldId(jit.getFieldId()); + njit.setCallText(jit.getCallText()); + return njit; + } // cloneJavascriptType + + public ColFilterType cloneColFilterType(ObjectFactory objFactory, ColFilterType cft) + throws JAXBException { + ColFilterType ncft = objFactory.createColFilterType(); + + ncft.setColId(cft.getColId()); + ncft.setFilterSeq(cft.getFilterSeq()); + ncft.setJoinCondition(cft.getJoinCondition()); + if (nvl(cft.getOpenBrackets()).length() > 0) + ncft.setOpenBrackets(cft.getOpenBrackets()); + ncft.setExpression(cft.getExpression()); + if (nvl(cft.getArgType()).length() > 0) + ncft.setArgType(cft.getArgType()); + if (nvl(cft.getArgValue()).length() > 0) + ncft.setArgValue(cft.getArgValue()); + if (nvl(cft.getCloseBrackets()).length() > 0) + ncft.setCloseBrackets(cft.getCloseBrackets()); + if (nvl(cft.getComment()).length() > 0) + ncft.setComment(cft.getComment()); + + return ncft; + } // cloneColFilterType + + public DataColumnType cloneDataColumnType(ObjectFactory objFactory, DataColumnType dct) + throws JAXBException { + DataColumnType ndct = objFactory.createDataColumnType(); + + ndct.setTableId(dct.getTableId()); + ndct.setDbColName(dct.getDbColName()); + if (nvl(dct.getCrossTabValue()).length() > 0) + ndct.setCrossTabValue(dct.getCrossTabValue()); + ndct.setColName(dct.getColName()); + ndct.setDisplayName(dct.getDisplayName()); + if (dct.getDisplayWidth() > 0) + ndct.setDisplayWidth(dct.getDisplayWidth()); + if (nvl(dct.getDisplayWidthInPxls()).length()>0) + ndct.setDisplayWidthInPxls(dct.getDisplayWidthInPxls()); + if (nvl(dct.getDisplayAlignment()).length() > 0) + ndct.setDisplayAlignment(dct.getDisplayAlignment()); + if (nvl(dct.getDisplayHeaderAlignment()).length() > 0) + ndct.setDisplayHeaderAlignment(dct.getDisplayHeaderAlignment()); + ndct.setOrderSeq(dct.getOrderSeq()); + ndct.setVisible(dct.isVisible()); + ndct.setCalculated(dct.isCalculated()); + ndct.setColType(dct.getColType()); + if(dct.getColType().equals(AppConstants.CT_HYPERLINK)) { + ndct.setHyperlinkURL(dct.getHyperlinkURL()); + ndct.setHyperlinkType(dct.getHyperlinkType()); + if(dct.getHyperlinkType().equals("IMAGE")) { + ndct.setActionImg(dct.getActionImg()); + } + } + + if(dct.getIndentation()!=null) { + ndct.setIndentation(dct.getIndentation()); + } + + if (nvl(dct.getColFormat()).length() > 0) + ndct.setColFormat(dct.getColFormat()); + ndct.setGroupBreak(dct.isGroupBreak()); + ndct.setNowrap(dct.getNowrap()); + if (nvl(dct.getYAxis()).length() > 0) + ndct.setYAxis(dct.getYAxis()); + if (dct.getOrderBySeq()!=null && dct.getOrderBySeq() > 0) + ndct.setOrderBySeq(dct.getOrderBySeq()); + if (nvl(dct.getOrderByAscDesc()).length() > 0) + ndct.setOrderByAscDesc(dct.getOrderByAscDesc()); + if (nvl(dct.getDisplayTotal()).length() > 0) + ndct.setDisplayTotal(dct.getDisplayTotal()); + if (nvl(dct.getColOnChart()).length() > 0) + ndct.setColOnChart(dct.getColOnChart()); + if (dct.getChartSeq() !=null) + ndct.setChartSeq(dct.getChartSeq()); + if (nvl(dct.getChartColor()).length() > 0) + ndct.setChartColor(dct.getChartColor()); + if (nvl(dct.getChartLineType()).length() > 0) + ndct.setChartLineType(dct.getChartLineType()); + ndct.setChartSeries((dct.isChartSeries()!=null && dct.isChartSeries().booleanValue())?true:false); + ndct.setIsRangeAxisFilled((dct.isIsRangeAxisFilled()!=null && dct.isIsRangeAxisFilled().booleanValue())?true:false); + + if (dct.isCreateInNewChart()!=null) + ndct.setCreateInNewChart(dct.isCreateInNewChart()); + if (nvl(dct.getDrillDownType()).length() > 0) + ndct.setDrillDownType(dct.getDrillDownType()); + ndct.setDrillinPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); + if (nvl(dct.getDrillDownURL()).length() > 0) + ndct.setDrillDownURL(dct.getDrillDownURL()); + if (nvl(dct.getDrillDownParams()).length() > 0) + ndct.setDrillDownParams(dct.getDrillDownParams()); + if (nvl(dct.getComment()).length() > 0) + ndct.setComment(dct.getComment()); + if (nvl(dct.getDependsOnFormField()).length() > 0) + ndct.setDependsOnFormField(dct.getDependsOnFormField()); + if (dct.getColFilterList() != null) { + ColFilterList colFilterList = objFactory.createColFilterList(); + ndct.setColFilterList(colFilterList); + + for (Iterator iter = dct.getColFilterList().getColFilter().iterator(); iter + .hasNext();) + colFilterList.getColFilter().add( + cloneColFilterType(objFactory, (ColFilterType) iter.next())); + } // if + + if (nvl(dct.getSemaphoreId()).length() > 0) + ndct.setSemaphoreId(dct.getSemaphoreId()); + if (nvl(dct.getDbColType()).length() > 0) + ndct.setDbColType(dct.getDbColType()); + else { + ndct.setDbColType(dct.getColType()); + adjustColumnType(ndct); + } + if (nvl(dct.getChartGroup()).length() > 0) + ndct.setChartGroup(dct.getChartGroup()); + + if (nvl(dct.getYAxis()).length() > 0) + ndct.setYAxis(dct.getYAxis()); + + if (nvl(dct.getDependsOnFormField()).length() > 0) + ndct.setDependsOnFormField(dct.getDependsOnFormField()); + + + + if(nvl(dct.getNowrap()).length() > 0) + ndct.setNowrap(dct.getNowrap()); + + if(dct.getIndentation()!=null) { + ndct.setIndentation(dct.getIndentation()); + } + + ndct.setEnhancedPagination((dct.isEnhancedPagination()!=null && dct.isEnhancedPagination().booleanValue())?true:false); + if(nvl(dct.getDataMiningCol()).length() > 0) + ndct.setDataMiningCol(dct.getDataMiningCol()); + + ndct.setColId(dct.getColId()); + + // ndct.setSemaphoreId(nvl(dct.getSemaphoreId())); + // if(nvl(dct.getDbColType()).length()>0) + // ndct.setDbColType(dct.getDbColType()); + return ndct; + } // cloneDataColumnType + + public DataSourceType cloneDataSourceType(ObjectFactory objFactory, DataSourceType dst) + throws JAXBException { + DataSourceType ndst = objFactory.createDataSourceType(); + + ndst.setTableName(dst.getTableName()); + ndst.setTablePK(dst.getTablePK()); + ndst.setDisplayName(dst.getDisplayName()); + if (nvl(dst.getRefTableId()).length() > 0) + ndst.setRefTableId(dst.getRefTableId()); + if (nvl(dst.getRefDefinition()).length() > 0) + ndst.setRefDefinition(dst.getRefDefinition()); + if (nvl(dst.getComment()).length() > 0) + ndst.setComment(dst.getComment()); + DataColumnList dataColumnList = objFactory.createDataColumnList(); + ndst.setDataColumnList(dataColumnList); + + for (Iterator iter = dst.getDataColumnList().getDataColumn().iterator(); iter + .hasNext();) + dataColumnList.getDataColumn().add( + cloneDataColumnType(objFactory, (DataColumnType) iter.next())); + ndst.setTableId(dst.getTableId()); + + + return ndst; + } // cloneDataSourceType + + public CustomReportType cloneCustomReport() throws RaptorException { + ObjectFactory objFactory = new ObjectFactory(); + CustomReportType ncr = objFactory.createCustomReportType(); + + //CustomReport ncr = null; + try { + //ncr = (CustomReport) objFactory.createCustomReport(customReportType); + ncr.setReportName(cr.getReportName()); + ncr.setReportDescr(cr.getReportDescr()); + if (nvl(cr.getNumDashCols()).length() > 0) + ncr.setNumDashCols(cr.getNumDashCols()); + if (nvl(cr.getDashboardLayoutHTML()).length() > 0) + ncr.setDashboardLayoutHTML(cr.getDashboardLayoutHTML()); + if (nvl(cr.getDbInfo()).length() > 0) + ncr.setDbInfo(cr.getDbInfo()); + ncr.setChartType(cr.getChartType()); + if (nvl(cr.getChartTypeFixed()).length() > 0) + ncr.setChartTypeFixed(cr.getChartTypeFixed()); + if (nvl(cr.getChartMultiSeries()).length() > 0) + ncr.setChartMultiSeries(cr.getChartMultiSeries()); + if (nvl(cr.getChartLeftAxisLabel()).length() > 0) + ncr.setChartLeftAxisLabel(cr.getChartLeftAxisLabel()); + if (nvl(cr.getChartRightAxisLabel()).length() > 0) + ncr.setChartRightAxisLabel(cr.getChartRightAxisLabel()); + if (nvl(cr.getChartWidth()).length() > 0) + ncr.setChartWidth(cr.getChartWidth()); + if (nvl(cr.getChartHeight()).length() > 0) + ncr.setChartHeight(cr.getChartHeight()); + ncr.setShowChartTitle(cr.isShowChartTitle()); + ncr.setPublic(cr.isPublic()); + ncr.setHideFormFieldAfterRun(cr.isHideFormFieldAfterRun()); + ncr.setCreateId(cr.getCreateId()); + ncr.setCreateDate(cr.getCreateDate()); + if (nvl(cr.getReportSQL()).length() > 0) + ncr.setReportSQL(cr.getReportSQL()); + if (nvl(cr.getReportTitle()).length() > 0) + ncr.setReportTitle(cr.getReportTitle()); + if (nvl(cr.getReportSubTitle()).length() > 0) + ncr.setReportSubTitle(cr.getReportSubTitle()); + if (nvl(cr.getReportHeader()).length() > 0) + ncr.setReportHeader(cr.getReportHeader()); + if (cr.getFrozenColumns()!=null) + ncr.setFrozenColumns(cr.getFrozenColumns()); + if (nvl(cr.getPdfImgLogo()).length()>0) + ncr.setPdfImgLogo(cr.getPdfImgLogo()); + if (nvl(cr.getEmptyMessage()).length()>0) + ncr.setEmptyMessage(cr.getEmptyMessage()); + if (nvl(cr.getWidthNoColumn()).length()>0) + ncr.setWidthNoColumn(cr.getWidthNoColumn()); + if (nvl(cr.getDataGridAlign()).length()>0) + ncr.setDataGridAlign(cr.getDataGridAlign()); + + if (nvl(cr.getReportFooter()).length() > 0) + ncr.setReportFooter(cr.getReportFooter()); + if (nvl(cr.getNumFormCols()).length() > 0) + ncr.setNumFormCols(cr.getNumFormCols()); + if (nvl(cr.getDisplayOptions()).length() > 0) + ncr.setDisplayOptions(cr.getDisplayOptions()); + if (nvl(cr.getDataContainerHeight()).length() > 0) + ncr.setDataContainerHeight(cr.getDataContainerHeight()); + if (nvl(cr.getDataContainerWidth()).length() > 0) + ncr.setDataContainerWidth(cr.getDataContainerWidth()); + if (nvl(cr.getAllowSchedule()).length() > 0) + ncr.setAllowSchedule(cr.getAllowSchedule()); + if (nvl(cr.getTopDown()).length() > 0) + ncr.setTopDown(cr.getTopDown()); + if (nvl(cr.getSizedByContent()).length() > 0) + ncr.setSizedByContent(cr.getSizedByContent()); + if (nvl(cr.getComment()).length() > 0) + ncr.setComment(cr.getComment()); + if (nvl(cr.getDashboardOptions()).length()>0) + ncr.setDashboardOptions(cr.getDashboardOptions()); + + if(cr.isDashboardType()!=null) + ncr.setDashboardType(cr.isDashboardType()); + if(cr.isReportInNewWindow()!=null) + ncr.setReportInNewWindow(cr.isReportInNewWindow()); + ncr.setDisplayFolderTree(cr.isDisplayFolderTree()); + if (cr.getDashBoardReports() == null) { + if (cr.getMaxRowsInExcelDownload()!=null && cr.getMaxRowsInExcelDownload()>0) + ncr.setMaxRowsInExcelDownload(cr.getMaxRowsInExcelDownload()); + } + + if (nvl(cr.getJavascriptElement()).length()>0) + ncr.setJavascriptElement(cr.getJavascriptElement()); + if (nvl(cr.getFolderId()).length()>0) + ncr.setFolderId(cr.getFolderId()); + ncr.setDrillURLInPoPUpPresent((cr.isDrillURLInPoPUpPresent()!=null && cr.isDrillURLInPoPUpPresent().booleanValue())?true:false); + + if (nvl(cr.getIsOneTimeScheduleAllowed()).length()>0) + ncr.setIsOneTimeScheduleAllowed(cr.getIsOneTimeScheduleAllowed()); + if (nvl(cr.getIsHourlyScheduleAllowed()).length()>0) + ncr.setIsHourlyScheduleAllowed(cr.getIsHourlyScheduleAllowed()); + if (nvl(cr.getIsDailyScheduleAllowed()).length()>0) + ncr.setIsDailyScheduleAllowed(cr.getIsDailyScheduleAllowed()); + if (nvl(cr.getIsDailyMFScheduleAllowed()).length()>0) + ncr.setIsDailyMFScheduleAllowed(cr.getIsDailyMFScheduleAllowed()); + if (nvl(cr.getIsWeeklyScheduleAllowed()).length()>0) + ncr.setIsWeeklyScheduleAllowed(cr.getIsWeeklyScheduleAllowed()); + if (nvl(cr.getIsMonthlyScheduleAllowed()).length()>0) + ncr.setIsMonthlyScheduleAllowed(cr.getIsMonthlyScheduleAllowed()); + + ncr.setPageSize(cr.getPageSize()); + ncr.setReportType(cr.getReportType()); + + + DataSourceList dataSourceList = objFactory.createDataSourceList(); + ncr.setDataSourceList(dataSourceList); + + for (Iterator iter = cr.getDataSourceList().getDataSource().iterator(); iter.hasNext();) { + dataSourceList.getDataSource().add( + cloneDataSourceType(objFactory, (DataSourceType) iter.next())); + } + + if (cr.getFormFieldList() != null) { + FormFieldList formFieldList = objFactory.createFormFieldList(); + ncr.setFormFieldList(formFieldList); + ncr.getFormFieldList().setComment(formFieldList.getComment()); + + for (Iterator iter = cr.getFormFieldList().getFormField().iterator(); iter + .hasNext();) + formFieldList.getFormField().add( + cloneFormFieldType(objFactory, (FormFieldType) iter.next())); + formFieldList.setComment(cr.getFormFieldList().getComment()); + } // if + + if (cr.getJavascriptList() != null) { + JavascriptList javascriptList = objFactory.createJavascriptList(); + ncr.setJavascriptList(javascriptList); + + for (Iterator iter = cr.getJavascriptList().getJavascriptItem().iterator(); iter + .hasNext();) + javascriptList.getJavascriptItem().add( + cloneJavascriptType(objFactory, (JavascriptItemType) iter.next())); + } // if + + if (cr.getSemaphoreList() != null) { + SemaphoreList semaphoreList = objFactory.createSemaphoreList(); + ncr.setSemaphoreList(semaphoreList); + + for (Iterator iter = cr.getSemaphoreList().getSemaphore().iterator(); iter + .hasNext();) { + semaphoreList.getSemaphore().add( + cloneSemaphoreType(objFactory, (SemaphoreType) iter.next())); + } + } // if + + if (nvl(cr.getDashboardOptions()).length()>0) + ncr.setDashboardOptions(cr.getDashboardOptions()); + if(cr.isDashboardType()!=null) + ncr.setDashboardType(cr.isDashboardType()); + if(cr.isReportInNewWindow()!=null) + ncr.setReportInNewWindow(cr.isReportInNewWindow()); + ncr.setDisplayFolderTree(cr.isDisplayFolderTree()); + if (cr.getDashBoardReports() == null) { + if (cr.getMaxRowsInExcelDownload()!=null && cr.getMaxRowsInExcelDownload()>0) + ncr.setMaxRowsInExcelDownload(cr.getMaxRowsInExcelDownload()); + } + + if (cr.getDashBoardReports() != null) { + DashboardReports dashboardReports = objFactory.createDashboardReports(); + ncr.setDashBoardReports(dashboardReports); + + for (Iterator iter = cr.getDashBoardReports().getReportsList().iterator(); iter + .hasNext();) { + dashboardReports.getReportsList().add( + cloneDashboardType(objFactory, (Reports) iter.next())); + } + } // if + + if (cr.getChartAdditionalOptions() != null) { + ChartAdditionalOptions chartAdditionalOptions = objFactory.createChartAdditionalOptions(); + if(nvl(cr.getChartAdditionalOptions().getChartMultiplePieOrder()).length()>0) + chartAdditionalOptions.setChartMultiplePieOrder(cr.getChartAdditionalOptions().getChartMultiplePieOrder()); + if(nvl(cr.getChartAdditionalOptions().getChartMultiplePieLabelDisplay()).length()>0) + chartAdditionalOptions.setChartMultiplePieLabelDisplay(cr.getChartAdditionalOptions().getChartMultiplePieLabelDisplay()); + + if(nvl(cr.getChartAdditionalOptions().getChartOrientation()).length()>0) + chartAdditionalOptions.setChartOrientation(cr.getChartAdditionalOptions().getChartOrientation()); + if(nvl(cr.getChartAdditionalOptions().getSecondaryChartRenderer()).length()>0) + chartAdditionalOptions.setSecondaryChartRenderer(cr.getChartAdditionalOptions().getSecondaryChartRenderer()); + + if(nvl(cr.getChartAdditionalOptions().getChartDisplay()).length()>0) + chartAdditionalOptions.setChartDisplay(cr.getChartAdditionalOptions().getChartDisplay()); + if(nvl(cr.getChartAdditionalOptions().getHideToolTips()).length()>0) + chartAdditionalOptions.setHideToolTips(cr.getChartAdditionalOptions().getHideToolTips()); + if(nvl(cr.getChartAdditionalOptions().getHidechartLegend()).length()>0) + chartAdditionalOptions.setHidechartLegend(cr.getChartAdditionalOptions().getHidechartLegend()); + if(nvl(cr.getChartAdditionalOptions().getLegendPosition()).length()>0) + chartAdditionalOptions.setLegendPosition(cr.getChartAdditionalOptions().getLegendPosition()); + if(nvl(cr.getChartAdditionalOptions().getLabelAngle()).length()>0) + chartAdditionalOptions.setLabelAngle(cr.getChartAdditionalOptions().getLabelAngle()); + + if(nvl(cr.getChartAdditionalOptions().getIntervalFromdate()).length()>0) + chartAdditionalOptions.setIntervalFromdate(cr.getChartAdditionalOptions().getIntervalFromdate()); + if(nvl(cr.getChartAdditionalOptions().getIntervalTodate()).length()>0) + chartAdditionalOptions.setIntervalTodate(cr.getChartAdditionalOptions().getIntervalTodate()); + if(nvl(cr.getChartAdditionalOptions().getIntervalLabel()).length()>0) + chartAdditionalOptions.setIntervalLabel(cr.getChartAdditionalOptions().getIntervalLabel()); + + if(nvl(cr.getChartAdditionalOptions().getLastSeriesALineChart()).length()>0) + chartAdditionalOptions.setLastSeriesALineChart(cr.getChartAdditionalOptions().getLastSeriesALineChart()); + if(nvl(cr.getChartAdditionalOptions().getLastSeriesABarChart()).length()>0) + chartAdditionalOptions.setLastSeriesABarChart(cr.getChartAdditionalOptions().getLastSeriesABarChart()); + + if(nvl(cr.getChartAdditionalOptions().getMaxLabelsInDomainAxis()).length()>0) + chartAdditionalOptions.setMaxLabelsInDomainAxis(cr.getChartAdditionalOptions().getMaxLabelsInDomainAxis()); + if(nvl(cr.getChartAdditionalOptions().getLinearRegression()).length()>0) + chartAdditionalOptions.setLinearRegression(cr.getChartAdditionalOptions().getLinearRegression()); + if(nvl(cr.getChartAdditionalOptions().getLinearRegressionColor()).length()>0) + chartAdditionalOptions.setLinearRegressionColor(cr.getChartAdditionalOptions().getLinearRegressionColor()); + if(nvl(cr.getChartAdditionalOptions().getExponentialRegressionColor()).length()>0) + chartAdditionalOptions.setExponentialRegressionColor(cr.getChartAdditionalOptions().getExponentialRegressionColor()); + if(nvl(cr.getChartAdditionalOptions().getMaxRegression()).length()>0) + chartAdditionalOptions.setMaxRegression(cr.getChartAdditionalOptions().getMaxRegression()); + if(nvl(cr.getChartAdditionalOptions().getRangeAxisUpperLimit()).length()>0) + chartAdditionalOptions.setRangeAxisUpperLimit(cr.getChartAdditionalOptions().getRangeAxisUpperLimit()); + if(nvl(cr.getChartAdditionalOptions().getRangeAxisLowerLimit()).length()>0) + chartAdditionalOptions.setRangeAxisLowerLimit(cr.getChartAdditionalOptions().getRangeAxisLowerLimit()); + if(nvl(cr.getChartAdditionalOptions().getOverlayItemValueOnStackBar()).length()>0) + chartAdditionalOptions.setOverlayItemValueOnStackBar(cr.getChartAdditionalOptions().getOverlayItemValueOnStackBar()); + chartAdditionalOptions.setAnimate((cr.getChartAdditionalOptions().isAnimate()!=null && cr.getChartAdditionalOptions().isAnimate().booleanValue())?true:false); + + if(nvl(cr.getChartAdditionalOptions().getKeepDomainAxisValueAsString()).length()>0) + chartAdditionalOptions.setKeepDomainAxisValueAsString(cr.getChartAdditionalOptions().getKeepDomainAxisValueAsString()); + + + // Animate + chartAdditionalOptions.setAnimateAnimatedChart((cr.getChartAdditionalOptions().isAnimateAnimatedChart()!=null && cr.getChartAdditionalOptions().isAnimateAnimatedChart().booleanValue())?true:false); + chartAdditionalOptions.setStacked((cr.getChartAdditionalOptions().isStacked()!=null && cr.getChartAdditionalOptions().isStacked().booleanValue())?true:false); + chartAdditionalOptions.setBarControls((cr.getChartAdditionalOptions().isBarControls()!=null && cr.getChartAdditionalOptions().isBarControls().booleanValue())?true:false); + chartAdditionalOptions.setXAxisDateType((cr.getChartAdditionalOptions().isXAxisDateType()!=null && cr.getChartAdditionalOptions().isXAxisDateType().booleanValue())?true:false); + chartAdditionalOptions.setLessXaxisTickers((cr.getChartAdditionalOptions().isLessXaxisTickers()!=null && cr.getChartAdditionalOptions().isLessXaxisTickers().booleanValue())?true:false); + chartAdditionalOptions.setTimeAxis((cr.getChartAdditionalOptions().isTimeAxis()!=null && cr.getChartAdditionalOptions().isTimeAxis().booleanValue())?true:false); + + if(nvl(cr.getChartAdditionalOptions().getTimeSeriesRender()).length()>0) + chartAdditionalOptions.setTimeSeriesRender(cr.getChartAdditionalOptions().getTimeSeriesRender()); + + chartAdditionalOptions.setMultiSeries((cr.getChartAdditionalOptions().isMultiSeries()!=null && cr.getChartAdditionalOptions().isMultiSeries().booleanValue())?true:false); + + chartAdditionalOptions.setTopMargin(cr.getChartAdditionalOptions().getTopMargin()!=null?cr.getChartAdditionalOptions().getTopMargin():new Integer(30)); + chartAdditionalOptions.setBottomMargin(cr.getChartAdditionalOptions().getBottomMargin()!=null?cr.getChartAdditionalOptions().getBottomMargin():new Integer(50)); + chartAdditionalOptions.setLeftMargin(cr.getChartAdditionalOptions().getLeftMargin()!=null?cr.getChartAdditionalOptions().getLeftMargin():new Integer(100)); + chartAdditionalOptions.setRightMargin(cr.getChartAdditionalOptions().getRightMargin()!=null?cr.getChartAdditionalOptions().getRightMargin():new Integer(60)); + + + ncr.setChartAdditionalOptions(chartAdditionalOptions); + } // if + + if (nvl(cr.getJavascriptElement()).length()>0) + ncr.setJavascriptElement(cr.getJavascriptElement()); + if (nvl(cr.getFolderId()).length()>0) + ncr.setFolderId(cr.getFolderId()); + + if (cr.getChartDrillOptions() != null) { + ChartDrillOptions chartDrillOptions = objFactory.createChartDrillOptions(); + + if(nvl(cr.getChartDrillOptions().getDrillReportId()).length()>0) + chartDrillOptions.setDrillReportId(cr.getChartDrillOptions().getDrillReportId()); + + for (Iterator iter = cr.getChartDrillOptions().getTargetFormfield().iterator(); iter + .hasNext();) { + chartDrillOptions.getTargetFormfield().add( + cloneChartDrillFormfield(objFactory, (ChartDrillFormfield)iter.next())); + + } + + if(nvl(cr.getChartDrillOptions().getDrillXAxisFormField()).length()>0) + chartDrillOptions.setDrillXAxisFormField(cr.getChartDrillOptions().getDrillXAxisFormField()); + if(nvl(cr.getChartDrillOptions().getDrillYAxisFormField()).length()>0) + chartDrillOptions.setDrillYAxisFormField(cr.getChartDrillOptions().getDrillYAxisFormField()); + if(nvl(cr.getChartDrillOptions().getDrillSeriesFormField()).length()>0) + chartDrillOptions.setDrillSeriesFormField(cr.getChartDrillOptions().getDrillSeriesFormField()); + + + ncr.setChartDrillOptions(chartDrillOptions); + } + + if (nvl(cr.getIsOneTimeScheduleAllowed()).length()>0) + ncr.setIsOneTimeScheduleAllowed(cr.getIsOneTimeScheduleAllowed()); + if (nvl(cr.getIsHourlyScheduleAllowed()).length()>0) + ncr.setIsHourlyScheduleAllowed(cr.getIsHourlyScheduleAllowed()); + if (nvl(cr.getIsDailyScheduleAllowed()).length()>0) + ncr.setIsDailyScheduleAllowed(cr.getIsDailyScheduleAllowed()); + if (nvl(cr.getIsDailyMFScheduleAllowed()).length()>0) + ncr.setIsDailyMFScheduleAllowed(cr.getIsDailyMFScheduleAllowed()); + if (nvl(cr.getIsWeeklyScheduleAllowed()).length()>0) + ncr.setIsWeeklyScheduleAllowed(cr.getIsWeeklyScheduleAllowed()); + if (nvl(cr.getIsMonthlyScheduleAllowed()).length()>0) + ncr.setIsMonthlyScheduleAllowed(cr.getIsMonthlyScheduleAllowed()); + + ncr.setPageSize(cr.getPageSize()); + ncr.setReportType(cr.getReportType()); + + if (cr.getReportMap() != null){ + ReportMap repMap = objFactory.createReportMap(); + if(nvl(cr.getReportMap().getMarkerColor()).length()>0) + repMap.setMarkerColor(cr.getReportMap().getMarkerColor()); + if(nvl(cr.getReportMap().getUseDefaultSize()).length()>0) + repMap.setUseDefaultSize(cr.getReportMap().getUseDefaultSize()); + if(nvl(cr.getReportMap().getHeight()).length()>0) + repMap.setHeight(cr.getReportMap().getHeight()); + if(nvl(cr.getReportMap().getWidth()).length()>0) + repMap.setWidth(cr.getReportMap().getWidth()); + if(nvl(cr.getReportMap().getIsMapAllowedYN()).length()>0) + repMap.setIsMapAllowedYN(cr.getReportMap().getIsMapAllowedYN()); + if(nvl(cr.getReportMap().getAddAddressInDataYN()).length()>0) + repMap.setAddAddressInDataYN(cr.getReportMap().getAddAddressInDataYN()); + if(nvl(cr.getReportMap().getAddressColumn()).length()>0) + repMap.setAddressColumn(cr.getReportMap().getAddressColumn()); + if(nvl(cr.getReportMap().getDataColumn()).length()>0) + repMap.setDataColumn(cr.getReportMap().getDataColumn()); + if(nvl(cr.getReportMap().getDefaultMapType()).length()>0) + repMap.setDefaultMapType(cr.getReportMap().getDefaultMapType()); + if(nvl(cr.getReportMap().getLatColumn()).length()>0) + repMap.setLatColumn(cr.getReportMap().getLatColumn()); + if(nvl(cr.getReportMap().getLongColumn()).length()>0) + repMap.setLongColumn(cr.getReportMap().getLongColumn()); + if(nvl(cr.getReportMap().getColorColumn()).length()>0) + repMap.setColorColumn(cr.getReportMap().getColorColumn()); + if(nvl(cr.getReportMap().getLegendColumn()).length()>0) + repMap.setLegendColumn(cr.getReportMap().getLegendColumn()); + + + for (Iterator iter = cr.getReportMap().getMarkers().iterator(); iter + .hasNext();) { + repMap.getMarkers().add( + cloneMarkerType(objFactory, (Marker)iter.next())); + + } + + ncr.setReportMap(repMap); + } + + + + } catch (JAXBException ex) { // try + throw new RaptorException(ex.getMessage(), ex.getCause()); + } + + return ncr; + } // cloneCustomReport + + /** ************************************************************************************************* */ + + public void printFormatType(FormatType ft) { + System.out.println("------------------------------------------------"); + System.out.println("Semaphore Col Format"); + System.out.println("------------------------------------------------"); + System.out.println("FormatId: [" + ft.getFormatId() + "]"); + System.out.println("LessThanValue: [" + ft.getLessThanValue() + "]"); + System.out.println("Expression: [" + ft.getExpression() + "]"); + System.out.println("Bold: [" + ft.isBold() + "]"); + System.out.println("Italic: [" + ft.isItalic() + "]"); + System.out.println("Underline: [" + ft.isUnderline() + "]"); + System.out.println("BgColor: [" + ft.getBgColor() + "]"); + System.out.println("FontColor: [" + ft.getFontColor() + "]"); + System.out.println("FontFace: [" + ft.getFontFace() + "]"); + System.out.println("FontSize: [" + ft.getFontSize() + "]"); + System.out.println("Alignment: [" + ft.getAlignment() + "]"); + System.out.println("Comment: [" + ft.getComment() + "]"); + System.out.println("------------------------------------------------"); + } // printFormatType + + public void printSemaphoreType(SemaphoreType st) { + System.out.println("------------------------------------------------"); + System.out.println("Semaphore"); + System.out.println("------------------------------------------------"); + System.out.println("SemaphoreId: [" + st.getSemaphoreId() + "]"); + System.out.println("SemaphoreName: [" + st.getSemaphoreName() + "]"); + System.out.println("SemaphoreType: [" + st.getSemaphoreType() + "]"); + System.out.println("Comment: [" + st.getComment() + "]"); + + if (st.getFormatList() != null) + for (Iterator iter = st.getFormatList().getFormat().iterator(); iter.hasNext();) + printFormatType((FormatType) iter.next()); + + System.out.println("------------------------------------------------"); + } // printSemaphoreType + + public void printFormFieldType(FormFieldType fft) { + System.out.println("------------------------------------------------"); + System.out.println("Form Field"); + System.out.println("------------------------------------------------"); + System.out.println("FieldId: [" + fft.getFieldId() + "]"); + System.out.println("ColId: [" + fft.getColId() + "]"); + System.out.println("FieldName: [" + fft.getFieldName() + "]"); + System.out.println("FieldType: [" + fft.getFieldType() + "]"); + System.out.println("ValidationType: [" + fft.getValidationType() + "]"); + System.out.println("Mandatory: [" + fft.getMandatory() + "]"); + System.out.println("DefaultValue: [" + fft.getDefaultValue() + "]"); + System.out.println("OrderBySeq: [" + fft.getOrderBySeq() + "]"); + System.out.println("FieldSQL: [" + fft.getFieldSQL() + "]"); + System.out.println("Comment: [" + fft.getComment() + "]"); + if (fft.getPredefinedValueList() != null) + for (Iterator iter = fft.getPredefinedValueList().getPredefinedValue().iterator(); iter + .hasNext();) + System.out.println("PredefinedValues: [" + ((String) iter.next()) + "]"); + + System.out.println("------------------------------------------------"); + } // printFormFieldType + + public void printColFilterType(ColFilterType cft) { + System.out.println("------------------------------------------------"); + System.out.println("Col Filter"); + System.out.println("------------------------------------------------"); + System.out.println("ColId: [" + cft.getColId() + "]"); + System.out.println("FilterSeq: [" + cft.getFilterSeq() + "]"); + System.out.println("JoinCondition: [" + cft.getJoinCondition() + "]"); + System.out.println("OpenBrackets: [" + cft.getOpenBrackets() + "]"); + System.out.println("Expression: [" + cft.getExpression() + "]"); + System.out.println("ArgType: [" + cft.getArgType() + "]"); + System.out.println("ArgValue: [" + cft.getArgValue() + "]"); + System.out.println("CloseBrackets: [" + cft.getCloseBrackets() + "]"); + System.out.println("Comment: [" + cft.getComment() + "]"); + System.out.println("------------------------------------------------"); + } // printColFilterType + + public void printDataColumnType(DataColumnType dct) { + System.out.println("------------------------------------------------"); + System.out.println("Data Column"); + System.out.println("------------------------------------------------"); + System.out.println("ColId: [" + dct.getColId() + "]"); + System.out.println("TableId: [" + dct.getTableId() + "]"); + System.out.println("DbColName: [" + dct.getDbColName() + "]"); + System.out.println("CrossTabValue: [" + dct.getCrossTabValue() + "]"); + System.out.println("ColName: [" + dct.getColName() + "]"); + System.out.println("DisplayName: [" + dct.getDisplayName() + "]"); + System.out.println("DisplayWidth: [" + dct.getDisplayWidth() + "]"); + System.out.println("DisplayAlignment: [" + dct.getDisplayAlignment() + "]"); + System.out.println("DisplayHeaderAlignment: [" + dct.getDisplayHeaderAlignment() + "]"); + System.out.println("OrderSeq(): [" + dct.getOrderSeq() + "]"); + System.out.println("Visible: [" + dct.isVisible() + "]"); + System.out.println("Calculated: [" + dct.isCalculated() + "]"); + System.out.println("ColType: [" + dct.getColType() + "]"); + System.out.println("ColFormat: [" + dct.getColFormat() + "]"); + System.out.println("GroupBreak: [" + dct.isGroupBreak() + "]"); + System.out.println("OrderBySeq: [" + dct.getOrderBySeq() + "]"); + System.out.println("OrderByAscDesc: [" + dct.getOrderByAscDesc() + "]"); + System.out.println("DisplayTotal: [" + dct.getDisplayTotal() + "]"); + System.out.println("ColOnChart: [" + dct.getColOnChart() + "]"); + System.out.println("ChartSeq: [" + dct.getChartSeq() + "]"); + System.out.println("ChartColor: [" + dct.getChartColor() + "]"); + System.out.println("DrillDownType: [" + dct.getDrillDownType() + "]"); + System.out.println("DrillDownURL: [" + dct.getDrillDownURL() + "]"); + System.out.println("DrillDownParams: [" + dct.getDrillDownParams() + "]"); + System.out.println("Comment: [" + dct.getComment() + "]"); + + if (dct.getColFilterList() != null) + for (Iterator iter = dct.getColFilterList().getColFilter().iterator(); iter + .hasNext();) + printColFilterType((ColFilterType) iter.next()); + + System.out.println("SemaphoreId: [" + dct.getSemaphoreId() + "]"); + System.out.println("DbColType: [" + dct.getDbColType() + "]"); + System.out.println("------------------------------------------------"); + } // printDataColumnType + + public void printDataSourceType(DataSourceType dst) { + System.out.println("------------------------------------------------"); + System.out.println("Data Source"); + System.out.println("------------------------------------------------"); + System.out.println("TableId: [" + dst.getTableId() + "]"); + System.out.println("TableName: [" + dst.getTableName() + "]"); + System.out.println("TablePK: [" + dst.getTablePK() + "]"); + System.out.println("DisplayName: [" + dst.getDisplayName() + "]"); + System.out.println("RefTableId: [" + dst.getRefTableId() + "]"); + System.out.println("RefDefinition: [" + dst.getRefDefinition() + "]"); + System.out.println("Comment: [" + dst.getComment() + "]"); + + for (Iterator iter = dst.getDataColumnList().getDataColumn().iterator(); iter + .hasNext();) + printDataColumnType((DataColumnType) iter.next()); + + System.out.println("------------------------------------------------"); + } // printDataSourceType + + public void print() { + System.out.println("------------------------------------------------"); + System.out.println("ReportWrapper object"); + System.out.println("------------------------------------------------"); + System.out.println("PageSize: [" + getPageSize() + "]"); + System.out.println("ReportType: [" + getReportType() + "]"); + System.out.println("ReportName: [" + getReportName() + "]"); + System.out.println("ReportDescr: [" + getReportDescr() + "]"); + System.out.println("ChartType: [" + getChartType() + "]"); + System.out.println("ChartTypeFixed: [" + getChartTypeFixed() + "]"); + //System.out.println("ChartLeftAxisLabel: [" + getChartLeftAxisLabel() + "]"); + //System.out.println("ChartRightAxisLabel: [" + getChartRightAxisLabel() + "]"); + System.out.println("ChartWidth: [" + getChartWidth() + "]"); + System.out.println("ChartHeight: [" + getChartHeight() + "]"); + System.out.println("Public: [" + isPublic() + "]"); + System.out.println("CreateId: NOT USED ANYMORE[" + /* getCreateId()+ */"]"); + System.out.println("CreateDate: NOT USED ANYMORE[" + /* getCreateDate()+ */"]"); + System.out.println("ReportSQL: [" + getReportSQL() + "]"); + System.out.println("ReportTitle: [" + getReportTitle() + "]"); + System.out.println("DbInfo: [" + getDBInfo() + "]"); + System.out.println("ReportSubTitle: [" + getReportSubTitle() + "]"); + System.out.println("ReportHeader: [" + getReportHeader() + "]"); + System.out.println("ReportFooter: [" + getReportFooter() + "]"); + System.out.println("NumFormCols: [" + getNumFormCols() + "]"); + System.out.println("DisplayOptions: [" + getDisplayOptions() + "]"); + System.out.println("Comment: [" + getComment() + "]"); + + for (Iterator iter = cr.getDataSourceList().getDataSource().iterator(); iter.hasNext();) + printDataSourceType((DataSourceType) iter.next()); + + if (cr.getFormFieldList() != null) + for (Iterator iter = cr.getFormFieldList().getFormField().iterator(); iter + .hasNext();) + printFormFieldType((FormFieldType) iter.next()); + + if (cr.getSemaphoreList() != null) + for (Iterator iter = cr.getSemaphoreList().getSemaphore().iterator(); iter + .hasNext();) + printSemaphoreType((SemaphoreType) iter.next()); + + System.out.println("------------------------------------------------"); + System.out.println("ReportWrapper object end"); + System.out.println("------------------------------------------------"); + } // print + + private int getIntValue(String value, int defaultValue) { + int iValue = defaultValue; + try { + iValue = Integer.parseInt(value); + } catch (Exception e) { + } + + return iValue; + } // getIntValue + public static String replaceNewLine( String strSource, String strFind, String chrReplace ) + { + // buffer to hold the target string after replacement is done. + StringBuffer sbfTemp = new StringBuffer(); + + try + { + // for each occurrence of strFind in strSource, replace it with chrReplace. + int intIndex = strSource.indexOf( strFind, 0 ); + + // check if there is any instace of strFind in strSource + if( intIndex >= 0 ) + { + // holds the index from where the search is supposed to happen. + int intStart = 0; + + // size of the source string + int intTotalSize = strSource.length(); + + while( intStart < intTotalSize && + ( ( intIndex = strSource.indexOf( strFind, intStart ) ) >= 0 ) ) + { + // check if strFind is at the beginning... i.e., at index intStart + if( intIndex == intStart ) + { + /* + * starts with strFind...just append chrReplace + * to the target + */ + sbfTemp.append( chrReplace ); + } + else + { + // append the sub-string...plus chrReplace + sbfTemp.append( strSource.substring( intStart, intIndex ) ); + sbfTemp.append( chrReplace ); + } + + // advance string index + intStart = intIndex + strFind.length(); + } + + // append the last portion of the source string. + sbfTemp.append( strSource.substring( intStart ) ); + } + else + { + // strFind not found... just copy the text as it is. + sbfTemp.append( strSource ); + } + } + catch( Exception expGeneral ) + { + // in case of any exception, return the source string as it is. + sbfTemp = new StringBuffer( strSource ); + } + + return sbfTemp.toString(); + } + + /*folder id*/ + public String getFolderId() { + return nvl(cr.getFolderId()).length()>0?cr.getFolderId():"NULL"; + } + public void setFolderId(String folderId ) { + cr.setFolderId(folderId); + } + + public String addZero(String num) { + int numInt = 0; + try { + numInt = Integer.parseInt(num); + }catch(NumberFormatException ex){ + numInt = 0; + } + if(numInt < 10) return "0"+numInt; + else return ""+numInt; + } + + public String getIsDailyMFScheduleAllowed() { + return cr.getIsDailyMFScheduleAllowed(); + } + + public void setIsDailyMFScheduleAllowed(String isDailyMFScheduleAllowed) { + cr.setIsDailyMFScheduleAllowed(isDailyMFScheduleAllowed); + } + + public String getIsDailyScheduleAllowed() { + return cr.getIsDailyScheduleAllowed(); + } + + public void setIsDailyScheduleAllowed(String isDailyScheduleAllowed) { + cr.setIsDailyScheduleAllowed(isDailyScheduleAllowed); + } + + public String getIsHourlyScheduleAllowed() { + return cr.getIsHourlyScheduleAllowed(); + } + + public void setIsHourlyScheduleAllowed(String isHourlyScheduleAllowed) { + cr.setIsHourlyScheduleAllowed(isHourlyScheduleAllowed); + } + + public String getIsMonthlyScheduleAllowed() { + return cr.getIsMonthlyScheduleAllowed(); + } + + public void setIsMonthlyScheduleAllowed(String isMonthlyScheduleAllowed) { + cr.setIsMonthlyScheduleAllowed(isMonthlyScheduleAllowed); + } + + public String getIsOneTimeScheduleAllowed() { + return cr.getIsOneTimeScheduleAllowed(); + } + + public void setIsOneTimeScheduleAllowed(String isOneTimeScheduleAllowed) { + cr.setIsOneTimeScheduleAllowed(isOneTimeScheduleAllowed); + } + + public String getIsWeeklyScheduleAllowed() { + return cr.getIsWeeklyScheduleAllowed(); + } + + public void setIsWeeklyScheduleAllowed(String isWeeklyScheduleAllowed) { + cr.setIsWeeklyScheduleAllowed(isWeeklyScheduleAllowed); + + } + + public static boolean isNull(String a) { + if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) + return true; + else + return false; + } + + public int getDependsOnFormFieldFlag(DataColumnType dc, HashMap formValues) { + int flag = 0; + String fieldValue = ""; + if(nvl(dc.getDependsOnFormField()).length()>0 && nvl(dc.getDependsOnFormField()).indexOf("[")!=-1) { + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter1 = set.iterator(); iter1.hasNext(); ) { + Map.Entry entry = (Entry) iter1.next(); + value = (String) entry.getValue(); + if (dc.getDependsOnFormField().equals("["+entry.getKey()+"]")) { + fieldValue = nvl(value); + + if (fieldValue.length()>0 && !fieldValue.equals("NULL")) { + flag = 0; + } else { + flag = 1; + } + + } + } + } + } + + return flag; + } + + /* Datamining Getter Setter */ + + public String getClassifier() { + return (cr.getDataminingOptions()!=null?cr.getDataminingOptions().getClassifier():""); + } + + public void setClassifier( String classifier) { + cr.getDataminingOptions().setClassifier(classifier); + } + + + public int getForecastingPeriod() { + return (cr.getDataminingOptions()!=null? new Integer(cr.getDataminingOptions().getForecastingUnits()).intValue():-1); + } + + public void setForecastingPeriod( String period) { + cr.getDataminingOptions().setForecastingUnits(period); + } + + public String getForecastingTimeFormat() { + return (cr.getDataminingOptions()!=null?cr.getDataminingOptions().getTimeformat():""); + } + + public void setForecastingTimeFormat( String format) { + cr.getDataminingOptions().setTimeformat(format); + } + + /** + * Get Number of Columns to Frozen in Data Grid + */ + + public int getFrozenColumns() { + return cr.getFrozenColumns()==null?0:cr.getFrozenColumns(); + } + + public String getFrozenColumnId() { + int noOfColumns = cr.getFrozenColumns()==null?0:cr.getFrozenColumns(); + if(noOfColumns != 0) { + List reportCols = getOnlyVisibleColumns(); + int colIdx = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + ++colIdx; + DataColumnType dc = (DataColumnType) iter.next(); + if(colIdx == noOfColumns) { + + return dc.getColId(); + } else continue; + } // for + return ""; + } else return ""; + + } + + /** + * Set Number of Columns to Frozen in Data Grid + */ + + public void setFrozenColumns( int frozenColumns) { + cr.setFrozenColumns(frozenColumns); + } + + /** + * @return the reportSQLWithRowNum for ZK Support + */ + public String getReportSQLWithRowNum() { + return reportSQLWithRowNum; + } + + /** + * @param reportSQLWithRowNum the reportSQLWithRowNum to set for ZK Support + */ + public void setReportSQLWithRowNum(String reportSQLWithRowNum) { + this.reportSQLWithRowNum = reportSQLWithRowNum; + } + + //used for Zk sort + public void setReportSQLOnlyFirstPart(String reportSQLOnlyFirstPart) { + this.reportSQLOnlyFirstPart = reportSQLOnlyFirstPart; + } + + public String getReportSQLOnlyFirstPart() { + return this.reportSQLOnlyFirstPart; + } + + public String getTemplateFile() throws RaptorException { + return ReportLoader.getTemplateFile(getReportID()); + } + + public String getPdfImg() { + return cr.getPdfImgLogo(); + } + + + public String getEmptyMessage() { + String emptyMessage = cr.getEmptyMessage(); + if(nvl(emptyMessage).length()<=0) + emptyMessage = Globals.getReportEmptyMessage(); + return emptyMessage; + } + + public void setPdfImg(String img_loc) { + cr.setPdfImgLogo(img_loc); + } + + public void setEmptyMessage(String emptyMessage) { + cr.setEmptyMessage(emptyMessage); + } + + public void setDrillReportIdForChart(String reportId) { + //(cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().setDrillReportId():""; + cr.getChartDrillOptions().setDrillReportId(reportId); + } + + public String getDrillReportIdForChart() { + return (cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().getDrillReportId():""; + } + + public void setDrillXAxisFormField(String formField) { + //(cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().setDrillReportId():""; + cr.getChartDrillOptions().setDrillXAxisFormField(formField); + } + + public String getDrillXAxisFormField() { + return (cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().getDrillXAxisFormField():""; + } + + public void setDrillYAxisFormField(String formField) { + //(cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().setDrillReportId():""; + cr.getChartDrillOptions().setDrillYAxisFormField(formField); + } + + public String getDrillYAxisFormField() { + return (cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().getDrillYAxisFormField():""; + } + + public void setDrillSeriesFormField(String formField) { + //(cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().setDrillReportId():""; + cr.getChartDrillOptions().setDrillSeriesFormField(formField); + } + + public String getDrillSeriesFormField() { + return (cr.getChartDrillOptions()!=null)?cr.getChartDrillOptions().getDrillSeriesFormField():""; + } + + public boolean isEnhancedPaginationNeeded() { + List reportCols = getAllColumns(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.isEnhancedPagination()!=null && dc.isEnhancedPagination().booleanValue()) + return true; + } // for + return false; + } + + public DataColumnType getColumnWhichNeedEnhancedPagination() { + List reportCols = getAllColumns(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if (dc.isEnhancedPagination()!=null && dc.isEnhancedPagination().booleanValue()) + return dc; + } // for + return null; + } + + public void setDataGridAlign(String align) { + cr.setDataGridAlign(align); + } + + + public String getDataGridAlign() { + return (cr.getDataGridAlign()!=null)?cr.getDataGridAlign():"left"; + } + + public void setWidthNoColumn(String width) { + cr.setWidthNoColumn(width); + } + + + public String getWidthNoColumn() { + return (cr.getWidthNoColumn()!=null)?cr.getWidthNoColumn():"30px"; + } + + public void setWholeSQL(String sql) { + wholeSQL = sql; + } + public String getWholeSQL() { + return wholeSQL; + } + +} // ReportWrapper diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DBColumnInfo.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DBColumnInfo.java new file mode 100644 index 00000000..6d02a1d5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DBColumnInfo.java @@ -0,0 +1,94 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class DBColumnInfo extends RaptorObject { + private String tableName = null; + + private String colName = null; + + private String colType = null; + + private String label = null; + + // public DBColumnInfo() {} + + public DBColumnInfo(String tableName, String colName, String colType, String label) { + super(); + + setTableName(tableName); + setColName(colName); + setColType(colType); + setLabel(label); + } // DBColumnInfo + + public String getTableName() { + return tableName; + } + + public String getColName() { + return colName; + } + + public String getColType() { + return colType; + } + + public String getLabel() { + return label; + } + + private void setTableName(String tableName) { + this.tableName = tableName; + } + + private void setColName(String colName) { + this.colName = colName; + } + + private void setColType(String colType) { + this.colType = colType; + } + + public void setLabel(String label) { + this.label = label; + } + +} // DBColumnInfo diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java new file mode 100644 index 00000000..b024b487 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/DrillDownParamDef.java @@ -0,0 +1,129 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class DrillDownParamDef extends RaptorObject { + private String fieldName = ""; + + private String valType = "0"; + + private String valValue = ""; + + private String valColId = ""; + + private String valFieldId = ""; + + public DrillDownParamDef(String drillDownParamStr) { + super(); + + drillDownParamStr = nvl(drillDownParamStr).trim(); + if (drillDownParamStr.indexOf('=') >= 0) { + fieldName = drillDownParamStr.substring(0, drillDownParamStr.indexOf('=')); + + if (drillDownParamStr.length() > drillDownParamStr.indexOf('=') + 2 + && drillDownParamStr.charAt(drillDownParamStr.indexOf('=') + 1) == '[' + && drillDownParamStr.charAt(drillDownParamStr.length() - 1) == ']') { + drillDownParamStr = drillDownParamStr.substring( + drillDownParamStr.indexOf('=') + 2, drillDownParamStr.length() - 1); + + if (drillDownParamStr.indexOf('!') < 0) + valColId = drillDownParamStr; + else if (drillDownParamStr.indexOf('!') == 0) + valFieldId = drillDownParamStr.substring(1); + else { + valColId = drillDownParamStr.substring(0, drillDownParamStr.indexOf('!')); + valFieldId = drillDownParamStr + .substring(drillDownParamStr.indexOf('!') + 1); + } // else + + if (valColId.length() > 0 && valFieldId.length() > 0) + valType = "4"; + else if (valFieldId.length() > 0) + valType = "3"; + else if (valColId.length() > 0) + valType = "2"; + } else { + valType = "1"; + valValue = drillDownParamStr.substring(drillDownParamStr.indexOf('=') + 1); + } // else + } // if + } // DrillDownParamDef + + public String getFieldName() { + return fieldName; + } + + public String getValType() { + return valType; + } + + public String getValValue() { + return valValue; + } + + public String getValColId() { + return valColId; + } + + public String getValFieldId() { + return valFieldId; + } + + private void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + private void setValType(String valType) { + this.valType = valType; + } + + private void setValValue(String valValue) { + this.valValue = valValue; + } + + private void setValColId(String valColId) { + this.valColId = valColId; + } + + private void setValFieldId(String valFieldId) { + this.valFieldId = valFieldId; + } + +} // DrillDownParamDef diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/Marker.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/Marker.java new file mode 100644 index 00000000..8cea0b56 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/Marker.java @@ -0,0 +1,97 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class Marker extends RaptorObject { + String markerColor = ""; + String addressColumn = ""; + String dataColumn = ""; + String address = ""; + String data = ""; + String color = ""; + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public Marker(String markerColor, String addressColumn, String dataColumn){ + this.setMarkerColor(markerColor); + this.setAddressColumn(addressColumn); + this.setDataColumn(dataColumn); + } + + public String getAddressColumn() { + return addressColumn; + } + public void setAddressColumn(String addressColumn) { + this.addressColumn = addressColumn; + } + public String getDataColumn() { + return dataColumn; + } + public void setDataColumn(String dataColumn) { + this.dataColumn = dataColumn; + } + public String getMarkerColor() { + return markerColor; + } + public void setMarkerColor(String markerColor) { + this.markerColor = markerColor; + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java new file mode 100644 index 00000000..9e8a6c94 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java @@ -0,0 +1,1488 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import java.io.Serializable; +import java.sql.Connection; +import java.util.Calendar; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.StringTokenizer; +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.xml.bind.JAXBException; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +//import javax.xml.transform.stream.*; + +import org.onap.portalsdk.analytics.controller.WizardSequence; +import org.onap.portalsdk.analytics.controller.WizardSequenceCrossTab; +import org.onap.portalsdk.analytics.controller.WizardSequenceDashboard; +import org.onap.portalsdk.analytics.controller.WizardSequenceLinear; +import org.onap.portalsdk.analytics.controller.WizardSequenceSQLBasedCrossTab; +import org.onap.portalsdk.analytics.controller.WizardSequenceSQLBasedHive; +import org.onap.portalsdk.analytics.controller.WizardSequenceSQLBasedLinear; +import org.onap.portalsdk.analytics.controller.WizardSequenceSQLBasedLinearDatamining; +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.model.DataCache; +import org.onap.portalsdk.analytics.model.ReportLoader; +import org.onap.portalsdk.analytics.model.base.OrderBySeqComparator; +import org.onap.portalsdk.analytics.model.base.OrderSeqComparator; +import org.onap.portalsdk.analytics.model.base.ReportWrapper; +import org.onap.portalsdk.analytics.model.runtime.FormField; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.xmlobj.ChartAdditionalOptions; +import org.onap.portalsdk.analytics.xmlobj.ChartDrillOptions; +import org.onap.portalsdk.analytics.xmlobj.ColFilterType; +import org.onap.portalsdk.analytics.xmlobj.CustomReportType; +import org.onap.portalsdk.analytics.xmlobj.DataColumnList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.DataSourceType; +import org.onap.portalsdk.analytics.xmlobj.DataminingOptions; +import org.onap.portalsdk.analytics.xmlobj.FormFieldList; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.analytics.xmlobj.FormatList; +import org.onap.portalsdk.analytics.xmlobj.FormatType; +import org.onap.portalsdk.analytics.xmlobj.JavascriptItemType; +import org.onap.portalsdk.analytics.xmlobj.ObjectFactory; +import org.onap.portalsdk.analytics.xmlobj.PredefinedValueList; +import org.onap.portalsdk.analytics.xmlobj.SemaphoreType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +/**
+ * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting)
+ *
+ * + * --------------------------------------------------------------------------------------------------
+ * ReportDefinition.java - This involves in creating and modifying RAPTOR reports. + * --------------------------------------------------------------------------------------------------
+ * + * + * Change Log

+ * + * 18-Aug-2009 : Version 8.5.1 (Sundar);
  • request Object is passed to prevent caching user/roles - Datamining/Hosting.
+ * 27-Jul-2009 : Version 8.4 (Sundar);
  • userIsAuthorizedToSeeLog is checked for Admin User instead of Super User.
+ * 22-Jun-2009 : Version 8.4 (Sundar);
  • A new type ChartAdditionalOptions is introduced in RAPTOR XSD. + * For this type a create procedure is added to this class.
+ * + */ + +public class ReportDefinition extends ReportWrapper implements Serializable { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportDefinition.class); + + private ReportSchedule reportSchedule = null; + + private WizardSequence wizardSequence = null; + + + private boolean reportUpdateLogged = false; // Used to avoid multiple + // entries in the report log + // when persisting report on + // each step + + private ReportDefinition(CustomReportType crType, String reportID, String ownerID, + String createID, String createDate, String updateID, String updateDate, + String menuID, boolean menuApproved, HttpServletRequest request) throws RaptorException { + super(crType, reportID, ownerID, createID, createDate, updateID, updateDate, menuID, + menuApproved); + if(reportID.equals("-1")) + reportSchedule = new ReportSchedule(getReportID(), getOwnerID(), false, request); + else + reportSchedule = new ReportSchedule(getReportID(), getOwnerID(), true, request); + generateWizardSequence(null); + } // ReportDefinition + + public ReportDefinition(ReportWrapper rw, HttpServletRequest request)throws RaptorException { + super(rw); + + reportSchedule = new ReportSchedule(reportID, rw.getOwnerID(),false, request); + generateWizardSequence(null); + } // ReportDefinition + + private void setReportID(String reportID) { + this.reportID = reportID; + reportSchedule.setReportID(reportID); + reportSchedule.setScheduleUserID(getOwnerID()); + } // setReportID + + public ReportSchedule getReportSchedule() { + return reportSchedule; + } + + public static ReportDefinition unmarshal(String reportXML, String reportID, HttpServletRequest request) + throws RaptorException { + ReportDefinition rn = null; + CustomReportType crType = ReportWrapper.unmarshalCR(reportXML); + //Log.write("Report [" + reportID + "]: XML unmarshalled", 4); + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report [" + reportID + "]: XML unmarshalled")); + + rn = new ReportDefinition(crType, reportID, null, null, null, null, null, null, false, request); + return rn; + } // unmarshal + + public static ReportDefinition createBlank(HttpServletRequest request) throws RaptorException { + String curTime = Utils.getCurrentDateTime(); + String userID = AppUtils.getUserID(request); + ReportDefinition rd = new ReportDefinition(ReportWrapper.createBlankCR(userID), "-1", + userID, userID, curTime, userID, curTime, "", false, request); + + // Necessary initialization + + return rd; + } // ReportDefinition + + public void setAsCopy(HttpServletRequest request) throws RaptorException { + verifySQLBasedReportAccess(request); + + replaceCustomReportWithClone(); + + setReportID("-1"); + setReportName("Copy: " + getReportName()); + } // setAsCopy + + public WizardSequence getWizardSequence() { + return wizardSequence; + } // getWizardSequence + + public void generateWizardSequence(HttpServletRequest request) throws RaptorException { + boolean userIsAuthorizedToSeeLog = false; + String userId = null; + if(request!=null) { + userId = AppUtils.getUserID(request); + if (userId != null) + userIsAuthorizedToSeeLog = AppUtils.isAdminUser(request) + || AppUtils.isAdminUser(request); + //System.out.println("******** Report Type "+getReportType() + " userIsAuthorizedToSeeLog " + userIsAuthorizedToSeeLog); + } + if (getReportType().equals(AppConstants.RT_LINEAR)){ + if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) + wizardSequence = new WizardSequenceSQLBasedLinear(userIsAuthorizedToSeeLog); + else if (getReportDefType().equals(AppConstants.RD_SQL_BASED_DATAMIN)) + wizardSequence = new WizardSequenceSQLBasedLinearDatamining(userIsAuthorizedToSeeLog); + else + wizardSequence = new WizardSequenceLinear(userIsAuthorizedToSeeLog); + } else if (getReportType().equals(AppConstants.RT_CROSSTAB)) { + if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) + wizardSequence = new WizardSequenceSQLBasedCrossTab(userIsAuthorizedToSeeLog); + else + wizardSequence = new WizardSequenceCrossTab(userIsAuthorizedToSeeLog); + } else if (getReportType().equals(AppConstants.RT_DASHBOARD)) { + wizardSequence = new WizardSequenceDashboard(userIsAuthorizedToSeeLog); + } else if (getReportType().equals(AppConstants.RT_HIVE)) { + wizardSequence = new WizardSequenceSQLBasedHive(userIsAuthorizedToSeeLog); + } else + wizardSequence = new WizardSequence(); + } // generateWizardSequence + + private boolean canPersistDashboard() { + //System.out.println(" getDashBoardReports().getReportsList().size() " + getDashBoardReports().getReportsList().size()); + /* Commented for New DashBoard + if (getDashBoardReports()!=null && getDashBoardReports().getReportsList()!=null && getDashBoardReports().getReportsList().size() > 0) { + for (Iterator iter = getDashBoardReports().getReportsList().iterator(); iter.hasNext();) { + Reports report = (Reports)iter.next(); + try { + if(Integer.parseInt(report.getReportId())>0) return true; + } catch (NumberFormatException ex) {} + } // for + } //if + */ + + //if( ) + return nvl(getDashboardLayoutHTML()).length() > 0; + } //canPersistDashboard + + private boolean canPersistLinearReport() { + System.out.println("&&&&&&&&&&&&&&&&&&&&&& canPersistLinearReport"); + boolean visibleColExist = false; + + if (getDataSourceList().getDataSource().size() > 0) { + for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (dct.isVisible()) { + visibleColExist = true; + break; + } + } // for + } // if + + System.out.println("&&&&&&&&&&&&&&&&&&&&&& visibleColExist " + visibleColExist); + return visibleColExist; + } // canPersistLinearReport + + private boolean canPersistCrossTabReport() { + boolean rowColExist = false; + boolean colColExist = false; + boolean valColExist = false; + + if (getDataSourceList().getDataSource().size() > 0) { + for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) + rowColExist = true; + if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) + colColExist = true; + if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE)) + valColExist = true; + } // for + } // if + + return rowColExist && colColExist && valColExist; + } // canPersistCrossTabReport + + private boolean canPersistReport() { + return getReportType().equals(AppConstants.RT_CROSSTAB) ? canPersistCrossTabReport() + : (getReportType().equals(AppConstants.RT_LINEAR)? canPersistLinearReport():((getReportType().equals(AppConstants.RT_HIVE)? canPersistLinearReport():canPersistDashboard()))); + } // canPersistReport + + public void persistReport(HttpServletRequest request) throws RaptorException { + if (!canPersistReport()) { + System.out.println("&&&&&&&&&&&&&&&&&&&&&& In !canPersistReport ReportType: " + getReportType()); + return; + } else { + System.out.println("&&&&&&&&&&&&&&&&&&&&&& Not In !canPersistReport"); + } + + Connection connection = null; + try { + String userID = AppUtils.getUserID(request); + String reportXML = marshal(); + logger.debug(EELFLoggerDelegate.debugLogger, ("Ocurring during Schedule ")); + System.out.println("&&&&&&&&&&&&&&&&&&&&&& Report ID " + reportID); + if (nvl(reportID, "-1").equals("-1")) { + connection = DbUtils.startTransaction(); + // Add report + String sql = ""; + if (nvl(Globals.getAdhocReportSequence()).length()> 0 && nvl(Globals.getAdhocUserRoldId()).length() > 0 && AppUtils.isUserInRole(request, Globals.getAdhocUserRoldId()) && !AppUtils.isAdminUser(request)) { + //sql = "SELECT "+ Globals.getAdhocReportSequence() + ".nextval FROM dual"; + sql = Globals.getPersistReportAdhoc(); + sql = sql.replace("[Globals.getAdhocReportSequence()]", Globals.getAdhocReportSequence()); + + } else{ + //sql = "SELECT seq_cr_report.nextval FROM dual"; + sql = Globals.getNewReportData(); + } + DataSet ds = DbUtils.executeQuery(connection,sql); + setReportID(ds.getString(0, 0)); + + reportSecurity.reportCreate(reportID, userID, isPublic()); + ReportLoader.createCustomReportRec(connection, this, reportXML); + ReportLoader.createReportLogEntry(connection, reportID, userID, + AppConstants.RLA_CREATE, "", ""); + reportUpdateLogged = true; + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB insert report " + reportID + " succesfull")); + } else { + // Update report + verifySQLBasedReportAccess(request); + reportSecurity.reportUpdate(request); + connection = DbUtils.startTransaction(); + ReportLoader.updateCustomReportRec(connection, this, reportXML); + if (!reportUpdateLogged) { + ReportLoader.createReportLogEntry(connection, reportID, userID, + AppConstants.RLA_UPDATE,"",""); + reportUpdateLogged = true; + } // if + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB update report " + reportID + " succesfull")); + } + + getReportSchedule().persistScheduleData(connection, request); + + DbUtils.commitTransaction(connection); + } catch (RaptorException e) { + e.printStackTrace(); + DbUtils.rollbackTransaction(connection); + throw e; + } finally { + DbUtils.clearConnection(connection); + } + } // persistReport + + public String getCrossTabDisplayValue(String crossTabValue) { + return nvl(crossTabValue).equals(AppConstants.CV_ROW) ? "Row headings" : (nvl( + crossTabValue).equals(AppConstants.CV_COLUMN) ? "Column headings" : (nvl( + crossTabValue).equals(AppConstants.CV_VALUE) ? "Report values" : "Invisible/Filter")); + } // getCrossTabDisplayValue + + public String getCrossTabDisplayValue(DataColumnType dct) { + return getCrossTabDisplayValue(dct.getCrossTabValue()); + } // getCrossTabDisplayValue + + public String getColumnLabel(DataColumnType dct) throws Exception { + String tableName = getTableById(dct.getTableId()).getTableName(); + Vector dbColumns = null; + dbColumns = DataCache.getReportTableDbColumns(tableName, cr.getDbInfo()); + if (dbColumns != null) + for (int i = 0; i < dbColumns.size(); i++) { + DBColumnInfo dbCol = (DBColumnInfo) dbColumns.get(i); + if (dct.getDbColName().equals(dbCol.getColName())) + return dbCol.getLabel(); + } // for + + return ""; + } // getCrossTabDisplayValue + + public String getFilterLabel(ColFilterType cft) { + StringBuffer fLabel = new StringBuffer(); + + fLabel.append(cft.getExpression()); + fLabel.append(" "); + if (cft.getArgType() != null) + if (cft.getArgType().equals(AppConstants.AT_FORMULA)) { + fLabel.append("[" + cft.getArgValue() + "]"); + } else if (cft.getArgType().equals(AppConstants.AT_VALUE)) { + fLabel.append(cft.getArgValue()); + } else if (cft.getArgType().equals(AppConstants.AT_LIST)) { + fLabel.append("(" + cft.getArgValue() + ")"); + } else if (cft.getArgType().equals(AppConstants.AT_COLUMN)) { + DataColumnType dctFilter = getColumnById(cft.getArgValue()); + fLabel.append("[" + dctFilter.getDisplayName() + "]"); + } else if (cft.getArgType().equals(AppConstants.AT_FORM)) { + fLabel.append("[Form Field]"); + } + + return fLabel.toString(); + } // getFilterLabel + + public Vector getReportUsers(HttpServletRequest request) throws RaptorException { + return reportSecurity.getReportUsers(request); + } // getReportUsers + + public Vector getReportRoles(HttpServletRequest request) throws RaptorException { + return reportSecurity.getReportRoles(request); + } // getReportRoles + + /** ************************************************************************************************* */ + + public void clearAllDrillDowns() { + List reportCols = getAllColumns(); + for (int i = 0; i < reportCols.size(); i++) { + DataColumnType dct = (DataColumnType) reportCols.get(i); + dct.setDrillDownURL(null); + dct.setDrillDownParams(null); + dct.setDrillDownType(null); + } // for + } // clearAllDrillDowns + + public void setOuterJoin(DataSourceType curTable, String joinType) { + String refDefinition = nvl(curTable.getRefDefinition()); + int outerJoinIdx = refDefinition.indexOf(" (+)"); + if (outerJoinIdx >= 0) + // Clear existing outer join + if (outerJoinIdx == (refDefinition.length() - 4)) + refDefinition = refDefinition.substring(0, outerJoinIdx); + else + refDefinition = refDefinition.substring(0, outerJoinIdx) + + refDefinition.substring(outerJoinIdx + 4); + + int equalSignIdx = refDefinition.indexOf("="); + if (equalSignIdx < 0) + // Ref. definition not present + return; + + if (refDefinition.indexOf(curTable.getTableId()) < equalSignIdx) { + // Cur. table is on the left side + if (nvl(joinType).equals(AppConstants.OJ_CURRENT)) + refDefinition = refDefinition.substring(0, equalSignIdx) + " (+)" + + refDefinition.substring(equalSignIdx); + else if (nvl(joinType).equals(AppConstants.OJ_JOINED)) + refDefinition = refDefinition + " (+)"; + } else { + // Joined table is on the left side + if (nvl(joinType).equals(AppConstants.OJ_CURRENT)) + refDefinition = refDefinition + " (+)"; + else if (nvl(joinType).equals(AppConstants.OJ_JOINED)) + refDefinition = refDefinition.substring(0, equalSignIdx) + " (+)" + + refDefinition.substring(equalSignIdx); + } + + curTable.setRefDefinition(refDefinition); + } // setOuterJoin + + public void addDataSourceType(ObjectFactory objFactory, String tableId, String tableName, + String tablePK, String displayName, String refTableId, String refDefinition, + String comment) throws RaptorException { + DataSourceType dst = objFactory.createDataSourceType(); + + dst.setTableId(tableId); + dst.setTableName(tableName); + dst.setTablePK(tablePK); + dst.setDisplayName(displayName); + if (nvl(refTableId).length() > 0) + dst.setRefTableId(refTableId); + if (nvl(refDefinition).length() > 0) + dst.setRefDefinition(refDefinition); + if (nvl(comment).length() > 0) + dst.setComment(comment); + + DataColumnList dataColumnList = objFactory.createDataColumnList(); + dst.setDataColumnList(dataColumnList); + + getDataSourceList().getDataSource().add(dst); + + resetCache(true); + } // addDataSourceType + + public void deleteDataSourceType(String tableId) { + super.deleteDataSourceType(tableId); + } // deleteDataSourceType + + public String getUniqueColumnId(String colName) { + String colId = ""; + + int colIdN = getAllColumns().size() + 1; + do { + colId = colName.substring(0, 2).toLowerCase() + (colIdN++); + } while (getColumnById(colId) != null); + + return colId; + } // getUniqueColumnId + + public DataColumnType addDataColumnType(ObjectFactory objFactory, String colId, + String tableId, // Table to which the new column belongs + String dbColName, String crossTabValue, String colName, String displayName, + int displayWidth, String displayAlignment, int orderSeq, boolean visible, + boolean calculated, String colType, String colFormat, boolean groupBreak, + int orderBySeq, String orderByAscDesc, String displayTotal, String colOnChart, + int chartSeq, String drillDownType, String drillDownURL, String drillDownParams, + String semaphoreId, String comment) throws RaptorException { + DataColumnType dct = null; + dct = objFactory.createDataColumnType(); + + dct.setColId(colId); + dct.setTableId(tableId); + dct.setDbColName(dbColName); + if (nvl(crossTabValue).length() > 0) + dct.setCrossTabValue(crossTabValue); + dct.setColName(colName); + dct.setDisplayName(displayName); + if (displayWidth > 0) + dct.setDisplayWidth(displayWidth); + if (nvl(displayAlignment).length() > 0) + dct.setDisplayAlignment(displayAlignment); + if (orderSeq > 0) + dct.setOrderSeq(orderSeq); + else + dct.setOrderSeq(getAllColumns().size() + 1); + dct.setVisible(visible); + dct.setCalculated(calculated); + // dct.setColType(colType); + if (nvl(colFormat).length() > 0) + dct.setColFormat(colFormat); + dct.setGroupBreak(groupBreak); + if (orderBySeq > 0) + dct.setOrderBySeq(orderBySeq); + if (nvl(orderByAscDesc).length() > 0) + dct.setOrderByAscDesc(orderByAscDesc); + if (nvl(displayTotal).length() > 0) + dct.setDisplayTotal(displayTotal); + if (nvl(colOnChart).length() > 0) + dct.setColOnChart(colOnChart); + if (chartSeq > 0) + dct.setChartSeq(chartSeq); + if (nvl(drillDownType).length() > 0) + dct.setDrillDownType(drillDownType); + if (nvl(drillDownURL).length() > 0) + dct.setDrillDownURL(drillDownURL); + if (nvl(drillDownParams).length() > 0) + dct.setDrillDownParams(drillDownParams); + if (nvl(semaphoreId).length() > 0) + dct.setSemaphoreId(semaphoreId); + if (nvl(comment).length() > 0) + dct.setComment(comment); + + dct.setDbColType(colType); + adjustColumnType(dct); + + // ColFilterList colFilterList = objFactory.createColFilterList(); + // dct.setColFilterList(colFilterList); + + getTableById(tableId).getDataColumnList().getDataColumn().add(dct); + + resetCache(false); + + return dct; + } // addDataColumnType + + public void deleteDataColumnType(String colId) { + int colOrder = getColumnById(colId).getOrderSeq(); + + List dcList = getColumnTableById(colId).getDataColumnList().getDataColumn(); + for (Iterator iterC = dcList.iterator(); iterC.hasNext();) { + DataColumnType dct = (DataColumnType) iterC.next(); + + if (dct.getColId().equals(colId) && dct.getOrderSeq() == colOrder) + iterC.remove(); + else if (dct.getOrderSeq() > colOrder) + dct.setOrderSeq(dct.getOrderSeq() - 1); + } // for + + if (getFormFieldList() != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + if (nvl(fft.getColId()).equals(colId)) { + fft.setColId(""); + fft.setFieldType(FormField.FFT_TEXT); + if (nvl(fft.getDefaultValue()).equals(AppConstants.FILTER_MAX_VALUE) + || nvl(fft.getDefaultValue()) + .equals(AppConstants.FILTER_MIN_VALUE)) + fft.setDefaultValue(""); + } // if + } // for + + resetCache(false); + resetColumnOrderValues(); + } // deleteDataColumnType + + public void shiftColumnOrderUp(String colId) { + List reportCols = getAllColumns(); + for (int i = 0; i < reportCols.size(); i++) { + DataColumnType dct = (DataColumnType) reportCols.get(i); + + if (dct.getColId().equals(colId) && (i > 0)) { + DataColumnType dctUp = (DataColumnType) reportCols.get(i - 1); + dctUp.setOrderSeq(dctUp.getOrderSeq() + 1); + dct.setOrderSeq(dct.getOrderSeq() - 1); + break; + } // if + } // for + + Collections.sort(reportCols, new OrderSeqComparator()); + resetCache(true); + resetColumnOrderValues(); + } // shiftColumnOrderUp + + public void shiftColumnOrderDown(String colId) { + List reportCols = getAllColumns(); + for (int i = 0; i < reportCols.size(); i++) { + DataColumnType dct = (DataColumnType) reportCols.get(i); + + if (dct.getColId().equals(colId) && (i < reportCols.size() - 1)) { + DataColumnType dctDown = (DataColumnType) reportCols.get(i + 1); + dctDown.setOrderSeq(dctDown.getOrderSeq() - 1); + dct.setOrderSeq(dct.getOrderSeq() + 1); + break; + } // if + } // for + + Collections.sort(reportCols, new OrderSeqComparator()); + resetCache(true); + resetColumnOrderValues(); + } // shiftColumnOrderDown + + public void resetColumnOrderValues() { + List reportCols = getAllColumns(); + + int colOrder = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + dct.setOrderSeq(++colOrder); + } // for + + Collections.sort(reportCols, new OrderSeqComparator()); + } // resetColumnOrderValues + + public void addColFilterType(ObjectFactory objFactory, String colId, // Column + // to + // which + // the + // new + // filter + // belongs + String joinCondition, String openBrackets, String expression, String argType, + String argValue, String closeBrackets, String comment) throws RaptorException { + ColFilterType cft = objFactory.createColFilterType(); + + cft.setColId(colId); + cft.setJoinCondition(nvl(joinCondition, "AND")); + if (nvl(openBrackets).length() > 0) + cft.setOpenBrackets(openBrackets); + cft.setExpression(expression); + if (nvl(argType).length() > 0) + cft.setArgType(argType); + if (nvl(argValue).length() > 0) + cft.setArgValue(argValue); + if (nvl(closeBrackets).length() > 0) + cft.setCloseBrackets(closeBrackets); + if (nvl(comment).length() > 0) + cft.setComment(comment); + + DataColumnType dct = getColumnById(colId); + if (dct != null) { + if (dct.getColFilterList() == null) + dct.setColFilterList(objFactory.createColFilterList()); + + cft.setFilterSeq(dct.getColFilterList().getColFilter().size()); + dct.getColFilterList().getColFilter().add(cft); + } // if + + resetCache(true); + } // addColFilterType + + public void removeColumnFilter(String colId, int filterPos) { + DataColumnType dct = getColumnById(colId); + + if (dct.getColFilterList() != null) + try { + dct.getColFilterList().getColFilter().remove(filterPos); + } catch (IndexOutOfBoundsException e) { + } + + resetCache(true); + } // removeColumnFilter + + public void addColumnSort(String colId, String ascDesc) { + addColumnSort(colId, ascDesc, -1); + } // addColumnSort + + public void addColumnSort(String colId, String ascDesc, int sortOrder) { + if (sortOrder <= 0) { + sortOrder = 1; + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) + if (((DataColumnType) iter.next()).getOrderBySeq() > 0) + sortOrder++; + } // if + + DataColumnType dct = getColumnById(colId); + dct.setOrderBySeq(sortOrder); + dct.setOrderByAscDesc(ascDesc); + + resetCache(true); + } // addColumnSort + + public void removeColumnSort(String colId) { + DataColumnType dct = getColumnById(colId); + int sortOrder = dct.getOrderBySeq(); + + dct.setOrderBySeq(0); + dct.setOrderByAscDesc(null); + + if (sortOrder > 0) { + List reportCols = getAllColumns(); + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dct2 = (DataColumnType) iter.next(); + + if (dct2.getOrderBySeq() > sortOrder) + dct2.setOrderBySeq(dct2.getOrderBySeq() - 1); + } // for + } // if + + resetCache(true); + } // removeColumnSort + + public void shiftColumnSortUp(String colId) { + List reportCols = getAllColumns(); + Collections.sort(reportCols, new OrderBySeqComparator()); + + for (int i = 0; i < reportCols.size(); i++) { + DataColumnType dct = (DataColumnType) reportCols.get(i); + + if (dct.getColId().equals(colId) && (dct.getOrderBySeq() > 0)) { + DataColumnType dctUp = (DataColumnType) reportCols.get(i - 1); + if (dctUp.getOrderBySeq() > 0) + dctUp.setOrderBySeq(dctUp.getOrderBySeq() + 1); + dct.setOrderBySeq(dct.getOrderBySeq() - 1); + break; + } // if + } // for + + Collections.sort(reportCols, new OrderSeqComparator()); + resetCache(true); + } // shiftColumnSortUp + + public void shiftColumnSortDown(String colId) { + List reportCols = getAllColumns(); + Collections.sort(reportCols, new OrderBySeqComparator()); + + for (int i = 0; i < reportCols.size(); i++) { + DataColumnType dct = (DataColumnType) reportCols.get(i); + + if (dct.getColId().equals(colId) && (dct.getOrderBySeq() > 0)) { + DataColumnType dctDown = (DataColumnType) reportCols.get(i + 1); + if (dctDown.getOrderBySeq() > 0) + dctDown.setOrderBySeq(dctDown.getOrderBySeq() - 1); + dct.setOrderBySeq(dct.getOrderBySeq() + 1); + break; + } // if + } // for + + Collections.sort(reportCols, new OrderSeqComparator()); + resetCache(true); + } // shiftColumnSortDown + + /** ************************************************************************************************* */ + + public String generateNewSemaphoreId() { + if (getSemaphoreList() == null) + return "sem1"; + + String semaphoreId = null; + boolean idExists = true; + for (int i = 1; idExists; i++) { + semaphoreId = "sem" + i; + idExists = false; + for (Iterator iter = getSemaphoreList().getSemaphore().iterator(); iter.hasNext();) + if (semaphoreId.equals(((SemaphoreType) iter.next()).getSemaphoreId())) { + idExists = true; + break; + } + } // for + + return semaphoreId; + } // generateNewSemaphoreId + + public SemaphoreType addSemaphore(ObjectFactory objFactory, SemaphoreType semaphoreType) + throws RaptorException { + SemaphoreType sem = null; + try { + if (getSemaphoreList() == null) + setSemaphoreList(objFactory.createSemaphoreList()); + + String semaphoreName = null; + boolean nameExists = true; + for (int i = 1; nameExists; i++) { + semaphoreName = semaphoreType.getSemaphoreName() + ((i > 1) ? (" v" + i) : ""); + nameExists = false; + for (Iterator iter2 = getSemaphoreList().getSemaphore().iterator(); iter2 + .hasNext();) + if (semaphoreName.equals(((SemaphoreType) iter2.next()).getSemaphoreName())) { + nameExists = true; + break; + } + } // for + + sem = cloneSemaphoreType(objFactory, semaphoreType); + getSemaphoreList().getSemaphore().add(sem); + + sem.setSemaphoreId(generateNewSemaphoreId()); + sem.setSemaphoreName(semaphoreName); + } catch (JAXBException ex) { + throw new RaptorException(ex.getMessage(), ex.getCause()); + } + + return sem; + } // addSemaphore + + public SemaphoreType addSemaphoreType(ObjectFactory objFactory, String semaphoreName, + String semaphoreType, String comment) throws RaptorException { + SemaphoreType sem = null; + if (getSemaphoreList() == null) + setSemaphoreList(objFactory.createSemaphoreList()); + + sem = objFactory.createSemaphoreType(); + getSemaphoreList().getSemaphore().add(sem); + + sem.setSemaphoreId(generateNewSemaphoreId()); + sem.setSemaphoreName(semaphoreName); + sem.setSemaphoreType(nvl(semaphoreType)); + if (nvl(comment).length() > 0) + sem.setComment(comment); + + FormatList formatList = objFactory.createFormatList(); + sem.setFormatList(formatList); + return sem; + } // addSemaphoreType + + + public String getNextIdForJavaScriptElement (ObjectFactory objFactory, String fieldId) throws RaptorException { + String id = ""; + JavascriptItemType jit = null; + int incr = 0; + if (getJavascriptList() == null) { + setJavascriptList(objFactory.createJavascriptList()); + return fieldId + "|1"; + } else { + if(getJavascriptList().getJavascriptItem().iterator().hasNext()) { + for (Iterator iter = getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) { + jit = (JavascriptItemType) iter.next(); + logger.debug(EELFLoggerDelegate.debugLogger, ("^^^^^JAVASCRIPTITEMTYPE " + jit.getFieldId() + " " + fieldId + " " + id)); + if(nvl(jit.getFieldId()).length()>0 && jit.getFieldId().equals(fieldId)) { + ++incr; + } + } // for + return fieldId + "|"+incr; + } else { + return fieldId + "|1"; + } + + } + //return null; + } + + public JavascriptItemType addJavascriptType(ObjectFactory objFactory, String id) throws RaptorException { + JavascriptItemType javascriptItemType = null; + int flag = 0; // checking whether id existing in the list + if (getJavascriptList() == null) { + setJavascriptList(objFactory.createJavascriptList()); + javascriptItemType = objFactory.createJavascriptItemType(); + getJavascriptList().getJavascriptItem().add(javascriptItemType); + return javascriptItemType; + } else { + + for (Iterator iter = getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) { + javascriptItemType = (JavascriptItemType)iter.next(); + if(javascriptItemType.getId().equals(id) && !id.startsWith("-1")) { + flag = 1; + break; + } + } + if(flag == 1) return javascriptItemType; + else { + javascriptItemType = objFactory.createJavascriptItemType(); + getJavascriptList().getJavascriptItem().add(javascriptItemType); + return javascriptItemType; + } + } + + } // addSemaphoreType + + public boolean deleteJavascriptType(String id) throws RaptorException { + JavascriptItemType javascriptType = null; + if (getJavascriptList() == null) + return true; + for (Iterator iter = getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) { + javascriptType = (JavascriptItemType)iter.next(); + if(javascriptType.getId().equals(id)) { + iter.remove(); + return true; + } + } + return false; + } // addSemaphoreType + + public static FormatType addEmptyFormatType(ObjectFactory objFactory, + SemaphoreType semaphore) throws RaptorException { + FormatType fmt = null; + fmt = objFactory.createFormatType(); + semaphore.getFormatList().getFormat().add(fmt); + + String formatId = null; + boolean idExists = true; + for (int i = 1; idExists; i++) { + formatId = semaphore.getSemaphoreId() + "_fmt" + i; + idExists = false; + for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter + .hasNext();) + if (formatId.equals(((FormatType) iter.next()).getFormatId())) { + idExists = true; + break; + } + } // for + fmt.setFormatId(formatId); + return fmt; + } // addEmptyFormatType + + public static void deleteFormatType(SemaphoreType semaphore, String formatId) { + for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter.hasNext();) + if (formatId.equals(((FormatType) iter.next()).getFormatId())) { + iter.remove(); + break; + } // if + } // deleteFormatType + + public FormFieldType addFormFieldType(ObjectFactory objFactory, String fieldName, + String colId, String fieldType, String validationType, String mandatory, + String defaultValue, String fieldSQL, String comment, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL) throws RaptorException { + FormFieldType fft = null; + fft = objFactory.createFormFieldType(); + + fft.setFieldName(fieldName); + fft.setColId(colId); + fft.setFieldType(fieldType); + fft.setValidationType(validationType); + fft.setMandatory(nvl(mandatory, "N")); + fft.setDefaultValue(nvl(defaultValue)); + fft.setOrderBySeq((getFormFieldList() == null) ? 1 : getFormFieldList().getFormField() + .size() + 1); + fft.setFieldSQL(fieldSQL); + //fft.setRangeStartDate(rangeStartDate); + //fft.setRangeEndDate(rangeEndDate); + + try { + fft.setRangeStartDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(rangeStartDate.YEAR, rangeStartDate.MONTH, rangeStartDate.DAY_OF_WEEK, rangeStartDate.HOUR, rangeStartDate.MINUTE, rangeStartDate.SECOND, rangeStartDate.MILLISECOND, rangeStartDate.ZONE_OFFSET)); + fft.setRangeStartDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(rangeEndDate.YEAR, rangeEndDate.MONTH, rangeEndDate.DAY_OF_WEEK, rangeEndDate.HOUR, rangeEndDate.MINUTE, rangeEndDate.SECOND, rangeEndDate.MILLISECOND, rangeEndDate.ZONE_OFFSET)); + /*currField.setRangeEndDate(DatatypeFactory.newInstance() + .newXMLGregorianCalendar(end));*/ + } catch (DatatypeConfigurationException ex) { + + } + + fft.setRangeStartDateSQL(rangeStartDateSQL); + fft.setRangeEndDateSQL(rangeEndDateSQL); + if (nvl(comment).length() > 0) + fft.setComment(comment); + + String fieldId = null; + boolean idExists = true; + for (int i = 1; idExists; i++) { + fieldId = "ff" + i; + idExists = false; + if (getFormFieldList() != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter + .hasNext();) + if (fieldId.equals(((FormFieldType) iter.next()).getFieldId())) { + idExists = true; + break; + } + } // for + fft.setFieldId(fieldId); + + if (getFormFieldList() == null) { + FormFieldList formFieldList = objFactory.createFormFieldList(); + setFormFieldList(formFieldList); + } + + getFormFieldList().getFormField().add(fft); + return fft; + } // addFormFieldType + + //addCustomizedTextForParameters + public void addCustomizedTextForParameters(String comment) throws RaptorException { + getFormFieldList().setComment(comment); + } + + public FormFieldType addFormFieldBlank(ObjectFactory objFactory) throws RaptorException { + FormFieldType fft = null; + fft = objFactory.createFormFieldType(); + + fft.setFieldName("BLANK"); + fft.setColId("bk"); + fft.setFieldType(FormField.FFT_BLANK); + fft.setOrderBySeq((getFormFieldList() == null) ? 1 : getFormFieldList().getFormField() + .size() + 1); + String fieldId = null; + boolean idExists = true; + for (int i = 1; idExists; i++) { + fieldId = "ff" + i; + idExists = false; + if (getFormFieldList() != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter + .hasNext();) + if (fieldId.equals(((FormFieldType) iter.next()).getFieldId())) { + idExists = true; + break; + } + } // for + fft.setFieldId(fieldId); + + if (getFormFieldList() == null) { + FormFieldList formFieldList = objFactory.createFormFieldList(); + setFormFieldList(formFieldList); + } + + getFormFieldList().getFormField().add(fft); + return fft; + } // addFormFieldBlank + + public void replaceFormFieldReferences(String fieldName, String replaceWith) { + if (fieldName.equals(replaceWith)) + return; + + for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + + if (dct.isCalculated() && dct.getColName().indexOf(fieldName) >= 0) + dct.setColName(Utils.replaceInString(dct.getColName(), fieldName, nvl( + replaceWith, "NULL"))); + + if (dct.getColFilterList() != null) + for (Iterator iter2 = dct.getColFilterList().getColFilter().iterator(); iter2 + .hasNext();) { + ColFilterType cft = (ColFilterType) iter2.next(); + + if (nvl(cft.getArgType()).equals(AppConstants.AT_FORM) + && nvl(cft.getArgValue()).equals(fieldName)) + cft.setArgValue(replaceWith); + } // for + } // for + } // replaceFormFieldReferences + + public void deleteFormField(String fieldId) { + String fieldDisplayName = null; + + int orderBySeq = Integer.MAX_VALUE; + if (getFormFieldList() != null) + for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + + if (fieldId.equals(fft.getFieldId())) { + //orderBySeq = fft.getOrderBySeq(); + fieldDisplayName = getFormFieldDisplayName(fft); + iter.remove(); + } else if (fft.getOrderBySeq()!=null && (fft.getOrderBySeq().intValue() > orderBySeq)) + fft.setOrderBySeq(fft.getOrderBySeq() - 1); + } // for + + if (fieldDisplayName != null) + replaceFormFieldReferences(fieldDisplayName, ""); + } // deleteFormField + + public void shiftFormFieldUp(String fieldId) { + if (getFormFieldList() == null) + return; + + for (int i = 0; i < getFormFieldList().getFormField().size(); i++) { + FormFieldType fft = (FormFieldType) getFormFieldList().getFormField().get(i); + + if (fft.getFieldId().equals(fieldId) && (i > 0)) { + FormFieldType prevFft = (FormFieldType) getFormFieldList().getFormField().get( + i - 1); + prevFft.setOrderBySeq(prevFft.getOrderBySeq() + 1); + fft.setOrderBySeq((fft.getOrderBySeq() == null)?0:fft.getOrderBySeq() - 1); + + getFormFieldList().getFormField().remove(i); + getFormFieldList().getFormField().add(i - 1, fft); + return; + } // if + } // for + } // shiftFormFieldUp + + public void shiftFormFieldDown(String fieldId) { + if (getFormFieldList() == null) + return; + + for (int i = 0; i < getFormFieldList().getFormField().size(); i++) { + FormFieldType fft = (FormFieldType) getFormFieldList().getFormField().get(i); + + if (fft.getFieldId().equals(fieldId) + && (i < getFormFieldList().getFormField().size() - 1)) { + FormFieldType nextFft = (FormFieldType) getFormFieldList().getFormField().get( + i + 1); + nextFft.setOrderBySeq((nextFft.getOrderBySeq() == null)?0:nextFft.getOrderBySeq() - 1); + fft.setOrderBySeq((fft.getOrderBySeq() == null)?0:fft.getOrderBySeq() + 1); + + getFormFieldList().getFormField().remove(i + 1); + getFormFieldList().getFormField().add(i, nextFft); + return; + } // if + } // for + } // shiftFormFieldDown + + public static void addFormFieldPredefinedValue(ObjectFactory objFactory, + FormFieldType formField, String predefinedValue) throws RaptorException { + if (formField.getPredefinedValueList() == null) { + PredefinedValueList predefinedValueList = objFactory.createPredefinedValueList(); + formField.setPredefinedValueList(predefinedValueList); + } // if + + if (predefinedValue.length() > 0) { + formField.getPredefinedValueList().getPredefinedValue().add(predefinedValue); + Collections.sort(formField.getPredefinedValueList().getPredefinedValue()); + } // if + } // addFormFieldPredefinedValue + + public static void deleteFormFieldPredefinedValue(FormFieldType formField, + String predefinedValue) { + if (formField != null && formField.getPredefinedValueList() != null + && predefinedValue.length() > 0) + for (Iterator iter = formField.getPredefinedValueList().getPredefinedValue() + .iterator(); iter.hasNext();) + if (predefinedValue.equals((String) iter.next())) { + iter.remove(); + break; + } // if + } // deleteFormFieldPredefinedValue + + /** ************************************************************************************************* */ + + private int curSQLParsePos = 0; + + private String getNextSQLParseToken(String sql, boolean updateParsePos) { + int braketCount = 0; + boolean isInsideQuote = false; + StringBuffer nextToken = new StringBuffer(); + for (int idxNext = curSQLParsePos; idxNext < sql.length(); idxNext++) { + char ch = sql.charAt(idxNext); + + if (Character.isWhitespace(ch) || ch == ',') { + if (ch == ',') + nextToken.append(ch); + + if (nextToken.length() == 0) + continue; + else if (braketCount == 0 && (!isInsideQuote)) { + if (updateParsePos) + curSQLParsePos = idxNext + ((ch == ',') ? 1 : 0); + break; + } else if (ch != ',' && nextToken.charAt(nextToken.length() - 1) != ' ') + nextToken.append(' '); + } else { + nextToken.append(ch); + + if (ch == '(' || ch == '[') + braketCount++; + else if (ch == ')' || ch == ']') + braketCount--; + else if (ch == '\''/* ||ch=='\"' */) + isInsideQuote = (!isInsideQuote); + } // else + } // for + + return nextToken.toString(); + } // getNextSQLParseToken + + private boolean isParseSQLColID(String token) { + if (nvl(token).length() == 0) + return false; + + for (int i = 0; i < token.length(); i++) { + char ch = token.charAt(i); + + if (i == 0 && ch == '_') + return false; + + if (!(Character.isLetterOrDigit(ch) || ch == '_')) + return false; + } // for + + return true; + } // isParseSQLColID + + private DataColumnType getParseSQLDataColumn(String sqlExpression, String colId, + StringBuffer parsedSQL, Vector updatedReportCols, boolean isCYMBALScript) throws RaptorException { + DataColumnType dct = null; + + if (colId != null) { + if (!isParseSQLColID(colId)) + throw new org.onap.portalsdk.analytics.error.ValidationException( + "[" + + colId + + "] must either be a valid column id consisting only of letters, numbers, and underscores, or there must be a comma in front of it."); + + dct = getColumnById(colId); + } else { + // Getting unique column id + colId = ""; + int colIdN = 0; + for (int i = 0; (i < sqlExpression.length()) && (colIdN < 2); i++) + if (Character.isLetter(sqlExpression.charAt(i))) { + colId += sqlExpression.toLowerCase().charAt(i); + colIdN++; + } // if + + colIdN = getAllColumns().size() + updatedReportCols.size(); + for (boolean idAlreadyUsed = true; idAlreadyUsed; colIdN++) { + String newColId = colId + colIdN; + idAlreadyUsed = false; + + for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) + if (newColId.equals(((DataColumnType) iter.next()).getColId())) { + idAlreadyUsed = true; + break; + } + + if (!idAlreadyUsed) + for (Iterator iter = updatedReportCols.iterator(); iter.hasNext();) + if (newColId.equals(((DataColumnType) iter.next()).getColId())) { + idAlreadyUsed = true; + break; + } + } // for + + colId += (colIdN - 1); + } // else + + if (dct == null) { + dct = (new ObjectFactory()).createDataColumnType(); + dct.setColId(colId); + dct.setDisplayWidth(10); + dct.setDisplayAlignment("Left"); + dct.setVisible(true); + dct.setGroupBreak(false); // ??? + if(!isCYMBALScript) { + boolean isValidIdentifier = Character.isLetterOrDigit(sqlExpression.charAt(0)); + for (int i = 0; i < sqlExpression.length(); i++) + if (!(Character.isLetterOrDigit(sqlExpression.charAt(i)) + || (sqlExpression.charAt(i) == '_') || (sqlExpression.charAt(i) == '$'))) { + isValidIdentifier = false; + break; + } // if + + if (isValidIdentifier) { + dct.setDisplayName(sqlExpression); + } else { + dct.setDisplayName(colId); + } // else + } else dct.setDisplayName(colId); + } // if + if(!isCYMBALScript) + sqlExpression = sqlExpression.replaceAll(", '", ",'"); + dct.setDbColName(sqlExpression); + dct.setColName(sqlExpression); + dct.setCalculated(true); + dct.setColType(AppConstants.CT_CHAR); + dct.setDbColType(AppConstants.CT_CHAR); + adjustColumnType(dct); // ??? + if(!isCYMBALScript) { + if (parsedSQL.toString().equals("SELECT ") + || parsedSQL.toString().equals("SELECT DISTINCT ")) + parsedSQL.append("\n\t"); + else + parsedSQL.append(", \n\t"); + parsedSQL.append(sqlExpression); + parsedSQL.append(" "); + parsedSQL.append(colId); + } + + return dct; + } // getParseSQLDataColumn + + public void parseReportSQL(String sql) throws RaptorException { + StringBuffer parsedSQL = new StringBuffer(); + + Vector updatedReportCols = new Vector(); + + curSQLParsePos = 0; + int lastParsePos = curSQLParsePos; + String lastToken = null; + String nextToken = getNextSQLParseToken(sql, true); + + String dbInfo = getDBInfo(); + boolean isCYMBALScript = false; + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + String dbType = remDbInfo.getDBType(dbInfo); + if (dbType.equals("DAYTONA") && !(nextToken.toUpperCase().equals("SELECT"))) { + isCYMBALScript = true; + } + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + if ( isCYMBALScript == false ) { + while (nextToken.length() > 0) { + if (parsedSQL.length() == 0) { + if (nextToken.toUpperCase().equals("SELECT")) + parsedSQL.append("SELECT "); + else + throw new org.onap.portalsdk.analytics.error.ValidationException( + "The SQL must start with the SELECT keyword."); + } else if (nextToken.toUpperCase().equals("DISTINCT") + && parsedSQL.toString().equals("SELECT ")) { + parsedSQL.append("DISTINCT "); + } else if (nextToken.equals("*") + && (parsedSQL.toString().equals("SELECT ") || parsedSQL.toString().equals( + "SELECT DISTINCT "))) { + throw new org.onap.portalsdk.analytics.error.ValidationException( + "You cannot use \"SELECT *\". Please specify select columns/expressions."); + } else if (nextToken.toUpperCase().equals("FROM")) { + if (lastToken != null) { + updatedReportCols.add(getParseSQLDataColumn(lastToken, null, parsedSQL, + updatedReportCols, false)); + lastToken = null; + } + + parsedSQL.append(" \n"); + while (lastParsePos < sql.length() + && Character.isWhitespace(sql.charAt(lastParsePos))) + lastParsePos++; + parsedSQL.append(sql.substring(lastParsePos)); + break; + } else { + if (nextToken.charAt(nextToken.length() - 1) == ',') { + // The token ends with , + nextToken = nextToken.substring(0, nextToken.length() - 1); + + if (nextToken.length() == 0) { + if (lastToken != null) { + updatedReportCols.add(getParseSQLDataColumn(lastToken, null, + parsedSQL, updatedReportCols, false)); + lastToken = null; + } // else just comma => ignore it + } else { + if (lastToken != null) { + updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken, + parsedSQL, updatedReportCols, false)); + lastToken = null; + } else + updatedReportCols.add(getParseSQLDataColumn(nextToken, null, + parsedSQL, updatedReportCols, false)); + } + } else { + // The token doesn't end with , + if (lastToken == null) + lastToken = nextToken; + else { + String token = getNextSQLParseToken(sql, false); + if (!token.toUpperCase().equals("FROM")) + throw new org.onap.portalsdk.analytics.error.ValidationException( + "|FROM keyword or a comma expected after [" + nextToken + + "]."); + + updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken, + parsedSQL, updatedReportCols, false)); + lastToken = null; + } // else + } // else + } // else + + lastParsePos = curSQLParsePos; + nextToken = getNextSQLParseToken(sql, true); + } // while + } else { // if CYMBAL Script + curSQLParsePos = 0; + Pattern re = null; + Matcher matcher = null; + String extracted = null; + nextToken = getNextCYMBALSQLParseToken(sql,true); + while (nextToken.length() > 0) { + if (lastToken == null) lastToken = nextToken; + + if( lastToken.toUpperCase().startsWith("DO DISPLAY")) { + re = Pattern.compile("each(.*)\\[.(.*?)\\]"); //\\[(.*?)\\] + matcher = re.matcher(nextToken); + if (matcher.find()) { + extracted = matcher.group(); + re = Pattern.compile("\\[(.*?)\\]"); + matcher = re.matcher(nextToken); + if(matcher.find()) { + extracted = matcher.group(); + extracted = extracted.substring(1,extracted.length()-1); + StringTokenizer sToken = new StringTokenizer(extracted, ","); + while(sToken.hasMoreTokens()) { + String str1 = sToken.nextToken().trim().substring(1); + updatedReportCols.add(getParseSQLDataColumn("", str1, + new StringBuffer(""), updatedReportCols, true)); + } + } + + } + + } + lastToken = nextToken; + nextToken = getNextCYMBALSQLParseToken(sql, true); + } + + } + if (updatedReportCols.size() == 0) + throw new org.onap.portalsdk.analytics.error.ValidationException( + "The SQL statement must have at least one column in the SELECT clause."); + if (getDataSourceList().getDataSource().size() == 0) + addDataSourceType(new ObjectFactory(), "du0", "DUAL", "", "DUAL", null, null, null); + DataSourceType dst = (DataSourceType) getDataSourceList().getDataSource().get(0); + dst.getDataColumnList().getDataColumn().clear(); + + for (int i = 0; i < updatedReportCols.size(); i++) { + DataColumnType dct = (DataColumnType) updatedReportCols.get(i); + dct.setTableId(dst.getTableId()); + dct.setOrderSeq(i + 1); + dst.getDataColumnList().getDataColumn().add(dct); + } // for + setReportSQL(parsedSQL.toString()); + resetCache(false); + } // parseReportSQL + + private String getNextCYMBALSQLParseToken(String sql, boolean updateParsePos) { + int braketCount = 0; + boolean isInsideQuote = false; + StringBuffer nextToken = new StringBuffer(); + for (int idxNext = curSQLParsePos; idxNext < sql.length(); idxNext++) { + char ch = sql.charAt(idxNext); + + if (ch!='\n') { + nextToken.append(ch); + if (updateParsePos) + curSQLParsePos = idxNext; + } + else { + curSQLParsePos = idxNext+1; + break; + } + } // for + + return nextToken.toString(); + } // getNextSQLParseToken + + public void addChartAdditionalOptions(ObjectFactory objFactory) throws RaptorException { + ChartAdditionalOptions chartOptions = objFactory.createChartAdditionalOptions(); + cr.setChartAdditionalOptions(chartOptions); + } + + public void addChartDrillOptions(ObjectFactory objFactory) throws RaptorException { + ChartDrillOptions chartOptions = objFactory.createChartDrillOptions(); + cr.setChartDrillOptions(chartOptions); +} + + public void addDataminingOptions(ObjectFactory objFactory) throws RaptorException { + DataminingOptions dataminingOptions = objFactory.createDataminingOptions(); + cr.setDataminingOptions(dataminingOptions); + } + /*public void addChartAdditionalOptions(ObjectFactory objFactory, String chartType, String chartMultiplePieOrder, String chartMultiplePieLabelDisplay, + String chartOrientation, String secondaryChartRenderer, String chartDisplay, String legendPosition, + String labelAngle) throws RaptorException { + try { + ChartAdditionalOptions chartOptions = objFactory.createChartAdditionalOptions(); + + if (nvl(chartMultiplePieOrder).length() > 0) + chartOptions.setChartMultiplePieOrder(chartMultiplePieOrder); + if (nvl(chartMultiplePieLabelDisplay).length() > 0) + chartOptions.setChartMultiplePieLabelDisplay(chartMultiplePieLabelDisplay); + if (nvl(chartOrientation).length() > 0) + chartOptions.setChartOrientation(chartOrientation); + if (nvl(secondaryChartRenderer).length() > 0) + chartOptions.setSecondaryChartRenderer(secondaryChartRenderer); + if (nvl(chartDisplay).length() > 0) + chartOptions.setChartDisplay(chartDisplay); + if (nvl(legendPosition).length() > 0) + chartOptions.setLegendPosition(legendPosition); + if (nvl(labelAngle).length() > 0) + chartOptions.setLabelAngle(labelAngle); + + cr.setChartAdditionalOptions(chartOptions); + } catch (JAXBException ex) { + throw new RaptorException(ex.getMessage(), ex.getCause()); + } + } // addChartAdditionalOptions*/ + + +} // ReportDefinition diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportLogEntry.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportLogEntry.java new file mode 100644 index 00000000..3704e38c --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportLogEntry.java @@ -0,0 +1,107 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class ReportLogEntry extends RaptorObject { + private String logTime = null; + + private String userName = null; + + private String action = null; + + private String timeTaken; + + private String runIcon; + + public ReportLogEntry() { + super(); + } + + public ReportLogEntry(String logTime, String userName, String action, String timeTaken, String runIcon) { + this(); + + setLogTime(logTime); + setUserName(userName); + setAction(action); + setTimeTaken(timeTaken); + setRunIcon(runIcon); + } // ReportLogEntry + + public String getLogTime() { + return logTime; + } + + public String getUserName() { + return userName; + } + + public String getAction() { + return action; + } + + public void setLogTime(String logTime) { + this.logTime = logTime; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public void setAction(String action) { + this.action = action; + } + + public String getTimeTaken() { + return timeTaken; + } + + public void setTimeTaken(String timeTaken) { + this.timeTaken = timeTaken; + } + + public String getRunIcon() { + return runIcon; + } + + public void setRunIcon(String runIcon) { + this.runIcon = runIcon; + } + +} // ReportLogEntry diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportMap.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportMap.java new file mode 100644 index 00000000..8a294e99 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportMap.java @@ -0,0 +1,104 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.onap.portalsdk.analytics.RaptorObject; +import org.onap.portalsdk.analytics.view.DataRow; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.view.ReportData; + +public class ReportMap extends RaptorObject { + String markerColor = ""; + String addressColumn = ""; + String dataColumn = ""; + String isMapAllowedYN = ""; + String addAddressInDataYN = ""; + List markers = new ArrayList(); + + public String getIsMapAllowedYN() { + return isMapAllowedYN; + } + public void setIsMapAllowedYN(String isMapAllowedYN) { + this.isMapAllowedYN = isMapAllowedYN; + } + public ReportMap(String markerColor, String addressColumn, String dataColumn, String isMapAllowed, String addAddressInDataYN){ + this.setMarkerColor(markerColor); + this.setAddressColumn(addressColumn); + this.setDataColumn(dataColumn); + this.setIsMapAllowedYN(isMapAllowed); + this.setAddAddressInDataYN(addAddressInDataYN); + } + public String getAddressColumn() { + return addressColumn; + } + public void setAddressColumn(String addressColumn) { + this.addressColumn = addressColumn; + } + public String getDataColumn() { + return dataColumn; + } + public void setDataColumn(String dataColumn) { + this.dataColumn = dataColumn; + } + public String getMarkerColor() { + return markerColor; + } + public void setMarkerColor(String markerColor) { + this.markerColor = markerColor; + } + public List getMarkers() { + return markers; + } + public void setMarkers(List markers) { + this.markers = markers; + } + public String getAddAddressInDataYN() { + return addAddressInDataYN; + } + public void setAddAddressInDataYN(String addAddressInDataYN) { + this.addAddressInDataYN = addAddressInDataYN; + } + + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportSchedule.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportSchedule.java new file mode 100644 index 00000000..23cf79f5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportSchedule.java @@ -0,0 +1,1424 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.Writer; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Vector; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; + +import org.onap.portalsdk.analytics.RaptorObject; +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.RaptorRuntimeException; +import org.onap.portalsdk.analytics.error.ReportSQLException; +import org.onap.portalsdk.analytics.error.UserDefinedException; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.model.base.NameComparator; +import org.onap.portalsdk.analytics.model.runtime.FormField; +import org.onap.portalsdk.analytics.model.runtime.ReportParamValues; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.DbUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; + +public class ReportSchedule extends RaptorObject { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportSchedule.class); + + private String reportID = null; + + private String scheduleUserID = null; + + private String scheduleID = ""; + + private boolean infoUpdated = false; + + private String schedEnabled = "Y"; + + private String startDate = ""; + + private String endDate = ""; + + private String runDate = ""; + + private String runHour = "12"; + + private String runMin = "00"; + + private String runAMPM = "AM"; + + private String endHour = "11"; + + private String endMin = "45"; + + private String endAMPM = "PM"; + + private String recurrence = ""; + + private String conditional = "N"; + + private String conditionSQL = ""; + + private String notify_type = "1"; //1 -- link, 2 -- pdf, 4 -- excel, 3 -- csv + + private String encryptMode = "N"; //1 -- link, 2 -- pdf, 4 -- excel, 3 -- csv + + private String attachment = "Y"; //1 -- link, 2 -- pdf, 4 -- excel, 3 -- csv + + private String downloadLimit = "0"; + + private String formFields = ""; + + private Vector emailToUsers = new Vector(); + + private Vector emailToRoles = new Vector(); + + public ReportSchedule(String reportID, String scheduleUserID, boolean loadData, HttpServletRequest request) { + super(); + + setReportID(reportID); + setScheduleUserID(scheduleUserID); + if(loadData) + loadScheduleData(request); + else + newScheduleData(); + } // ReportSchedule + + public ReportSchedule(String reportID, String scheduleID, String scheduleUserID, HttpServletRequest request) { + super(); + + setReportID(reportID); + setScheduleID(scheduleID); + setScheduleUserID(scheduleUserID); + loadScheduleData(request); + } // ReportSchedule + + void setReportID(String reportID) { + this.reportID = reportID; + } + + public String getSchedEnabled() { + return schedEnabled; + } + + public String getStartDate() { + return startDate; + } + + public String getEndDate() { + return endDate; + } + + public String getRunDate() { + return runDate; + } + + public String getRunHour() { + return runHour; + } + + public String getRunMin() { + return runMin; + } + + public String getRunAMPM() { + return runAMPM; + } + + public String getRecurrence() { + return recurrence; + } + + public String getConditional() { + return conditional; + } + + public String getConditionSQL() { + return conditionSQL; + } + + public List getEmailToUsers() { + return emailToUsers; + } + + public List getEmailToRoles() { + return emailToRoles; + } + + /** + * @return the downloadLimit + */ + public String getDownloadLimit() { + return downloadLimit; + } + + /** + * @param downloadLimit the downloadLimit to set + */ + public void setDownloadLimit(String downloadLimit) { + if(nvl(downloadLimit).equals(this.downloadLimit)) + return; + this.downloadLimit = nvl(downloadLimit,"0"); + infoUpdated = true; + } + + /** + * @return the formFields + */ + public String getFormFields() { + return formFields; + } + + /** + * @param formFields the formFields to set + */ + public void setFormFields(String formFields) { + if(nvl(formFields).equals(this.formFields)) + return; + this.formFields = nvl(formFields); + infoUpdated = true; + } + + public String getNotify_type() { + return notify_type; + } + + /** + * @param notify_type the notify_type to set + * 1 -- link (default), 2 -- pdf, 4 -- excel + */ + public void setNotify_type(String notify_type) { + if(nvl(notify_type).equals(this.notify_type)) + return; + this.notify_type = nvl(notify_type,"1"); + infoUpdated = true; + } + + public void setSchedEnabled(String schedEnabled) { + if (nvl(schedEnabled).equals(this.schedEnabled)) + return; + infoUpdated = true; + this.schedEnabled = nvl(schedEnabled, "N"); + } + + public void setStartDate(String startDate) { + if (nvl(startDate).equals(this.startDate)) + return; + infoUpdated = true; + this.startDate = nvl(startDate); + } + + public void setEndDate(String endDate) { + if (nvl(endDate).equals(this.endDate)) + return; + infoUpdated = true; + this.endDate = nvl(endDate); + } + + public void setRunDate(String runDate) { + if (nvl(runDate).equals(this.runDate)) + return; + infoUpdated = true; + this.runDate = nvl(runDate); + } + + public void setRunHour(String runHour) { + if (nvl(runHour).equals(this.runHour)) + return; + infoUpdated = true; + this.runHour = nvl(runHour, "12"); + } + + public void setRunMin(String runMin) { + if (nvl(runMin).equals(this.runMin)) + return; + infoUpdated = true; + this.runMin = nvl(runMin, "00"); + } + + public void setRunAMPM(String runAMPM) { + if (nvl(runAMPM).equals(this.runAMPM)) + return; + infoUpdated = true; + this.runAMPM = nvl(runAMPM, "AM"); + } + + public void setRecurrence(String recurrence) { + if (nvl(recurrence).equals(this.recurrence)) + return; + infoUpdated = true; + this.recurrence = nvl(recurrence); + } + + public void setConditional(String conditional) { + if (nvl(conditional).equals(this.conditional)) + return; + infoUpdated = true; + this.conditional = nvl(conditional, "N"); + } + + public void setConditionSQL(String conditionSQL) { + if (nvl(conditionSQL).equals(this.conditionSQL)) + return; + infoUpdated = true; + this.conditionSQL = nvl(conditionSQL); + } + + public void addEmailToUser(String userId, String userName) { + if (nvl(userId).length() == 0) + return; + + for (int i = 0; i < emailToUsers.size(); i++) { + IdNameValue selUser = (IdNameValue) emailToUsers.get(i); + if (userId.equals(selUser.getId())) + return; + } // for + + emailToUsers.add(new IdNameValue(userId, userName)); + Collections.sort(emailToUsers, new NameComparator()); + infoUpdated = true; + } // addEmailToUser + + + public void addEmailArrayToUser(ArrayList allSelectedUsers) { + if (allSelectedUsers==null || allSelectedUsers.size()<=0) + return; + emailToUsers.removeAllElements(); + for (int i = 0; i < allSelectedUsers.size(); i++) { + emailToUsers.add(allSelectedUsers.get(i)); + } + Collections.sort(emailToUsers, new NameComparator()); + infoUpdated = true; + } // addEmailArrayToUser + + public void removeEmailToUser(String userId) { + if (nvl(userId).length() == 0) + return; + + for (int i = 0; i < emailToUsers.size(); i++) { + IdNameValue selUser = (IdNameValue) emailToUsers.get(i); + if (userId.equals(selUser.getId())) { + infoUpdated = true; + emailToUsers.remove(i); + return; + } // if + } // for + } // removeEmailToUser + + public void addEmailToRole(String roleId, String roleName) { + if (nvl(roleId).length() == 0) + return; + + for (int i = 0; i < emailToRoles.size(); i++) { + IdNameValue selRole = (IdNameValue) emailToRoles.get(i); + if (roleId.equals(selRole.getId())) + return; + } // for + + emailToRoles.add(new IdNameValue(roleId, roleName)); + Collections.sort(emailToRoles, new NameComparator()); + infoUpdated = true; + } // addEmailToRole + + public void addEmailArrayToRole(ArrayList allSelectedRoles) { + if (allSelectedRoles==null || allSelectedRoles.size()<=0) + return; + emailToRoles.removeAllElements(); + for (int i = 0; i < allSelectedRoles.size(); i++) { + emailToRoles.add(allSelectedRoles.get(i)); + } + Collections.sort(emailToRoles, new NameComparator()); + infoUpdated = true; + } // addEmailArrayToRole + + public void removeEmailToRole(String roleId) { + if (nvl(roleId).length() == 0) + return; + + for (int i = 0; i < emailToRoles.size(); i++) { + IdNameValue selRole = (IdNameValue) emailToRoles.get(i); + if (roleId.equals(selRole.getId())) { + infoUpdated = true; + emailToRoles.remove(i); + return; + } // if + } // for + } // addEmailToRole + + private void loadScheduleData(HttpServletRequest request) { + try { + StringBuffer query = new StringBuffer(""); + //query.append("SELECT rs.enabled_yn, TO_CHAR(rs.start_date, 'MM/DD/YYYY') start_date, TO_CHAR(rs.end_date, 'MM/DD/YYYY') end_date, TO_CHAR(rs.run_date, 'MM/DD/YYYY') run_date, NVL(TO_CHAR(rs.run_date, 'HH'), '12') run_hour, NVL(TO_CHAR(rs.run_date, 'MI'), '00') run_min, NVL(TO_CHAR(rs.run_date, 'AM'), 'AM') run_ampm, rs.recurrence, rs.conditional_yn, rs.notify_type, rs.max_row, rs.initial_formfields, rs.schedule_id, NVL(TO_CHAR(rs.end_date, 'HH'), '11') end_hour, NVL(TO_CHAR(rs.end_date, 'MI'), '45') end_min, NVL(TO_CHAR(rs.end_date, 'AM'), 'PM') end_ampm, encrypt_yn, attachment_yn FROM cr_report_schedule rs WHERE rs.rep_id = " + // + reportID); + String q_sql = Globals.getLoadScheduleData(); + q_sql = q_sql.replace("[reportID]", reportID); + query.append(q_sql); + + if(!AppUtils.isAdminUser(request)) + query.append(" and rs.sched_user_id = " + getScheduleUserID()); + if(nvl(getScheduleID()).length()>0) { + query.append(" and rs.schedule_id = " + getScheduleID()); + } + query.append(" order by rs.run_date desc "); + + DataSet ds = DbUtils + .executeQuery(query.toString()); + + if (ds.getRowCount() > 0) { + schedEnabled = nvl(ds.getString(0, 0), "N"); + startDate = nvl(ds.getString(0, 1)); + endDate = nvl(ds.getString(0, 2)); + runDate = nvl(ds.getString(0, 3)); + runHour = nvl(ds.getString(0, 4), "12"); + runMin = nvl(ds.getString(0, 5), "00"); + runAMPM = nvl(ds.getString(0, 6), "AM"); + recurrence = nvl(ds.getString(0, 7)); + conditional = nvl(ds.getString(0, 8), "N"); + //conditionSQL = nvl(ds.getString(0, 9)); + notify_type = nvl(ds.getString(0, 9), "1"); + downloadLimit = nvl(ds.getString(0, 10), "1000"); + //if(nvl(ds.getString(0, 13).) + formFields = nvl(ds.getString(0, 11)); + setScheduleID(ds.getString(0, 12)); + endHour = nvl(ds.getString(0, 13), "11"); + endMin = nvl(ds.getString(0, 14), "45"); + endAMPM = nvl(ds.getString(0, 15), "PM"); + encryptMode = nvl(ds.getString(0, "encrypt_yn"), "N"); + attachment = nvl(ds.getString(0, "attachment_yn"), "Y"); + conditionSQL = loadConditionalSQL(getScheduleID()); + } else { // if + //DataSet dsSeq = DbUtils.executeQuery("select SEQ_CR_REPORT_SCHEDULE.nextval from dual" ); + String n_sql = Globals.getNewScheduleData(); + DataSet dsSeq = DbUtils.executeQuery(n_sql); + String schedule_id = dsSeq.getString(0,0); + setScheduleID(schedule_id); + } + if(getScheduleID().length() > 0) { + //ds = DbUtils + // .executeQuery("SELECT rsu.user_id, fuser.last_name||', '||fuser.first_name, fuser.login_id FROM cr_report_schedule_users rsu, fn_user fuser WHERE rsu.rep_id = " + // + reportID + " AND rsu.schedule_id = " + getScheduleID() + " and rsu.user_id IS NOT NULL and rsu.user_id = fuser.user_id"); + + String t_sql = Globals.getLoadScheduleGetId(); + t_sql = t_sql.replace("[reportID]", reportID); + t_sql = t_sql.replace("[getScheduleID()]", getScheduleID()); + + ds = DbUtils.executeQuery(t_sql); + + for (int i = 0; i < ds.getRowCount(); i++){ + String nameToDisplay = ds.getString(i, 1); + if (Globals.getUseLoginIdInSchedYN()!= null && Globals.getUseLoginIdInSchedYN().equals("Y")) { + nameToDisplay = ds.getString(i, 2); + } + if(nameToDisplay!=null && nameToDisplay.length() > 0) + emailToUsers.add(new IdNameValue(ds.getString(i, 0), nameToDisplay)); + else + emailToUsers.add(new IdNameValue(ds.getString(i, 0), ds.getString(i, 1))); + } + Collections.sort(emailToUsers, new NameComparator()); + + //ds = DbUtils + // .executeQuery("SELECT rsu.role_id FROM cr_report_schedule_users rsu WHERE rsu.rep_id = " + // + reportID + " AND rsu.schedule_id = " + getScheduleID() + " AND rsu.role_id IS NOT NULL"); + + String r_sql = Globals.getLoadScheduleUsers(); + r_sql = r_sql.replace("[reportID]", reportID); + r_sql = r_sql.replace("[getScheduleID()]", getScheduleID()); + + ds = DbUtils.executeQuery(r_sql); + + for (int i = 0; i < ds.getRowCount(); i++) + emailToRoles.add(new IdNameValue(ds.getString(i, 0), AppUtils.getRoleName(ds + .getString(i, 0)))); + Collections.sort(emailToRoles, new NameComparator()); + + infoUpdated = false; + } + } catch (Exception e) { + throw new RuntimeException( + "[ReportSchedule.loadScheduleData] Unable to load Report " + reportID + + " schedule. Error: " + e.getMessage()); + } + } // loadScheduleData + + private void newScheduleData() { + try { + //DataSet dsSeq = DbUtils.executeQuery("select SEQ_CR_REPORT_SCHEDULE.nextval from dual" ); + String sql = Globals.getNewScheduleData(); + DataSet dsSeq = DbUtils.executeQuery(sql); + + String schedule_id = dsSeq.getString(0,0); + setScheduleID(schedule_id); + } catch (Exception e) { + throw new RuntimeException( + "[ReportSchedule.newScheduleData] Unable to load Report " + reportID + + " schedule. Error: " + e.getMessage()); + } + } // newScheduleData + + private String parseScheduleSQL(HttpServletRequest request, String sql) throws RaptorException { + DataSet ds = null; + + logger.debug(EELFLoggerDelegate.debugLogger, (sql)); + String[] reqParameters = Globals.getRequestParams().split(","); + String[] sessionParameters = Globals.getSessionParams().split(","); + String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(","); + javax.servlet.http.HttpSession session = request.getSession(); + ReportRuntime rr = (ReportRuntime) session.getAttribute(AppConstants.SI_REPORT_RUNTIME); + String userId = AppUtils.getUserID(request); + String dbType = ""; + String dbInfo = rr.getDBInfo(); + ReportParamValues paramValues = rr.getReportParamValues(); + int fieldCount = 0; + // For Daytona removing all formfields which has null param value + Pattern re1 = null; + Matcher matcher = null; + int index = 0; + int posFormField = 0; + int posAnd = 0; + if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { + try { + org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo(); + dbType = remDbInfo.getDBType(dbInfo); + } catch (Exception ex) { + throw new RaptorException(ex); + } + } + + sql = sql + " "; + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" SELECT "); + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" WHERE "); + sql = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" AND "); + + if (rr.getFormFieldList() != null) { + for (Iterator iter = rr.getFormFieldList().getFormField().iterator(); iter.hasNext();) { + + FormFieldType fft = (FormFieldType) iter.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = rr.getFormFieldDisplayName(fft); + if(!fft.getFieldType().equals(FormField.FFT_BLANK)) { + if (paramValues.isParameterMultiValue(fieldId)) { + String replaceValue = rr.formatListValue(fieldDisplay, nvl(paramValues.getParamValue(fieldId)), null, false, + true, null, paramValues.getParamBaseSQL(fieldId)); + if(replaceValue.length() > 0) { + sql = Utils.replaceInString(sql, fieldDisplay, replaceValue); + } else { + fieldCount++; + if(fieldCount == 1) { + //sql = sql + " "; + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" SELECT "); + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" WHERE "); + //sql = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" AND "); + } + //sql = getReportSQL(); + while(sql.indexOf(fieldDisplay) > 0) { +/* sql = Utils.replaceInString(sql, "SELECT ", "select "); + sql = Utils.replaceInString(sql, "WHERE", "where"); + sql = Utils.replaceInString(sql, " AND ", " and "); +*/ + re1 = Pattern.compile("(^[\r\n]|[\\s])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + //re1 = Pattern.compile("(^[\r\n]|[\\s])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\]", Pattern.DOTALL); +/* posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf("and", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); +*/ + posFormField = sql.indexOf(fieldDisplay); + int posSelectField = sql.lastIndexOf("SELECT ", posFormField); + int whereField = sql.indexOf(" WHERE" , posSelectField); + int andField = 0; + if(posFormField > whereField) + andField = sql.lastIndexOf(" AND ", posFormField); + if (posFormField > andField && andField > whereField) + posAnd = andField; + else + posAnd = 0; + matcher = re1.matcher(sql); + + + if (posAnd > 0 && matcher.find(posAnd-1)) { + //sql = Utils.replaceInString(sql, matcher.group(), " "); + matcher = re1.matcher(sql); + index = sql!=null?sql.lastIndexOf("["+fft.getFieldName()+"]"):-1; + + if(andField>0) + index = andField; + else + index = whereField; + if(index >= 0 && matcher.find(index-1)) { + sql = sql.replace(matcher.group(), " "); + } + } else { + + //sql = sql.replace + re1 = Pattern.compile("(^[\r\n]|[\\s])WHERE(.*?[^\r\n]*)\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + matcher = re1.matcher(sql); + if(matcher.find(whereField-1)) { + matcher = re1.matcher(sql); + index = sql!=null?sql.lastIndexOf("["+fft.getFieldName()+"]"):-1; + if(index >= 0 && matcher.find(index-30)) { + sql = sql.replace(matcher.group(), " WHERE 1=1 "); + } + //sql = Utils.replaceInString(sql, matcher.group(), " where 1=1 "); + } /*else { + replaceValue = formatListValue("", Utils + .oracleSafe(nvl(paramValues.getParamValue(fieldId))), null, false, + true, null, paramValues.getParamBaseSQL(fieldId)); + sql = Utils.replaceInString(sql, fieldDisplay, replaceValue); + }*/ + + } + } + } + + //sql = Utils.replaceInString(sql, " select ", " SELECT "); + //sql = Utils.replaceInString(sql, " where ", " WHERE "); + //sql = Utils.replaceInString(sql, " and ", " AND "); + + } else { + String paramValue = ""; + if(paramValues.isParameterTextAreaValueAndModified(fieldId)) { + String value = ""; + value = nvl(paramValues + .getParamValue(fieldId)); +// value = Utils.oracleSafe(nvl(value)); +// if (!(dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT"))) { +// value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; +// value = Utils.replaceInString(value, "|", ","); +// paramValue = XSSFilter.filterRequestOnlyScript(value); +// } else if (nvl(value.trim()).length()>0) { +// value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; +// value = Utils.replaceInString(value, "|", ","); +// paramValue = XSSFilter.filterRequestOnlyScript(value); +// } + paramValue = value; + } else + paramValue = nvl(paramValues + .getParamValue(fieldId)); + + if (paramValue!=null && paramValue.length() > 0) { + if(paramValue.toLowerCase().trim().startsWith("select ")) { + paramValue = Utils.replaceInString(paramValue, "[LOGGED_USERID]", userId); + paramValue = Utils.replaceInString(paramValue, "[USERID]", userId); + paramValue = Utils.replaceInString(paramValue, "[USER_ID]", userId); + + paramValue = Utils.replaceInString(paramValue, "''", "'"); + ds = ConnectionUtils.getDataSet(paramValue, dbInfo); + if (ds.getRowCount() > 0) paramValue = ds.getString(0, 0); + } + logger.debug(EELFLoggerDelegate.debugLogger, ("SQLSQLBASED B4^^^^^^^^^ " + sql + " " + fft.getValidationType() + " " + fft.getFieldName() + " " + fft.getFieldId())); + if(fft!=null && (fft.getValidationType()!=null && (fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) ||fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ||fft.getValidationType().equals(FormField.VT_DATE) ))) { + //System.out.println("paramValues.getParamValue(fieldId_Hr) Inside if " + fft.getValidationType() + " " + fieldDisplay); + if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) +((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ):"")); + } + else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { +/* System.out.println("paramValues.getParamValue(fieldId_Hr)" + paramValues + .getParamValue(fieldId+"_Hr") + " " + paramValues + .getParamValue(fieldId+"_Min")) ; +*/ sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) + ((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ):"") + ((nvl(paramValues + .getParamValue(fieldId+"_Min") ).length()>0)?":" + addZero(nvl(paramValues + .getParamValue(fieldId+"_Min") ) ) : "") ) ; + } + else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue) + ((nvl(paramValues + .getParamValue(fieldId+"_Hr") ).length()>0)?" "+addZero(nvl(paramValues + .getParamValue(fieldId+"_Hr") ) ):"") + ((nvl(paramValues + .getParamValue(fieldId+"_Min") ).length()>0)?":" + addZero(nvl(paramValues + .getParamValue(fieldId+"_Min") ) ) : "") + ((nvl(paramValues + .getParamValue(fieldId+"_Sec") ).length()>0)?":"+addZero(nvl(paramValues + .getParamValue(fieldId+"_Sec") ) ) : "" ) ) ; + } else { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } + + + } else { + if(paramValue!=null && paramValue.length() > 0) { + if(sql.indexOf("'"+fieldDisplay+"'")!=-1 || sql.indexOf("'"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"'")!=-1 + || sql.indexOf("'%"+fieldDisplay+"%'")!=-1 || sql.indexOf("'%"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"%'")!=-1 + || sql.indexOf("'_"+fieldDisplay+"_'")!=-1 || sql.indexOf("'_"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"_'")!=-1 + || sql.indexOf("'%_"+fieldDisplay+"_%'")!=-1 || sql.indexOf("^"+fieldDisplay+"^")!=-1 || sql.indexOf("'%_"+fieldDisplay)!=-1 || sql.indexOf(fieldDisplay+"_%'")!=-1) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } else { + if(sql.indexOf(fieldDisplay)!=-1) { + if(nvl(paramValue).length()>0) { + try { + double vD = Double.parseDouble(paramValue); + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + + } catch (NumberFormatException ex) { + if (/*dbType.equals("DAYTONA") &&*/ sql.trim().toUpperCase().startsWith("SELECT")) { + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } else + throw new UserDefinedException("Expected number, Given String for the form field \"" + fieldDisplay+"\""); + } + /*sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL"));*/ + } else + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + + } + } + } + else { + if (dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT")) { + sql = sql + " "; + re1 = Pattern.compile("(^[\r\n]|[\\s]|[^0-9a-zA-Z])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); + posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf(" AND ", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); + if (matcher.find(posAnd)) { + sql = sql.replace(matcher.group(), ""); + } + } else { + sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + sql = Utils.replaceInString(sql, fieldDisplay, nvl( + paramValue, "NULL")); + } + } + } + + } + + if (dbType.equals("DAYTONA") && sql.trim().toUpperCase().startsWith("SELECT")) { + sql = sql + " "; + re1 = Pattern.compile("(^[\r\n]|[\\s]|[^0-9a-zA-Z])AND(.*?[^\r\n]*)"+ "\\["+fft.getFieldName()+ "\\](.*?)\\s", Pattern.DOTALL); //+[\'\\)|\'|\\s] + posFormField = sql.indexOf(fieldDisplay); + posAnd = sql.lastIndexOf(" AND ", posFormField); + if(posAnd < 0) posAnd = 0; + else if (posAnd > 2) posAnd = posAnd - 2; + matcher = re1.matcher(sql); + if (matcher.find(posAnd)) { + sql = sql.replace(matcher.group(), " "); + } + } else { + + logger.debug(EELFLoggerDelegate.debugLogger, ("ParamValue |" + paramValue + "| Sql |" + sql + "| Multi Value |" + paramValues.isParameterMultiValue(fieldId))); + sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + sql = Utils.replaceInString(sql, fieldDisplay , nvl( + paramValue, "NULL")); + logger.debug(EELFLoggerDelegate.debugLogger, ("SQLSQLBASED AFTER^^^^^^^^^ " + sql)); + } + + } // else + } // if BLANK + } // for + if(request != null ) { + for (int i = 0; i < reqParameters.length; i++) { + if(!reqParameters[i].startsWith("ff")) { + if (nvl(request.getParameter(reqParameters[i].toUpperCase())).length() > 0) + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); + } + else + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); + } + + for (int i = 0; i < scheduleSessionParameters.length; i++) { + if(nvl(request.getParameter(scheduleSessionParameters[i])).trim().length()>0 ) + sql = Utils.replaceInString(sql, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); + } + } + if(session != null ) { + for (int i = 0; i < sessionParameters.length; i++) { + //if(!sessionParameters[i].startsWith("ff")) + // paramValue = Utils.replaceInString(paramValue, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); + // else { + logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i]))); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + //} + } + } + } else { + logger.debug(EELFLoggerDelegate.debugLogger, ("BEFORE LOGGED USERID REPLACE " + sql)); + //sql = Utils.replaceInString(sql, "'[logged_userId]'", "'"+userId+"'"); + //debugLogger.debug("Replacing string 2 " + sql); + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + sql = Utils.replaceInString(sql, "[USERID]", userId); + sql = Utils.replaceInString(sql, "[USER_ID]", userId); + logger.debug(EELFLoggerDelegate.debugLogger, ("AFTER LOGGED USERID REPLACE " + sql)); + // Added for Simon's GM Project where they need to get page_id in their query + logger.debug(EELFLoggerDelegate.debugLogger, ("SQLSQLBASED no formfields " + sql)); + if(request != null ) { + for (int i = 0; i < reqParameters.length; i++) { + sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); + } + } + if(session != null ) { + for (int i = 0; i < sessionParameters.length; i++) { + logger.debug(EELFLoggerDelegate.debugLogger, (" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i]))); + sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); + } + } + } + // if it is not multiple select and ParamValue is empty this is the place it can be replaced. + sql = Utils.replaceInString(sql, "[LOGGED_USERID]", userId); + sql = Utils.replaceInString(sql, "[USERID]", userId); + sql = Utils.replaceInString(sql, "[USER_ID]", userId); + logger.debug(EELFLoggerDelegate.debugLogger, ("SQLSQLBASED no formfields after" + sql)); + //debugLogger.debug("Replacing String 2 "+ sql); + //debugLogger.debug("Replaced String " + sql); + + sql = Pattern.compile("([\n][\\s]*)",Pattern.DOTALL).matcher(sql).replaceAll(" "); + return sql; + + } + public void persistScheduleData(Connection conn, HttpServletRequest request) throws RaptorException { + if (!infoUpdated) + return; + if (reportID.equals("-1")) + return; + + + try { + String sched_id = ""; + StringBuffer query = new StringBuffer(""); + query.append(" SELECT 1 FROM cr_report_schedule WHERE rep_id = " + reportID + " and schedule_id = " + getScheduleID()); + if(!AppUtils.isAdminUser(request)) + query.append(" and sched_user_id = " + getScheduleUserID()); + DataSet ds = DbUtils.executeQuery(conn, query.toString()); + if (ds.getRowCount() > 0) { + StringBuffer sb = new StringBuffer(); + sb.append("UPDATE cr_report_schedule SET enabled_yn = '"); + sb.append(getSchedEnabled()); + sb.append("', start_date = "); + if (getStartDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getStartDate()); + sb.append("', 'MM/DD/YYYY')"); + } else + sb.append("NULL"); + sb.append(", end_date = "); + if (getEndDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getEndDate()); + sb.append(" "); + sb.append(getEndHour()); + sb.append(":"); + sb.append(getEndMin()); + sb.append(" "); + sb.append(getEndAMPM()); + sb.append("', 'MM/DD/YYYY HH:MI AM')"); + } else + sb.append("NULL"); + sb.append(", run_date = "); + if (getRunDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getRunDate()); + sb.append(" "); + sb.append(getRunHour()); + sb.append(":"); + sb.append(getRunMin()); + sb.append(" "); + sb.append(getRunAMPM()); + sb.append("', 'MM/DD/YYYY HH:MI AM')"); + } else + sb.append("NULL"); + sb.append(", recurrence = "); + if (getRecurrence().length() > 0) { + sb.append("'"); + sb.append(getRecurrence()); + sb.append("'"); + } else + sb.append("NULL"); + sb.append(", conditional_yn = '"); + sb.append(getConditional()); + //sb.append("', condition_sql = "); + sb.append("'"); +/* if (getConditionSQL().length() > 0) { + sb.append("'"); + sb.append(parseScheduleSQL(request, Utils.oracleSafe(getConditionSQL()))); + sb.append("'"); + } else + sb.append("NULL"); +*/ + sb.append(", notify_type = "); + sb.append(getNotify_type()); + sb.append(", encrypt_yn = '"); + sb.append(getEncryptMode()+"'"); + sb.append(", attachment_yn = '"); + sb.append(getAttachmentMode()+"'"); + sb.append(", max_row = "); + sb.append(getDownloadLimit()); + sb.append(", initial_formFields = '"); + sb.append(getFormFields()+"'"); + sb.append(", processed_formfields = ''"); + sb.append(" WHERE rep_id = "); + sb.append(reportID + " and sched_user_id = "); + sb.append(getScheduleUserID()); + sb.append(" and schedule_id = "); + sb.append(getScheduleID()); + + DbUtils.executeUpdate(conn, sb.toString()); + } else { + //DataSet dsSeq = DbUtils.executeQuery("select seq_cr_report_schedule.nextval from dual " ); + String w_sql = Globals.getNewScheduleData(); + DataSet dsSeq = DbUtils.executeQuery(w_sql); + String schedule_id = dsSeq.getString(0,0); + setScheduleID(schedule_id); + StringBuffer sb = new StringBuffer(); + sb.append("INSERT INTO cr_report_schedule (schedule_id, sched_user_id, rep_id, enabled_yn, start_date, end_date, run_date, recurrence, conditional_yn, notify_type, max_row, initial_formfields, encrypt_yn, attachment_yn) VALUES("); + sb.append(getScheduleID() + ", "); + sb.append(getScheduleUserID() + ", "); + sb.append(reportID); + sb.append(", '"); + sb.append(getSchedEnabled()); + sb.append("', "); + if (getStartDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getStartDate()); + sb.append("', 'MM/DD/YYYY')"); + } else + sb.append("NULL"); + sb.append(", "); + if (getEndDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getEndDate()); + sb.append(" "); + sb.append(getEndHour()); + sb.append(":"); + sb.append(getEndMin()); + sb.append(" "); + sb.append(getEndAMPM()); + sb.append("', 'MM/DD/YYYY HH:MI AM')"); + } else + sb.append("NULL"); + sb.append(", "); + if (getRunDate().length() > 0) { + sb.append("TO_DATE('"); + sb.append(getRunDate()); + sb.append(" "); + sb.append(getRunHour()); + sb.append(":"); + sb.append(getRunMin()); + sb.append(" "); + sb.append(getRunAMPM()); + sb.append("', 'MM/DD/YYYY HH:MI AM')"); + } else + sb.append("NULL"); + sb.append(", "); + if (getRecurrence().length() > 0) { + sb.append("'"); + sb.append(getRecurrence()); + sb.append("'"); + } else + sb.append("NULL"); + sb.append(", '"); + sb.append(getConditional()); + sb.append("', "); +/* if (getConditionSQL().length() > 0) { + sb.append("'"); + sb.append(parseScheduleSQL(request, Utils.oracleSafe(getConditionSQL()))); + sb.append("'"); + } else + sb.append("NULL"); + sb.append(", "); +*/ + sb.append(getNotify_type()); + sb.append(", "); + sb.append(getDownloadLimit()); + sb.append(", '"); + sb.append(getFormFields()+"'"); + sb.append(",'"); + sb.append(getEncryptMode()+"'"); + sb.append(",'"); + sb.append(getAttachmentMode()+"'"); + sb.append(")"); + DbUtils.executeUpdate(conn, sb.toString()); + + } // else + + + //DbUtils.executeUpdate(conn, + // "DELETE cr_report_schedule_users WHERE rep_id = " + reportID+ " and schedule_id = " + getScheduleID()); + + String d_sql = Globals.getExecuteUpdate(); + d_sql = d_sql.replace("[reportID]", reportID); + d_sql = d_sql.replace("[getScheduleID()]", getScheduleID()); + + DbUtils.executeUpdate(conn, d_sql); + + for (int i = 0; i < emailToUsers.size(); i++){ + //DbUtils.executeUpdate(conn, + // "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES(" + // + getScheduleID() + ", " + // + reportID + ", " + // + ((IdNameValue) emailToUsers.get(i)).getId() + ", NULL, " + // + (i + 1) + ")"); + + String sql = Globals.getExecuteUpdateUsers(); + sql = sql.replace("[getScheduleID()]", getScheduleID()); + sql = sql.replace("[reportID]", reportID); + sql = sql.replace("[emailToUsers.get(i)).getId()]", ((IdNameValue) emailToUsers.get(i)).getId()); + sql = sql.replace("[(i + 1)]", String.valueOf(i + 1)); + DbUtils.executeUpdate(conn, sql); + + } + for (int i = 0; i < emailToRoles.size(); i++){ + //DbUtils.executeUpdate(conn, + // "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES(" + // + getScheduleID() +", " + // + reportID + ", NULL, " + // + ((IdNameValue) emailToRoles.get(i)).getId() + ", " + // + (emailToUsers.size() + i + 1) + ")"); + + String sql = Globals.getExecuteUpdateRoles(); + sql = sql.replace("[getScheduleID()]", getScheduleID()); + sql = sql.replace("[reportID]", reportID); + sql = sql.replace("[emailToRoles.get(i)).getId()]", ((IdNameValue) emailToRoles.get(i)).getId()); + sql = sql.replace("[((emailToUsers.size() + i + 1)]", String.valueOf(emailToUsers.size() + i + 1)); + + DbUtils.executeUpdate(conn, sql); + } + //if (conn == null) + DbUtils.commitTransaction(conn); + + persistConditionSql(conn, getScheduleID(), parseScheduleSQL(request, getConditionSQL())); + + + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB update report " + reportID + " - schedule data updated")); + //DbUtils.executeUpdate(conn, + // "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ("+getScheduleID()+",'Submitted:Schedule',TO_DATE('"+ getRunDate()+" "+ getRunHour()+":"+getRunMin()+" "+getRunAMPM()+"', 'MM/DD/YYYY HH:MI AM'))"); + String e_sql = Globals.getExecuteUpdateActivity(); + e_sql = e_sql.replace("[getScheduleID()]", getScheduleID()); + e_sql = e_sql.replace("[getRunDate()]", getRunDate()); + e_sql = e_sql.replace("[getRunHour()]", getRunHour()); + e_sql = e_sql.replace("[getRunMin()]", getRunMin()); + e_sql = e_sql.replace("[getRunAMPM()]", getRunAMPM()); + + DbUtils.executeUpdate(conn, e_sql); + + infoUpdated = false; + + } catch (RaptorException e) { + if (conn != null) + DbUtils.rollbackTransaction(conn); + throw e; + } // catch + + } // persistScheduleData + + //deleting the schedule - Start + public void deleteScheduleData(Connection conn) throws RaptorException { + if (reportID.equals("-1")) + return; + + Connection connection = (conn != null) ? conn : DbUtils.startTransaction(); + String sched_id = ""; + try { + //DataSet ds = DbUtils.executeQuery(connection, + // "SELECT 1 FROM cr_report_schedule WHERE rep_id = " + reportID +" and sched_user_id = " + getScheduleUserID() + " and schedule_id = " + getScheduleID()); + String a_sql = Globals.getDeleteScheduleData(); + a_sql = a_sql.replace("[reportID]", reportID); + a_sql = a_sql.replace("[getScheduleUserID()]", getScheduleUserID()); + a_sql = a_sql.replace("[getScheduleID()]", getScheduleID()); + DataSet ds = DbUtils.executeQuery(connection, a_sql); + + if (ds.getRowCount() > 0) { + //DbUtils.executeUpdate(connection, + // "DELETE cr_report_schedule_users WHERE rep_id = " + reportID+ " and schedule_id = " + getScheduleID()); + String b_sql = Globals.getDeleteScheduleDataUsers(); + b_sql = b_sql.replace("[reportID]", reportID); + b_sql = b_sql.replace("[getScheduleID()]", getScheduleID()); + + DbUtils.executeUpdate(connection, b_sql); + + StringBuffer sb = new StringBuffer(); + String c_sql = Globals.getDeleteScheduleDataId(); + c_sql = c_sql.replace("[reportID]", reportID); + c_sql = c_sql.replace("[getScheduleUserID()]", getScheduleUserID()); + c_sql = c_sql.replace("[getScheduleID()]", getScheduleID()); + + sb.append(c_sql); + //sb.append("DELETE FROM cr_report_schedule where rep_id = " + reportID +" and sched_user_id = " + getScheduleUserID() + " and schedule_id = " + getScheduleID()); + + DbUtils.executeUpdate(connection, sb.toString()); + } + if (conn == null) + DbUtils.commitTransaction(connection); + + logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB update report " + reportID + " - schedule data deleted")); + } catch (RaptorException e) { + if (conn == null) + DbUtils.rollbackTransaction(connection); + throw e; + } // catch + finally { + if (conn == null) + DbUtils.clearConnection(connection); + } + } //deleteScheduleData + + public String getScheduleUserID() { + return scheduleUserID; + } + + public void setScheduleUserID(String scheduleUserID) { + this.scheduleUserID = scheduleUserID; + } + + public String getScheduleID() { + return nvl(scheduleID); + } + + public void setScheduleID(String scheduleID) { + this.scheduleID = scheduleID; + } + + public String getEndAMPM() { + return endAMPM; + } + + public void setEndAMPM(String endAMPM) { + if (nvl(endAMPM).equals(this.endAMPM)) + return; + infoUpdated = true; + this.endAMPM = nvl(endAMPM, "PM"); + } + + public String getEndHour() { + return endHour; + } + + public void setEndHour(String endHour) { + if (nvl(endHour).equals(this.endHour)) + return; + infoUpdated = true; + this.endHour = nvl(endHour, "11"); + } + + public String getEndMin() { + return endMin; + } + + public void setEndMin(String endMin) { + if (nvl(endMin).equals(this.endMin)) + return; + infoUpdated = true; + this.endMin = nvl(endMin, "45"); + } + + public static boolean isNull(String a) { + if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) + return true; + else + return false; + } + + public String addZero(String num) { + int numInt = 0; + try { + numInt = Integer.parseInt(num); + }catch(NumberFormatException ex){ + numInt = 0; + } + if(numInt < 10) return "0"+numInt; + else return ""+numInt; + } + + public static String loadConditionalSQL(String scheduleId) + throws RaptorException { + StringBuffer sb = new StringBuffer(); + + PreparedStatement stmt = null; + + ResultSet rs = null; + String condition_sql = ""; + Connection connection = null; + + try { + connection = DbUtils.getConnection(); + + //String sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?"; + String sql = Globals.getLoadCondSql(); + stmt = connection.prepareStatement(sql); + stmt.setString(1,scheduleId); + rs = stmt.executeQuery(); + if(Globals.isWeblogicServer()) { + java.sql.Clob clob= null; + Object obj = null; + if (rs.next()) { + clob = rs.getClob(1); + } + else + throw new RuntimeException("Schedule ID " + scheduleId + " not found in the database"); + + int len = 0; + char[] buffer = new char[512]; + Reader in = null; + in = new InputStreamReader(clob.getAsciiStream()); + // if(obj instanceof oracle.sql.CLOB) { + // in = ((oracle.sql.CLOB) obj).getCharacterStream(); + // } else if (obj instanceof weblogic.jdbc.wrapper.Clob) { + // in = ((weblogic.jdbc.base.BaseClob) obj).getCharacterStream(); + // } + while ((len = in.read(buffer)) != -1) + sb.append(buffer, 0, len); + in.close(); + } else if (Globals.isPostgreSQL() || Globals.isMySQL()) { + String clob= null; + Object obj = null; + if (rs.next()) { + sb.append(rs.getString(1)); + } + else + throw new RaptorException("Schedule ID " + scheduleId + " not found in the database"); + } else { + /*oracle.sql.CLOB clob = null; + if (rs.next()) + clob = (oracle.sql.CLOB) rs.getObject(1); + else + throw new RuntimeException("Schedule ID " + scheduleId + " not found in the database"); + int len = 0; + char[] buffer = new char[512]; + Reader in = null; + if(clob!=null) { + in = clob.getCharacterStream(); + while ((len = in.read(buffer)) != -1) + sb.append(buffer, 0, len); + in.close(); + }*/ + throw new RaptorException("only maria db support for this "); + + } + } catch (SQLException ex) { + try { + StringBuffer query = new StringBuffer(""); + + query.append(" SELECT condition_sql FROM cr_report_schedule WHERE schedule_id = " + scheduleId); + DataSet ds = DbUtils.executeQuery(query.toString()); + if(ds.getRowCount()>0) { + condition_sql = ds.getString(0,0); + } + return condition_sql; + //throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } catch (RaptorException e) { + DbUtils.rollbackTransaction(connection); + throw e; + } // catch + + finally { + DbUtils.clearConnection(connection); + } + + } catch (IOException ex) { + throw new RaptorRuntimeException (ex.getMessage(), ex.getCause()); + } finally { + try { + if (connection != null) + DbUtils.clearConnection(connection); + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + return sb.toString(); + } // loadConditionalSQL + + private static void persistConditionSql(Connection connection, String scheduleId, String conditional_sql) throws RaptorException { + PreparedStatement stmt = null; + ResultSet rs = null; + + try { + //String sql = "update cr_report_schedule set condition_large_sql = EMPTY_CLOB() where schedule_id = " + scheduleId; + String sql = Globals.getPersistCondSqlUpdate(); + sql = sql.replace("[scheduleId]", scheduleId); + + DbUtils.executeUpdate(sql); + //sql = "SELECT condition_large_sql FROM cr_report_schedule cr WHERE schedule_id=? FOR UPDATE"; + sql = Globals.getPersistCondSqlLarge(); + stmt = connection.prepareStatement(sql); + stmt.setString(1,scheduleId); + rs = stmt.executeQuery(); + Writer out = null; + /*if(Globals.isWeblogicServer()) { + java.sql.Clob clob = null; + if (rs.next()) + clob = rs.getClob(1); + else + throw new RuntimeException("Schedule ID " + scheduleId + " not found in the database"); + + if (clob.length() > conditional_sql.length()) + clob.truncate(0); + //clob.trim(reportXML.length()); + out = ((weblogic.jdbc.vendor.oracle.OracleThinClob)clob).getCharacterOutputStream(); + } else*/ + if (Globals.isPostgreSQL() || Globals.isMySQL()) { + if (rs.next()) { + rs.updateString(1,conditional_sql); + rs.updateRow(); + //sb.append(rs.getString(1)); + } + else + throw new RaptorException("Schedule ID " + scheduleId + " not found in the database"); + } else {/* + oracle.sql.CLOB clob = null; + if (rs.next()) + clob = (oracle.sql.CLOB) rs.getObject(1); + else + throw new RuntimeException("Schedule ID " + scheduleId + " not found in the database"); + + if (clob.length() > conditional_sql.length()) + clob.trim(conditional_sql.length()); + out = clob.getCharacterOutputStream();*/ + throw new RaptorException("only maria db support for this "); + + } + out.write(conditional_sql); + out.flush(); + out.close(); + } catch (RaptorException ex) { + if(ex.getMessage().indexOf("invalid identifier")!= -1) { + try { + //String sql = "update cr_report_schedule set condition_sql = ? where schedule_id = " + scheduleId; + String sql = Globals.getPersistCondSqlSet(); + sql = sql.replace("[scheduleId]", scheduleId); + stmt = connection.prepareStatement(sql); + stmt.setString(1,conditional_sql); + stmt.executeUpdate(); + connection.commit(); + } catch (SQLException ex1) { + try { + connection.rollback(); + } catch (SQLException ex2) {} + + } + } else { + try { + connection.rollback(); + } catch (SQLException ex2) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + } + } catch (SQLException ex) { + try { + connection.rollback(); + } catch (SQLException ex2) { + throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); + } + } catch (IOException ex) { + throw new RaptorRuntimeException (ex.getMessage(), ex.getCause()); + } finally { + try { + if(rs!=null) + rs.close(); + if(stmt!=null) + stmt.close(); + } catch (SQLException ex) { + throw new ReportSQLException (ex.getMessage(), ex.getCause()); + } + } + } // persistConditionSql + + /** + * Used to get encryption mode + * @return the encryptMode + */ + public String getEncryptMode() { + return encryptMode; + } + + /** + * Used to set encryption mode + * @param encryptMode the encryptMode to set + */ + public void setEncryptMode(String encryptMode) { + this.encryptMode = encryptMode; + infoUpdated = true; + } + + + /** + * Used to get Attachment mode + * @return the attachment + */ + public String getAttachmentMode() { + return attachment; + } + + public boolean isAttachmentMode() { + return nvl(attachment).toUpperCase().startsWith("Y"); + } + + /** + * Used to set Attachment mode + * @param attachment to set + */ + public void setAttachmentMode(String attachment) { + this.attachment = attachment; + infoUpdated = true; + } +} // ReportSchedule diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/SecurityEntry.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/SecurityEntry.java new file mode 100644 index 00000000..bd4d1549 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/SecurityEntry.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.model.base.*; + +public class SecurityEntry extends IdNameValue { + private boolean readOnly = true; + + public SecurityEntry() { + super(); + } + + public SecurityEntry(String id, String name, boolean readOnly) { + super(id, name); + setReadOnly(readOnly); + } // SecurityEntry + + public boolean isReadOnly() { + return readOnly; + } + + public void setReadOnly(boolean readOnly) { + this.readOnly = readOnly; + } + +} // SecurityEntry diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableJoin.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableJoin.java new file mode 100644 index 00000000..6032d5a1 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableJoin.java @@ -0,0 +1,85 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class TableJoin extends RaptorObject { + private String srcTableName = null; + + private String destTableName = null; + + private String joinExpr = null; + + public TableJoin() { + super(); + } + + public TableJoin(String srcTableName, String destTableName, String joinExpr) { + this(); + + setSrcTableName(srcTableName); + setDestTableName(destTableName); + setJoinExpr(joinExpr); + } // TableJoin + + public String getSrcTableName() { + return srcTableName; + } + + public String getDestTableName() { + return destTableName; + } + + public String getJoinExpr() { + return joinExpr; + } + + public void setSrcTableName(String srcTableName) { + this.srcTableName = srcTableName; + } + + public void setDestTableName(String destTableName) { + this.destTableName = destTableName; + } + + public void setJoinExpr(String joinExpr) { + this.joinExpr = joinExpr; + } + +} // TableJoin diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableSource.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableSource.java new file mode 100644 index 00000000..4ca177e8 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/TableSource.java @@ -0,0 +1,119 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition; + +import org.onap.portalsdk.analytics.RaptorObject; + +public class TableSource extends RaptorObject { + private String tableName = null; + + private String displayName = null; + + private String pkFields = null; + + private String viewAction = null; + + private String isLargeData = null; + + private String filterSql = null; + + public TableSource() { + super(); + } + + public TableSource(String tableName, String displayName, String pkFields, + String viewAction, String isLargeData, String filterSql) { + this(); + + setTableName(tableName); + setDisplayName(displayName); + setPkFields(pkFields); + setViewAction(viewAction); + setIsLargeData(isLargeData); + setFilterSql(filterSql); + } // TableSource + + public String getTableName() { + return tableName; + } + + public String getDisplayName() { + return displayName; + } + + public String getPkFields() { + return pkFields; + } + + public String getViewAction() { + return viewAction; + } + + public String getIsLargeData() { + return isLargeData; + } + + public String getFilterSql() { + return filterSql; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public void setPkFields(String pkFields) { + this.pkFields = pkFields; + } + + public void setViewAction(String viewAction) { + this.viewAction = viewAction; + } + + public void setIsLargeData(String isLargeData) { + this.isLargeData = isLargeData; + } + + public void setFilterSql(String filterSql) { + this.filterSql = filterSql; + } + +} // TableSource diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java new file mode 100644 index 00000000..d3478d77 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java @@ -0,0 +1,137 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class ColumnEditJSON implements WizardJSON { + + private String tabId; + private String tabName; + + private String colId; + private String colName; + private String displayAlignment; + private String displayHeaderAlignment; + private boolean sortable; + private boolean visible; + + private String drilldownURL; + private String drilldownParams; + private String drilldownType; + private String errorMessage; + private String errorStackTrace; + + public String getTabId() { + return tabId; + } + public String getErrorMessage() { + return errorMessage; + } + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + public String getErrorStackTrace() { + return errorStackTrace; + } + public void setErrorStackTrace(String errorStackTrace) { + this.errorStackTrace = errorStackTrace; + } + public void setTabId(String tabId) { + this.tabId = tabId; + } + public String getTabName() { + return tabName; + } + public void setTabName(String tabName) { + this.tabName = tabName; + } + public String getColId() { + return colId; + } + public void setColId(String colId) { + this.colId = colId; + } + public String getColName() { + return colName; + } + public void setColName(String colName) { + this.colName = colName; + } + public String getDisplayAlignment() { + return displayAlignment; + } + public void setDisplayAlignment(String displayAlignment) { + this.displayAlignment = displayAlignment; + } + public String getDisplayHeaderAlignment() { + return displayHeaderAlignment; + } + public void setDisplayHeaderAlignment(String displayHeaderAlignment) { + this.displayHeaderAlignment = displayHeaderAlignment; + } + public boolean isSortable() { + return sortable; + } + public void setSortable(boolean sortable) { + this.sortable = sortable; + } + public boolean isVisible() { + return visible; + } + public void setVisible(boolean visible) { + this.visible = visible; + } + public String getDrilldownURL() { + return drilldownURL; + } + public void setDrilldownURL(String drilldownURL) { + this.drilldownURL = drilldownURL; + } + public String getDrilldownParams() { + return drilldownParams; + } + public void setDrilldownParams(String drilldownParams) { + this.drilldownParams = drilldownParams; + } + public String getDrilldownType() { + return drilldownType; + } + public void setDrilldownType(String drilldownType) { + this.drilldownType = drilldownType; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java new file mode 100644 index 00000000..97347037 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnJSON.java @@ -0,0 +1,59 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class ColumnJSON implements ElementJSON { + + private String id; + private String name; + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java new file mode 100644 index 00000000..351192b5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java @@ -0,0 +1,252 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.List; + +public class DefinitionJSON implements WizardJSON { + + private String tabName; + private String tabId; + + private String reportId; + private String reportName; + private String reportDescr; + private String reportType; + private String dbInfo; + private String formHelpText; + private Integer pageSize; + private List displayArea = null; + private Boolean hideFormFieldsAfterRun; + private Integer maxRowsInExcelCSVDownload; + private Integer frozenColumns; + private String dataGridAlign; + private String emptyMessage; + private String dataContainerHeight; + private String dataContainerWidth; + private List displayOptions = null; + private Boolean runtimeColSortDisabled; + private Integer numFormCols; + private String reportTitle; + private String reportSubTitle; + + @Override + public String getTabName() { + return tabName; + } + + @Override + public void setTabName(String tabName) { + this.tabName = tabName; + } + + @Override + public String getTabId() { + return tabId; + } + + @Override + public void setTabId(String tabId) { + this.tabId = tabId; + } + + + + public String getReportId() { + return reportId; + } + + public void setReportId(String reportId) { + this.reportId = reportId; + } + + public String getReportName() { + return reportName; + } + + public void setReportName(String reportName) { + this.reportName = reportName; + } + + public String getReportDescr() { + return reportDescr; + } + + public void setReportDescr(String reportDescr) { + this.reportDescr = reportDescr; + } + + public String getReportType() { + return reportType; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + + public String getDbInfo() { + return dbInfo; + } + + public void setDbInfo(String dbInfo) { + this.dbInfo = dbInfo; + } + + public String getFormHelpText() { + return formHelpText; + } + + public void setFormHelpText(String formHelpText) { + this.formHelpText = formHelpText; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public List getDisplayArea() { + return displayArea; + } + + public void setDisplayArea(List displayArea) { + this.displayArea = displayArea; + } + + public Boolean getHideFormFieldsAfterRun() { + return hideFormFieldsAfterRun; + } + + public void setHideFormFieldsAfterRun(Boolean hideFormFieldsAfterRun) { + this.hideFormFieldsAfterRun = hideFormFieldsAfterRun; + } + + public Integer getMaxRowsInExcelCSVDownload() { + return maxRowsInExcelCSVDownload; + } + + public void setMaxRowsInExcelCSVDownload(Integer maxRowsInExcelCSVDownload) { + this.maxRowsInExcelCSVDownload = maxRowsInExcelCSVDownload; + } + + public Integer getFrozenColumns() { + return frozenColumns; + } + + public void setFrozenColumns(Integer frozenColumns) { + this.frozenColumns = frozenColumns; + } + + public String getDataGridAlign() { + return dataGridAlign; + } + + public void setDataGridAlign(String dataGridAlign) { + this.dataGridAlign = dataGridAlign; + } + + public String getEmptyMessage() { + return emptyMessage; + } + + public void setEmptyMessage(String emptyMessage) { + this.emptyMessage = emptyMessage; + } + + public String getDataContainerHeight() { + return dataContainerHeight; + } + + public void setDataContainerHeight(String dataContainerHeight) { + this.dataContainerHeight = dataContainerHeight; + } + + public String getDataContainerWidth() { + return dataContainerWidth; + } + + public void setDataContainerWidth(String dataContainerWidth) { + this.dataContainerWidth = dataContainerWidth; + } + + public List getDisplayOptions() { + return displayOptions; + } + + public void setDisplayOptions(List displayOptions) { + this.displayOptions = displayOptions; + } + + public Boolean getRuntimeColSortDisabled() { + return runtimeColSortDisabled; + } + + public void setRuntimeColSortDisabled(Boolean runtimeColSortDisabled) { + this.runtimeColSortDisabled = runtimeColSortDisabled; + } + + public Integer getNumFormCols() { + return numFormCols; + } + + public void setNumFormCols(Integer numFormCols) { + this.numFormCols = numFormCols; + } + + public String getReportTitle() { + return reportTitle; + } + + public void setReportTitle(String reportTitle) { + this.reportTitle = reportTitle; + } + + public String getReportSubTitle() { + return reportSubTitle; + } + + public void setReportSubTitle(String reportSubTitle) { + this.reportSubTitle = reportSubTitle; + } + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ElementJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ElementJSON.java new file mode 100644 index 00000000..a0bee600 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ElementJSON.java @@ -0,0 +1,51 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.ArrayList; +import java.util.Map; + +import org.onap.portalsdk.analytics.view.ColumnHeader; + +public interface ElementJSON { + + // To be defined by child class + public String getId(); + public String getName(); + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java new file mode 100644 index 00000000..3d2dc41a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java @@ -0,0 +1,149 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.List; + +public class FormEditJSON implements WizardJSON { + + private String tabId; + private String tabName; + + private String fieldId; + private String fieldName; + private String fieldType; + private boolean visible; + private String defaultValue; + private String fieldDefaultSQL; + private String fieldSQL; + private String validationType; + private List predefinedValueList; + private String message; + private String errorMessage; + private String errorStackTrace; + + + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + public String getErrorMessage() { + return errorMessage; + } + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + public String getErrorStackTrace() { + return errorStackTrace; + } + public void setErrorStackTrace(String errorStackTrace) { + this.errorStackTrace = errorStackTrace; + } + public String getTabId() { + return tabId; + } + public void setTabId(String tabId) { + this.tabId = tabId; + } + public String getTabName() { + return tabName; + } + public void setTabName(String tabName) { + this.tabName = tabName; + } + + + public String getFieldId() { + return fieldId; + } + public void setFieldId(String fieldId) { + this.fieldId = fieldId; + } + public String getFieldName() { + return fieldName; + } + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldType() { + return fieldType; + } + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + public boolean isVisible() { + return visible; + } + public void setVisible(boolean visible) { + this.visible = visible; + } + public String getDefaultValue() { + return defaultValue; + } + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + public String getFieldDefaultSQL() { + return fieldDefaultSQL; + } + public void setFieldDefaultSQL(String fieldDefaultSQL) { + this.fieldDefaultSQL = fieldDefaultSQL; + } + public String getValidationType() { + return validationType; + } + public void setValidationType(String validationType) { + this.validationType = validationType; + } + public List getPredefinedValueList() { + return predefinedValueList; + } + public void setPredefinedValueList(List predefinedValueList) { + this.predefinedValueList = predefinedValueList; + } + public String getFieldSQL() { + return fieldSQL; + } + public void setFieldSQL(String fieldSQL) { + this.fieldSQL = fieldSQL; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/IdNameBooleanJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/IdNameBooleanJSON.java new file mode 100644 index 00000000..e18302cc --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/IdNameBooleanJSON.java @@ -0,0 +1,66 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class IdNameBooleanJSON { + + private String id; + private String name; + private boolean selected; + + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public boolean isSelected() { + return selected; + } + public void setSelected(boolean selected) { + this.selected = selected; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ImportJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ImportJSON.java new file mode 100644 index 00000000..66bbb7e7 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ImportJSON.java @@ -0,0 +1,72 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.List; + +public class ImportJSON implements WizardJSON { + + private String tabId; + private String tabName; + + private String reportXML; + + + public String getTabId() { + return tabId; + } + public void setTabId(String tabId) { + this.tabId = tabId; + } + public String getTabName() { + return tabName; + } + public void setTabName(String tabName) { + this.tabName = tabName; + } + public String getReportXML() { + return reportXML; + } + public void setReportXML(String reportXML) { + this.reportXML = reportXML; + } + + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ListJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ListJSON.java new file mode 100644 index 00000000..4a842958 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ListJSON.java @@ -0,0 +1,58 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.ArrayList; +import java.util.Map; + +import org.onap.portalsdk.analytics.view.ColumnHeader; + +public class ListJSON { + + private ArrayList elements; + + public ArrayList getElements() { + return elements; + } + + public void setElements(ArrayList elements) { + this.elements = elements; + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/MessageJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/MessageJSON.java new file mode 100644 index 00000000..c5891b2e --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/MessageJSON.java @@ -0,0 +1,73 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; + +import org.json.JSONObject; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.view.ColumnHeader; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.xmlobj.ColFilterList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; + +public class MessageJSON { + + private String message; + private String anyStacktrace; + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } + public String getAnyStacktrace() { + return anyStacktrace; + } + public void setAnyStacktrace(String anyStacktrace) { + this.anyStacktrace = anyStacktrace; + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/NameBooleanJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/NameBooleanJSON.java new file mode 100644 index 00000000..f74f9671 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/NameBooleanJSON.java @@ -0,0 +1,59 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class NameBooleanJSON { + + private String name; + private boolean selected; + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + public boolean isSelected() { + return selected; + } + public void setSelected(boolean selected) { + this.selected = selected; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryJSON.java new file mode 100644 index 00000000..d2df77c0 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryJSON.java @@ -0,0 +1,78 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.ArrayList; +import java.util.Map; + +import org.onap.portalsdk.analytics.model.definition.wizard.WizardJSON; +import org.onap.portalsdk.analytics.view.ColumnHeader; + +public class QueryJSON implements WizardJSON { + + private String query; + private String tabName; + private String tabId; + + + public String getTabName() { + return tabName; + } + + public void setTabName(String tabName) { + this.tabName = tabName; + } + + public String getTabId() { + return tabId; + } + + public void setTabId(String tabId) { + this.tabId = tabId; + } + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryResultJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryResultJSON.java new file mode 100644 index 00000000..794e9813 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/QueryResultJSON.java @@ -0,0 +1,88 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import java.util.ArrayList; +import java.util.Map; + +import org.onap.portalsdk.analytics.view.ColumnHeader; + +public class QueryResultJSON { + + private String query; + + private int totalRows; + private ArrayList reportDataColumns; + private ArrayList> reportDataRows; + + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public int getTotalRows() { + return totalRows; + } + + public void setTotalRows(int totalRows) { + this.totalRows = totalRows; + } + + public ArrayList getReportDataColumns() { + return reportDataColumns; + } + + public void setReportDataColumns(ArrayList reportDataColumns) { + this.reportDataColumns = reportDataColumns; + } + + public ArrayList> getReportDataRows() { + return reportDataRows; + } + + public void setReportDataRows(ArrayList> reportDataRows) { + this.reportDataRows = reportDataRows; + } + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorError.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorError.java new file mode 100644 index 00000000..b04f4d45 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorError.java @@ -0,0 +1,49 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class RaptorError extends RaptorResponse{ + public RaptorError(String theMessage) { + error().put("message", theMessage); + } + + public RaptorError(String theMessage, Throwable theError) { + error().put("message", theMessage) + .put("exception", theError.toString()); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorResponse.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorResponse.java new file mode 100644 index 00000000..d14f4d1a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/RaptorResponse.java @@ -0,0 +1,68 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +import org.json.JSONObject; + +import com.fasterxml.jackson.annotation.JsonRawValue; + +public class RaptorResponse { + private JSONObject data = new JSONObject(), + error = new JSONObject(); + + public RaptorResponse() { + } + + public JSONObject data() { + return this.data; + } + + @JsonRawValue + public String getData() { + return this.data.toString(); + } + + public JSONObject error() { + return this.error; + } + + @JsonRawValue + public String getError() { + return this.error.toString(); + } +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java new file mode 100644 index 00000000..948188cd --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java @@ -0,0 +1,59 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public class SearchFieldJSON implements ElementJSON { + + private String id; + private String name; + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/WizardJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/WizardJSON.java new file mode 100644 index 00000000..0781f3f5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/WizardJSON.java @@ -0,0 +1,47 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.definition.wizard; + +public interface WizardJSON { + + public String getTabName(); + public void setTabName(String tabName); + public String getTabId(); + public void setTabId(String tabId); + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PageEvent.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PageEvent.java new file mode 100644 index 00000000..91bdb09a --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PageEvent.java @@ -0,0 +1,274 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.pdf; + +import java.awt.Color; +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; + +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.Globals; + +import com.lowagie.text.BadElementException; +import com.lowagie.text.Cell; +import com.lowagie.text.Document; +import com.lowagie.text.ExceptionConverter; +import com.lowagie.text.Font; +import com.lowagie.text.FontFactory; +import com.lowagie.text.Image; +import com.lowagie.text.Paragraph; +import com.lowagie.text.Rectangle; +import com.lowagie.text.pdf.PdfContentByte; +import com.lowagie.text.pdf.PdfDestination; +import com.lowagie.text.pdf.PdfOutline; +import com.lowagie.text.pdf.PdfPCell; +import com.lowagie.text.pdf.PdfPTable; +import com.lowagie.text.pdf.PdfPageEventHelper; +import com.lowagie.text.pdf.PdfWriter; + +class PageEvent extends PdfPageEventHelper { + private PdfBean pb; + private int pageNo = 0; + private int omit_page_count = 0; + private int DEFAULT_LOGO_SIZE = 100; + + public PageEvent(PdfBean pb) { + this.pb = pb; + } + + private int getWidthEntries(int howManyLogos){ + int widthEntries = 0; + + if(howManyLogos == 2) + widthEntries = 3; + else + if(howManyLogos == 1) + widthEntries = 2; + else + widthEntries = 0; + + return widthEntries; + } + + private int getHowManyLogos(){ + int howManyLogos = 0; + + if(AppUtils.isNotEmpty(pb.getLogo1Url()) && !pb.getLogo1Url().equalsIgnoreCase("")) + howManyLogos ++; + + if(AppUtils.isNotEmpty(pb.getLogo2Url()) && !pb.getLogo2Url().equalsIgnoreCase("")) + howManyLogos ++; + + return howManyLogos; + } + + private float[] fillWidthsArray(int howManyLogos){ + float[] widthsArray = new float[howManyLogos + 1]; + + //If one logo, we will need two columns in the header[left log, spacer] + if(howManyLogos == 1){ + widthsArray = new float[2]; + widthsArray[0] = 0.1f; + widthsArray[1] = 0.1f; + } + //If two logs, we will need three columns in the header [left log, spacer, right log] + else + if(howManyLogos == 2){ + widthsArray = new float[3]; + widthsArray[0] = 0.1f; + widthsArray[1] = 0.5f; + widthsArray[2] = 0.1f; + } + + return widthsArray; + } + public void onStartPage(PdfWriter writer, Document document) { + + Font font = FontFactory.getFont(Globals.getFooterFontFamily(), Globals.getFooterFontSize(), Font.NORMAL, Color.BLACK); + int howManyLogos = getHowManyLogos(); + + //No need to draw anything in the header if no logo was set in the report. + if(howManyLogos == 0) + return; + + float[] widths = fillWidthsArray(howManyLogos); + + PdfPTable foot = new PdfPTable(widths); + + if(AppUtils.isNotEmpty(pb.getLogo1Url()) && !pb.getLogo1Url().equalsIgnoreCase("")) + addLogo(foot, font, pb.getLogo1Url().substring(pb.getLogo1Url().indexOf("|") + 1).trim(), Cell.ALIGN_LEFT, pb.getLogo1Size() == null ? DEFAULT_LOGO_SIZE : pb.getLogo1Size()); + + PdfPCell spacingCell = new PdfPCell(); + spacingCell.setBorderColor(Color.WHITE); + foot.addCell(spacingCell); + + //Using logo1 size for now - use logo2 size if it is required to deal it separately. + if(AppUtils.isNotEmpty(pb.getLogo2Url()) && !pb.getLogo2Url().equalsIgnoreCase("")) + addLogo(foot, font, pb.getLogo2Url().substring(pb.getLogo2Url().indexOf("|") + 1).trim(), Cell.ALIGN_RIGHT, pb.getLogo2Size() == null ? DEFAULT_LOGO_SIZE : pb.getLogo2Size()); + + foot.setTotalWidth(getPageWidth(document)); + foot.writeSelectedRows(0, -1, 36, 600, writer.getDirectContent()); + } + + public void onEndPage(PdfWriter writer, Document document) { + + Font font = FontFactory.getFont(Globals.getFooterFontFamily(), Globals.getFooterFontSize(), Font.NORMAL, Color.BLACK); + + try { + + // footer + float[] f = { 1f, 0.4f, 1f }; + PdfPTable foot = new PdfPTable(f); + foot.getDefaultCell().setBorderWidth(0); + foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + foot.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM); + + foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_LEFT); + addLeftFooter(foot, font); + + foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + addPageNumber(foot, font, pb.isPageNumberAtFooter(), document.getPageNumber()); + + foot.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_RIGHT); + foot.getDefaultCell().setNoWrap(true); + + foot.addCell(new Paragraph(" " + PdfReportHandler.currentTime(pb.getTimestampPattern()), font)); + + foot.setTotalWidth(getPageWidth(document)); + foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(), writer.getDirectContent()); + + // bookmark + pageNo++; + PdfContentByte cb = writer.getDirectContent(); + PdfDestination destination = new PdfDestination(PdfDestination.FITH); + String bookmark = "Data Page " + (pageNo - omit_page_count); + if (pageNo == 1) { + if (pb.isCoverPageIncluded()) { + bookmark = "Cover Page"; + omit_page_count++; + } else if (pb.isDisplayChart()) { + bookmark = "Chart"; + omit_page_count++; + } + } + if (pageNo == 2 && pb.isCoverPageIncluded() && pb.isDisplayChart()) { + bookmark = "Chart"; + omit_page_count++; + } + + PdfOutline outline = new PdfOutline(cb.getRootOutline(), destination, bookmark); + + } catch (Exception e) { + throw new ExceptionConverter(e); + } + } + + private void addPageNumber(PdfPTable table, Font font, boolean isAdd, int pageNum) { + if (isAdd) + table.addCell(new Paragraph(Globals.getWordBeforePageNumber() + " " + pageNum + " " + Globals.getWordAfterPageNumber(), font)); + else + table.addCell(""); + } + + private void addLeftFooter(PdfPTable table, Font font) { + Font font1 = new Font(font); + font1.setSize(Globals.getPDFFooterFontSize()); + + if (isEmpty(pb.getLeftFooter())) + table.addCell(new Paragraph(" " + Globals.getPDFFooter(), font1)); + else + table.addCell(new Paragraph(pb.getLeftFooter(), font)); + } + + private void addHeaderDummy(PdfPTable table, Font font) { + Font font1 = new Font(font); + font1.setSize(Globals.getPDFFooterFontSize()); + + table.addCell(new Paragraph("Header row", font1)); + } + + private void addLogo(PdfPTable table, Font font, String imgSrc, int alignment, int absoluteSize) { + + Image img = null; + try { + img = Image.getInstance(pb.getFullWebContextPath() + AppUtils.getImgFolderURL() + File.separator + imgSrc); + } catch (BadElementException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + img = null; + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + img = null; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + + } + if(img == null){ + //log that the input file couldnt be loaded - + } + else{ + //img.scaleAbsolute(absoluteSize, absoluteSize); + img.scalePercent(absoluteSize, absoluteSize); + PdfPCell cell = new PdfPCell(img); + cell.setBorderColor(Color.WHITE); + cell.setHorizontalAlignment(alignment); + table.addCell(cell); + } + + } + + public static float getPageWidth(Document doc) { + return doc.getPageSize().width() - doc.leftMargin() - doc.rightMargin(); + } + + public static float getPageHeight(Document doc) { + return doc.getPageSize().height() - doc.topMargin() - doc.bottomMargin(); + } + + private float getHeadTopMargin(Document doc, PdfPTable table) { + return doc.getPageSize().height() - doc.topMargin() + table.getTotalHeight(); + } + + private boolean isEmpty(String str) { + return str == null || str.trim().length() == 0; + } + +} // PageEvent diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfBean.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfBean.java new file mode 100644 index 00000000..ccfd06ca --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfBean.java @@ -0,0 +1,260 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.pdf; + + +public class PdfBean { + + public static final int NUMBER_IN_HEADER = 0; + public static final int NUMBER_IN_FOOTER = 1; + public static final int NUMBER_IN_BOTH = 2; + + private boolean alternateColor; + private boolean isPortrait; + private boolean isCoverPageIncluded; + private boolean isDisplayChart; + private int currentPage; + private int whereToShowPageNumber; + private String userId; + private String timestampPattern; + private String title; + private String leftFooter; + private String pagesize; + private boolean isAttachmentOfEmail; + private String logo1Url; + private Integer logo1Size; + private String logo2Url; + private Integer logo2Size; + private String fullWebContextPath; + + /** + * @return the leftFooter + */ + public String getLeftFooter() { + return leftFooter; + } + /** + * @param leftFooter the leftFooter to set + */ + public void setLeftFooter(String leftFooter) { + this.leftFooter = leftFooter; + } + /** + * @return the title + */ + public String getTitle() { + return title; + } + /** + * @param title the title to set + */ + public void setTitle(String title) { + this.title = title; + } + /** + * @return the alternateColor + */ + public boolean isAlternateColor() { + return alternateColor; + } + /** + * @param alternateColor the alternateColor to set + */ + public void setAlternateColor(boolean alternateColor) { + this.alternateColor = alternateColor; + } + /** + * @return the currentPage + */ + public int getCurrentPage() { + return currentPage; + } + /** + * @param currentPage the currentPage to set + */ + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + /** + * @return the isPortrait + */ + public boolean isPortrait() { + return isPortrait; + } + /** + * @param isPortrait the isPortrait to set + */ + public void setPortrait(boolean isPortrait) { + this.isPortrait = isPortrait; + } + /** + * @return the timestampPattern + */ + public String getTimestampPattern() { + return timestampPattern; + } + /** + * @param timestampPattern the timestampPattern to set + */ + public void setTimestampPattern(String timestampPattern) { + this.timestampPattern = timestampPattern; + } + /** + * @return the userId + */ + public String getUserId() { + return userId; + } + /** + * @param userId the userId to set + */ + public void setUserId(String userId) { + this.userId = userId; + } + /** + * @return the whereToShowPageNummber + */ + public int getWhereToShowPageNumber() { + return whereToShowPageNumber; + } + /** + * @param whereToShowPageNumber the whereToShowPageNumber to set + */ + public void setWhereToShowPageNumber(int whereToShowPageNumber) { + this.whereToShowPageNumber = whereToShowPageNumber; + } + + public boolean isPageNumberAtHeader() { + return getWhereToShowPageNumber()==NUMBER_IN_BOTH || + getWhereToShowPageNumber()==NUMBER_IN_HEADER; + } + + public boolean isPageNumberAtFooter() { + return getWhereToShowPageNumber()==NUMBER_IN_FOOTER || + getWhereToShowPageNumber()==NUMBER_IN_BOTH; + } + + /** + * @return the isCoverPageIncluded + */ + public boolean isCoverPageIncluded() { + return isCoverPageIncluded; + } + /** + * @param isCoverPageIncluded the isCoverPageIncluded to set + */ + public void setCoverPageIncluded(boolean isCoverPageIncluded) { + this.isCoverPageIncluded = isCoverPageIncluded; + } + + public String toString() { + return getTitle()+ " " + + getCurrentPage() + " " + + getTimestampPattern() + " " + + getUserId()+ " " + + getWhereToShowPageNumber()+ " " + + isPortrait() + " " + isAlternateColor(); + } + /** + * @return the isDisplayChart + */ + public boolean isDisplayChart() { + return isDisplayChart; + } + /** + * @param isDisplayChart the isDisplayChart to set + */ + public void setDisplayChart(boolean isDisplayChart) { + this.isDisplayChart = isDisplayChart; + } + /** + * @return the pagesize + */ + public String getPagesize() { + return pagesize; + } + /** + * @param pagesize the pagesize to set + */ + public void setPagesize(String pagesize) { + this.pagesize = pagesize; + } + + public String getLogo1Url() { + return logo1Url; + } + public void setLogo1Url(String logo1Url) { + this.logo1Url = logo1Url; + } + + public String getLogo2Url() { + return logo2Url; + } + public void setLogo2Url(String logo2Url) { + this.logo2Url = logo2Url; + } + + public void setAttachmentOfEmail(boolean isAttachmentOfEmail) { + this.isAttachmentOfEmail = isAttachmentOfEmail; + } + + public boolean isAttachmentOfEmail() { + + return isAttachmentOfEmail; + } + public Integer getLogo1Size() { + return logo1Size; + } + public void setLogo1Size(Integer logo1Size) { + this.logo1Size = logo1Size; + } + public Integer getLogo2Size() { + return logo2Size; + } + public void setLogo2Size(Integer logo2Size) { + this.logo2Size = logo2Size; + } + public String getFullWebContextPath() { + return fullWebContextPath; + } + public void setFullWebContextPath(String fullWebContextPath) { + this.fullWebContextPath = fullWebContextPath; + } + + +} 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 new file mode 100644 index 00000000..f4c2b8a6 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/pdf/PdfReportHandler.java @@ -0,0 +1,1914 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * PdfReportHandler.java - This class is used to generate reports in PDF using iText + * ------------------------------------------------------------------------------------------- + * + * + * Changes + * ------- + * 14-Jul-2009 : Version 8.4 (Sundar);
    + *
  • Dashboard reports can be downloaded with each report occupying separate page including its charts.
  • + *
+ * + */ +package org.onap.portalsdk.analytics.model.pdf; + +import java.awt.Color; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; +import java.io.StringReader; +import java.net.MalformedURLException; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +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; +import org.onap.portalsdk.analytics.model.ReportLoader; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.model.definition.ReportDefinition; +import org.onap.portalsdk.analytics.model.runtime.ReportRuntime; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.system.Globals; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.HtmlStripper; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.view.ColumnHeader; +import org.onap.portalsdk.analytics.view.ColumnHeaderRow; +import org.onap.portalsdk.analytics.view.DataRow; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.view.HtmlFormatter; +import org.onap.portalsdk.analytics.view.ReportData; +import org.onap.portalsdk.analytics.view.RowHeader; +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 + * + */ +public class PdfReportHandler extends org.onap.portalsdk.analytics.RaptorObject{ + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PdfReportHandler.class); + + private PdfBean pb; + private HtmlStripper strip = new HtmlStripper(); + private static final int RetryCreateNewImage = 3; + private int retryCreateNewImageCount=0; + + private String FONT_FAMILY = "Arial"; + private int FONT_SIZE = 9; + + public PdfReportHandler() { } + + public void createPdfFileContent(HttpServletRequest request, HttpServletResponse response, int type) throws IOException, RaptorException { + + Document document = new Document(); + ReportHandler rh = new ReportHandler(); + String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date()); + String pdfFName = ""; + String user_id = AppUtils.getUserID(request); + response.reset(); + response.setContentType("application/pdf"); + OutputStream outStream = response.getOutputStream(); + + String formattedReportName = ""; + PdfWriter writer = null; + ReportRuntime firstReportRuntimeObj = null; + int returnValue = 0; + + ReportRuntime rr = null; + if(rr==null) rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + + boolean isDashboard = false; + if ((request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID)!=null) && ( ((String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID)).equals(rr.getReportID())) ) { + isDashboard = true; + } + if(isDashboard) { + try { + String reportID = (String) request.getSession().getAttribute(AppConstants.SI_DASHBOARD_REP_ID); + ReportRuntime rrDash = rh.loadReportRuntime(request, reportID, true, 1); + pb = preparePdfBean(request,rrDash); + + // Setting pb Values + document.setPageSize(PageSize.getRectangle(pb.getPagesize())); + if(!pb.isPortrait()) // get this from properties file + document.setPageSize(document.getPageSize().rotate()); + + // + writer = PdfWriter.getInstance(document, response.getOutputStream()); + writer.setPageEvent(new PageEvent(pb));//header,footer,bookmark + document.open(); + + formattedReportName = new HtmlStripper().stripSpecialCharacters(rrDash.getReportName()); + if(pb.isAttachmentOfEmail()) + response.setHeader("Content-disposition", "inline"); + else + response.setHeader("Content-disposition", "attachment;filename="+ formattedReportName+formattedDate+user_id+".pdf"); + + pdfFName = "dashboard"+formattedReportName+formattedDate+user_id+".pdf"; + 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_DASHBOARD_DISPLAYTYPE_MAP); + + if(reportRuntimeMap!=null) { + //ServletOutputStream sos = response.getOutputStream(); + Set setReportRuntime = reportRuntimeMap.entrySet(); + Set setReportDataMap = reportDataMap.entrySet(); + Set setReportDisplayTypeMap = reportDisplayTypeMap.entrySet(); + + Iterator iter2 = setReportDataMap.iterator(); + Iterator iter3 = setReportDisplayTypeMap.iterator(); + int count = 0; + for(Iterator iter = setReportRuntime.iterator(); iter.hasNext(); ) { + count++; + Map.Entry entryData = (Entry) iter2.next(); + Map.Entry entry = (Entry) iter.next(); + Map.Entry entryCheckChart = (Entry) iter3.next(); + //String rep_id = (String) entry.getKey(); + ReportRuntime rrDashRep = (ReportRuntime) entry.getValue(); + + if(count == 1) { + firstReportRuntimeObj = (ReportRuntime) entry.getValue(); + if(pb.isCoverPageIncluded()) { + document = paintDashboardCoverPage(document, rrDash, firstReportRuntimeObj, request); + } + } + ReportData rdDashRep = (ReportData) entryData.getValue(); + int col = 0; + //pb.setDisplayChart(nvl(rr.getChartType()).trim().length()>0 && rr.getDisplayChart()); + if( ((rrDashRep.getChartType()).trim().length()>0 && rrDashRep.getDisplayChart()) && entryCheckChart.getValue().toString().equals("c")) { + document.newPage(); + pb.setTitle(nvl(rrDashRep.getReportTitle()).length()>0?rrDashRep.getReportTitle():rrDashRep.getReportName()); + paintPdfImage(request, document,AppUtils.getTempFolderPath()+"cr_"+ pb.getUserId()+"_"+request.getSession().getId()+"_"+rrDashRep.getReportID()+".png", rrDashRep); + } else { + document.newPage(); + pb.setTitle(nvl(rrDashRep.getReportTitle()).length()>0?rrDashRep.getReportTitle():rrDashRep.getReportName()); + paintPdfData(request, document,rdDashRep,rrDashRep, ""); + } + } + + } + } catch (DocumentException dex) {dex.printStackTrace();} + catch (RaptorException rex) {rex.printStackTrace();} + } else { + + //ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + //ReportData rd = (ReportData) request.getSession().getAttribute(AppConstants.RI_REPORT_DATA); + rr = null; + ReportData rd = null; + String parent = ""; + int parentFlag = 0; + if(!nvl(request.getParameter("parent"), "").equals("N")) parent = nvl(request.getParameter("parent"), ""); + if(parent.startsWith("parent_")) parentFlag = 1; + if(parentFlag == 1) { + rr = (ReportRuntime) request.getSession().getAttribute(parent+"_rr"); + rd = (ReportData) request.getSession().getAttribute(parent+"_rd"); + } + if(rr==null) rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); + if(rd==null) rd = (ReportData) request.getSession().getAttribute(AppConstants.RI_REPORT_DATA); + + pb = preparePdfBean(request,rr); + FONT_FAMILY = rr.getPDFFont(); + FONT_SIZE = rr.getPDFFontSize(); + //System.out.println(pb); + + formattedReportName = new HtmlStripper().stripSpecialCharacters(rr.getReportName()); + + + + response.setContentType("application/pdf"); + if(pb.isAttachmentOfEmail()) + response.setHeader("Content-disposition", "inline"); + else + response.setHeader("Content-disposition", "attachment;filename="+ formattedReportName+formattedDate+user_id+".pdf"); + + document.setPageSize(PageSize.getRectangle(pb.getPagesize())); + + if(!pb.isPortrait()) // get this from properties file + document.setPageSize(document.getPageSize().rotate()); + + try { + + writer = PdfWriter.getInstance(document, outStream); + writer.setPageEvent(new PageEvent(pb));//header,footer,bookmark + document.open(); + + //System.out.println("Document 1 " + document); + if(pb.isCoverPageIncluded()) { + document = paintCoverPage(document, rr, request); + } + + //boolean isImageRotate = false; + //System.out.println("Document 2 " + document); + + if(pb.isDisplayChart()) { + paintPdfImage(request, document,AppUtils.getTempFolderPath()+"cr_"+ pb.getUserId()+"_"+request.getSession().getId()+"_"+rr.getReportID()+".png", rr); + } + //System.out.println("Document 4" + document); + + document.newPage(); + 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); + returnValue = paintPdfData(request, document, rd, rr, sql_whole); + } else if(type == 2) { + returnValue = paintPdfData(request, document, rd, rr, ""); + } 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) { + rd = rr.loadReportData(-1, AppUtils.getUserID(request), downloadLimit,request, true); + returnValue = paintPdfData(request, document, rd, rr, ""); + } else { + returnValue = paintPdfData(request, document, rd, rr, rr.getWholeSQL()); + } + + + } + + + //paintPdfData(document,rd,rr); + + + } catch (DocumentException de) { + de.printStackTrace(); + //System.err.println("document: " + de.getMessage()); + } + + } + document.close(); + int mb = 1024*1024; + Runtime runtime = Runtime.getRuntime(); + logger.debug(EELFLoggerDelegate.debugLogger, ("##### Heap utilization statistics [MB] #####")); + logger.debug(EELFLoggerDelegate.debugLogger, ("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)); + + } + + private Document paintCoverPage(Document doc, ReportRuntime rr, HttpServletRequest request) throws IOException, DocumentException { + + //System.out.println("PDFREPORTHANDLER STARTED ... " ); + if(nvl(rr.getPdfImg()).length()>0) { + Image image1 = Image.getInstance(AppUtils.getExcelTemplatePath()+"../../"+AppUtils.getImgFolderURL()+rr.getPdfImg()); + image1.scalePercent(20f, 20f); + doc.add(image1); + } + float firstColumnSize = Globals.getCoverPageFirstColumnSize(); + float[] relativeWidths = {firstColumnSize,1f-firstColumnSize}; + PdfPTable table = new PdfPTable(relativeWidths); + table.getDefaultCell().setBorderWidth(0); + addEmptyRows(table,6); + HTMLWorker worker = new HTMLWorker(doc); + StyleSheet style = new StyleSheet(); + style.loadTagStyle("body", "leading", "16,0"); + StringBuffer reportDescrBuf = new StringBuffer(""); + ArrayList descr = HTMLWorker.parseToList(new StringReader(nvl(rr.getReportDescr())), style); + ArrayList paraList = null; + if(nvl(rr.getReportTitle()).length()>0) { + add2Cells(table,"Report Title : ",nvl(rr.getReportTitle())); + if(nvl(rr.getReportSubTitle()).length()>0) { + add2Cells(table,"Report Sub-Title : ",nvl(rr.getReportSubTitle())); + System.out.println("Adding the report sub-title "); + } + + } else { + add2Cells(table,"Report Name : ",nvl(rr.getReportName())); + } + if((descr!=null && descr.size()>0)) { + paraList = (com.lowagie.text.Paragraph)descr.get(0); + for (int i=0 ; i0) { + String nameValue[] = Globals.getSessionInfoForTheCoverPage().split(","); + String name=nameValue[0]; + String value=nameValue[1]; + add2Cells(table,name+" : ",(AppUtils.getRequestNvlValue(request, value).length()>0?AppUtils.getRequestNvlValue(request, value):nvl((String)request.getSession().getAttribute(value)))); + } + + if(Globals.isCreatedOwnerInfoNeeded()) { + add2Cells(table,"Created By : ",nvl(AppUtils.getUserName(rr.getCreateID()))); + add2Cells(table,"Owner : ",nvl(AppUtils.getUserName(rr.getOwnerID()))); + } + if(Globals.displayLoginIdForDownloadedBy()) + add2Cells(table,"Downloaded by : ",nvl(AppUtils.getUserBackdoorLoginId(request))); + else + add2Cells(table,"Downloaded by : ",nvl(AppUtils.getUserName(AppUtils.getUserID(request)))); + + addEmptyRows(table,1); + + boolean isFirstRow = true; + ArrayList al = rr.getParamNameValuePairsforPDFExcel(request, 1); + if(al.size()<=0) { + al = (ArrayList) request.getSession().getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO); + } + + Iterator it = al.iterator(); + addEmptyRows(table,1); + //if(!Globals.customizeFormFieldInfo()) { + if(rr.getFormFieldComments(request).length()<=0) { + while(it.hasNext()) { + + if(isFirstRow) { + add2Cells(table, "Run-time Criteria : ", " "); + isFirstRow = false; + } + + IdNameValue value = (IdNameValue)it.next(); + if(!value.getId().trim().equals("BLANK")) + //System.out.println("PDFREPORTHANDLER " + value.getId()+" : "+value.getName()); + add2Cells(table, value.getId()+" : ",value.getName().replaceAll("~",",")); + //add2Cells(table, rr.getFormFieldComments(request), " "); + } + addEmptyRows(table,1); + doc.add(table); + + } else { + it = al.iterator(); + if(it.hasNext()) { + //add2Cells(table, "Run-time Criteria : ", " "); + addEmptyRows(table,1); + doc.add(table); + //com.lowagie.text.html.HtmlParser.parse(doc, new StringReader(rr.getFormFieldComments(request))); + ArrayList p = HTMLWorker.parseToList(new StringReader(rr.getFormFieldComments(request).replaceAll("~",",")), style); + + for (int k = 0; k < p.size(); ++k){ + doc.add((com.lowagie.text.Element)p.get(k)); + } + } + } + + return doc; + } + + + private Document paintDashboardCoverPage(Document doc, ReportRuntime rrDashRep, ReportRuntime firstReportRuntimeObj, HttpServletRequest request) throws IOException, DocumentException { + + //System.out.println("PDFREPORTHANDLER STARTED ... " ); + float firstColumnSize = Globals.getCoverPageFirstColumnSize(); + float[] relativeWidths = {firstColumnSize,1f-firstColumnSize}; + PdfPTable table = new PdfPTable(relativeWidths); + table.getDefaultCell().setBorderWidth(0); + addEmptyRows(table,6); + + add2Cells(table,"Report Name : ",rrDashRep.getReportName()); + add2Cells(table,"Description : ",rrDashRep.getReportDescr()); + if(Globals.getSessionInfoForTheCoverPage().length()>0) { + String nameValue[] = Globals.getSessionInfoForTheCoverPage().split(","); + String name=nameValue[0]; + String value=nameValue[1]; + add2Cells(table,name+" : ",(AppUtils.getRequestNvlValue(request, value).length()>0?AppUtils.getRequestNvlValue(request, value):nvl((String)request.getSession().getAttribute(value)))); + } + + if(Globals.isCreatedOwnerInfoNeeded()) { + add2Cells(table,"Created By : ",AppUtils.getUserName(rrDashRep.getCreateID())); + add2Cells(table,"Owner : ",AppUtils.getUserName(rrDashRep.getOwnerID())); + } + if(Globals.displayLoginIdForDownloadedBy()) + add2Cells(table,"Downloaded by : ",AppUtils.getUserBackdoorLoginId(request)); + else + add2Cells(table,"Downloaded by : ",AppUtils.getUserName(request)); + + addEmptyRows(table,1); + + boolean isFirstRow = true; + ArrayList al = firstReportRuntimeObj.getParamNameValuePairsforPDFExcel(request, 2); + Iterator it = al.iterator(); + addEmptyRows(table,1); + //if(!Globals.customizeFormFieldInfo()) { + if(firstReportRuntimeObj.getFormFieldComments(request).length()<=0) { + while(it.hasNext()) { + + if(isFirstRow) { + add2Cells(table, "Run-time Criteria : ", " "); + isFirstRow = false; + } + + IdNameValue value = (IdNameValue)it.next(); + if(!value.getId().trim().equals("BLANK")) + //System.out.println("PDFREPORTHANDLER " + value.getId()+" : "+value.getName()); + add2Cells(table, value.getId()+" : ",value.getName()); + //add2Cells(table, rr.getFormFieldComments(request), " "); + } + addEmptyRows(table,1); + doc.add(table); + + } else { + it = al.iterator(); + if(it.hasNext()) { + //add2Cells(table, "Run-time Criteria : ", " "); + addEmptyRows(table,1); + doc.add(table); + //com.lowagie.text.html.HtmlParser.parse(doc, new StringReader(rr.getFormFieldComments(request))); + HTMLWorker worker = new HTMLWorker(doc); + StyleSheet style = new StyleSheet(); + style.loadTagStyle("body", "leading", "16,0"); + ArrayList p = HTMLWorker.parseToList(new StringReader(firstReportRuntimeObj.getFormFieldComments(request)), style); + + for (int k = 0; k < p.size(); ++k){ + doc.add((com.lowagie.text.Element)p.get(k)); + } + } + } + + return doc; + } + + + public static void addEmptyRows(PdfPTable table, int rows) throws DocumentException { + for (int i=0; i0?AppUtils.getRequestNvlValue(request, "multiplePieOrder").equals("row"):rr.isMultiplePieOrderByRow())) ); + additionalChartOptionsMap.put("multiplePieLabelDisplay", AppUtils.getRequestNvlValue(request, "multiplePieLabelDisplay").length()>0? AppUtils.getRequestNvlValue(request, "multiplePieLabelDisplay"):rr.getMultiplePieLabelDisplay()); + additionalChartOptionsMap.put("chartDisplay", new Boolean(AppUtils.getRequestNvlValue(request, "chartDisplay").length()>0? AppUtils.getRequestNvlValue(request, "chartDisplay").equals("3D"):rr.isChartDisplayIn3D())); + } else if (chartType.equals(AppConstants.GT_BAR_3D)) { + additionalChartOptionsMap.put("chartOrientation", new Boolean((AppUtils.getRequestNvlValue(request, "chartOrientation").length()>0?AppUtils.getRequestNvlValue(request, "chartOrientation").equals("vertical"):rr.isVerticalOrientation())) ); + additionalChartOptionsMap.put("secondaryChartRenderer", AppUtils.getRequestNvlValue(request, "secondaryChartRenderer").length()>0? AppUtils.getRequestNvlValue(request, "secondaryChartRenderer"):rr.getSecondaryChartRenderer()); + additionalChartOptionsMap.put("chartDisplay", new Boolean(AppUtils.getRequestNvlValue(request, "chartDisplay").length()>0? AppUtils.getRequestNvlValue(request, "chartDisplay").equals("3D"):rr.isChartDisplayIn3D())); + additionalChartOptionsMap.put("lastSeriesALineChart", new Boolean(rr.isLastSeriesALineChart())); + } else if (chartType.equals(AppConstants.GT_LINE)) { + additionalChartOptionsMap.put("chartOrientation", new Boolean((AppUtils.getRequestNvlValue(request, "chartOrientation").length()>0?AppUtils.getRequestNvlValue(request, "chartOrientation").equals("vertical"):rr.isVerticalOrientation())) ); + //additionalChartOptionsMap.put("secondaryChartRenderer", AppUtils.getRequestNvlValue(request, "secondaryChartRenderer").length()>0? AppUtils.getRequestNvlValue(request, "secondaryChartRenderer"):rr.getSecondaryChartRenderer()); + additionalChartOptionsMap.put("chartDisplay", new Boolean(AppUtils.getRequestNvlValue(request, "chartDisplay").length()>0? AppUtils.getRequestNvlValue(request, "chartDisplay").equals("3D"):rr.isChartDisplayIn3D())); + additionalChartOptionsMap.put("lastSeriesABarChart", new Boolean(rr.isLastSeriesABarChart())); + } else if (chartType.equals(AppConstants.GT_TIME_DIFFERENCE_CHART)) { + additionalChartOptionsMap.put("intervalFromDate",AppUtils.getRequestNvlValue(request, "intervalFromDate").length()>0?AppUtils.getRequestNvlValue(request, "intervalFromDate"):rr.getIntervalFromdate()); + additionalChartOptionsMap.put("intervalToDate", AppUtils.getRequestNvlValue(request, "intervalToDate").length()>0? AppUtils.getRequestNvlValue(request, "intervalToDate"):rr.getIntervalTodate()); + additionalChartOptionsMap.put("intervalLabel", AppUtils.getRequestNvlValue(request, "intervalLabel").length()>0? AppUtils.getRequestNvlValue(request, "intervalLabel"):rr.getIntervalLabel()); + } else if (chartType.equals(AppConstants.GT_REGRESSION)) { + additionalChartOptionsMap.put("regressionType",AppUtils.getRequestNvlValue(request, "regressionType").length()>0?AppUtils.getRequestNvlValue(request, "regressionType"):rr.getLinearRegression()); + additionalChartOptionsMap.put("linearRegressionColor",nvl(rr.getLinearRegressionColor())); + additionalChartOptionsMap.put("expRegressionColor",nvl(rr.getExponentialRegressionColor())); + additionalChartOptionsMap.put("maxRegression",nvl(rr.getCustomizedRegressionPoint())); + } else if (chartType.equals(AppConstants.GT_STACK_BAR) ||chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR) || chartType.equals(AppConstants.GT_STACKED_HORIZ_BAR_LINES) + || chartType.equals(AppConstants.GT_STACKED_VERT_BAR) || chartType.equals(AppConstants.GT_STACKED_VERT_BAR_LINES) + ) { + additionalChartOptionsMap.put("overlayItemValue",new Boolean(nvl(rr.getOverlayItemValueOnStackBar()).equals("Y"))); + } + additionalChartOptionsMap.put("legendPosition", nvl(rr.getLegendPosition())); + additionalChartOptionsMap.put("hideToolTips", new Boolean(rr.hideChartToolTips())); + additionalChartOptionsMap.put("hideLegend", new Boolean(AppUtils.getRequestNvlValue(request, "hideLegend").length()>0? AppUtils.getRequestNvlValue(request, "hideLegend").equals("Y"):rr.hideChartLegend())); + additionalChartOptionsMap.put("labelAngle", nvl(rr.getLegendLabelAngle())); + additionalChartOptionsMap.put("maxLabelsInDomainAxis", nvl(rr.getMaxLabelsInDomainAxis())); + additionalChartOptionsMap.put("rangeAxisLowerLimit", nvl(rr.getRangeAxisLowerLimit())); + additionalChartOptionsMap.put("rangeAxisUpperLimit", nvl(rr.getRangeAxisUpperLimit())); + + + boolean totalOnChart = false; + totalOnChart = AppUtils.getRequestNvlValue(request, "totalOnChart").equals("Y"); + String filename = null; + ArrayList graphURL = new ArrayList(); + ArrayList chartNames = new ArrayList(); + ArrayList fileNames = new ArrayList(); + List l = rr.getAllColumns(); + List lGroups = rr.getAllChartGroups(); + HashMap mapYAxis = rr.getAllChartYAxis(rr.getReportParamValues()); + String chartLeftAxisLabel = rr.getFormFieldFilled(nvl(rr.getChartLeftAxisLabel())); + String chartRightAxisLabel = rr.getFormFieldFilled(nvl(rr.getChartRightAxisLabel())); + int displayTotalOnChart = 0; + HashMap formValues = Globals.getRequestParamtersMap(request, false); + + for (Iterator iterC = l.iterator(); iterC.hasNext();) { + DataColumnType dc = (DataColumnType) iterC.next(); + if(nvl(dc.getColName()).equals(AppConstants.RI_CHART_TOTAL_COL)) { + displayTotalOnChart = 1; + } + } + + String legendColumnName = (rr.getChartLegendColumn()!=null)?rr.getChartLegendColumn().getDisplayName():"Legend Column"; + + + + if(ds!=null) + { + if(rr.hasSeriesColumn() && chartType.equals(AppConstants.GT_TIME_SERIES) && (lGroups==null || lGroups.size() <= 0)) { /** Check whether Report has only category columns if so then all the columns will open in seperate chart - sundar**/ + for (int i=0; i0) + tempChartGroupCurrent = chartGroupOrg.substring(0,chartGroupOrg.lastIndexOf("|")); + if(i>0) tempChartGroupPrev = ((String) lGroups.get(i-1)).substring(0,((String) lGroups.get(i-1)).lastIndexOf("|")); + //System.out.println("TEMPCHARTGROUP " + tempChartGroupCurrent + " " + tempChartGroupPrev); + if(tempChartGroupCurrent.equals(tempChartGroupPrev)) continue; + //System.out.println("CHARTGROUPORG " + chartGroupOrg + " " + lGroups) ; + //String chartGroup = chartGroupOrg.substring(0,chartGroupOrg.lastIndexOf("|")); + String chartGroup = chartGroupOrg; + + //System.out.println("$$$$CHARTGROUP in JSP " +chartGroup+ " "+ chartGroupOrg ); + //System.out.println(" rr.getChartGroupDisplayNamesList(chartGroup) " + rr.getChartGroupDisplayNamesList(chartGroup)); + //System.out.println(" rr.getChartGroupColumnColorsList(chartGroup) " + rr.getChartGroupColumnColorsList(chartGroup)); + //System.out.println(" rr.getChartGroupColumnAxisList(chartGroup) " + rr.getChartGroupColumnAxisList(chartGroup)); + //System.out.println(" rr.getChartGroupValueColumnAxisList(chartGroupOrg) " + rr.getChartGroupValueColumnAxisList(chartGroupOrg)); + + downloadFileName = AppUtils.getTempFolderPath()+"cr_"+pb.getUserId()+"_"+request.getSession().getId()+"_"+rr.getReportID()+"_"+i+".png"; + String chartTitle = (Globals.getDisplayChartTitle()? (chartGroup!=null && chartGroup.indexOf("|") > 0 ?chartGroup.substring(0,chartGroup.lastIndexOf("|")):rr.getReportName()):""); + chartTitle = rr.getFormFieldFilled(chartTitle); + String leftAxisLabel = ""; + //if(!rr.isChartMultiSeries()) { + if(!rr.isMultiSeries()) { + leftAxisLabel = ((chartYAxis!=null && chartYAxis.indexOf("|") > 0) ? chartYAxis.substring(0,chartYAxis.lastIndexOf("|")): chartLeftAxisLabel ); + } else { + leftAxisLabel = chartLeftAxisLabel; + } + + filename = null;/*(String) ChartGen.generateChart( chartType, + request.getSession(), + ds, + legendColumnName, + leftAxisLabel, + chartRightAxisLabel, + ((chartType.indexOf("Stacked")>0 || chartType.equals(AppConstants.GT_PIE_MULTIPLE) || chartType.equals(AppConstants.GT_BAR_3D))?rr.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartGroupDisplayNamesList(chartGroup, formValues)), + ((chartType.indexOf("Stacked")>0 || chartType.equals(AppConstants.GT_PIE_MULTIPLE) || chartType.equals(AppConstants.GT_BAR_3D))?rr.getChartColumnColorsList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartGroupColumnColorsList(chartGroup, formValues)), + ((chartType.indexOf("Stacked")>0 || chartType.equals(AppConstants.GT_PIE_MULTIPLE) || chartType.equals(AppConstants.GT_BAR_3D))?rr.getChartValueColumnAxisList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartGroupValueColumnAxisList(chartGroupOrg, formValues)), + "", + chartTitle, + null, + rr.getChartWidthAsInt(), + rr.getChartHeightAsInt(), + ((chartType.indexOf("Stacked")>0 || chartType.equals(AppConstants.GT_PIE_MULTIPLE))?rr.getChartValueColumnsList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues):rr.getChartGroupValueColumnAxisList(chartGroupOrg, formValues)), + rr.hasSeriesColumn(), + //rr.isChartMultiSeries(), + rr.isMultiSeries(), + rr.getAllColumns(), + downloadFileName, + totalOnChart, + AppConstants.WEB_VERSION deviceType, + additionalChartOptionsMap, + true + );*/ + try { + Image image = Image.getInstance(downloadFileName); + images.add(image); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + catch (BadElementException e) { + e.printStackTrace(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + if(!chartType.equals(AppConstants.GT_PIE_MULTIPLE)) { + for (int i=0; i 0))) { + + if(/*chartType.equals(AppConstants.GT_TIME_SERIES) && */rr.getChartDisplayNamesList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues)!=null && rr.getChartDisplayNamesList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues).size()>0) { + downloadFileName = AppUtils.getTempFolderPath()+"cr_"+ pb.getUserId()+"_"+request.getSession().getId()+"_"+rr.getReportID()+"_All.png"; + String chartTitle = Globals.getDisplayChartTitle()? rr.getReportName():""; + chartTitle = rr.getFormFieldFilled(chartTitle); + + filename = null; /*(String) ChartGen.generateChart( chartType, + request.getSession(), + ds, + legendColumnName, + chartLeftAxisLabel, + chartRightAxisLabel, + rr.getChartDisplayNamesList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues), + rr.getChartColumnColorsList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues), + rr.getChartValueColumnAxisList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues), + "", + chartTitle, + null, + rr.getChartWidthAsInt(), + rr.getChartHeightAsInt(), + rr.getChartValueColumnsList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS, formValues), + rr.hasSeriesColumn(), + //rr.isChartMultiSeries(), + rr.isMultiSeries(), + rr.getAllColumns(), + downloadFileName, + totalOnChart, + AppConstants.WEB_VERSION, + additionalChartOptionsMap, + true + );*/ + try { + Image image = Image.getInstance(downloadFileName); + images.add(image); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + catch (BadElementException e) { + e.printStackTrace(); + + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } // Stacked Chart Check + } // else no Series Column + + }// if(ds!=null) + + }catch (Exception e) { + e.printStackTrace(); + } +// System.out.println("Total Images " + images.size()); + return images.size()>0?images:null; + + } + +/* + private boolean isImageRotate(Document doc, Image image) { + + System.out.println("image size="+image.getWidthPercentage()+ " "+ image.scaledWidth()+ + " "+image.scaledHeight()+" "+image.getXYRatio()); + System.out.println("page size = "+ doc.getPageSize().width() + " " +doc.getPageSize().height() +" "+ + doc.topMargin() + " " +doc.bottomMargin() + " " + doc.leftMargin() + " " + + doc.rightMargin()); + System.out.println(image.scaledWidth()/image.scaledHeight()); + System.out.println((PageEvent.getPageWidth(doc)/PageEvent.getPageHeight(doc))); +// System.out.println(doc.getPageSize().getRotation()); + + float image_w = image.scaledWidth(); + float image_h = image.scaledHeight(); + float image_ratio = image_w/image_h; + + float page_w = PageEvent.getPageWidth(doc); + float page_h = PageEvent.getPageHeight(doc); + float page_ratio = page_w/page_h; + + return (image_w > page_w && image_ratio > page_ratio) || + (image_h > page_h && image_ratio < page_ratio); + + } + +*/ + 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; + 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 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; i0) { + table.getDefaultCell().setColspan(rh.getColSpan()); + table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx)); + table.addCell(new Paragraph(strip.stripHtml(rh.getRowTitle()),rowHeaderFont)); + } + } + } + + private void addRowColumns(PdfPTable table, DataRow dr, int idx) { + + table.getDefaultCell().setColspan(1); + + for(dr.resetNext();dr.hasNext();) + { + DataValue dv = dr.getNext(); + //System.out.println(columnCount +" --> "+dv); + 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(dv.getDisplayValue().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() + } + } + + + private void addTotalRowColumns(PdfPTable table, DataRow dr, int idx) { + + table.getDefaultCell().setColspan(1); + dr.resetNext(); + dr.getNext(); + for(;dr.hasNext();) + { + DataValue dv = dr.getNext(); + //System.out.println(columnCount +" --> "+dv); + 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(dv.getDisplayValue().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() + } + } + + + private void formatterCell(HtmlFormatter fmt, PdfPCell cell) { + + if(nvl(fmt.getBgColor()).trim().length()>0) + cell.setBackgroundColor(Color.decode(fmt.getBgColor())); + if(nvl(fmt.getAlignment()).trim().length()>0) + cell.setHorizontalAlignment(ElementTags.alignmentValue(fmt.getAlignment())); + } + + private void cellFormatterFont(HtmlFormatter fmt, Font font) { + + if(fmt.isBold()) + font.setStyle(Font.BOLD); + if(fmt.isItalic()) + font.setStyle(Font.ITALIC); + if(fmt.isUnderline()) + font.setStyle(Font.UNDERLINE); + if(fmt.getFontColor().trim().length()>0) + font.setColor(Color.decode(fmt.getFontColor())); + if(fmt.getFontSize().trim().length()>0) + font.setSize(Float.parseFloat(fmt.getFontSize())-Globals.getDataFontSizeOffset()); +// if(fmt.getFontFace().trim().length()>0) +// cellFont.setFamily() + + } + + private Color getRowBackgroundColor(DataRow dr, int idx) { + + Color color = Color.decode(Globals.getDataDefaultBackgroundHexCode()); + + HtmlFormatter rhf = dr.getRowFormatter(); + if(rhf!=null && nvl(rhf.getBgColor()).trim().length()>0) + + color = Color.decode(rhf.getBgColor()); + + else if(pb.isAlternateColor() && idx%2==0) + + color = Color.decode(Globals.getDataBackgroundAlternateHexCode()); + + return color; + + } + + private int getTotalVisbleColumns(ReportData rd) { + + int totalVisbleColumn = rd.getTotalColumnCount(); + for(rd.reportDataRows.resetNext();rd.reportDataRows.hasNext();) + { + DataRow dr = rd.reportDataRows.getNext(); + for(dr.resetNext();dr.hasNext();) { + DataValue dv = dr.getNext(); + if(!dv.isVisible()) totalVisbleColumn--; + } + + break; + } + + return totalVisbleColumn; + } + + /* + private int getFirstRowIndex(ReportRuntime rr) { + return (pb.getCurrentPage()>0)?pb.getCurrentPage()*rr.getPageSize()+1 : 1; + } + */ + private float[] getRelativeWidths(ReportData rd, boolean crosstab){ + + int totalColumns = getTotalVisbleColumns(rd); + /*if(rd.reportTotalRowHeaderCols!=null) { + totalColumns += 1; + }*/ + if(crosstab) { + totalColumns += 1; + } + + if(totalColumns == 0 ) + totalColumns=1; + + float[] relativeWidths = new float[totalColumns]; + //initial widths are even + for(int i=0; i0) { + //PdfPTable table = new PdfPTable(1); + table.setWidthPercentage(100f); + table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + table.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM); + + + Font font = FontFactory.getFont(FONT_FAMILY, + FONT_SIZE-2f, + Font.BOLD, + Color.BLACK); + + //addEmptyRows(table,1); + table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + //table.getDefaultCell().setBackgroundColor(Color.decode(Globals.getDataTableHeaderBackgroundFontColor())); + title = Utils.replaceInString(title, "
", " "); + title = Utils.replaceInString(title, "
", " "); + title = Utils.replaceInString(title, "
", " "); + title = strip.stripHtml(nvl(title).trim()); + //subtitle = Utils.replaceInString(subtitle, "
", " "); + //subtitle = Utils.replaceInString(subtitle, "
", " "); + //subtitle = Utils.replaceInString(subtitle, "
", " "); + //subtitle = strip.stripHtml(nvl(subtitle).trim()); + StyleSheet styles = new StyleSheet(); + + HTMLWorker htmlWorker = new HTMLWorker(document); + ArrayList cc = new ArrayList(); + cc = htmlWorker.parseToList(new StringReader(subtitle), styles); + + Phrase p1 = new Phrase(); + for (int i = 0; i < cc.size(); i++){ + Element elem = (Element)cc.get(i); + ArrayList al = elem.getChunks(); + for (int j = 0; j < al.size(); j++) { + Chunk chunk = (Chunk) al.get(j); + chunk.font().setSize(6.0f); + } + p1.add(elem); + } + //cell = new PdfPCell(p1); + StyleSheet style = new StyleSheet(); + style.loadTagStyle("font", "font-size", "3"); + style.loadTagStyle("font", "size", "3"); + styles.loadStyle("pdfFont1", "size", "11px"); + styles.loadStyle("pdfFont1", "font-size", "11px"); + /*ArrayList p = HTMLWorker.parseToList(new StringReader(nvl(title)), style); + for (int k = 0; k < p.size(); ++k){ + document.add((com.lowagie.text.Element)p.get(k)); + }*/ + //p1.font().setSize(3.0f); + PdfPCell titleCell = new PdfPCell(new Phrase(title, font)); + titleCell.setColspan(rr.getVisibleColumnCount()); + PdfPCell subtitleCell = new PdfPCell(p1); + subtitleCell.setColspan(rr.getVisibleColumnCount()); + titleCell.setHorizontalAlignment(1); + subtitleCell.setHorizontalAlignment(1); + table.addCell(titleCell); + table.addCell(subtitleCell); + //document.add(table); + } + return table; + } + + + private void paintPdfReportFooter(HttpServletRequest request, Document document, ReportRuntime rr, float[] f) + throws DocumentException, IOException { + + 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 title = (String) session.getAttribute("FOOTER_"+index); + if(nvl(title).length()>0) { + PdfPTable table = new PdfPTable(1); + table.setWidthPercentage(100f); + table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + table.getDefaultCell().setVerticalAlignment(Rectangle.ALIGN_BOTTOM); + + Font font = FontFactory.getFont(FONT_FAMILY, + FONT_SIZE-3f, + Font.BOLD, + Color.BLACK); + + + //addEmptyRows(table,1); + table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + //table.getDefaultCell().setBackgroundColor(Color.decode(Globals.getDataTableHeaderBackgroundFontColor())); + /*title = Utils.replaceInString(title, "
", " "); + title = Utils.replaceInString(title, "
", " "); + title = Utils.replaceInString(title, "
", " "); + title = strip.stripHtml(nvl(title).trim());*/ + StyleSheet style = new StyleSheet(); + + HTMLWorker htmlWorker = new HTMLWorker(document); + ArrayList cc = new ArrayList(); + cc = htmlWorker.parseToList(new StringReader(title), style); + + Phrase p1 = new Phrase(); + for (int i = 0; i < cc.size(); i++){ + Element elem = (Element)cc.get(i); + ArrayList al = elem.getChunks(); + for (int j = 0; j < al.size(); j++) { + Chunk chunk = (Chunk) al.get(j); + chunk.font().setSize(6.0f); + } + p1.add(elem); + } + +/* + HTMLWorker.parseToList(new StringReader(nvl(title)), style);*/ + PdfPCell titleCell = new PdfPCell(p1); + titleCell.setHorizontalAlignment(Element.ALIGN_LEFT); + table.addCell(titleCell); + //table. + document.add(table); + } + //return table; + } + + + private void paintPdfTableHeader(Document document, ReportData rd, PdfPTable table) + throws DocumentException { + + Font font = FontFactory.getFont(FONT_FAMILY, + FONT_SIZE+1f, + Font.BOLD, + Color.decode(Globals.getDataTableHeaderFontColor())); + //table.setHeaderRows(1); + table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); + table.getDefaultCell().setBackgroundColor(Color.decode(Globals.getDataTableHeaderBackgroundFontColor())); + String title = ""; + + boolean firstPass = true; + + /*if(rd.reportTotalRowHeaderCols!=null) { + if(firstPass) { + table.addCell(new Paragraph("No.", font)); + firstPass = false; + } + }*/ + for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) + { + if(firstPass) { + for(rd.reportRowHeaderCols.resetNext();rd.reportRowHeaderCols.hasNext();) { + /*if(firstPass) { + table.addCell(new Paragraph("No.", font)); + firstPass = false; + } else {*/ + RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); + title = rhc.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + table.addCell(new Paragraph(title,font)); + //} + } + } + + ColumnHeaderRow chr = rd.reportColumnHeaderRows.getNext(); + for (chr.resetNext(); chr.hasNext();) { + ColumnHeader ch = chr.getNext(); + //System.out.println(ch); + if(ch.isVisible()) { + title = ch.getColumnTitle(); + title = Utils.replaceInString(title,"_nl_", " \n"); + table.addCell(new Paragraph(title,font)); + } + } + } + } + + public static String currentTime(String pattern) { + try { + SimpleDateFormat oracleDateFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss"); + Date sysdate = oracleDateFormat.parse(ReportLoader.getSystemDateTime()); + SimpleDateFormat dtimestamp = new SimpleDateFormat(Globals.getScheduleDatePattern()); + return dtimestamp.format(sysdate)+" "+Globals.getTimeZone(); + //paramList.add(new IdNameValue("DATE", dtimestamp.format(sysdate)+" "+Globals.getTimeZone())); + } catch(Exception ex) {} + + SimpleDateFormat s = new SimpleDateFormat(pattern); + s.setTimeZone(TimeZone.getTimeZone(Globals.getTimeZone())); + //System.out.println("^^^^^^^^^^^^^^^^^^^^ " + Calendar.getInstance().getTime()); + //System.out.println("^^^^^^^^^^^^^^^^^^^^ " + s.format(Calendar.getInstance().getTime())); + return s.format(Calendar.getInstance().getTime()); + } + + private PdfBean preparePdfBean(HttpServletRequest request,ReportRuntime rr) { + PdfBean pb = new PdfBean(); + + pb.setUserId(AppUtils.getUserID(request)); + + pb.setWhereToShowPageNumber(Globals.getPageNumberPosition()); + pb.setAlternateColor(Globals.isDataAlternateColor()); + pb.setTimestampPattern(Globals.getDatePattern()); + + int temp = -1; + try { + temp = Integer.parseInt(request.getParameter(AppConstants.RI_NEXT_PAGE)); + } catch (NumberFormatException e) {} + pb.setCurrentPage(temp); + + //pb.setPortrait( trueORfalse(request.getParameter("isPortrait"),true)); + pb.setPortrait(trueORfalse(rr.getPDFOrientation() == "portait"?"true":"false", true)); + //pb.setCoverPageIncluded( trueORfalse(request.getParameter("isCoverPageIncluded"), true)); + //if(Globals.isCoverPageNeeded()) { + pb.setCoverPageIncluded(Globals.isCoverPageNeeded()?rr.isPDFCoverPage():false); + //} + pb.setTitle(nvl(request.getParameter("title"))); + pb.setPagesize(nvls(request.getParameter("pagesize"),"LETTER")); + + pb.setLogo1Url(rr.getPDFLogo1()); + pb.setLogo2Url(rr.getPDFLogo2()); + pb.setLogo1Size(rr.getPDFLogo1Size()); + pb.setLogo2Size(rr.getPDFLogo2Size()); + pb.setFullWebContextPath(request.getSession().getServletContext().getRealPath(File.separator)); + + + pb.setDisplayChart(nvl(rr.getChartType()).trim().length()>0 && rr.getDisplayChart()); + + String id = nvl(request.getParameter("pdfAttachmentKey")).trim(); + String log_id = nvl(request.getParameter("log_id")).trim(); + if(id.length()>0 && log_id.length()>0) + pb.setAttachmentOfEmail(true); + + return pb; + } + + private boolean trueORfalse(String str) { + return (str != null) && (str.equalsIgnoreCase("true")); + } + + private boolean trueORfalse(String str,boolean b_default) { + return str==null ? b_default : (str.equalsIgnoreCase("true")); + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/BarChartOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/BarChartOptions.java new file mode 100644 index 00000000..7879be48 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/BarChartOptions.java @@ -0,0 +1,93 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +public class BarChartOptions { + private boolean verticalOrientation; + private boolean stackedChart; + private boolean displayBarControls; + private boolean xAxisDateType; + private boolean minimizeXAxisTickers; + private boolean timeAxis; + private boolean yAxisLogScale; + + public boolean isVerticalOrientation() { + return verticalOrientation; + } + public void setVerticalOrientation(boolean verticalOrientation) { + this.verticalOrientation = verticalOrientation; + } + public boolean isStackedChart() { + return stackedChart; + } + public void setStackedChart(boolean stackedChart) { + this.stackedChart = stackedChart; + } + public boolean isDisplayBarControls() { + return displayBarControls; + } + public void setDisplayBarControls(boolean displayBarControls) { + this.displayBarControls = displayBarControls; + } + public boolean isxAxisDateType() { + return xAxisDateType; + } + public void setxAxisDateType(boolean xAxisDateType) { + this.xAxisDateType = xAxisDateType; + } + public boolean isMinimizeXAxisTickers() { + return minimizeXAxisTickers; + } + public void setMinimizeXAxisTickers(boolean minimizeXAxisTickers) { + this.minimizeXAxisTickers = minimizeXAxisTickers; + } + public boolean isTimeAxis() { + return timeAxis; + } + public void setTimeAxis(boolean timeAxis) { + this.timeAxis = timeAxis; + } + public boolean isyAxisLogScale() { + return yAxisLogScale; + } + public void setyAxisLogScale(boolean yAxisLogScale) { + this.yAxisLogScale = yAxisLogScale; + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CategoryAxisJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CategoryAxisJSON.java new file mode 100644 index 00000000..f529aa1b --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CategoryAxisJSON.java @@ -0,0 +1,42 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +public class CategoryAxisJSON extends IndexValueJSON { + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartD3Helper.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartD3Helper.java new file mode 100644 index 00000000..4660b4f7 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartD3Helper.java @@ -0,0 +1,4090 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang.time.DateUtils; +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.model.ReportHandler; +import org.onap.portalsdk.analytics.model.base.ChartSeqComparator; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.HtmlStripper; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.view.ReportData; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.web.support.UserUtils; + +public class ChartD3Helper { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ChartD3Helper.class); + + private ReportRuntime reportRuntime; + private String chartType; + + public static final long HOUR = 3600*1000; + public static final long DAY = 3600*1000*24; + public static final long MONTH = 3600*1000*24*31; + public static final long YEAR = 3600*1000*24*365; + + + public ChartD3Helper() { + + } + + /** + * @return the chartType + */ + public String getChartType() { + return chartType; + } + + /** + * @param chartType the chartType to set + */ + public void setChartType(String chartType) { + this.chartType = chartType; + } + + public ChartD3Helper(ReportRuntime rr) { + this.reportRuntime = rr; + } + + public String createVisualization(String reportID, HttpServletRequest request) throws RaptorException { + //From annotations chart + clearReportRuntimeBackup(request); + + //HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); + final Long user_id = new Long((long) UserUtils.getUserId(request)); + //String action = request.getParameter(AppConstants.RI_ACTION); + //String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + + ReportHandler rh = new ReportHandler(); + ReportData reportData = null; + HashMap chartOptionsMap = new HashMap(); + try { + if(reportID !=null) { + reportRuntime = rh.loadReportRuntime(request, reportID, true, 1); + setChartType(reportRuntime.getChartType()); + reportData = reportRuntime.loadReportData(0, user_id.toString(), 10000,request, false); + } + + + + 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"; + + + 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); + + + } catch (RaptorException ex) { + ex.printStackTrace(); + } + return createVisualization(reportRuntime, chartOptionsMap, request); + } + + public String createVisualization(ReportRuntime reportRuntime, HttpServletRequest request) throws RaptorException { + + 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"; + + HashMap chartOptionsMap = new HashMap(); + chartOptionsMap.put("width", reportRuntime.getChartWidth()); + chartOptionsMap.put("height", reportRuntime.getChartHeight()); + chartOptionsMap.put("animation", new Boolean(reportRuntime.isAnimateAnimatedChart()).toString()); + chartOptionsMap.put("rotateLabels", rotateLabelsStr); + chartOptionsMap.put("staggerLabels", "false"); + chartOptionsMap.put("showMaxMin", "false"); + chartOptionsMap.put("showControls", new Boolean(reportRuntime.displayBarControls()).toString()); + chartOptionsMap.put("showLegend", new Boolean(!reportRuntime.hideChartLegend()).toString()); + chartOptionsMap.put("topMargin", reportRuntime.getTopMargin()!=null?reportRuntime.getTopMargin().toString():"30"); + chartOptionsMap.put("bottomMargin", reportRuntime.getBottomMargin()!=null?reportRuntime.getBottomMargin().toString():"50"); + chartOptionsMap.put("leftMargin", reportRuntime.getLeftMargin()!=null?reportRuntime.getLeftMargin().toString():"100"); + chartOptionsMap.put("rightMargin", reportRuntime.getRightMargin()!=null?reportRuntime.getRightMargin().toString():"160"); + chartOptionsMap.put("showTitle", new Boolean(reportRuntime.displayChartTitle()).toString()); + chartOptionsMap.put("subType", (AppUtils.nvl(reportRuntime.getTimeSeriesRender()).equals("area")?reportRuntime.getTimeSeriesRender():"")); + chartOptionsMap.put("stacked", new Boolean(reportRuntime.isChartStacked()).toString()); + chartOptionsMap.put("horizontalBar", new Boolean(reportRuntime.isHorizontalOrientation()).toString()); + chartOptionsMap.put("timeAxis", new Boolean(reportRuntime.isTimeAxis()).toString()); + chartOptionsMap.put("barReduceXAxisLabels", new Boolean(reportRuntime.isLessXaxisTickers()).toString()); + + chartOptionsMap.put("logScale", new Boolean(reportRuntime.isLogScale()).toString()); + chartOptionsMap.put("precision", "2"); + + + + return createVisualization(reportRuntime, chartOptionsMap, request); + } + + public String createVisualization(ReportRuntime reportRuntime, HashMap chartOptionsMap, HttpServletRequest request) throws RaptorException { + + //String width, String height, boolean animation, String rotateLabels, boolean staggerLabels, boolean showMaxMin, boolean showLegend, boolean showControls, String topMargin, String bottomMargin, boolean showTitle, String subType + + boolean isEmbedded = false; + if(request.getParameter("embedded")!=null) { + isEmbedded = true; + } + String width = chartOptionsMap.get("width"); + String height = chartOptionsMap.get("height"); + boolean animation = getBooleanValue(chartOptionsMap.get("animation"), true); + String rotateLabels = chartOptionsMap.get("rotateLabels"); + boolean staggerLabels = getBooleanValue(chartOptionsMap.get("staggerLabels")); + boolean showMaxMin = getBooleanValue(chartOptionsMap.get("showMaxMin"), false); + boolean showLegend = getBooleanValue(chartOptionsMap.get("showLegend"), true); + boolean showControls = getBooleanValue(chartOptionsMap.get("showControls"), true); + String topMargin = chartOptionsMap.get("topMargin"); + String bottomMargin = chartOptionsMap.get("bottomMargin"); + String leftMargin = chartOptionsMap.get("leftMargin"); + String rightMargin = chartOptionsMap.get("rightMargin"); + boolean showTitle = getBooleanValue(chartOptionsMap.get("showTitle"), true); + String subType = chartOptionsMap.get("subType"); + boolean stacked = getBooleanValue(chartOptionsMap.get("stacked"), false); + boolean horizontalBar = getBooleanValue(chartOptionsMap.get("horizontalBar"), false); + boolean barRealTimeAxis = getBooleanValue(chartOptionsMap.get("barRealTimeAxis"), true); + boolean barReduceXAxisLabels= getBooleanValue(chartOptionsMap.get("barReduceXAxisLabels"), false); + boolean timeAxis = getBooleanValue(chartOptionsMap.get("timeAxis"), true); + + + boolean logScale = getBooleanValue(chartOptionsMap.get("logScale"), false); + + int precision = 2; + + try { + precision = Integer.parseInt(chartOptionsMap.get("precision")); + } catch (NumberFormatException ex) { + + } + + final Long user_id = new Long((long) UserUtils.getUserId(request)); + + HttpSession session = null; + session = request.getSession(); + String chartType = reportRuntime.getChartType(); + List l = reportRuntime.getAllColumns(); + List lGroups = reportRuntime.getAllChartGroups(); + HashMap mapYAxis = reportRuntime.getAllChartYAxis(reportRuntime.getReportParamValues()); + //ReportParamValues reportParamValues = reportRuntime.getReportParamValues(); + String chartLeftAxisLabel = reportRuntime.getFormFieldFilled(nvl(reportRuntime.getChartLeftAxisLabel())); + String chartRightAxisLabel = reportRuntime.getFormFieldFilled(nvl(reportRuntime.getChartRightAxisLabel())); + + boolean multipleSeries = reportRuntime.isMultiSeries(); + + java.util.HashMap formValues = null; + formValues = getRequestParametersMap(reportRuntime, request); + + + String legendColumnName = (reportRuntime.getChartLegendColumn()!=null)?reportRuntime.getChartLegendColumn().getDisplayName():"Legend Column"; + boolean displayChart = (nvl(chartType).length()>0)&&reportRuntime.getDisplayChart(); + HashMap additionalChartOptionsMap = new HashMap(); + + StringBuffer wholeScript = new StringBuffer(""); + + String title = reportRuntime.getReportTitle(); + + title = parseTitle(title, formValues); + + String chartScriptsPath = (isEmbedded?AppUtils.getChartScriptsPath(""):AppUtils.getChartScriptsPath()); + + if(displayChart) { + DataSet ds = null; + try { + if (!(chartType.equals(AppConstants.GT_HIERARCHICAL) || chartType.equals(AppConstants.GT_HIERARCHICAL_SUNBURST) || chartType.equals(AppConstants.GT_ANNOTATION_CHART))) { + ds = (DataSet) loadChartData(new Long(user_id).toString(), request); + } else if(chartType.equals(AppConstants.GT_ANNOTATION_CHART)) { + String reportSQL = reportRuntime.getWholeSQL(); + String dbInfo = reportRuntime.getDBInfo(); + ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); + if(ds.getRowCount()<=0) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + logger.debug(EELFLoggerDelegate.debugLogger, (chartType.toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " DATA IS EMPTY")); + logger.debug(EELFLoggerDelegate.debugLogger, ("QUERY - " + reportSQL)); + logger.debug(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + } + } else if(chartType.equals(AppConstants.GT_HIERARCHICAL)||chartType.equals(AppConstants.GT_HIERARCHICAL_SUNBURST)) { + String reportSQL = reportRuntime.getWholeSQL(); + String dbInfo = reportRuntime.getDBInfo(); + ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); + } + } catch (RaptorException ex) { + //throw new RaptorException("Error while loading chart data", ex); + logger.error(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + logger.error(EELFLoggerDelegate.debugLogger, (chartType.toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " ERROR THROWN FOR GIVEN QUERY ")); + logger.error(EELFLoggerDelegate.debugLogger, ("QUERY - " + reportRuntime.getWholeSQL())); + logger.error(EELFLoggerDelegate.debugLogger, ("ERROR STACK TRACE" + ex.getMessage())); + logger.error(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + + } + if(ds==null) { + //displayChart = false; + if(chartType.equals(AppConstants.GT_ANNOTATION_CHART)) + ds = new DataSet(); + else + displayChart = false; + } + if(displayChart) { + + if (chartType.equals(AppConstants.GT_BAR_3D)) { + + // get category if not give the column name for the data column use this to develop series. + boolean hasCategoryAxis = reportRuntime.hasSeriesColumn(); + + boolean hasCustomizedChartColor = false; + int flag = 0; + flag = hasCategoryAxis?1:0; + Object uniqueElements [] = null; + ArrayList uniqueElementsList = new ArrayList(); + Object uniqueXAxisElements[] = null; + ArrayList ts = new ArrayList(); + //Set ts1 = new HashSet(); + ArrayList ts1 = new ArrayList(); + HashMap columnMap = new HashMap(); + String uniqueXAxisStr = ""; + if(!timeAxis){ + for (int i = 0; i < ds.getRowCount(); i++) { + uniqueXAxisStr = ds.getString(i, 0); + ts1.add(uniqueXAxisStr); + } + } + uniqueElementsList.addAll(ts1); + uniqueXAxisElements = ts1.toArray(); + + if(flag == 1) { + StringBuffer catStr = new StringBuffer(""); + String color=""; + for (int i = 0; i < ds.getRowCount(); i++) { + catStr = new StringBuffer(""); + catStr.append(ds.getString(i, 2)); + try { + if(ds.getString(i, "chart_color")!=null) { + color = ds.getString(i, "chart_color"); + hasCustomizedChartColor = true; + catStr.append("|"+color); + } + } catch (ArrayIndexOutOfBoundsException ex) { + //System.out.println("No Chart Color"); + } + + if(catStr.length()>0) { + //duplicates are avoided + if(!ts.contains(catStr.toString())) + ts.add(catStr.toString()); + + } + /* Get Chart LeftAxis Label even from Range Axis definition. */ + DataColumnType dct = null; + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if(nvl(chartLeftAxisLabel).length()<=0) { + chartLeftAxisLabel = nvl(dct.getYAxis()); + chartLeftAxisLabel = (chartLeftAxisLabel.indexOf("|")!=-1)?chartLeftAxisLabel.substring(0,chartLeftAxisLabel.indexOf("|")):""; + } + } + } + + } + //Object uniqueElements [] = ts.toArray(); + //SortedSet s = Collections.synchronizedSortedSet(ts); + uniqueElements = ts.toArray(); + } else { + DataColumnType dct = null; + List yTextSeries = reportRuntime.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues); + //if(columnValuesList.size() == 1) { + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + + if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if((dct.isChartSeries()!=null && dct.isChartSeries().booleanValue()) || (dct.getChartSeq()!=null && dct.getChartSeq()>0) ) { + + if(nvl(dct.getChartColor()).length()>0) hasCustomizedChartColor = true; + if(hasCustomizedChartColor) { + //duplicates are avoided + if(!ts.contains(dct.getDisplayName()+"|"+nvl(dct.getChartColor()))) + ts.add(dct.getDisplayName()+"|"+nvl(dct.getChartColor())); + } else { + //duplicates are avoided + if(!ts.contains(dct.getDisplayName())) + ts.add(dct.getDisplayName()); + } + if(nvl(chartLeftAxisLabel).length()<=0) { + chartLeftAxisLabel = nvl(dct.getYAxis()); + chartLeftAxisLabel = (chartLeftAxisLabel.indexOf("|")!=-1)?chartLeftAxisLabel.substring(0,chartLeftAxisLabel.indexOf("|")):""; + } + columnMap.put(dct.getDisplayName(), dct.getColId()); + /* + ts.add(dct.getDisplayName()); + if(nvl(chartLeftAxisLabel).length()<=0) { + chartLeftAxisLabel = nvl(dct.getYAxis()); + chartLeftAxisLabel = (chartLeftAxisLabel.indexOf("|")!=-1)?chartLeftAxisLabel.substring(0,chartLeftAxisLabel.indexOf("|")):""; + } + columnMap.put(dct.getDisplayName(), dct.getColId()); + */ + } + } + + } + //SortedSet s = Collections.synchronizedSortedSet(ts); + uniqueElements = ts.toArray(); + + } + + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + //wholeScript.append("") + wholeScript.append(" \n" ); + wholeScript.append(" \n"); + if(showTitle) + wholeScript.append("

" + title +"

"); + + wholeScript.append("
\n"); + //js files + wholeScript.append(""); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + //wholeScript.append(" \n"); + //wholeScript.append(" \n"); + wholeScript.append(" \n"); + //json + wholeScript.append(" \n"); + + } else if (chartType.equals(AppConstants.GT_TIME_SERIES)) { + + // get category if not give the column name for the data column use this to develop series. + boolean hasCategoryAxis = reportRuntime.hasSeriesColumn(); + + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + + int flag = 0; + flag = hasCategoryAxis?1:0; + String uniqueElements [] = null; + //TreeSet ts = new TreeSet(); + ArrayList ts = new ArrayList(); + HashMap columnMap = new HashMap(); + //check timeAxis + String dateStr = null; + java.util.Date date = null; + if( ds.getRowCount() > 0) { + dateStr = ds.getString(0, 1); + if(!timeAxis) { + date = getDateFromDateStr(dateStr); + if(date!=null) { + reportRuntime.setTimeAxis(true); + timeAxis = reportRuntime.isTimeAxis(); + + + } + } + } + + ArrayList ts1 = new ArrayList(); + ArrayList uniqueElementsList = new ArrayList(); + Object uniqueXAxisElements[] = null; + String uniqueXAxisStr = ""; + if(!timeAxis){ + for (int i = 0; i < ds.getRowCount(); i++) { + uniqueXAxisStr = ds.getString(i, 0); + ts1.add(uniqueXAxisStr); + } + } + uniqueElementsList.addAll(ts1); + uniqueXAxisElements = ts1.toArray(); + //test start + /* int TOTAL = 0; + int VALUE = 0; + int flagNull = 0; + String KEY = ""; + String COLOR = ""; + TreeSet colorList = new TreeSet(); + for (int i = 0; i < ds.getRowCount(); i++) { + VALUE = 0; + try { + VALUE = Integer.parseInt(ds.getString(i, 2)); + TOTAL = TOTAL+VALUE; + } catch (NumberFormatException ex) { + flagNull = 1; + } + KEY = ds.getString(i, 0); + try { + if(ds.getString(i, "chart_color")!=null) { + colorList.add(KEY+"|"+ds.getString(i, "chart_color")); + } + } catch (ArrayIndexOutOfBoundsException ex) { + System.out.println("No Chart Color"); + } + wholeScript.append("{ \""+ "key" +"\":\""+ KEY+"\", \""+ "y" +"\":"+VALUE+"}, \n"); + + } + StringBuffer color = new StringBuffer(""); + if(colorList.size()>0) { + SortedSet s = Collections.synchronizedSortedSet(colorList); + Object[] colorElements = (Object[]) s.toArray(); + + String element = ""; + + for (int i = 0; i < colorElements.length; i++) { + element = ((String)colorElements[i]); + color.append("'"+element.substring(element.indexOf("|")+1)+"',"); + } + color.deleteCharAt(color.length()-1); + }*/ + + //test end + boolean hasCustomizedChartColor = false; + if(flag == 1) { + StringBuffer catStr = new StringBuffer(""); + String color=""; + for (int i = 0; i < ds.getRowCount(); i++) { + catStr = new StringBuffer(""); + catStr.append(ds.getString(i, 2)); + try { + if(ds.getString(i, "chart_color")!=null) { + color = ds.getString(i, "chart_color"); + hasCustomizedChartColor = true; + catStr.append("|"+color); + } + } catch (ArrayIndexOutOfBoundsException ex) { + //System.out.println("No Chart Color"); + } + + if(catStr.length()>0) { + //duplicates are avoided + if(!ts.contains(catStr.toString())) + ts.add(catStr.toString()); + + } + } + //Object uniqueElements [] = ts.toArray(); + //SortedSet s = Collections.synchronizedSortedSet(ts); + //uniqueElements = (String[]) ts.toArray(); + DataColumnType dct = null; + List yTextSeries = reportRuntime.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues); + if(yTextSeries.size()==1) { + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + //System.out.println(dct.getDisplayName() + " " + yText); + if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if(nvl(chartLeftAxisLabel).length()<=0) { + chartLeftAxisLabel = nvl(dct.getYAxis()); + chartLeftAxisLabel = (chartLeftAxisLabel.indexOf("|")!=-1)?chartLeftAxisLabel.substring(0,chartLeftAxisLabel.indexOf("|")):""; + } + } + } + } + Object tempArray[] = ts.toArray(); + uniqueElements = Arrays.copyOf(tempArray, tempArray.length, String[].class); + + } else { + DataColumnType dct = null; + + List yTextSeries = reportRuntime.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues); + //if(columnValuesList.size() == 1) { + int dctIndex = 0; + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + //System.out.println(dct.getDisplayName() + " " + yText); + if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if(yTextSeries.contains((String)dct.getDisplayName())) { + if(nvl(dct.getChartColor()).length()>0) hasCustomizedChartColor = true; + if(hasCustomizedChartColor) { + //duplicates are avoided + if(!ts.contains(dct.getDisplayName()+"|"+nvl(dct.getChartColor()))) + ts.add(dct.getDisplayName()+"|"+nvl(dct.getChartColor())); + } else { + //duplicates are avoided + if(!ts.contains(dct.getDisplayName())) + ts.add(dct.getDisplayName()); + } + if(nvl(chartLeftAxisLabel).length()<=0) { + chartLeftAxisLabel = nvl(dct.getYAxis()); + chartLeftAxisLabel = (chartLeftAxisLabel.indexOf("|")!=-1)?chartLeftAxisLabel.substring(0,chartLeftAxisLabel.indexOf("|")):""; + } + if(nvl(chartRightAxisLabel).length()>0) { + String dctYAxis = nvl(dct.getYAxis()); + String yAxis = (dctYAxis.indexOf("|")!=-1)?dctYAxis.substring(0,dctYAxis.indexOf("|")):dctYAxis; + if(chartRightAxisLabel.equals(yAxis)) { + if(ts.contains(dct.getDisplayName())) { + if(hasCustomizedChartColor) { + ts.set(dctIndex, dct.getDisplayName()+"|R|"+nvl(dct.getChartColor())); + } else { + ts.set(dctIndex, dct.getDisplayName()+"|R"); + } + } + } + } + columnMap.put(dct.getDisplayName(), dct.getColId()); + } + dctIndex++; + } + + } + + //SortedSet s = Collections.synchronizedSortedSet(ts); + Object tempArray[] = ts.toArray(); + uniqueElements = Arrays.copyOf(tempArray, tempArray.length, String[].class); + //uniqueElements = (String[]) ts.toArray(); + + } + + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append(" \n" ); + + wholeScript.append(" \n"); + + if(showTitle) + wholeScript.append("

" + title +"

"); + + + wholeScript.append("
\n"); + //js files + wholeScript.append("\n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + //wholeScript.append(" \n"); + //if(multipleSeries) + //wholeScript.append(" \n"); + + //json + wholeScript.append(" \n"); + + } else if (chartType.equals(AppConstants.GT_PIE) || chartType.equals(AppConstants.GT_PIE_3D)) { + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append(" \n" ); + wholeScript.append(" \n"); + + if(showTitle) + wholeScript.append("

" + title +"

"); + + wholeScript.append("
"); + //"\n"); + //js files + wholeScript.append("\n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + + } else if (chartType.equals(AppConstants.GT_ANNOTATION_CHART) || chartType.equals(AppConstants.GT_FLEX_TIME_CHARTS)) { + + boolean timeCharts = chartType.equals(AppConstants.GT_FLEX_TIME_CHARTS); + + String dateStr = null; + java.util.Date date = null; + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + + int flagNoDate = 0; + + int MAXNUM = 0; + int YAXISNUM = 0; + int flagNull = 0; + + double YAXISDOUBLENUM = 0.0; + double MAXDOUBLENUM = 0.0; + int MAXNUMDECIMALPLACES = 0; + + int formatFlag = 0; + + TreeSet dateStrList = new TreeSet(); + // added to store all date elements + SortedSet sortSet = new TreeSet(); + int count = 0; + + int flag = 0; + boolean hasCategoryAxis = reportRuntime.hasSeriesColumn(); + flag = hasCategoryAxis?1:0; + + + String anomalyText = ""; + + StringBuffer dataStrBuf = new StringBuffer(""); + StringBuffer annotationsStrBuf = new StringBuffer(""); + + String xAxisLabel = (reportRuntime.getChartLegendColumn()!=null)?reportRuntime.getChartLegendColumn().getDisplayName():""; + + //finding actual string + String actualText = ""; + DataColumnType dct = null; + for (Iterator iter = l.iterator(); iter.hasNext();) { + dct = (DataColumnType) iter.next(); + if((dct.getChartSeq()!=null && dct.getChartSeq() >=0) && !AppUtils.nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)) { + //if(AppUtils.nvl(dct.getDisplayName()).toLowerCase().contains("actual")) { + actualText = dct.getDisplayName(); + break; + //} + } + } + + int anomalyRec = 0; + int columnIndex = 1; + ArrayList columnNames = new ArrayList(); + ArrayList columnValues = new ArrayList(); + Set set = null; + String columnName = ""; + String columnValue = ""; + long minDate = 0L; + long maxDate = 0L; + StringBuffer seriesBuffer = new StringBuffer(""); + + for (int i = 0; i < ds.getRowCount(); i++) { + columnNames = new ArrayList(); + columnValues = new ArrayList(); + columnName = ""; + columnValue = ""; + columnIndex = 1; + anomalyText = ""; + dateStr = ds.getString(i, 0); + date = getDateFromDateStr(dateStr); + if(date.getTime() > maxDate ) + maxDate = date.getTime(); + + formatFlag = getFlagFromDateStr(dateStr); + + + for (;columnIndex=0) && !AppUtils.nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)) { + if((!timeCharts && !AppUtils.nvl(dct.getColId()).toLowerCase().equals("anomaly_text")) && AppUtils.nvl(dct.getColId()).toLowerCase().equals(columnName.toLowerCase())) { + dataStrBuf.append(","+columnValue); + break; + } else if(timeCharts && AppUtils.nvl(dct.getColId()).toLowerCase().equals(columnName.toLowerCase())){ + dataStrBuf.append(","+columnValue); + //break; + } + } + } + } + + dataStrBuf.append("],\n"); + if(!timeCharts) { + if(AppUtils.nvl(anomalyText).length()>0) { + ++anomalyRec; + annotationsStrBuf.append("anns.push( {\n"); + annotationsStrBuf.append(" series: '"+actualText+"',\n"); + annotationsStrBuf.append(" x: moment(\""+dateStr+"\"),\n"); + annotationsStrBuf.append(" shortText: '"+ IntToLetter(anomalyRec).toUpperCase() +"',\n"); + annotationsStrBuf.append(" text: '"+ anomalyText + "'\n"); + annotationsStrBuf.append("});\n"); + //anomalyRec++; + } + + } + } + + //if(!timeCharts) + //anomalyRec = anomalyRec - 1; + + minDate = maxDate - (new Long(reportRuntime.getZoomIn()).longValue()*60*60*1000); + System.out.println(new java.util.Date(maxDate) + " " + new java.util.Date(minDate) + " " + reportRuntime.getZoomIn()); + if(dataStrBuf.lastIndexOf(",")!= -1) + dataStrBuf.deleteCharAt(dataStrBuf.lastIndexOf(",")); + + wholeScript = new StringBuffer(""); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append(" \n"); + //wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append("\n"); + + wholeScript.append("\n "); + wholeScript.append("\n"); + wholeScript.append("\n"); + wholeScript.append(" \n"); + +/* if(showTitle) + wholeScript.append("

" + (AppUtils.nvl(reportRuntime.getReportTitle()).length()>0?reportRuntime.getReportTitle():reportRuntime.getReportName()) + "

\n"); +*/ + wholeScript.append(" \n"); + if(showTitle) { + wholeScript.append(" \n "); + wholeScript.append(" \n "); + } + + wholeScript.append(" \n "); + + wholeScript.append(" \n "); + wholeScript.append(" \n "); + + wholeScript.append(" \n "); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { + wholeScript.append(" \n"); + } + wholeScript.append(" \n"); + if(anomalyRec > 0) { + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + } + wholeScript.append("
\n "); + wholeScript.append("
"+title+"
\n"); + wholeScript.append("
\n "); + if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()<=0 || reportRuntime.getLegendPosition().equals("top")) { + wholeScript.append("
\n"); + } + wholeScript.append("
\n"); + wholeScript.append("
\n"); + + int heightInt = 0; + if(nvl(height).length() > 0) { + try { + heightInt = new Integer(height).intValue(); + heightInt -= 50; + } catch(Exception ex) { + if(height.endsWith("px")) { + try { + heightInt = new Integer(height.substring(0, height.indexOf("px"))); + heightInt -= 50; + } catch (Exception ex1) { + heightInt = 420; + } + } else { + heightInt = 420; + } + } + } else heightInt = 420; + if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { + wholeScript.append("
\n"); + wholeScript.append("
\n"); + wholeScript.append("
\n"); + wholeScript.append("
\n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n" ); + wholeScript.append(" \n"); + wholeScript.append("
Anomaly Description
\n"); + wholeScript.append("
\n"); + + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(""); + + + } else if (chartType.equals(AppConstants.GT_SCATTER)) { + + wholeScript.append("\n"); + wholeScript.append(" \n" ); + wholeScript.append(" \n"); + wholeScript.append("
"); + //js files + wholeScript.append("\n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append(" \n"); + wholeScript.append("\n"); + } else if (chartType.equals(AppConstants.GT_HIERARCHICAL_SUNBURST)) { + + StringBuffer dataStr = new StringBuffer(""); + StringBuffer groupBuffer = new StringBuffer(""); + StringBuffer s = new StringBuffer(""); + dataStr.append("{"); + dataStr.append(" \"ss4262\":{\n"); + String mid = ""; + String mid_old = ""; + String level = "-1"; + String level_old = "-1"; + String eid = ""; + for (int i = 0; i < ds.getRowCount(); i++) { + mid = ds.getString(i, "mid"); + level = ds.getString(i, "level1"); + eid = ds.getString(i, "eid"); + if(mid.equals(mid_old)) { + dataStr.append("\""+ eid +"\": 9956,\n"); + } else { + if(dataStr.lastIndexOf(",")!= -1) + dataStr.deleteCharAt(dataStr.lastIndexOf(",")); + //if(Integer.parseInt(level_old)==Integer.parseInt(level)) + //dataStr.append("},\n"); + if (Integer.parseInt(level_old)0) { + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + reportSQL = Utils.replaceInString(reportSQL, fieldDisplay, nvl( + paramValue, "NULL")); + } + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + reportSQL = Utils.replaceInString(reportSQL, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + reportSQL = Utils.replaceInString(reportSQL, fieldDisplay , nvl( + paramValue, "NULL")); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, ("SQL " + reportSQL)); + String legendCol = "1 a"; + // String valueCol = "1"; + StringBuffer groupCol = new StringBuffer(); + StringBuffer seriesCol = new StringBuffer(); + StringBuffer valueCols = new StringBuffer(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, request); + if (nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + legendCol = getSelectExpr(dc, colName)+" " + dc.getColId(); + // if(dc.getChartSeq()>0) + // valueCol = "NVL("+colName+", 0) "+dc.getColId(); + if ((!nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + && (dc.getChartSeq()!=null && dc.getChartSeq().intValue() <= 0) && dc.isGroupBreak()) { + groupCol.append(", "); + groupCol.append(colName + " " + dc.getColId()); + } + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(dc.isChartSeries()!=null && dc.isChartSeries().booleanValue()) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ getSelectExpr(dc,getColumnSelectStr(dc, request))+ " " + dc.getColId()); + } + } + + /*for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(!dc.isChartSeries() && !(nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ formatChartColumn(getSelectExpr(dc,getColumnSelectStr(dc, paramValues)))+ " " + dc.getColId()); + } + }*/ + + for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, request); + String paramValue = ""; + if(AppUtils.nvl(colName).startsWith("[")) { + if (reportRuntime.getFormFieldList() != null) { + for (Iterator iterC = reportRuntime.getFormFieldList().getFormField().iterator(); iterC.hasNext();) { + FormFieldType fft = (FormFieldType) iterC.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = reportRuntime.getFormFieldDisplayName(fft); + String formfield_value = ""; + if(AppUtils.nvl(fieldDisplay).equals(colName)) { + formfield_value = AppUtils.getRequestNvlValue(request, fieldId); + paramValue = nvl(formfield_value); + } + } + + } + + seriesCol.append("," + (AppUtils.nvl(paramValue).length()>0? paramValue:"null") + " " + dc.getColId()); + } else { + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + seriesCol.append("," + (AppUtils.nvl(paramValue).length()>0? paramValue:formatChartColumn(colName)) + " " + dc.getColId()); + } + } // for + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = dc.getDisplayName(); + String colValue = getColumnSelectStr(dc, request); + //String colName = getColumnSelectStr(dc, formGrid); + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + seriesCol.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + seriesCol.append(", " + colValue + " " + AppConstants.RI_CHART_COLOR ); + if(colName.equals(AppConstants.RI_CHART_MARKER_START)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_START + " " + AppConstants.RI_CHART_MARKER_START ); + if(colName.equals(AppConstants.RI_CHART_MARKER_END)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_END + " " + AppConstants.RI_CHART_MARKER_END ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_LEFT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_LEFT + " " + AppConstants.RI_CHART_MARKER_TEXT_LEFT ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_RIGHT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT + " " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT ); + //if(colName.equals(AppConstants.RI_ANOMALY_TEXT)) + //seriesCol.append(", " + AppConstants.RI_ANOMALY_TEXT + " " + AppConstants.RI_ANOMALY_TEXT ); + } + + //debugLogger.debug("ReportSQL Chart " + reportSQL ); + /*for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + valueCols.append("," + formatChartColumn(colName) + " " + dc.getColId()); + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //if(colName.equals(AppConstants.RI_CHART_TOTAL_COL) || colName.equals(AppConstants.RI_CHART_COLOR)) { + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + valueCols.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + valueCols.append(", " + AppConstants.RI_CHART_COLOR + " " + AppConstants.RI_CHART_COLOR ); + if (colName.equals(AppConstants.RI_CHART_INCLUDE)) + valueCols.append(", " + AppConstants.RI_CHART_INCLUDE + " " + AppConstants.RI_CHART_INCLUDE ); + //} + }*/ + String final_sql = ""; + reportSQL = Utils.replaceInString(reportSQL, " from ", " FROM "); + reportSQL = Utils.replaceInString(reportSQL, " From ", " FROM "); + reportSQL = Utils.replaceInString(reportSQL, " select ", " SELECT "); + reportSQL = Utils.replaceInString(reportSQL, " union ", " UNION "); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); +// if(reportSQL.indexOf("UNION") != -1) { +// if(reportSQL.indexOf("FROM(")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM(") ); +// else if (reportSQL.indexOf("FROM (")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM (") ); +// //TODO ELSE THROW ERROR +// } +// else { +// final_sql += " "+reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM ")); +// } + int pos = 0; + int pos_first_select = 0; + int pos_dup_select = 0; + int pos_prev_select = 0; + int pos_last_select = 0; + if (reportSQL.indexOf("FROM", pos)!=-1) { + pos = reportSQL.indexOf("FROM", pos); + pos_dup_select = reportSQL.lastIndexOf("SELECT",pos); + pos_first_select = reportSQL.indexOf("SELECT");//,pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_select " + pos_first_select + " " + pos_dup_select)); + if(pos_dup_select > pos_first_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********pos_dup_select ********" + pos_dup_select)); + //pos_dup_select1 = pos_dup_select; + pos_prev_select = pos_first_select; + pos_last_select = pos_dup_select; + while (pos_last_select > pos_prev_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_last , pos_prev " + pos_last_select + " " + pos_prev_select)); + pos = reportSQL.indexOf("FROM", pos+2); + pos_prev_select = pos_last_select; + pos_last_select = reportSQL.lastIndexOf("SELECT",pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("in WHILE LOOP LAST " + pos_last_select)); + } + } + + } + final_sql += " "+reportSQL.substring(pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("Final SQL " + final_sql)); + String sql = "SELECT " + legendCol + ", " + legendCol+"_1" + seriesCol.toString()+ nvl(valueCols.toString(), ", 1") + + groupCol.toString() + + final_sql; + logger.debug(EELFLoggerDelegate.debugLogger, ("Final sql in generateChartSQL " +sql)); + + return sql; + } // generateChartSQL + + private String getColumnSelectStr(DataColumnType dc, HttpServletRequest request) { + //String colName = dc.isCalculated() ? dc.getColName() + // : ((nvl(dc.getTableId()).length() > 0) ? (dc.getTableId() + "." + dc + // .getColName()) : dc.getColName()); + String colName = dc.getColName(); + String paramValue = null; + //if (dc.isCalculated()) { + if (reportRuntime.getFormFieldList() != null) { + for (Iterator iter = reportRuntime.getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = reportRuntime.getFormFieldDisplayName(fft); + String formfield_value = ""; + formfield_value = AppUtils.getRequestNvlValue(request, fieldId); + paramValue = nvl(formfield_value); + if(paramValue.length()>0) { + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + colName = Utils.replaceInString(colName, "'" + fieldDisplay + "'", "'"+nvl( + paramValue, "NULL")+"'"); + colName = Utils.replaceInString(colName, fieldDisplay, nvl( + paramValue, "NULL")); + } + } + return colName; + } + //} + return colName; + } // getColumnSelectStr + + + + public String getSelectExpr(DataColumnType dct) { + // String colName = + // dct.isCalculated()?dct.getColName():((nvl(dct.getTableId()).length()>0)?(dct.getTableId()+"."+dct.getColName()):dct.getColName()); + return getSelectExpr(dct, dct.getColName() /* colName */); + } // getSelectExpr + + private String getSelectExpr(DataColumnType dct, String colName) { + String colType = dct.getColType(); + if (colType.equals(AppConstants.CT_CHAR) + || ((nvl(dct.getColFormat()).length() == 0) && (!colType + .equals(AppConstants.CT_DATE)))) + return colName; + else + return "DATE_FORMAT(" + colName + ", '" + + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) + "')"; + } // getSelectExpr + + private String formatChartColumn(String colName) { + logger.debug(EELFLoggerDelegate.debugLogger, ("Format Chart Column Input colName " + colName)); + colName = colName.trim(); + colName = Utils.replaceInString(colName, "TO_CHAR", "to_char"); + colName = Utils.replaceInString(colName, "to_number", "TO_NUMBER"); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); + colName = colName.replaceAll(",[\\s]*\\(", ",("); + StringBuffer colNameBuf = new StringBuffer(colName); + int pos = 0, posFormatStart = 0, posFormatEnd = 0; + String format = ""; + + if(colNameBuf.indexOf("999")==-1 && colNameBuf.indexOf("990")==-1) { + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + + while (colNameBuf.indexOf("to_char")!=-1) { + if(colNameBuf.indexOf("999")!=-1 || colNameBuf.indexOf("990")!=-1) { + pos = colNameBuf.indexOf("to_char"); + colNameBuf.insert(pos, " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ("); + pos = colNameBuf.indexOf("to_char"); + colNameBuf.replace(pos, pos+7, "TO_CHAR"); + //colName = Utils.replaceInString(colNameBuf.toString(), "to_char", " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ( TO_CHAR "); + logger.debug(EELFLoggerDelegate.debugLogger, ("After adding to_number " + colNameBuf.toString())); + //posFormatStart = colNameBuf.lastIndexOf(",'")+1; + posFormatStart = colNameBuf.indexOf(",'", pos)+1; + posFormatEnd = colNameBuf.indexOf(")",posFormatStart); + logger.debug(EELFLoggerDelegate.debugLogger, (posFormatStart + " " + posFormatEnd + " "+ pos)); + format = colNameBuf.substring(posFormatStart, posFormatEnd); + //posFormatEnd = colNameBuf.indexOf(")",posFormatEnd); + colNameBuf.insert(posFormatEnd+1, " ," + format + ") , "+ format + ")"); + logger.debug(EELFLoggerDelegate.debugLogger, ("colNameBuf " + colNameBuf.toString())); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + + public List getChartValueColumnsList( int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = reportRuntime.getAllColumns(); + + ArrayList chartValueCols = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = reportRuntime.getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 && !(nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } + else if(filter == 0) chartValueCols.add(dc); + } else chartValueCols.add(dc); + } +// } else +// chartValueCols.add(dc); + } // for + Collections.sort(chartValueCols, new ChartSeqComparator()); + return chartValueCols; + } // getChartValueColumnsList + + public String parseTitle(String title, HashMap formValues) { + Set set = formValues.entrySet(); + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + if(title.indexOf("["+ entry.getKey() + "]")!= -1) { + title = Utils.replaceInString(title, "["+entry.getKey()+"]", nvl( + (String) entry.getValue(), "")); + } + } + return title; + } + + public java.util.Date getDateFromDateStr(String dateStr) { + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat EEEMMDDYYYYFormat = new SimpleDateFormat("EEE, MM/dd/yyyy"); //2012-11-01 00:00:00 + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat timestampHrFormat = new SimpleDateFormat("yyyy-MM-dd HH"); + SimpleDateFormat timestampDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHFormat = new SimpleDateFormat("MM/dd/yyyy HH"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat timestampFormat1 = new SimpleDateFormat("yyyy-M-d.HH.mm. s. S"); + SimpleDateFormat timestamp_W_dash = new SimpleDateFormat("yyyyMMddHHmmss"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat YYYYFormat = new SimpleDateFormat("yyyy"); + java.util.Date date = null; + + int formatFlag = 0; + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + /*int yearFlag = 1; + int monthFlag = 2; + int dayFlag = 3; + int hourFlag = 4; + int minFlag = 5; + int secFlag = 6; + int milliSecFlag = 7; + int dayoftheweekFlag = 8; + int flagDate = 10; + */ + + date = MMDDYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + if(date==null) { + date = EEEMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYOFTHEWEEKFLAG; + } + if(date==null) { + date = MMDDYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + if(date==null) { + //MMDDYYYYHHFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + date = MMDDYYYYHHFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = MMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = YYYYMMDDFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = timestampFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) { + date = timestampHrFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = timestampDayFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMMMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONTHYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MMDDYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = MMDDYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = timestampFormat1.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYYYHHMMZFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = YYYYFormat.parse(dateStr, new ParsePosition(0)); + /* Some random numbers should not satisfy this year format. */ + if(dateStr.length()>4) date = null; + if(date!=null) formatFlag = YEARFLAG; + } + if(date==null) { + date = timestamp_W_dash.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) + date = null; + return date; + } + + public int getFlagFromDateStr(String dateStr) { + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat EEEMMDDYYYYFormat = new SimpleDateFormat("EEE, MM/dd/yyyy"); //2012-11-01 00:00:00 + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat timestampHrFormat = new SimpleDateFormat("yyyy-MM-dd HH"); + SimpleDateFormat timestampDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHFormat = new SimpleDateFormat("MM/dd/yyyy HH"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat timestampFormat1 = new SimpleDateFormat("yyyy-M-d.HH.mm. s. S"); + SimpleDateFormat timestamp_W_dash = new SimpleDateFormat("yyyyMMddHHmmss"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat YYYYFormat = new SimpleDateFormat("yyyy"); + java.util.Date date = null; + + int formatFlag = 0; + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + /*int yearFlag = 1; + int monthFlag = 2; + int dayFlag = 3; + int hourFlag = 4; + int minFlag = 5; + int secFlag = 6; + int milliSecFlag = 7; + int dayoftheweekFlag = 8; + int flagDate = 10; + */ + + date = MMDDYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + if(date==null) { + date = EEEMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYOFTHEWEEKFLAG; + } + if(date==null) { + date = MMDDYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + if(date==null) { + //MMDDYYYYHHFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + date = MMDDYYYYHHFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = MMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = YYYYMMDDFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = timestampFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) { + date = timestampHrFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = timestampDayFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMMMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONTHYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MMDDYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = MMDDYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = timestampFormat1.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYYYHHMMZFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = YYYYFormat.parse(dateStr, new ParsePosition(0)); + /* Some random numbers should not satisfy this year format. */ + if(dateStr.length()>4) date = null; + if(date!=null) formatFlag = YEARFLAG; + } + if(date==null) { + date = timestamp_W_dash.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) + date = null; + return formatFlag; + } + + public static String[] reverse(String[] arr) { + List list = Arrays.asList(arr); + Collections.reverse(list); + return (String[])list.toArray(); + } + + public int getNumberOfDecimalPlaces(double num) { + Double d = num; + String[] splitter = d.toString().split("\\."); + splitter[0].length(); // Before Decimal Count + splitter[1].length(); // After Decimal Count + return splitter[1].length(); + } + + public boolean getBooleanValue(String s) { + return getBooleanValue(s,null); + } + + public boolean getBooleanValue(String s, Boolean defaultValue) { + s = nvl(s); + if(s.length()<=0 && defaultValue!=null) return defaultValue.booleanValue(); + else if(s.length()<=0) return false; + else { + if(s.toUpperCase().startsWith("Y") || s.toLowerCase().equals("true")) + return true; + else + return false; + } + } + + + public String IntToLetter(int Int) { + if (Int<27){ + return Character.toString((char)(Int+96)); + } else { + if (Int%26==0) { + return IntToLetter((Int/26)-1)+IntToLetter((Int%26)+1); + } else { + return IntToLetter(Int/26)+IntToLetter(Int%26); + } + } + } + + + + + private void clearReportRuntimeBackup(HttpServletRequest request) { + //Session sess = Sessions.getCurrent(true)getCurrent(); + //HttpSession session = (HttpSession)sess.getNativeSession(); + HttpSession session = request.getSession(); + 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 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 static synchronized java.util.HashMap getRequestParametersMap(ReportRuntime rr, HttpServletRequest request) + { + HashMap valuesMap = new HashMap(); + + ReportFormFields rff = rr.getReportFormFields(); + + int idx = 0; + FormField ff = null; + + Map fieldNameMap = new HashMap(); + int countOfFields = 0 ; + + + for(rff.resetNext(); rff.hasNext(); idx++) { + ff = rff.getNext(); + fieldNameMap.put(ff.getFieldName(), ff.getFieldDisplayName()); + countOfFields++; + } + + List formParameter = new ArrayList(); + String formField = ""; + for(int i = 0 ; i < rff.size(); i++) { + ff = ((FormField)rff.getFormField(i)); + formField = ff.getFieldName(); + boolean isMultiValue = false; + isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); + boolean isTextArea = (ff.getFieldType().equals(FormField.FFT_TEXTAREA) && rr.getReportDefType() + .equals(AppConstants.RD_SQL_BASED)); + + if(request.getParameterValues(formField) != null && isMultiValue ) { + String[] vals = request.getParameterValues(formField); + StringBuffer value = new StringBuffer(""); + if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) { + + if ( isMultiValue ) { + value.append("("); + } + for(int j = 0 ; j < vals.length; j++) { + if(isMultiValue) value.append("'"); + try { + if(vals[j] !=null && vals[j].length() > 0) { + vals[j] = Utils.oracleSafe(vals[j]); + value.append(java.net.URLDecoder.decode(vals[j], "UTF-8"));// + ","; + } + else + value.append(vals[j]); + } catch (UnsupportedEncodingException ex) {value.append(vals[j]);} + catch (IllegalArgumentException ex1){value.append(vals[j]);} + catch (Exception ex2){ + value.append(vals[j]); + } + + + if(isMultiValue) value.append("'"); + + if(j != vals.length -1) { + value.append(","); + } + } + if(vals.length > 0) { + value.append(")"); + } + } + + //value = value.substring(0 , value.length()); + + valuesMap.put(fieldNameMap.get(formField), value.toString()); + value = new StringBuffer(""); + } else if(request.getParameter(formField) != null) { + if(isTextArea) { + String value = ""; + value = request.getParameter(formField); + + value = Utils.oracleSafe(value); + value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; + value = Utils.replaceInString(value, "|", ","); + valuesMap.put(fieldNameMap.get(formField), value); + value = ""; + } else { + String value = ""; + if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) + value = request.getParameter(formField); + valuesMap.put(fieldNameMap.get(formField), Utils.oracleSafe(value)); + } + + } else { + valuesMap.put(fieldNameMap.get(formField), "" ); + } + + } + + return valuesMap; + + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSON.java new file mode 100644 index 00000000..194d84e5 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSON.java @@ -0,0 +1,478 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +import java.util.ArrayList; +import java.util.Map; + +import org.onap.portalsdk.analytics.view.ColumnHeader; + +class Row { + private String displayValue; + private String dataType; + private String colId; + //private boolean visible; + + + /*public boolean isVisible() { + return visible; + } + public void setVisible(boolean visible) { + this.visible = visible; + }*/ + public String getDisplayValue() { + return displayValue; + } + public void setDisplayValue(String displayValue) { + this.displayValue = displayValue; + } + public String getDataType() { + return dataType; + } + public void setDataType(String dataType) { + this.dataType = dataType; + } + public String getColId() { + return colId; + } + public void setColId(String colId) { + this.colId = colId; + } + + +} +class IndexValueJSON { + private int index; + private String value; + private String title; + public int getIndex() { + return index; + } + public void setIndex(int index) { + this.index = index; + } + public String getValue() { + return value; + } + public void setValue(String value) { + this.value = value; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + +} + +class DomainAxisJSON extends IndexValueJSON {} + +class ChartColumnJSON extends IndexValueJSON {} + +class ChartTypeJSON extends IndexValueJSON {} + +class PieChartOptions { + +} + +public class ChartJSON { + + private String reportID; + private String reportName; + private String reportDescr; + private String reportTitle; + private String reportSubTitle; + private ArrayList formFieldList; + private ArrayList chartColumnJSONList; + private String formfield_comments; + private int totalRows; + private String chartSqlWhole; + private boolean chartAvailable; + private ChartTypeJSON chartTypeJSON; + private BarChartOptions barChartOptions; + private PieChartOptions pieChartOptions; + private TimeSeriesChartOptions timeSeriesChartOptions; + private FlexTimeSeriesChartOptions flexTimeSeriesChartOptions; + private CommonChartOptions commonChartOptions; + private String width; + private String height; + private boolean animation; + private String rotateLabels; + private boolean staggerLabels; + private boolean showTitle; + private DomainAxisJSON domainAxisJSON; + private CategoryAxisJSON categoryAxisJSON; + private boolean hasCategoryAxis; + + + public boolean isHasCategoryAxis() { + return hasCategoryAxis; + } + public void setHasCategoryAxis(boolean hasCategoryAxis) { + this.hasCategoryAxis = hasCategoryAxis; + } + private ArrayList rangeAxisList; + private ArrayList rangeAxisRemoveList; + + private ArrayList > wholeList; + + private String primaryAxisLabel; + private String secondaryAxisLabel; + private String minRange; + private String maxRange; + //private int topMargin; + //private int bottomMargin; + //private int leftMargin; + //private int rightMargin; + + /*private boolean showMaxMin; + private boolean showLegend; + private boolean showControls; + private String topMargin; + private String bottomMargin; + private String leftMargin; + private String rightMargin; + private String subType; + private boolean stacked; + private boolean horizontalBar; + private boolean barRealTimeAxis; + private boolean barReduceXAxisLabels; + private boolean timeAxis;*/ + + public String getReportID() { + return reportID; + } + public void setReportID(String reportID) { + this.reportID = reportID; + } + public String getReportName() { + return reportName; + } + public void setReportName(String reportName) { + this.reportName = reportName; + } + public String getReportDescr() { + return reportDescr; + } + public void setReportDescr(String reportDescr) { + this.reportDescr = reportDescr; + } + public String getReportTitle() { + return reportTitle; + } + public void setReportTitle(String reportTitle) { + this.reportTitle = reportTitle; + } + public String getReportSubTitle() { + return reportSubTitle; + } + public void setReportSubTitle(String reportSubTitle) { + this.reportSubTitle = reportSubTitle; + } + public ArrayList getFormFieldList() { + return formFieldList; + } + public void setFormFieldList(ArrayList formFieldList) { + this.formFieldList = formFieldList; + } + public String getFormfield_comments() { + return formfield_comments; + } + public void setFormfield_comments(String formfield_comments) { + this.formfield_comments = formfield_comments; + } + public int getTotalRows() { + return totalRows; + } + public void setTotalRows(int totalRows) { + this.totalRows = totalRows; + } + public String getChartSqlWhole() { + return chartSqlWhole; + } + public void setChartSqlWhole(String chartSqlWhole) { + this.chartSqlWhole = chartSqlWhole; + } + public boolean isChartAvailable() { + return chartAvailable; + } + public void setChartAvailable(boolean chartAvailable) { + this.chartAvailable = chartAvailable; + } + public String getWidth() { + return width; + } + public void setWidth(String width) { + this.width = width; + } + public String getHeight() { + return height; + } + public void setHeight(String height) { + this.height = height; + } + public boolean isAnimation() { + return animation; + } + public void setAnimation(boolean animation) { + this.animation = animation; + } + public String getRotateLabels() { + return rotateLabels; + } + public void setRotateLabels(String rotateLabels) { + this.rotateLabels = rotateLabels; + } + public boolean isStaggerLabels() { + return staggerLabels; + } + public void setStaggerLabels(boolean staggerLabels) { + this.staggerLabels = staggerLabels; + } + public boolean isShowTitle() { + return showTitle; + } + public void setShowTitle(boolean showTitle) { + this.showTitle = showTitle; + } + /*public boolean isShowMaxMin() { + return showMaxMin; + } + public void setShowMaxMin(boolean showMaxMin) { + this.showMaxMin = showMaxMin; + } + public boolean isShowLegend() { + return showLegend; + } + public void setShowLegend(boolean showLegend) { + this.showLegend = showLegend; + } + public boolean isShowControls() { + return showControls; + } + public void setShowControls(boolean showControls) { + this.showControls = showControls; + } + public String getTopMargin() { + return topMargin; + } + public void setTopMargin(String topMargin) { + this.topMargin = topMargin; + } + public String getBottomMargin() { + return bottomMargin; + } + public void setBottomMargin(String bottomMargin) { + this.bottomMargin = bottomMargin; + } + public String getLeftMargin() { + return leftMargin; + } + public void setLeftMargin(String leftMargin) { + this.leftMargin = leftMargin; + } + public String getRightMargin() { + return rightMargin; + } + public void setRightMargin(String rightMargin) { + this.rightMargin = rightMargin; + } + + public String getSubType() { + return subType; + } + public void setSubType(String subType) { + this.subType = subType; + } + public boolean isStacked() { + return stacked; + } + public void setStacked(boolean stacked) { + this.stacked = stacked; + } + public boolean isHorizontalBar() { + return horizontalBar; + } + public void setHorizontalBar(boolean horizontalBar) { + this.horizontalBar = horizontalBar; + } + public boolean isBarRealTimeAxis() { + return barRealTimeAxis; + } + public void setBarRealTimeAxis(boolean barRealTimeAxis) { + this.barRealTimeAxis = barRealTimeAxis; + } + public boolean isBarReduceXAxisLabels() { + return barReduceXAxisLabels; + } + public void setBarReduceXAxisLabels(boolean barReduceXAxisLabels) { + this.barReduceXAxisLabels = barReduceXAxisLabels; + } + public boolean isTimeAxis() { + return timeAxis; + } + public void setTimeAxis(boolean timeAxis) { + this.timeAxis = timeAxis; + }*/ + public ChartTypeJSON getChartTypeJSON() { + return chartTypeJSON; + } + public void setChartTypeJSON(ChartTypeJSON chartTypeJSON) { + this.chartTypeJSON = chartTypeJSON; + } + public String getChartType() { + return chartTypeJSON.getValue(); + } + public DomainAxisJSON getDomainAxisJSON() { + return domainAxisJSON; + } + public void setDomainAxisJSON(DomainAxisJSON domainAxisJSON) { + this.domainAxisJSON = domainAxisJSON; + } + public CategoryAxisJSON getCategoryAxisJSON() { + return categoryAxisJSON; + } + public void setCategoryAxisJSON(CategoryAxisJSON categoryAxisJSON) { + this.categoryAxisJSON = categoryAxisJSON; + } + public ArrayList getRangeAxisList() { + return rangeAxisList; + } + public void setRangeAxisList(ArrayList rangeAxisList) { + this.rangeAxisList = rangeAxisList; + } + public String getPrimaryAxisLabel() { + return primaryAxisLabel; + } + public void setPrimaryAxisLabel(String primaryAxisLabel) { + this.primaryAxisLabel = primaryAxisLabel; + } + public String getSecondaryAxisLabel() { + return secondaryAxisLabel; + } + public void setSecondaryAxisLabel(String secondaryAxisLabel) { + this.secondaryAxisLabel = secondaryAxisLabel; + } + public String getMinRange() { + return minRange; + } + public void setMinRange(String minRange) { + this.minRange = minRange; + } + public String getMaxRange() { + return maxRange; + } + public void setMaxRange(String maxRange) { + this.maxRange = maxRange; + } + /*public ArrayList getRowList() { + return rowList; + } + public void setRowList(ArrayList rowList) { + this.rowList = rowList; + }*/ + + public ArrayList> getWholeList() { + return wholeList; + } + public void setWholeList(ArrayList> wholeList) { + this.wholeList = wholeList; + } + //private ArrayList reportDataColumns; + //private ArrayList> reportDataRows; + public ArrayList getChartColumnJSONList() { + return chartColumnJSONList; + } + public void setChartColumnJSONList(ArrayList chartColumnJSONList) { + this.chartColumnJSONList = chartColumnJSONList; + } + + public BarChartOptions getBarChartOptions() { + return barChartOptions; + } + public void setBarChartOptions(BarChartOptions barChartOptions) { + this.barChartOptions = barChartOptions; + } + public PieChartOptions getPieChartOptions() { + return pieChartOptions; + } + public void setPieChartOptions(PieChartOptions pieChartOptions) { + this.pieChartOptions = pieChartOptions; + } + public TimeSeriesChartOptions getTimeSeriesChartOptions() { + return timeSeriesChartOptions; + } + public void setTimeSeriesChartOptions(TimeSeriesChartOptions timeSeriesChartOptions) { + this.timeSeriesChartOptions = timeSeriesChartOptions; + } + public FlexTimeSeriesChartOptions getFlexTimeSeriesChartOptions() { + return flexTimeSeriesChartOptions; + } + public void setFlexTimeSeriesChartOptions(FlexTimeSeriesChartOptions flexTimeSeriesChartOptions) { + this.flexTimeSeriesChartOptions = flexTimeSeriesChartOptions; + } + public CommonChartOptions getCommonChartOptions() { + return commonChartOptions; + } + public void setCommonChartOptions(CommonChartOptions commonChartOptions) { + this.commonChartOptions = commonChartOptions; + } + + public String getDomainAxis() { + if(getDomainAxisJSON() !=null) + return getDomainAxisJSON().getValue(); + else + return ""; + } + + public String getCategoryAxis() { + if(getCategoryAxisJSON()!=null) + return getCategoryAxisJSON().getValue(); + else + return ""; + } + public ArrayList getRangeAxisRemoveList() { + return rangeAxisRemoveList; + } + public void setRangeAxisRemoveList(ArrayList rangeAxisRemoveList) { + this.rangeAxisRemoveList = rangeAxisRemoveList; + } + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSONHelper.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSONHelper.java new file mode 100644 index 00000000..eedaa6bd --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartJSONHelper.java @@ -0,0 +1,1566 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +import java.io.UnsupportedEncodingException; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +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.model.base.ChartSeqComparator; +import org.onap.portalsdk.analytics.system.AppUtils; +import org.onap.portalsdk.analytics.system.ConnectionUtils; +import org.onap.portalsdk.analytics.util.AppConstants; +import org.onap.portalsdk.analytics.util.DataSet; +import org.onap.portalsdk.analytics.util.Utils; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; +import org.onap.portalsdk.analytics.xmlobj.FormFieldType; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.web.support.UserUtils; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +public class ChartJSONHelper { + + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ChartJSONHelper.class); + + private ReportRuntime reportRuntime; + private String chartType; + + public static final long HOUR = 3600*1000; + public static final long DAY = 3600*1000*24; + public static final long MONTH = 3600*1000*24*31; + public static final long YEAR = 3600*1000*24*365; + + + public ChartJSONHelper() { + + } + + /** + * @return the chartType + */ + public String getChartType() { + return chartType; + } + + /** + * @param chartType the chartType to set + */ + public void setChartType(String chartType) { + this.chartType = chartType; + } + + public ChartJSONHelper(ReportRuntime rr) { + this.reportRuntime = rr; + } + + public String generateJSON(String reportID, HttpServletRequest request, boolean showData) throws RaptorException { + //From annotations chart + clearReportRuntimeBackup(request); + + //HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); + final Long user_id = new Long((long) UserUtils.getUserId(request)); + //String action = request.getParameter(AppConstants.RI_ACTION); + //String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); + + ReportHandler rh = new ReportHandler(); + //ReportData reportData = null; + HashMap chartOptionsMap = new HashMap(); + try { + if(reportID !=null) { + reportRuntime = rh.loadReportRuntime(request, reportID, true, 1); + setChartType(reportRuntime.getChartType()); + //reportData = reportRuntime.loadReportData(0, user_id.toString(), 10000,request, false); + } + + + + 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"; + + + 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); + + + } catch (RaptorException ex) { + ex.printStackTrace(); + } + return generateJSON(reportRuntime, chartOptionsMap, request, showData); + } + + public String generateJSON(ReportRuntime reportRuntime, HttpServletRequest request, boolean showData) throws RaptorException { + + 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"; + + HashMap chartOptionsMap = new HashMap(); + chartOptionsMap.put("width", reportRuntime.getChartWidth()); + chartOptionsMap.put("height", reportRuntime.getChartHeight()); + chartOptionsMap.put("animation", new Boolean(reportRuntime.isAnimateAnimatedChart()).toString()); + chartOptionsMap.put("rotateLabels", rotateLabelsStr); + chartOptionsMap.put("staggerLabels", "false"); + chartOptionsMap.put("showMaxMin", "false"); + chartOptionsMap.put("showControls", new Boolean(reportRuntime.displayBarControls()).toString()); + chartOptionsMap.put("showLegend", new Boolean(!reportRuntime.hideChartLegend()).toString()); + chartOptionsMap.put("topMargin", reportRuntime.getTopMargin()!=null?reportRuntime.getTopMargin().toString():"30"); + chartOptionsMap.put("bottomMargin", reportRuntime.getBottomMargin()!=null?reportRuntime.getBottomMargin().toString():"50"); + chartOptionsMap.put("leftMargin", reportRuntime.getLeftMargin()!=null?reportRuntime.getLeftMargin().toString():"100"); + chartOptionsMap.put("rightMargin", reportRuntime.getRightMargin()!=null?reportRuntime.getRightMargin().toString():"160"); + chartOptionsMap.put("showTitle", new Boolean(reportRuntime.displayChartTitle()).toString()); + chartOptionsMap.put("subType", (AppUtils.nvl(reportRuntime.getTimeSeriesRender()).equals("area")?reportRuntime.getTimeSeriesRender():"")); + chartOptionsMap.put("stacked", new Boolean(reportRuntime.isChartStacked()).toString()); + chartOptionsMap.put("horizontalBar", new Boolean(reportRuntime.isHorizontalOrientation()).toString()); + chartOptionsMap.put("timeAxis", new Boolean(reportRuntime.isTimeAxis()).toString()); + chartOptionsMap.put("barReduceXAxisLabels", new Boolean(reportRuntime.isLessXaxisTickers()).toString()); + + chartOptionsMap.put("logScale", new Boolean(reportRuntime.isLogScale()).toString()); + chartOptionsMap.put("precision", "2"); + + + + return generateJSON(reportRuntime, chartOptionsMap, request, showData); + } + + public String generateJSON(ReportRuntime reportRuntime, HashMap chartOptionsMap, HttpServletRequest request, boolean showData) throws RaptorException { + + //String width, String height, boolean animation, String rotateLabels, boolean staggerLabels, boolean showMaxMin, boolean showLegend, boolean showControls, String topMargin, String bottomMargin, boolean showTitle, String subType + String userId = AppUtils.getUserID(request); + String width = chartOptionsMap.get("width"); + String height = chartOptionsMap.get("height"); + boolean animation = getBooleanValue(chartOptionsMap.get("animation"), true); + String rotateLabels = chartOptionsMap.get("rotateLabels"); + boolean staggerLabels = getBooleanValue(chartOptionsMap.get("staggerLabels")); + boolean showMaxMin = getBooleanValue(chartOptionsMap.get("showMaxMin"), false); + boolean showLegend = getBooleanValue(chartOptionsMap.get("showLegend"), true); + boolean showControls = getBooleanValue(chartOptionsMap.get("showControls"), true); + String topMargin = chartOptionsMap.get("topMargin"); + String bottomMargin = chartOptionsMap.get("bottomMargin"); + String leftMargin = chartOptionsMap.get("leftMargin"); + String rightMargin = chartOptionsMap.get("rightMargin"); + boolean showTitle = getBooleanValue(chartOptionsMap.get("showTitle"), true); + String subType = chartOptionsMap.get("subType"); + boolean stacked = getBooleanValue(chartOptionsMap.get("stacked"), false); + boolean horizontalBar = getBooleanValue(chartOptionsMap.get("horizontalBar"), false); + boolean barRealTimeAxis = getBooleanValue(chartOptionsMap.get("barRealTimeAxis"), true); + boolean barReduceXAxisLabels= getBooleanValue(chartOptionsMap.get("barReduceXAxisLabels"), false); + boolean timeAxis = getBooleanValue(chartOptionsMap.get("timeAxis"), true); + + + boolean logScale = getBooleanValue(chartOptionsMap.get("logScale"), false); + + int precision = 2; + + try { + precision = Integer.parseInt(chartOptionsMap.get("precision")); + } catch (NumberFormatException ex) { + + } + + final Long user_id = new Long((long) UserUtils.getUserId(request)); + + HttpSession session = null; + session = request.getSession(); + String chartType = reportRuntime.getChartType(); + List l = reportRuntime.getAllColumns(); + List lGroups = reportRuntime.getAllChartGroups(); + HashMap mapYAxis = reportRuntime.getAllChartYAxis(reportRuntime.getReportParamValues()); + //ReportParamValues reportParamValues = reportRuntime.getReportParamValues(); + String chartLeftAxisLabel = reportRuntime.getFormFieldFilled(nvl(reportRuntime.getChartLeftAxisLabel())); + String chartRightAxisLabel = reportRuntime.getFormFieldFilled(nvl(reportRuntime.getChartRightAxisLabel())); + + boolean multipleSeries = reportRuntime.isMultiSeries(); + + java.util.HashMap formValues = null; + formValues = getRequestParametersMap(reportRuntime, request); + + + String legendColumnName = (reportRuntime.getChartLegendColumn()!=null)?reportRuntime.getChartLegendColumn().getDisplayName():"Legend Column"; + boolean displayChart = reportRuntime.getDisplayChart(); + HashMap additionalChartOptionsMap = new HashMap(); + + StringBuffer wholeScript = new StringBuffer(""); + + String title = reportRuntime.getReportTitle(); + + title = parseTitle(title, formValues); + ObjectMapper mapper = new ObjectMapper(); + ChartJSON chartJSON = new ChartJSON(); + String sql = ""; + if(displayChart) { + DataSet ds = null; + if(showData) { + + try { + if (!(chartType.equals(AppConstants.GT_HIERARCHICAL) || chartType.equals(AppConstants.GT_HIERARCHICAL_SUNBURST) || chartType.equals(AppConstants.GT_ANNOTATION_CHART))) { + sql = generateChartSQL(userId, request ); + ds = (DataSet) loadChartData(new Long(user_id).toString(), request); + } else if(chartType.equals(AppConstants.GT_ANNOTATION_CHART)) { + sql = reportRuntime.getWholeSQL(); + String reportSQL = reportRuntime.getWholeSQL(); + String dbInfo = reportRuntime.getDBInfo(); + ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); + if(ds.getRowCount()<=0) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + logger.info(EELFLoggerDelegate.debugLogger, (chartType.toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " DATA IS EMPTY" )); + logger.info(EELFLoggerDelegate.debugLogger, ("QUERY - " + reportSQL)); + logger.info(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + } + } else if(chartType.equals(AppConstants.GT_HIERARCHICAL)||chartType.equals(AppConstants.GT_HIERARCHICAL_SUNBURST)) { + sql = reportRuntime.getWholeSQL(); + String reportSQL = reportRuntime.getWholeSQL(); + String dbInfo = reportRuntime.getDBInfo(); + ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); + } + } catch (RaptorException ex) { + //throw new RaptorException("Error while loading chart data", ex); + logger.error(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + logger.error(EELFLoggerDelegate.debugLogger, (chartType.toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " ERROR THROWN FOR GIVEN QUERY ")); + logger.error(EELFLoggerDelegate.debugLogger, ("QUERY - " + reportRuntime.getWholeSQL())); + logger.error(EELFLoggerDelegate.debugLogger, ("ERROR STACK TRACE" + ex.getMessage())); + logger.error(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); + + } + if(ds==null) { + //displayChart = false; + if(chartType.equals(AppConstants.GT_ANNOTATION_CHART)) + ds = new DataSet(); + else + displayChart = false; + } + } + if(displayChart) { + + chartJSON.setReportID(reportRuntime.getReportID()); + chartJSON.setReportName(reportRuntime.getReportName()); + chartJSON.setReportDescr(reportRuntime.getReportDescr()); + chartJSON.setReportTitle(reportRuntime.getReportTitle()); + chartJSON.setReportSubTitle(reportRuntime.getReportSubTitle()); + + List dcList = reportRuntime.getOnlyVisibleColumns(); + int countIndex = 0; + ArrayList chartColumnJSONList = new ArrayList(); + for(Iterator iter = dcList.iterator(); iter.hasNext(); ) { + ChartColumnJSON ccJSON = new ChartColumnJSON(); + DataColumnType dc = (DataColumnType) iter.next(); + ccJSON.setIndex(countIndex); + ccJSON.setValue(dc.getColId()); + ccJSON.setTitle(dc.getDisplayName()); + countIndex++; + chartColumnJSONList.add(ccJSON); + } + chartJSON.setChartColumnJSONList(chartColumnJSONList); + /* setting formfields show only showForm got triggered*/ + /*ArrayList formFieldValues = new ArrayList(); + ArrayList formFieldJSONList = new ArrayList(); + if(reportRuntime.getReportFormFields()!=null) { + formFieldJSONList = new ArrayList(reportRuntime.getReportFormFields().size()); + for (Iterator iter = reportRuntime.getReportFormFields().iterator(); iter.hasNext();) { + formFieldValues = new ArrayList(); + FormField ff = (FormField) iter.next(); + ff.setDbInfo(reportRuntime.getDbInfo()); + FormFieldJSON ffJSON = new FormFieldJSON(); + ffJSON.setFieldId(ff.getFieldName()); + ffJSON.setFieldType(ff.getFieldType()); + ffJSON.setFieldDisplayName(ff.getFieldDisplayName()); + ffJSON.setHelpText(ff.getHelpText()); + ffJSON.setValidationType(ff.getValidationType()); + //ffJSON.setTriggerOtherFormFields(ff.getDependsOn()); + IdNameList lookup = null; + lookup = ff.getLookupList(); + String selectedValue = ""; + String oldSQL = ""; + IdNameList lookupList = null; + boolean readOnly = false; + if(lookup!=null) { + if(!ff.hasPredefinedList) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = lu.getSql(); + oldSQL = lu.getSql(); + reportRuntime.setTriggerFormFieldCheck( reportRuntime.getReportFormFields(), ff); + ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); + SQL = reportRuntime.parseAndFillReq_Session_UserValues(request, SQL, userId); + SQL = reportRuntime.parseAndFillWithCurrentValues(request, SQL, ff); + String defaultSQL = lu.getDefaultSQL(); + defaultSQL = reportRuntime.parseAndFillReq_Session_UserValues(request, defaultSQL, userId); + defaultSQL = reportRuntime.parseAndFillWithCurrentValues(request, SQL, ff); + lookup = new IdNameSql(-1,SQL,defaultSQL); + + lookupList = lookup; + try { + lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId()); + } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); + } + } + lookup.trimToSize(); + + String[] requestValue = request.getParameterValues(ff.getFieldName()); + + if(lookup != null && lookup.size() > 0) { + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + readOnly = value.isReadOnly(); + if(requestValue != null && Arrays.asList(requestValue).contains(value.getId())) { + //if(value.getId().equals(requestValue)) + value.setDefaultValue(true); + } + if(!(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) && value.isDefaultValue()) + formFieldValues.add(value); + else if(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) { + formFieldValues.add(value); + } + //break; + } + } else { + if(requestValue!=null && requestValue.length>0) { + IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); + formFieldValues.add(value); + } + } + + } else { + String[] requestValue = request.getParameterValues(ff.getFieldName()); + if(requestValue!=null && requestValue.length>0) { + IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); + formFieldValues.add(value); + } + } + if(!ff.hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + + + + ffJSON.setFormFieldValues(formFieldValues); + formFieldJSONList.add(ffJSON); + } // for + } + chartJSON.setFormFieldList(formFieldJSONList); + chartJSON.setChartSqlWhole(sql);*/ + chartJSON.setChartAvailable(displayChart); + + ChartTypeJSON chartTypeJSON = new ChartTypeJSON(); + chartTypeJSON.setIndex(0); + chartTypeJSON.setTitle(""); + chartTypeJSON.setValue(chartType); + chartJSON.setChartTypeJSON(chartTypeJSON); + chartJSON.setWidth(width); + chartJSON.setHeight(height); + chartJSON.setAnimation(animation); + chartJSON.setRotateLabels(rotateLabels); + chartJSON.setStaggerLabels(staggerLabels); + chartJSON.setShowTitle(showTitle); + DomainAxisJSON domainAxisJSON = new DomainAxisJSON(); + domainAxisJSON.setIndex(0); + if(reportRuntime.getChartLegendColumn()!=null) + domainAxisJSON.setTitle(reportRuntime.getChartLegendColumn().getDisplayName()); + else + domainAxisJSON.setTitle(""); + if(reportRuntime.getChartLegendColumn()!=null) + domainAxisJSON.setValue(reportRuntime.getChartLegendColumn().getColId()); + else + domainAxisJSON.setValue(""); + chartJSON.setDomainAxisJSON(domainAxisJSON); + + + List reportCols = reportRuntime.getAllColumns(); + boolean hasSeriesColumn = false; + //ArrayList + for (Iterator iter = reportCols.iterator(); iter + .hasNext();) { + DataColumnType dct = (DataColumnType) iter.next(); + if(dct.isChartSeries()!=null && dct.isChartSeries().booleanValue()) { + chartJSON.setHasCategoryAxis(true); + CategoryAxisJSON categoryAxisJSON = new CategoryAxisJSON(); + categoryAxisJSON.setIndex(0); + categoryAxisJSON.setTitle(dct.getDisplayName()); + categoryAxisJSON.setValue(dct.getColId()); + chartJSON.setCategoryAxisJSON(categoryAxisJSON); + } + //allColumns + //.add(new Item(dct.getColId(), dct.getDisplayName())); + } + //chartJSON.setCategoryAxis(categoryAxis); + //chartJSON.set + + List chartValueCols = reportRuntime.getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, null); + DataColumnType dct_RangeAxis = null; + //int noChart = 0; + //if(chartValueCols.size()<=0) { + //chartValueCols.addAll(reportCols); + //noChart = 1; + //} + if(chartValueCols.size() <= 0) { + chartValueCols = reportCols; + } + ArrayList rangeAxisJSONList = new ArrayList(); + for (int k = 0; k < chartValueCols.size(); k++) { + dct_RangeAxis = chartValueCols.get(k); + RangeAxisJSON rangeAxisJSON = new RangeAxisJSON(); + + RangeAxisLabelJSON rangeAxisLabelJSON = new RangeAxisLabelJSON(); + rangeAxisLabelJSON.setIndex(0); + rangeAxisLabelJSON.setTitle(dct_RangeAxis.getDisplayName()); + rangeAxisLabelJSON.setValue(dct_RangeAxis.getColId()); + rangeAxisJSON.setRangeAxisLabelJSON(rangeAxisLabelJSON); + RangeLineTypeJSON rangeLineTypeJSON = new RangeLineTypeJSON(); + rangeLineTypeJSON.setIndex(0); + rangeLineTypeJSON.setTitle(""); + rangeLineTypeJSON.setValue(dct_RangeAxis.getChartLineType()); + rangeAxisJSON.setRangeLineTypeJSON(rangeLineTypeJSON); + + RangeColorJSON rangeColorJSON = new RangeColorJSON(); + rangeColorJSON.setIndex(0); + rangeColorJSON.setTitle(""); + rangeColorJSON.setValue(dct_RangeAxis.getChartColor()); + rangeAxisJSON.setRangeColorJSON(rangeColorJSON); + String chartGroup = ""; + chartGroup = AppUtils.nvl(dct_RangeAxis.getChartGroup()); + if(chartGroup.indexOf("|")!=-1) + chartGroup = chartGroup.substring(0, chartGroup.indexOf("|")); + + + rangeAxisJSON.setRangeChartGroup(chartGroup); + String yAxis = ""; + yAxis = AppUtils.nvl(dct_RangeAxis.getYAxis()); + if(yAxis.indexOf("|")!=-1) + yAxis = yAxis.substring(0, yAxis.indexOf("|")); + + rangeAxisJSON.setRangeYAxis(yAxis); + rangeAxisJSON.setShowAsArea((dct_RangeAxis.isIsRangeAxisFilled()!=null && dct_RangeAxis.isIsRangeAxisFilled().booleanValue())?true:false); + rangeAxisJSONList.add(rangeAxisJSON); + } + CommonChartOptions commonChartOptions = new CommonChartOptions(); + commonChartOptions.setLegendPosition(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>0?reportRuntime.getLegendPosition().toLowerCase():"top"); + String legendLabelAngle = ""; + legendLabelAngle = reportRuntime.getLegendLabelAngle().toLowerCase(); + commonChartOptions.setLegendLabelAngle(AppUtils.nvl(legendLabelAngle).length()>0?legendLabelAngle:"up45"); + commonChartOptions.setHideLegend(reportRuntime.hideChartLegend()); + commonChartOptions.setAnimateAnimatedChart(reportRuntime.isAnimateAnimatedChart()); + commonChartOptions.setTopMargin(reportRuntime.getTopMargin()!=null?reportRuntime.getTopMargin():new Integer("30")); + commonChartOptions.setBottomMargin(reportRuntime.getBottomMargin()!=null?reportRuntime.getBottomMargin():new Integer("50")); + commonChartOptions.setLeftMargin(reportRuntime.getLeftMargin()!=null?reportRuntime.getLeftMargin():new Integer("100")); + commonChartOptions.setRightMargin(reportRuntime.getRightMargin()!=null?reportRuntime.getRightMargin():new Integer("60")); + chartJSON.setCommonChartOptions(commonChartOptions); + + if(chartType.equals(AppConstants.GT_BAR_3D)) { + BarChartOptions barChartOptions = new BarChartOptions(); + barChartOptions.setDisplayBarControls(reportRuntime.displayBarControls()?true:false); + barChartOptions.setMinimizeXAxisTickers(reportRuntime.isLessXaxisTickers()?true:false); + barChartOptions.setStackedChart(reportRuntime.isChartStacked()?true:false); + barChartOptions.setTimeAxis(reportRuntime.isTimeAxis()?true:false); + barChartOptions.setVerticalOrientation(reportRuntime.isVerticalOrientation()?true:false); + barChartOptions.setxAxisDateType(reportRuntime.isXAxisDateType()?true:false); + barChartOptions.setyAxisLogScale(reportRuntime.isLogScale()?true:false); + chartJSON.setBarChartOptions(barChartOptions); + chartJSON.setTimeSeriesChartOptions(null); + chartJSON.setPieChartOptions(null); + chartJSON.setFlexTimeSeriesChartOptions(null); + + } else if(chartType.equals(AppConstants.GT_TIME_SERIES)) { + TimeSeriesChartOptions timeSeriesChartOptions = new TimeSeriesChartOptions(); + timeSeriesChartOptions.setAddXAxisTicker(reportRuntime.isAddXAxisTickers()); + timeSeriesChartOptions.setLineChartRenderer(AppUtils.nvl(reportRuntime.getTimeSeriesRender()).length()>0?reportRuntime.getTimeSeriesRender():"line"); + timeSeriesChartOptions.setMultiSeries(reportRuntime.isMultiSeries()); + timeSeriesChartOptions.setNonTimeAxis(reportRuntime.isTimeAxis()); + timeSeriesChartOptions.setShowXAxisLabel(reportRuntime.isShowXaxisLabel()); + chartJSON.setBarChartOptions(null); + chartJSON.setTimeSeriesChartOptions(timeSeriesChartOptions); + chartJSON.setPieChartOptions(null); + chartJSON.setFlexTimeSeriesChartOptions(null); + } else if(chartType.equals(AppConstants.GT_ANNOTATION_CHART) || chartType.equals(AppConstants.GT_FLEX_TIME_CHARTS)) { + FlexTimeSeriesChartOptions flexTimeSeriesChartOptions = new FlexTimeSeriesChartOptions(); + flexTimeSeriesChartOptions.setZoomIn(reportRuntime.getZoomIn()!=null?reportRuntime.getZoomIn():new Integer("25")); + String timeAxisTypeStr = ""; + timeAxisTypeStr = reportRuntime.getTimeAxisType().toLowerCase(); + flexTimeSeriesChartOptions.setTimeAxisType(timeAxisTypeStr); + chartJSON.setBarChartOptions(null); + chartJSON.setTimeSeriesChartOptions(null); + chartJSON.setPieChartOptions(null); + chartJSON.setFlexTimeSeriesChartOptions(flexTimeSeriesChartOptions); + } + chartJSON.setRangeAxisList(rangeAxisJSONList); + chartJSON.setPrimaryAxisLabel(reportRuntime.getChartLeftAxisLabel()); + chartJSON.setSecondaryAxisLabel(reportRuntime.getChartRightAxisLabel()); + chartJSON.setMinRange(reportRuntime.getRangeAxisLowerLimit()); + chartJSON.setMaxRange(reportRuntime.getRangeAxisUpperLimit()); + + if(showData) { + ArrayList> wholeList = new ArrayList>(); + + ArrayList rowList = new ArrayList(); + if(showData) { + for (int i = 0; i < ds.getRowCount(); i++) { + rowList = new ArrayList(); + for (int j = 0; j0) { + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + reportSQL = Utils.replaceInString(reportSQL, fieldDisplay, nvl( + paramValue, "NULL")); + } + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + reportSQL = Utils.replaceInString(reportSQL, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL")); + reportSQL = Utils.replaceInString(reportSQL, fieldDisplay , nvl( + paramValue, "NULL")); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, ("SQL " + reportSQL)); + String legendCol = "1 a"; + // String valueCol = "1"; + StringBuffer groupCol = new StringBuffer(); + StringBuffer seriesCol = new StringBuffer(); + StringBuffer valueCols = new StringBuffer(); + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, request); + if (nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + legendCol = getSelectExpr(dc, colName)+" " + dc.getColId(); + // if(dc.getChartSeq()>0) + // valueCol = "NVL("+colName+", 0) "+dc.getColId(); + if ((!nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND)) + && (dc.getChartSeq()!=null && dc.getChartSeq().intValue() <= 0) && dc.isGroupBreak()) { + groupCol.append(", "); + groupCol.append(colName + " " + dc.getColId()); + } + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(dc.isChartSeries()!=null && dc.isChartSeries().booleanValue()) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ getSelectExpr(dc,getColumnSelectStr(dc, request))+ " " + dc.getColId()); + } + } + + /*for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + if(!dc.isChartSeries() && !(nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + //System.out.println("*****************, "+ " " +getColumnSelectStr(dc, paramValues)+ " "+ getSelectExpr(dc,getColumnSelectStr(dc, paramValues))); + seriesCol.append(", "+ formatChartColumn(getSelectExpr(dc,getColumnSelectStr(dc, paramValues)))+ " " + dc.getColId()); + } + }*/ + + for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, request); + String paramValue = ""; + if(AppUtils.nvl(colName).startsWith("[")) { + if (reportRuntime.getFormFieldList() != null) { + for (Iterator iterC = reportRuntime.getFormFieldList().getFormField().iterator(); iterC.hasNext();) { + FormFieldType fft = (FormFieldType) iterC.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = reportRuntime.getFormFieldDisplayName(fft); + String formfield_value = ""; + if(AppUtils.nvl(fieldDisplay).equals(colName)) { + formfield_value = AppUtils.getRequestNvlValue(request, fieldId); + paramValue = nvl(formfield_value); + } + } + + } + + seriesCol.append("," + (AppUtils.nvl(paramValue).length()>0? paramValue:"null") + " " + dc.getColId()); + } else { + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + seriesCol.append("," + (AppUtils.nvl(paramValue).length()>0? paramValue:formatChartColumn(colName)) + " " + dc.getColId()); + } + } // for + + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = dc.getDisplayName(); + String colValue = getColumnSelectStr(dc, request); + //String colName = getColumnSelectStr(dc, formGrid); + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + seriesCol.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + seriesCol.append(", " + colValue + " " + AppConstants.RI_CHART_COLOR ); + if(colName.equals(AppConstants.RI_CHART_MARKER_START)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_START + " " + AppConstants.RI_CHART_MARKER_START ); + if(colName.equals(AppConstants.RI_CHART_MARKER_END)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_END + " " + AppConstants.RI_CHART_MARKER_END ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_LEFT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_LEFT + " " + AppConstants.RI_CHART_MARKER_TEXT_LEFT ); + if(colName.equals(AppConstants.RI_CHART_MARKER_TEXT_RIGHT)) + seriesCol.append(", " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT + " " + AppConstants.RI_CHART_MARKER_TEXT_RIGHT ); + //if(colName.equals(AppConstants.RI_ANOMALY_TEXT)) + //seriesCol.append(", " + AppConstants.RI_ANOMALY_TEXT + " " + AppConstants.RI_ANOMALY_TEXT ); + } + + //debugLogger.debug("ReportSQL Chart " + reportSQL ); + /*for (Iterator iter = chartValueCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //valueCols.append(", NVL(" + formatChartColumn(colName) + ",0) " + dc.getColId()); + valueCols.append("," + formatChartColumn(colName) + " " + dc.getColId()); + } // for + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + DataColumnType dc = (DataColumnType) iter.next(); + String colName = getColumnSelectStr(dc, paramValues); + //if(colName.equals(AppConstants.RI_CHART_TOTAL_COL) || colName.equals(AppConstants.RI_CHART_COLOR)) { + if(colName.equals(AppConstants.RI_CHART_TOTAL_COL)) + valueCols.append(", " + AppConstants.RI_CHART_TOTAL_COL + " " + AppConstants.RI_CHART_TOTAL_COL ); + if (colName.equals(AppConstants.RI_CHART_COLOR)) + valueCols.append(", " + AppConstants.RI_CHART_COLOR + " " + AppConstants.RI_CHART_COLOR ); + if (colName.equals(AppConstants.RI_CHART_INCLUDE)) + valueCols.append(", " + AppConstants.RI_CHART_INCLUDE + " " + AppConstants.RI_CHART_INCLUDE ); + //} + }*/ + String final_sql = ""; + reportSQL = Utils.replaceInString(reportSQL, " from ", " FROM "); + reportSQL = Utils.replaceInString(reportSQL, " From ", " FROM "); + reportSQL = Utils.replaceInString(reportSQL, " select ", " SELECT "); + reportSQL = Utils.replaceInString(reportSQL, " union ", " UNION "); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); +// if(reportSQL.indexOf("UNION") != -1) { +// if(reportSQL.indexOf("FROM(")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM(") ); +// else if (reportSQL.indexOf("FROM (")!=-1) +// final_sql += " "+reportSQL.substring(reportSQL.indexOf("FROM (") ); +// //TODO ELSE THROW ERROR +// } +// else { +// final_sql += " "+reportSQL.substring(reportSQL.toUpperCase().indexOf(" FROM ")); +// } + int pos = 0; + int pos_first_select = 0; + int pos_dup_select = 0; + int pos_prev_select = 0; + int pos_last_select = 0; + if (reportSQL.indexOf("FROM", pos)!=-1) { + pos = reportSQL.indexOf("FROM", pos); + pos_dup_select = reportSQL.lastIndexOf("SELECT",pos); + pos_first_select = reportSQL.indexOf("SELECT");//,pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_select " + pos_first_select + " " + pos_dup_select)); + if(pos_dup_select > pos_first_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("********pos_dup_select ********" + pos_dup_select)); + //pos_dup_select1 = pos_dup_select; + pos_prev_select = pos_first_select; + pos_last_select = pos_dup_select; + while (pos_last_select > pos_prev_select) { + logger.debug(EELFLoggerDelegate.debugLogger, ("pos_last , pos_prev " + pos_last_select + " " + pos_prev_select)); + pos = reportSQL.indexOf("FROM", pos+2); + pos_prev_select = pos_last_select; + pos_last_select = reportSQL.lastIndexOf("SELECT",pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("in WHILE LOOP LAST " + pos_last_select)); + } + } + + } + final_sql += " "+reportSQL.substring(pos); + logger.debug(EELFLoggerDelegate.debugLogger, ("Final SQL " + final_sql)); + String sql = "SELECT " + legendCol + ", " + legendCol+"_1" + seriesCol.toString()+ nvl(valueCols.toString(), ", 1") + + groupCol.toString() + + final_sql; + logger.debug(EELFLoggerDelegate.debugLogger, ("Final sql in generateChartSQL " +sql)); + + return sql; + } // generateChartSQL + + private String getColumnSelectStr(DataColumnType dc, HttpServletRequest request) { + //String colName = dc.isCalculated() ? dc.getColName() + // : ((nvl(dc.getTableId()).length() > 0) ? (dc.getTableId() + "." + dc + // .getColName()) : dc.getColName()); + String colName = dc.getColName(); + String paramValue = null; + //if (dc.isCalculated()) { + if (reportRuntime.getFormFieldList() != null) { + for (Iterator iter = reportRuntime.getFormFieldList().getFormField().iterator(); iter.hasNext();) { + FormFieldType fft = (FormFieldType) iter.next(); + String fieldId = fft.getFieldId(); + String fieldDisplay = reportRuntime.getFormFieldDisplayName(fft); + String formfield_value = ""; + formfield_value = AppUtils.getRequestNvlValue(request, fieldId); + paramValue = nvl(formfield_value); + if(paramValue.length()>0) { + /*sql = Utils.replaceInString(sql, "'" + fieldDisplay + "'", nvl( + paramValue, "NULL"));*/ + colName = Utils.replaceInString(colName, "'" + fieldDisplay + "'", "'"+nvl( + paramValue, "NULL")+"'"); + colName = Utils.replaceInString(colName, fieldDisplay, nvl( + paramValue, "NULL")); + } + } + return colName; + } + //} + return colName; + } // getColumnSelectStr + + + + public String getSelectExpr(DataColumnType dct) { + // String colName = + // dct.isCalculated()?dct.getColName():((nvl(dct.getTableId()).length()>0)?(dct.getTableId()+"."+dct.getColName()):dct.getColName()); + return getSelectExpr(dct, dct.getColName() /* colName */); + } // getSelectExpr + + private String getSelectExpr(DataColumnType dct, String colName) { + String colType = dct.getColType(); + if (colType.equals(AppConstants.CT_CHAR) + || ((nvl(dct.getColFormat()).length() == 0) && (!colType + .equals(AppConstants.CT_DATE)))) + return colName; + else + return "TO_CHAR(" + colName + ", '" + + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) + "')"; + } // getSelectExpr + + private String formatChartColumn(String colName) { + logger.debug(EELFLoggerDelegate.debugLogger, ("Format Chart Column Input colName " + colName)); + colName = colName.trim(); + colName = Utils.replaceInString(colName, "TO_CHAR", "to_char"); + colName = Utils.replaceInString(colName, "to_number", "TO_NUMBER"); + //reportSQL = reportSQL.replaceAll("[\\s]*\\(", "("); + colName = colName.replaceAll(",[\\s]*\\(", ",("); + StringBuffer colNameBuf = new StringBuffer(colName); + int pos = 0, posFormatStart = 0, posFormatEnd = 0; + String format = ""; + + if(colNameBuf.indexOf("999")==-1 && colNameBuf.indexOf("990")==-1) { + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + + while (colNameBuf.indexOf("to_char")!=-1) { + if(colNameBuf.indexOf("999")!=-1 || colNameBuf.indexOf("990")!=-1) { + pos = colNameBuf.indexOf("to_char"); + colNameBuf.insert(pos, " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ("); + pos = colNameBuf.indexOf("to_char"); + colNameBuf.replace(pos, pos+7, "TO_CHAR"); + //colName = Utils.replaceInString(colNameBuf.toString(), "to_char", " TO_NUMBER ( CR_RAPTOR.SAFE_TO_NUMBER ( TO_CHAR "); + logger.debug(EELFLoggerDelegate.debugLogger, ("After adding to_number " + colNameBuf.toString())); + //posFormatStart = colNameBuf.lastIndexOf(",'")+1; + posFormatStart = colNameBuf.indexOf(",'", pos)+1; + posFormatEnd = colNameBuf.indexOf(")",posFormatStart); + logger.debug(EELFLoggerDelegate.debugLogger, (posFormatStart + " " + posFormatEnd + " "+ pos)); + format = colNameBuf.substring(posFormatStart, posFormatEnd); + //posFormatEnd = colNameBuf.indexOf(")",posFormatEnd); + colNameBuf.insert(posFormatEnd+1, " ," + format + ") , "+ format + ")"); + logger.debug(EELFLoggerDelegate.debugLogger, ("colNameBuf " + colNameBuf.toString())); + } + } + logger.debug(EELFLoggerDelegate.debugLogger, (" return colName " + colNameBuf.toString())); + return colNameBuf.toString(); + } + + public List getChartValueColumnsList( int filter, HashMap formValues) { /*filter; all=0;create without new chart =1; createNewChart=2 */ + List reportCols = reportRuntime.getAllColumns(); + + ArrayList chartValueCols = new ArrayList(); + int flag = 0; + for (Iterator iter = reportCols.iterator(); iter.hasNext();) { + flag = 0; + DataColumnType dc = (DataColumnType) iter.next(); +// if(filter == 2 || filter == 1) { + flag = reportRuntime.getDependsOnFormFieldFlag(dc, formValues); + + if( (dc.getChartSeq()!=null && dc.getChartSeq()> 0) && flag == 0 && !(nvl(dc.getColOnChart()).equals(AppConstants.GC_LEGEND))) { + if(nvl(dc.getChartGroup()).length()<=0) { + if( filter == 2 && (dc.isCreateInNewChart()!=null && dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } else if (filter == 1 && (dc.isCreateInNewChart()==null || !dc.isCreateInNewChart().booleanValue())) { + chartValueCols.add(dc); + } + else if(filter == 0) chartValueCols.add(dc); + } else chartValueCols.add(dc); + } +// } else +// chartValueCols.add(dc); + } // for + Collections.sort(chartValueCols, new ChartSeqComparator()); + return chartValueCols; + } // getChartValueColumnsList + + public String parseTitle(String title, HashMap formValues) { + Set set = formValues.entrySet(); + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + if(title.indexOf("["+ entry.getKey() + "]")!= -1) { + title = Utils.replaceInString(title, "["+entry.getKey()+"]", nvl( + (String) entry.getValue(), "")); + } + } + return title; + } + + public java.util.Date getDateFromDateStr(String dateStr) { + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat EEEMMDDYYYYFormat = new SimpleDateFormat("EEE, MM/dd/yyyy"); //2012-11-01 00:00:00 + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat timestampHrFormat = new SimpleDateFormat("yyyy-MM-dd HH"); + SimpleDateFormat timestampDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHFormat = new SimpleDateFormat("MM/dd/yyyy HH"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat timestampFormat1 = new SimpleDateFormat("yyyy-M-d.HH.mm. s. S"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat YYYYFormat = new SimpleDateFormat("yyyy"); + java.util.Date date = null; + + int formatFlag = 0; + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + /*int yearFlag = 1; + int monthFlag = 2; + int dayFlag = 3; + int hourFlag = 4; + int minFlag = 5; + int secFlag = 6; + int milliSecFlag = 7; + int dayoftheweekFlag = 8; + int flagDate = 10; + */ + + date = MMDDYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + if(date==null) { + date = EEEMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYOFTHEWEEKFLAG; + } + if(date==null) { + date = MMDDYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + if(date==null) { + //MMDDYYYYHHFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + date = MMDDYYYYHHFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = MMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = YYYYMMDDFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = timestampFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) { + date = timestampHrFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = timestampDayFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMMMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONTHYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MMDDYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = MMDDYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = timestampFormat1.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYYYHHMMZFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = YYYYFormat.parse(dateStr, new ParsePosition(0)); + /* Some random numbers should not satisfy this year format. */ + if(dateStr.length()>4) date = null; + if(date!=null) formatFlag = YEARFLAG; + } + if(date==null) + date = null; + return date; + } + + public int getFlagFromDateStr(String dateStr) { + SimpleDateFormat MMDDYYYYFormat = new SimpleDateFormat("MM/dd/yyyy"); + SimpleDateFormat EEEMMDDYYYYFormat = new SimpleDateFormat("EEE, MM/dd/yyyy"); //2012-11-01 00:00:00 + SimpleDateFormat YYYYMMDDFormat = new SimpleDateFormat("yyyy/MM/dd"); + SimpleDateFormat MONYYYYFormat = new SimpleDateFormat("MMM yyyy"); + SimpleDateFormat MMYYYYFormat = new SimpleDateFormat("MM/yyyy"); + SimpleDateFormat MMMMMDDYYYYFormat = new SimpleDateFormat("MMMMM dd, yyyy"); + SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat timestampHrFormat = new SimpleDateFormat("yyyy-MM-dd HH"); + SimpleDateFormat timestampDayFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat DDMONYYYYFormat = new SimpleDateFormat("dd-MMM-yyyy"); + SimpleDateFormat MONTHYYYYFormat = new SimpleDateFormat("MMMMM, yyyy"); + SimpleDateFormat MMDDYYYYHHFormat = new SimpleDateFormat("MM/dd/yyyy HH"); + SimpleDateFormat MMDDYYYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); + SimpleDateFormat MMDDYYYYHHMMFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); + SimpleDateFormat YYYYMMDDHHMMSSFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + SimpleDateFormat YYYYMMDDHHMMFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + SimpleDateFormat DDMONYYYYHHMMSSFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); + SimpleDateFormat DDMONYYYYHHMMFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); + SimpleDateFormat MMDDYYFormat = new SimpleDateFormat("MM/dd/yy"); + SimpleDateFormat MMDDYYHHMMFormat = new SimpleDateFormat("MM/dd/yy HH:mm"); + SimpleDateFormat MMDDYYHHMMSSFormat = new SimpleDateFormat("MM/dd/yy HH:mm:ss"); + SimpleDateFormat timestampFormat1 = new SimpleDateFormat("yyyy-M-d.HH.mm. s. S"); + SimpleDateFormat MMDDYYYYHHMMZFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm z"); + SimpleDateFormat YYYYFormat = new SimpleDateFormat("yyyy"); + java.util.Date date = null; + + int formatFlag = 0; + + final int YEARFLAG = 1; + final int MONTHFLAG = 2; + final int DAYFLAG = 3; + final int HOURFLAG = 4; + final int MINFLAG = 5; + final int SECFLAG = 6; + final int MILLISECFLAG = 7; + final int DAYOFTHEWEEKFLAG = 8; + final int FLAGDATE = 9; + /*int yearFlag = 1; + int monthFlag = 2; + int dayFlag = 3; + int hourFlag = 4; + int minFlag = 5; + int secFlag = 6; + int milliSecFlag = 7; + int dayoftheweekFlag = 8; + int flagDate = 10; + */ + + date = MMDDYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + if(date==null) { + date = EEEMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYOFTHEWEEKFLAG; + } + if(date==null) { + date = MMDDYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + if(date==null) { + //MMDDYYYYHHFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + date = MMDDYYYYHHFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = MMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = YYYYMMDDFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = timestampFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + if(date==null) { + date = timestampHrFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = HOURFLAG; + } + if(date==null) { + date = timestampDayFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + if(date==null) { + date = MMMMMDDYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + if(date==null) { + date = MONTHYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MONTHFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = YYYYMMDDHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = DDMONYYYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = DDMONYYYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = MMDDYYHHMMSSFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYHHMMFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = MMDDYYFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = DAYFLAG; + } + + if(date==null) { + date = timestampFormat1.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = SECFLAG; + } + + if(date==null) { + date = MMDDYYYYHHMMZFormat.parse(dateStr, new ParsePosition(0)); + if(date!=null) formatFlag = MINFLAG; + } + + if(date==null) { + date = YYYYFormat.parse(dateStr, new ParsePosition(0)); + /* Some random numbers should not satisfy this year format. */ + if(dateStr.length()>4) date = null; + if(date!=null) formatFlag = YEARFLAG; + } + if(date==null) + date = null; + return formatFlag; + } + + public static String[] reverse(String[] arr) { + List list = Arrays.asList(arr); + Collections.reverse(list); + return (String[])list.toArray(); + } + + public int getNumberOfDecimalPlaces(double num) { + Double d = num; + String[] splitter = d.toString().split("\\."); + splitter[0].length(); // Before Decimal Count + splitter[1].length(); // After Decimal Count + return splitter[1].length(); + } + + public boolean getBooleanValue(String s) { + return getBooleanValue(s,null); + } + + public boolean getBooleanValue(String s, Boolean defaultValue) { + s = nvl(s); + if(s.length()<=0 && defaultValue!=null) return defaultValue.booleanValue(); + else if(s.length()<=0) return false; + else { + if(s.toUpperCase().startsWith("Y") || s.toLowerCase().equals("true")) + return true; + else + return false; + } + } + + + public String IntToLetter(int Int) { + if (Int<27){ + return Character.toString((char)(Int+96)); + } else { + if (Int%26==0) { + return IntToLetter((Int/26)-1)+IntToLetter((Int%26)+1); + } else { + return IntToLetter(Int/26)+IntToLetter(Int%26); + } + } + } + + + + + private void clearReportRuntimeBackup(HttpServletRequest request) { + //Session sess = Sessions.getCurrent(true)getCurrent(); + //HttpSession session = (HttpSession)sess.getNativeSession(); + HttpSession session = request.getSession(); + 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 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 static synchronized java.util.HashMap getRequestParametersMap(ReportRuntime rr, HttpServletRequest request) + { + HashMap valuesMap = new HashMap(); + + ReportFormFields rff = rr.getReportFormFields(); + + int idx = 0; + FormField ff = null; + + Map fieldNameMap = new HashMap(); + int countOfFields = 0 ; + + + for(rff.resetNext(); rff.hasNext(); idx++) { + ff = rff.getNext(); + fieldNameMap.put(ff.getFieldName(), ff.getFieldDisplayName()); + countOfFields++; + } + + List formParameter = new ArrayList(); + String formField = ""; + for(int i = 0 ; i < rff.size(); i++) { + ff = ((FormField)rff.getFormField(i)); + formField = ff.getFieldName(); + boolean isMultiValue = false; + isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) + || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); + boolean isTextArea = (ff.getFieldType().equals(FormField.FFT_TEXTAREA) && rr.getReportDefType() + .equals(AppConstants.RD_SQL_BASED)); + + if(request.getParameterValues(formField) != null && isMultiValue ) { + String[] vals = request.getParameterValues(formField); + StringBuffer value = new StringBuffer(""); + if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) { + + if ( isMultiValue ) { + value.append("("); + } + for(int j = 0 ; j < vals.length; j++) { + if(isMultiValue) value.append("'"); + try { + if(vals[j] !=null && vals[j].length() > 0) { + vals[j] = Utils.oracleSafe(vals[j]); + value.append(java.net.URLDecoder.decode(vals[j], "UTF-8"));// + ","; + } + else + value.append(vals[j]); + } catch (UnsupportedEncodingException ex) {value.append(vals[j]);} + catch (IllegalArgumentException ex1){value.append(vals[j]);} + catch (Exception ex2){ + value.append(vals[j]); + } + + + if(isMultiValue) value.append("'"); + + if(j != vals.length -1) { + value.append(","); + } + } + if(vals.length > 0) { + value.append(")"); + } + } + + //value = value.substring(0 , value.length()); + + valuesMap.put(fieldNameMap.get(formField), value.toString()); + value = new StringBuffer(""); + } else if(request.getParameter(formField) != null) { + if(isTextArea) { + String value = ""; + value = request.getParameter(formField); + + value = Utils.oracleSafe(value); + value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; + value = Utils.replaceInString(value, "|", ","); + valuesMap.put(fieldNameMap.get(formField), value); + value = ""; + } else { + String value = ""; + if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) + value = request.getParameter(formField); + valuesMap.put(fieldNameMap.get(formField), Utils.oracleSafe(value)); + } + + } else { + valuesMap.put(fieldNameMap.get(formField), "" ); + } + + } + + return valuesMap; + + } + +} 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 new file mode 100644 index 00000000..e023b8c0 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ChartWebRuntime.java @@ -0,0 +1,441 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +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.model.runtime.ReportRuntime; +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.web.support.UserUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + + +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 StringBuffer whereClause = new StringBuffer(""); + // request used to grab request parameters + private HttpServletRequest request; + + + public ReportRuntime reportRuntime; + public ReportData reportData; + + //Used to pass user information + private final Map params = new HashMap(); + + //from chart generator retrieves list of charts to render + public ArrayList chartList; + public ArrayList infoList; + + private String totalSql; + + + // + private String drilldown_index = "0"; + + public List getRolesCommaSeperated(HttpServletRequest request) { + HashMap roles = UserUtils.getRoles(request); + List roleList = null; + StringBuffer roleBuf = new StringBuffer(""); + int count = 0; + 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 = (!action.equals("chart.json") || action.equals("chart.data.json")); + + + + 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 params = new HashMap(); + 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 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) { + StringBuffer title = new StringBuffer(""); + title.append(reportRuntime.getReportName()); + } + + if(! (action.equals("chart.json") || action.equals("chart.data.json"))) { + + + //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 ArrayList getChartList() { + return chartList; + } + + /** + * @param chartList the chartList to set + */ + public void setChartList(ArrayList chartList) { + this.chartList = chartList; + } + + /** + * @return the infoList + */ + public ArrayList getInfoList() { + return infoList; + } + + /** + * @param infoList the infoList to set + */ + public void setInfoList(ArrayList 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 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 chartOptionsMap) { + drawD3Charts(chartOptionsMap); + + } + */ + + public String drawD3Charts(HashMap chartOptionsMap, HttpServletRequest request) { + + ChartD3Helper chartHelper = new ChartD3Helper(reportRuntime); + chartHelper.setChartType(reportRuntime.getChartType()); + try { + return chartHelper.createVisualization(reportRuntime, chartOptionsMap, request); + } catch(RaptorException ex) { + ex.printStackTrace(); + } + return ""; + + } + + public String returnChartJSON(HashMap 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 ""; + + } + + } + diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CommonChartOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CommonChartOptions.java new file mode 100644 index 00000000..35429211 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/CommonChartOptions.java @@ -0,0 +1,99 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +public class CommonChartOptions { + + private String legendPosition = "top"; + private String legendLabelAngle = "up45"; + private boolean hideLegend = false; + private boolean animateAnimatedChart = true; + private int topMargin = 30; + private int bottomMargin = 50; + private int leftMargin = 100; + private int rightMargin = 60; + + public String getLegendPosition() { + return legendPosition; + } + public void setLegendPosition(String legendPosition) { + this.legendPosition = legendPosition; + } + public String getLegendLabelAngle() { + return legendLabelAngle; + } + public void setLegendLabelAngle(String legendLabelAngle) { + this.legendLabelAngle = legendLabelAngle; + } + public boolean isHideLegend() { + return hideLegend; + } + public void setHideLegend(boolean hideLegend) { + this.hideLegend = hideLegend; + } + public boolean isAnimateAnimatedChart() { + return animateAnimatedChart; + } + public void setAnimateAnimatedChart(boolean animateAnimatedChart) { + this.animateAnimatedChart = animateAnimatedChart; + } + public int getTopMargin() { + return topMargin; + } + public void setTopMargin(int topMargin) { + this.topMargin = topMargin; + } + public int getBottomMargin() { + return bottomMargin; + } + public void setBottomMargin(int bottomMargin) { + this.bottomMargin = bottomMargin; + } + public int getLeftMargin() { + return leftMargin; + } + public void setLeftMargin(int leftMargin) { + this.leftMargin = leftMargin; + } + public int getRightMargin() { + return rightMargin; + } + public void setRightMargin(int rightMargin) { + this.rightMargin = rightMargin; + } +} \ No newline at end of file diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java new file mode 100644 index 00000000..dd1f68d3 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java @@ -0,0 +1,76 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAttribute; +import javax.xml.bind.annotation.XmlElement; + +import org.json.JSONObject; +import org.onap.portalsdk.analytics.model.base.IdNameValue; +import org.onap.portalsdk.analytics.view.ColumnHeader; +import org.onap.portalsdk.analytics.view.DataValue; +import org.onap.portalsdk.analytics.xmlobj.ColFilterList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnList; +import org.onap.portalsdk.analytics.xmlobj.DataColumnType; + +public class ErrorJSONRuntime { + + private String errormessage; + private String stacktrace; + + public String getErrormessage() { + return errormessage; + } + public void setErrormessage(String errormessage) { + this.errormessage = errormessage; + } + public String getStacktrace() { + return stacktrace; + } + public void setStacktrace(String stacktrace) { + this.stacktrace = stacktrace; + } + + + + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java new file mode 100644 index 00000000..d0329c91 --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java @@ -0,0 +1,56 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalsdk.analytics.model.runtime; + +public class FlexTimeSeriesChartOptions { + private int zoomIn = 25; + private String timeAxisType = ""; + public int getZoomIn() { + return zoomIn; + } + public void setZoomIn(int zoomIn) { + this.zoomIn = zoomIn; + } + public String getTimeAxisType() { + return timeAxisType; + } + public void setTimeAxisType(String timeAxisType) { + this.timeAxisType = timeAxisType; + } + +} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java new file mode 100644 index 00000000..f38bceae --- /dev/null +++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/runtime/FormField.java @@ -0,0 +1,2121 @@ +/* + * ============LICENSE_START========================================== + * ONAP Portal SDK + * =================================================================== + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the “License”); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +/* =========================================================================================== + * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) + * Raptor : This tool is used to generate different kinds of reports with lot of utilities + * =========================================================================================== + * + * ------------------------------------------------------------------------------------------- + * FormField.java - This class is used to generate all types of form field. + * ------------------------------------------------------------------------------------------- + * + * Created By : Stan Pishamanov + * Modified & Maintained By : Sundar Ramalingam + * + * Changes + * ------- + * 18-Aug-2009 : Version 8.5 (Sundar); Populating predefined formfields bug has been resolved. + * 13-Aug-2009 : Version 8.5 (RS); Form field chaining is supported even for hidden variables. + * 13-Aug-2009 : Version 8.5 (RS); Nothing changed just comment. + * 10-Aug-2009 : Version 9.0 (RS); required logic is added for Multiple Dropdown. + * 06-Aug-2009 : Version 9.0 (RS); B getAjaxHtml is added for converting form field chain from Iframe to AJAX. + * 08-Jun-2009 : Version 8.3 (RS); Hidden formfields now is displayed even when the sql is not provided. + * + */ +package org.onap.portalsdk.analytics.model.runtime; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.Map.Entry; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.text.html.HTMLDocument.HTMLReader.HiddenAction; + +import org.onap.portalsdk.analytics.error.RaptorException; +import org.onap.portalsdk.analytics.error.RaptorRuntimeException; +import org.onap.portalsdk.analytics.error.UserDefinedException; +import org.onap.portalsdk.analytics.model.base.*; +import org.onap.portalsdk.analytics.system.*; +import org.onap.portalsdk.analytics.util.*; +import org.onap.portalsdk.analytics.xmlobj.*; + +public class FormField extends org.onap.portalsdk.analytics.RaptorObject implements Serializable { + private static final String HTML_FORM = "formd"; + + private String fieldName = null; + + private String fieldDisplayName = null; + + private String fieldType = FFT_TEXT_W_POPUP; + + private String validationType = VT_NONE; + + private boolean required = false; + + public boolean hasPredefinedList = false; + + private String defaultValue = null; + + private Calendar rangeStartDate = null; + + private Calendar rangeEndDate = null; + + private String rangeStartDateSQL = null; + + private String rangeEndDateSQL = null; + + private String fieldDefaultSQL = null; + + private String multiSelectListSize = null; + + private String helpText = null; + + private IdNameList lookupList = null; + + private String dbInfo = null; + + private String userId = null; + + private boolean visible = true; + + private String dependsOn = null; + + private boolean triggerOtherFormFields = false; + + private boolean triggerThisFormfield = false; + + // Form field types + public static final String FFT_TEXT_W_POPUP = "TEXT_WITH_POPUP"; + + public static final String FFT_TEXT = "TEXT"; + + public static final String FFT_TEXTAREA = "TEXTAREA"; + + public static final String FFT_COMBO_BOX = "COMBO_BOX"; + + public static final String FFT_LIST_BOX = "LIST_BOX"; + + public static final String FFT_RADIO_BTN = "RADIO_BTN"; + + public static final String FFT_CHECK_BOX = "CHECK_BOX"; + + public static final String FFT_LIST_MULTI = "LIST_MULTI_SELECT"; + + public static final String FFT_HIDDEN = "HIDDEN"; + + public static final String FFT_BLANK = "BLANK"; + + // Validation types + public static final String VT_NONE = "NONE"; + + public static final String VT_DATE = "DATE"; + + public static final String VT_TIMESTAMP_HR = "TIMESTAMP_HR"; + + public static final String VT_TIMESTAMP_MIN = "TIMESTAMP_MIN"; + + public static final String VT_TIMESTAMP_SEC = "TIMESTAMP_SEC"; + + public static final String VT_INT = "INTEGER"; + + public static final String VT_INT_POSITIVE = "POSITIVE_INTEGER"; + + public static final String VT_INT_NON_NEGATIVE = "NON_NEGATIVE_INTEGER"; + + public static final String VT_FLOAT = "FLOAT"; + + public static final String VT_FLOAT_POSITIVE = "POSITIVE_FLOAT"; + + public static final String VT_FLOAT_NON_NEGATIVE = "NON_NEGATIVE_FLOAT"; + + private FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) { + //super(); + this (fieldName,fieldDisplayName,fieldType,validationType,required,defaultValue,helpText, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize); + setVisible(visible); + } // FormField + + private FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) { + super(); + setFieldName(fieldName); + setFieldDisplayName(fieldDisplayName); + setFieldType(nvl(fieldType, FFT_TEXT)); + setValidationType(validationType); + setRequired(required); + setDefaultValue(defaultValue); + setHelpText(helpText); + setDependsOn(dependsOn); + setRangeStartDate(rangeStartDate); + setRangeEndDate(rangeEndDate); + setRangeStartDateSQL(rangeStartDateSQL); + setRangeEndDateSQL(rangeEndDateSQL); + setMultiSelectListSize(multiSelectListSize); + } + public FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, + List predefinedValues, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) { + this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, + helpText,visible, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize); + if (predefinedValues != null) + setPredefinedListLookup(predefinedValues); + } // FormField + + public FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, + String lookupSql, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) { + this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, + helpText,visible, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize); + if (defaultValue!=null && defaultValue.length()>10 && defaultValue.substring(0,10).trim().toLowerCase().startsWith("select")) { + setFieldDefaultSQL(defaultValue); + setDefaultValue(""); + } + setLookupList(new IdNameSql(lookupSql,defaultValue)); + } // FormField + + public FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, + String dbTableName, String dbIdField, String dbNameField, String dbSortByField, boolean visible, String dependsOn, Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize) { + this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, + helpText,dbTableName,dbIdField,dbNameField,dbSortByField, dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize); + setVisible(visible); + } + + public FormField(String fieldName, String fieldDisplayName, String fieldType, + String validationType, boolean required, String defaultValue, String helpText, + String dbTableName, String dbIdField, String dbNameField, String dbSortByField, String dependsOn, + Calendar rangeStartDate, Calendar rangeEndDate, + String rangeStartDateSQL, String rangeEndDateSQL, String multiSelectListSize ) { + this(fieldName, fieldDisplayName, fieldType, validationType, required, defaultValue, + helpText,dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize); + //if(dependsOn !=null){ this.dependsOn = dependsOn; }else { this.dependsOn = "" + if (defaultValue!=null && defaultValue.length()>10 && defaultValue.substring(0,10).trim().toLowerCase().startsWith("select")) { + setFieldDefaultSQL(defaultValue); + setDefaultValue(""); + if(fieldType.equals(FFT_TEXT)) + setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField,defaultValue,true)); + else + setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField,defaultValue,false)); + } + else { + if(fieldType.equals(FFT_TEXT)) + setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField, true)); + else + setLookupList(new IdNameLookup(dbTableName, dbIdField, dbNameField, dbSortByField, false)); + } + + this.setRangeStartDate(rangeStartDate); + this.setRangeEndDate(rangeEndDate); + this.setRangeStartDateSQL(rangeStartDateSQL); + this.setRangeEndDateSQL(rangeEndDateSQL); + + } // FormField + + + private void setPredefinedListLookup(List predefinedValues) { + IdNameList lookup = new IdNameList(); + for (Iterator iter = predefinedValues.iterator(); iter.hasNext();) { + String value = (String) iter.next(); + lookup.addValue(value, value); + } // for + setHasPredefinedList(true); + setLookupList(lookup); + } // setPredefinedListLookup + + public String getFieldName() { + return fieldName; + } + + public String getFieldDisplayName() { + return fieldDisplayName; + } + + public String getFieldType() { + return fieldType; + } + + public String getValidationType() { + return validationType; + } + + public boolean isRequired() { + return required; + } + + public String getDefaultValue() { + return defaultValue; + } + + public String getHelpText() { + return helpText; + } + + public IdNameList getLookupList() { + return lookupList; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public void setFieldDisplayName(String fieldDisplayName) { + this.fieldDisplayName = fieldDisplayName; + } + + public void setFieldType(String fieldType) { + this.fieldType = fieldType; + } + + public void setValidationType(String validationType) { + this.validationType = nvl(validationType, VT_NONE); + } + + public void setRequired(boolean required) { + this.required = required; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public void setHelpText(String helpText) { + this.helpText = helpText; + } + + public void setLookupList(IdNameList lookupList) { + this.lookupList = lookupList; + } + + public void setDefaultList(IdNameList lookupList) { + this.lookupList = lookupList; + } + + public String getBaseSQL() { + return (lookupList == null) ? null : lookupList.getBaseSQL(); + } // getBaseSQL + + public String getBaseWholeSQL() { + return (lookupList == null) ? null : lookupList.getBaseWholeSQL(); + } // getBaseWholeSQL + + public String getBaseWholeReadonlySQL() { + return (lookupList == null) ? null : lookupList.getBaseWholeReadonlySQL(); + } // getBaseWholeReadonlySQL + + public String getBaseSQLForPDFExcel() { + return (lookupList == null) ? null : lookupList.getBaseSQLForPDFExcel(getFieldType().equals(FFT_LIST_MULTI)||getFieldType().equals(FFT_CHECK_BOX)?true:false); + } // getBaseSQLForPDFExcel + + public String getDisplayNameHtml() { + if (nvl(helpText).length() > 0) + return "" + fieldDisplayName + ""; + else + return fieldDisplayName; + } // getDisplayNameHtml + + /*public String getHtml() throws RaptorRuntimeException { + return getHtml("" , null, null, false); + } // getHtml*/ + + public String getHtml(String fieldValue, HashMap formValues, ReportRuntime rr)throws RaptorRuntimeException { + return getHtml(fieldValue,formValues, rr, false); + } + + public String getHelpLink(String fieldName) { + //return "\"\""; + return ((getHelpText()!=null && getHelpText().length()>0)? "tooltipText=\""+ getHelpText()+"\">": ">"); + //return ((getHelpText()!=null && getHelpText().length()>0)? "": ""); + } + + + public String getCallableAfterChainingJavascript(String fieldName, ReportRuntime rr) { + JavascriptItemType javascriptItemType = null; + StringBuffer callJavascriptText = new StringBuffer(""); + if(rr.getJavascriptList()!=null) { + for (Iterator iter = rr.getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) { + javascriptItemType = (JavascriptItemType)iter.next(); + if(javascriptItemType.getFieldId().equals(fieldName)) { + if(nvl(javascriptItemType.getCallText()).toLowerCase().startsWith("afterchaining")) + callJavascriptText.append(" "+javascriptItemType.getCallText()); + } + } + } + return callJavascriptText.toString()+" "; + } + public String getCallableJavascript(String fieldName, ReportRuntime rr) { + JavascriptItemType javascriptItemType = null; + StringBuffer callJavascriptText = new StringBuffer(""); + if(rr.getJavascriptList()!=null) { + for (Iterator iter = rr.getJavascriptList().getJavascriptItem().iterator(); iter.hasNext();) { + javascriptItemType = (JavascriptItemType)iter.next(); + if(javascriptItemType.getFieldId().equals(fieldName)) { + if(!nvl(javascriptItemType.getCallText()).toLowerCase().startsWith("afterchaining")) + callJavascriptText.append(" "+javascriptItemType.getCallText()); + } + } + } + return callJavascriptText.toString()+" "; + } + + public String getCallableOnChangeJavascript(String fieldName, ReportRuntime rr) { + String callText = getCallableJavascript(fieldName, rr); + if(callText != null && callText.trim().toLowerCase().indexOf("onchange")>=0) { + Pattern re1 = Pattern.compile("\\=(.*?)\\)"); + Matcher matcher = re1.matcher(callText); + while (matcher.find()) { + callText = matcher.group(); + if(callText!=null && callText.startsWith("=\"")) { + callText = callText.substring(2); + } else if (callText!=null) + callText = callText.substring(1); + } + callText = callText.replaceAll("this", "documentForm."+fieldName); + } else callText = null; + return callText; + } + + public String getAjaxHtml(String fieldValue, HashMap formValues, ReportRuntime rr, boolean inSchedule) throws RaptorRuntimeException { + fieldValue = nvl(fieldValue, defaultValue); + String readOnly = "ff_readonly"; + try { + if(fieldValue !=null && fieldValue.length() > 0) + fieldValue = java.net.URLDecoder.decode(fieldValue, "UTF-8"); + } catch (UnsupportedEncodingException ex) {} + catch (IllegalArgumentException ex1){} + catch (Exception ex2){} + if (fieldType.equals(FFT_COMBO_BOX)) { + StringBuffer sb = new StringBuffer(); + //System.out.println("COMBO BOX " + fieldName); + String oldSQL = ""; + if (!required) + sb.append("obj.options[obj.options.length] = new Option('-->select value<--','');"); + + IdNameList lookup = getLookupList(); + try { + if(!hasPredefinedList) { + //if(dependsOn != null && dependsOn != "") { + //if(dependsOn != null && dependsOn != "" ) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = ""; + SQL = lu.getSql(); + /*if(nvl(fieldValue,"").length()<=0) + SQL = lu.getSql(); + else + SQL = lu.getBaseSQLForPDFExcel(false); + */ + //System.out.println("FORMFIELD 6666667 First" + ((IdNameSql)lookup).getSql()); + oldSQL = lu.getSql(); + //SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue); + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value = (String) entry.getValue(); + if(inSchedule) { + try { + value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8"); + } catch (UnsupportedEncodingException ex) { + + } + } + if (value!=null && (value.length() <=0 || value.equals("NULL"))) { + value = "NULL"; + SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); + } else { + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); + } + } + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + } + //} + lookupList = lookup; + + //} + try { + lookup.loadUserData(0, "", getDbInfo(), getUserId()); + } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); + } + } + lookup.trimToSize(); + + String selectedValue = ""; + int count = 0; + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + if(value != null && value.getId() != null && value.getName() != null ) { + /*if (count == 0 && required) { + selectedValue = value.getId(); + count++; + } else if (nvl(fieldValue).length()>0){ + if (fieldValue != null && fieldValue.equals(value.getId())){ + selectedValue = value.getId(); + } + count++; + } else { + count++; + } */ + if (count == 0) { + if(required){ + selectedValue = value.getId(); + } + count++; + } + sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName())+"','"+Utils.singleQuoteEncode(value.getId())+"');"); + if ((fieldValue != null && fieldValue.equals(value.getId()))){ + sb.append("obj.options[obj.options.length-1].selected=true;"); + selectedValue = value.getId(); + } + if(value.isReadOnly()) + sb.append("obj.disabled=true;"); + else + sb.append("obj.disabled=false;"); + + } + } // for + if (formValues.containsKey(fieldDisplayName)){ + formValues.remove(fieldDisplayName); + } + formValues.put(fieldDisplayName, selectedValue); + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + if(!hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + //System.out.println("FORMFIELD 6666667 " + ((IdNameSql)lookup).getSql()); + if( isVisible()) + return sb.toString(); + else return ""; + } else if (fieldType.equals(FFT_LIST_MULTI)) { + StringBuffer sb = new StringBuffer(); + String oldSQL = ""; + + fieldValue = '|' + fieldValue + '|'; + IdNameList lookup = getLookupList(); + try { + if(!hasPredefinedList) { + //if(dependsOn != null && dependsOn != "") { + //if(dependsOn != null && dependsOn != "" ) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = ""; + SQL = lu.getSql(); + /*if(nvl(fieldValue,"").length()<=0) + SQL = lu.getSql(); + else + SQL = lu.getBaseSQLForPDFExcel(false); + SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue); + */ + oldSQL = lu.getSql(); + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value = (String) entry.getValue(); + if(inSchedule) { //('1347') + try { + value = java.net.URLDecoder.decode(value, "UTF-8"); + } catch (UnsupportedEncodingException ex) { + + } + } + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); + } + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + } + //} + lookupList = lookup; + //} + + lookup.loadUserData(0, "", getDbInfo(),getUserId()); + } + + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName()) +"','"+Utils.singleQuoteEncode(value.getId())+"');"); + if (fieldValue.indexOf('|' + value.getId() + '|') >= 0) + sb.append("obj.options[obj.options.length-1].selected=true;"); + if(value.isReadOnly()) + sb.append("obj.disabled=true;"); + else + sb.append("obj.disabled=false;"); + + } // for + + // lookup.clearData(); + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + if(!hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + if(isVisible()) + return sb.toString(); + else + return ""; + } else if (fieldType.equals(FFT_TEXT_W_POPUP)) { + //System.out.println("TEXT POPUP " + fieldName); + String oldSQL = ""; + IdNameValue idNamevalue = null; + String fieldDefValue=""; + String fieldDefDisplay=""; + try { + IdNameList lookup = getLookupList(); + if(dependsOn != null && dependsOn != "" ) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = getBaseWholeSQL(); + if(SQL.toLowerCase().indexOf(readOnly) != -1) { + SQL = getBaseWholeReadonlySQL(); + } + oldSQL = lu.getSql(); + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value = (String) entry.getValue(); + if(inSchedule) { + try { + value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8"); + } catch (UnsupportedEncodingException ex) { + + } + } + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); +// if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1) { + if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1 || SQL.indexOf("'"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"'")!=-1 + || SQL.indexOf("'%"+"["+entry.getKey()+"]"+"%'")!=-1 || SQL.indexOf("'%"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"%'")!=-1 + || SQL.indexOf("'_"+"["+entry.getKey()+"]"+"_'")!=-1 || SQL.indexOf("'_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_'")!=-1 + || SQL.indexOf("'%_"+"["+entry.getKey()+"]"+"_%'")!=-1 || SQL.indexOf("'%_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_%'")!=-1) { + + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl( + value, "NULL")); + } else { + // Added to prevent SQL Injection + if(SQL.indexOf("["+entry.getKey()+"]")!=-1) { + try { + double vD = Double.parseDouble(value); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl( + value, "NULL")); + } catch (NumberFormatException ex) { + throw new UserDefinedException("Expected number, Given String for the form field \"" + "["+entry.getKey()+"]"+"\""); + } + } + } + } + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + else + lookup = new IdNameSql(-1,SQL,null); + } + } + //lookupList = lookup; + + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) { + lookup.loadUserData(0, "", getDbInfo(), getUserId()); + for (lookup.resetNext(); lookup.hasNext();) { + idNamevalue = lookup.getNext(); + break; + + } + fieldDefValue = nvl(idNamevalue.getId()); + fieldDefDisplay = nvl(idNamevalue.getName()); + } else { + try { + // -2 indicates to run the whole sql for matching value + lookup.loadUserData(-2, "", getDbInfo(), getUserId()); + lookup.trimToSize(); + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + if(value != null && value.getId() != null && value.getName() != null ) { + fieldDefValue = nvl(value.getId()); + if (fieldValue != null && fieldValue.equals(value.getId())) { + fieldDefDisplay = nvl(value.getName()); + break; + } + else { + fieldDefValue = ""; + fieldDefDisplay = ""; + } + } + } + if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) { + fieldDefDisplay = nvl(fieldDefValue); + } + + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + + + //----- END ---// + + + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0)) { + fieldDefValue = nvl((idNamevalue!=null)?idNamevalue.getId():""); + fieldDefDisplay = nvl((idNamevalue!=null)?idNamevalue.getName():""); + } else { + if(fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0) fieldValue=""; + fieldDefValue = nvl(fieldDefValue); + fieldDefDisplay = nvl(fieldDefDisplay); + } + + } + }catch(Exception e) { //throw new RaptorRuntimeException(e); + } + if(isVisible()) { + /* return "\n" + "0 && (dependsOn == null || dependsOn.length()<=0)) { + sb.append((fieldValue!=null)?"obj.value=\""+nvl(fieldValue)+"\";":""); + } else if (lookup != null) { + lookup.loadUserData(0, "", getDbInfo(), getUserId()); + int iCnt = 0; + for (lookup.resetNext(); lookup.hasNext(); iCnt++) { + IdNameValue value = lookup.getNext(); + //System.out.println("HIDDEN " + value.getId() + " " + value.getName()); + sb.append((value!=null)?"obj.value=\""+nvl(value.getId())+"\";":""); + if(value.isReadOnly()) + sb.append("obj.disabled=true;"); + else + sb.append("obj.disabled=false;"); + break; + } // for + if(lookup.size()<=0) { + sb.append("obj.value=\"\""); + + } + } else { + sb.append((fieldValue!=null)?"obj.value=\""+Utils.singleQuoteEncode(nvl(fieldValue))+"\";":""); + } + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + // lookup.clearData(); + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + //if(isVisible()) + return sb.toString() ; + } else if (fieldType.equals(FFT_LIST_BOX)) { + StringBuffer sb = new StringBuffer(); + //System.out.println("COMBO BOX " + fieldName); + String oldSQL = ""; + if (!required) + sb.append("obj.options[obj.options.length] = new Option('-->select value<--','');"); + + IdNameList lookup = getLookupList(); + try { + if(!hasPredefinedList) { + //if(dependsOn != null && dependsOn != "") { + //if(dependsOn != null && dependsOn != "" ) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = ""; + SQL = lu.getSql(); + /*if(nvl(fieldValue,"").length()<=0) + SQL = lu.getSql(); + else + SQL = lu.getBaseSQLForPDFExcel(false); + */ + //System.out.println("FORMFIELD 6666667 First" + ((IdNameSql)lookup).getSql()); + oldSQL = lu.getSql(); + //SQL = Utils.replaceInString(SQL, "[VALUE]", fieldValue); + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value = (String) entry.getValue(); + if(inSchedule) { + try { + value = java.net.URLDecoder.decode(Utils.oracleSafe(value), "UTF-8"); + } catch (UnsupportedEncodingException ex) { + + } + } + if (value!=null && (value.length() <=0 || value.equals("NULL"))) { + value = "NULL"; + SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); + } else { + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); + } + } + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + } + //} + lookupList = lookup; + + //} + try { + lookup.loadUserData(0, "", getDbInfo(), getUserId()); + } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); + } + } + lookup.trimToSize(); + + String selectedValue = ""; + int count = 0; + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + if(value != null && value.getId() != null && value.getName() != null ) { + /*if (count == 0 && required) { + selectedValue = value.getId(); + count++; + } else if (nvl(fieldValue).length()>0){ + if (fieldValue != null && fieldValue.equals(value.getId())){ + selectedValue = value.getId(); + } + count++; + } else { + count++; + } */ + if (count == 0) { + if(required){ + selectedValue = value.getId(); + } + count++; + } + sb.append("obj.options[obj.options.length] = new Option('" + Utils.singleQuoteEncode(value.getName())+"','"+Utils.singleQuoteEncode(value.getId())+"');"); + if ((fieldValue != null && fieldValue.equals(value.getId()))){ + sb.append("obj.options[obj.options.length-1].selected=true;"); + selectedValue = value.getId(); + } + if(value.isReadOnly()) + sb.append("obj.disabled=true;"); + else + sb.append("obj.disabled=false;"); + + } + } // for + if (formValues.containsKey(fieldDisplayName)){ + formValues.remove(fieldDisplayName); + } + formValues.put(fieldDisplayName, selectedValue); + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + if(!hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + //System.out.println("FORMFIELD 6666667 " + ((IdNameSql)lookup).getSql()); + if( isVisible()) + return sb.toString(); + else return ""; + } + + return ""; + } + + public String getHtml(String fieldValue, HashMap formValues, ReportRuntime rr, boolean inSchedule) throws RaptorRuntimeException { + fieldValue = nvl(fieldValue, defaultValue); + int MILLIS_IN_DAY = 1000 * 60 * 60 * 24; + String readOnlyInSql = "ff_readonly"; + boolean readOnly = false; + try { + if(fieldValue !=null && fieldValue.length() > 0) + fieldValue = java.net.URLDecoder.decode(fieldValue, "UTF-8"); + } catch (UnsupportedEncodingException ex) {} + catch (IllegalArgumentException ex1){} + catch (Exception ex2){} + //System.out.println(fieldName + " " + fieldType + " " + fieldValue); + if (fieldType.equals(FFT_TEXT_W_POPUP)) { + //System.out.println("TEXT POPUP " + fieldName); + String oldSQL = ""; + IdNameValue idNamevalue = null; + String fieldDefValue=""; + String fieldDefDisplay=""; + IdNameList lookup = null; + try { + lookup = getLookupList(); + if(!hasPredefinedList) { + if(dependsOn != null && dependsOn != "" ) { + IdNameSql lu = (IdNameSql) lookup; + String SQL = getBaseWholeSQL(); + if(SQL.toLowerCase().indexOf(readOnlyInSql) != -1) { + SQL = getBaseWholeReadonlySQL(); + } + oldSQL = lu.getSql(); + if(formValues != null) { + Set set = formValues.entrySet(); + String value = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value = (String) entry.getValue(); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); +// if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1) { + if(SQL.indexOf("'"+"["+entry.getKey()+"]"+"'")!=-1 || SQL.indexOf("'"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"'")!=-1 + || SQL.indexOf("'%"+"["+entry.getKey()+"]"+"%'")!=-1 || SQL.indexOf("'%"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"%'")!=-1 + || SQL.indexOf("'_"+"["+entry.getKey()+"]"+"_'")!=-1 || SQL.indexOf("'_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_'")!=-1 + || SQL.indexOf("'%_"+"["+entry.getKey()+"]"+"_%'")!=-1 || SQL.indexOf("'%_"+"["+entry.getKey())!=-1 || SQL.indexOf(entry.getKey()+"]"+"_%'")!=-1) { + + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl( + value, "NULL")); + } else { + // Added to prevent SQL Injection + if(SQL.indexOf("["+entry.getKey()+"]")!=-1) { + try { + double vD = Double.parseDouble(value); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", nvl( + value, "NULL")); + } catch (NumberFormatException ex) { + throw new UserDefinedException("Expected number, Given String for the form field \"" + "["+entry.getKey()+"]"+"\""); + } + } + } + } + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) + lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); + else + lookup = new IdNameSql(-1,SQL,null); + } + } + //lookupList = lookup; + + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.trim().length()<=0)) { + lookup.loadUserData(0, "", getDbInfo(), getUserId()); + for (lookup.resetNext(); lookup.hasNext();) { + idNamevalue = lookup.getNext(); + break; + + } + fieldDefValue = nvl(idNamevalue.getId()); + fieldDefDisplay = nvl(idNamevalue.getName()); + } else { + try { + // -2 indicates to run the whole sql for matching value + lookup.loadUserData(-2, "", getDbInfo(), getUserId()); + } catch (Exception e) { + //throw new RaptorRuntimeException(e); + } + + lookup.trimToSize(); + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + if(value != null && value.getId() != null && value.getName() != null ) { + fieldDefValue = nvl(value.getId()); + if (fieldValue != null && fieldValue.equals(value.getId())) { + fieldDefDisplay = nvl(value.getName()); + break; + } + else { + fieldDefValue = ""; + fieldDefDisplay = ""; + } + } + } + if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) { + fieldDefDisplay = nvl(fieldDefValue); + } + + + + //----- END ---// + + + if(getFieldDefaultSQL()!=null && (fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0)) { + fieldDefValue = nvl((idNamevalue!=null)?idNamevalue.getId():""); + fieldDefDisplay = nvl((idNamevalue!=null)?idNamevalue.getName():""); + } else { + if(fieldValue == null || fieldValue.trim().equalsIgnoreCase("null")|| fieldValue.length()<=0) fieldValue=""; + fieldDefValue = nvl(fieldDefValue); + fieldDefDisplay = nvl(fieldDefDisplay); + } + + } + } else { + lookup.trimToSize(); + for (lookup.resetNext(); lookup.hasNext();) { + IdNameValue value = lookup.getNext(); + if(value != null && value.getId() != null && value.getName() != null ) { + fieldDefValue = nvl(value.getId()); + if (fieldValue != null && fieldValue.equals(value.getId())) { + fieldDefDisplay = nvl(value.getName()); + break; + } + else { + fieldDefValue = ""; + fieldDefDisplay = ""; + } + } + } + if (fieldDefDisplay == null || fieldDefDisplay.length()<=0) { + fieldDefDisplay = nvl(fieldDefValue); + } + } + }catch(Exception e) { //throw new RaptorRuntimeException(e); + } + + if(!hasPredefinedList) { + if(oldSQL != null && !oldSQL.equals("")) { + ((IdNameSql)lookup).setSQL(oldSQL); + } + } + + if(isVisible()) { + /* return "\n" + " \"Loading, "; + + return progress+" \n  \n" + + " 0) { + valueSQL = lu.getSql(); + avail_ReadOnly = (valueSQL.toLowerCase().indexOf(readOnlyInSql)!=-1); + //System.out.println("OLD SQL TEXT" + valueSQL); + //oldSQL = lu.getSql(); + if(formValues != null) { + Set set = formValues.entrySet(); + String value1 = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + value1 = (String) entry.getValue(); + if (value1.length() <=0) { + value1 = "NULL"; + valueSQL = Utils.replaceInString(valueSQL, "'["+entry.getKey()+"]'", value1); + valueSQL = Utils.replaceInString(valueSQL, "["+entry.getKey()+"]", value1); + } else { + valueSQL = Utils.replaceInString(valueSQL, "["+entry.getKey()+"]", value1); + } + } + // should be value one. + //lookup = new IdNameSql(-1,valueSQL,lu.getDefaultSQL()); + } + } + //lookupList = lookup; + //System.out.println("8888888 88 " + valueSQL); + } + if(valueSQL!=null && valueSQL.length()>0) { + DataSet ds = ConnectionUtils.getDataSet(valueSQL.toString(), dbInfo); + strValue = ds.getString(0,1); + if(avail_ReadOnly) readOnly = ds.getString(0, 2).toUpperCase().startsWith("Y")||ds.getString(0, 2).toUpperCase().startsWith("T");; + } + }catch(Exception e) { //throw new RaptorRuntimeException(e); + } + String returnString = ""; + String timestamp ="", timestamphr = "", timestampmin = "", timestampsec = ""; + + returnString = "0 && (!(fieldValue.toUpperCase().indexOf("SELECT ")!= -1 && fieldValue.toUpperCase().indexOf("FROM")!= -1)) ) { + if(validationType.startsWith("TIMESTAMP")) { + returnString += nvl((fieldValue!=null)?fieldValue.split(" ")[0]:""); + if(fieldValue!=null && fieldValue.length()>0) { + timestamp = (fieldValue.split(" ").length > 1)?fieldValue.split(" ")[1]:""; + String timestampArr[] = timestamp.split(":"); + if((timestampArr.length == 1) || (timestampArr.length == 2) || (timestampArr.length == 3)) + timestamphr = timestampArr[0]; + if((timestampArr.length == 2) || (timestampArr.length == 3)) + timestampmin = timestampArr[1]; + if(timestampArr.length == 3) + timestampsec = timestampArr[2]; + } + + } else returnString += fieldValue; + + } else if(getFieldDefaultSQL()!=null) { + + if(validationType.startsWith("TIMESTAMP")) { + returnString += nvl((strValue.length()>0)?strValue.split(" ")[0]:""); + if(strValue.length()>0) { + timestamp = (strValue.split(" ").length > 1)?strValue.split(" ")[1]:""; + String timestampArr[] = timestamp.split(":"); + if((timestampArr.length == 1) || (timestampArr.length == 2) || (timestampArr.length == 3)) + timestamphr = timestampArr[0]; + if((timestampArr.length == 2) || (timestampArr.length == 3)) + timestampmin = timestampArr[1]; + if(timestampArr.length == 3) + timestampsec = timestampArr[2]; + } + + } else if (nvl(strValue).length()>0) { + returnString += strValue; + } else + returnString += nvl((value!=null)?value.getId():""); + } else if (nvl(strValue).length()>0) { + returnString += strValue; + } else + returnString += nvl((value!=null)?value.getId():""); + + + /*returnString += "\">" + + (validationType.equals(VT_DATE) ? "\n\t\t\t" + + "\n\t\t\t\t" + : ""); */ + + SimpleDateFormat dtf = new SimpleDateFormat("MM/dd/yyyy"); + String stRangeText = this.getRangeStartDate() == null ? null : dtf.format(this.getRangeStartDate().getTime()); + String endRangeText = this.getRangeEndDate() == null ? null : dtf.format(this.getRangeEndDate().getTime()); + ///////////////////////// + + //get the date sqls + + //System.out.println("////////////start range date before Start" + this.getRangeStartDateSQL()); + + if (this.getRangeStartDateSQL() != null && this.getRangeStartDateSQL().trim().toLowerCase().startsWith("select")){ + //System.out.println("////////////start range date Starting"); + String SQL = this.getRangeStartDateSQL(); + if(formValues != null) { + Set set = formValues.entrySet(); + String v = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + v = (String) entry.getValue(); + //System.out.println("///////// key is " + entry.getKey() + " = " + v); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", v); + } + + } + //System.out.println("////////////start range date sql created" + SQL); + try{ + DataSet ds = ConnectionUtils.getDataSet(SQL.toString(), dbInfo); + //System.out.println("////////////start range date is : " + ds.get(0)); + dtf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar tStart = Calendar.getInstance(); + tStart.setTime(dtf.parse(ds.getString(0,0))); + dtf = new SimpleDateFormat("MM/dd/yyyy"); + stRangeText = dtf.format(tStart.getTime().getTime()-MILLIS_IN_DAY); + + }catch(Exception e){ + System.out.println("Exception////////// : start range date is : " + e); + } + } + + if (this.getRangeEndDateSQL() != null && this.getRangeEndDateSQL().trim().toLowerCase().startsWith("select")){ + //System.out.println("////////////end range date Starting"); + String SQL = this.getRangeEndDateSQL(); + if(formValues != null) { + Set set = formValues.entrySet(); + String v = ""; + for(Iterator iter = set.iterator(); iter.hasNext(); ) { + Map.Entry entry = (Entry) iter.next(); + v = (String) entry.getValue(); + SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", v); + } + + } + try{ + DataSet ds = ConnectionUtils.getDataSet(SQL.toString(), dbInfo); + //System.out.println("////////////end range date is : " + ds.get(0)); + dtf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar tStart = Calendar.getInstance(); + tStart.setTime(dtf.parse(ds.getString(0,0))); + dtf = new SimpleDateFormat("MM/dd/yyyy"); + //endRangeText = dtf.format(tStart.getTime()); + endRangeText = dtf.format(tStart.getTime().getTime()+MILLIS_IN_DAY); + }catch(Exception e){ + System.out.println("Exception////////// : end range date is : " + e); + } + } + + + ////////////////////// + String calendarOnClickMethodCall = ""; + String timeStampStr = ""; + if (stRangeText == null || endRangeText == null) + calendarOnClickMethodCall = "'oCalendar.select(document." + HTML_FORM + "." + fieldName + ", event,\""+ Globals.getCalendarOutputDateFormat() +"\"); return false;'"; + else + calendarOnClickMethodCall = "'oCalendar=new CalendarPopup(\"calendarDiv\", \"calendarFrame\");oCalendar.setCssPrefix(\"raptor\");oCalendar.addDisabledDates(null, \"" + stRangeText + "\"); oCalendar.addDisabledDates(\"" + endRangeText + "\", null); oCalendar.select(document." + HTML_FORM + "." + fieldName + ", event,\""+ Globals.getCalendarOutputDateFormat() +"\"); return false;'"; + returnString += "\" " + getHelpLink(fieldName) + + (validationType.equals(VT_DATE) || validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) + ? "\n\t\t\t" + : ""); + if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) ) { + //Add Hours/Minutes and Seconds. + timeStampStr = " Hour "; + } + //Minutes + if( validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) ) { + int minutes = 0; + int t_min = 0; + try { + minutes = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Min"),"0")); + if(minutes == 0) { + if(inSchedule) minutes = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Min")),"0")); + } + } catch (NumberFormatException ex) {minutes = 0;} + try { + t_min = Integer.parseInt(timestampmin); + } catch (NumberFormatException ex) { t_min = 0;} + + if(minutes <= 0) minutes = t_min; + /*if (formValues.containsKey(fieldDisplayName+"_Min")){ + formValues.remove(fieldDisplayName+"_Min"); + formValues.put(fieldDisplayName+"_Min", minutes); + } else + formValues.put(fieldDisplayName+"_Min", minutes); + */ + timeStampStr += " Min "; + } + //Seconds + if( validationType.equals(VT_TIMESTAMP_SEC) ) { + int seconds = 0; + int t_sec = 0; + try { + seconds = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Sec"),"0")); + if(seconds == 0) { + if(inSchedule) seconds = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Sec")),"0")); + } + } catch (NumberFormatException ex) {seconds = 0;} + try { + t_sec = Integer.parseInt(timestampsec); + } catch (NumberFormatException ex) { t_sec = 0;} + + if(seconds <= 0) seconds = t_sec; + /*if (formValues.containsKey(fieldDisplayName+"_Sec")){ + formValues.remove(fieldDisplayName+"_Sec"); + formValues.put(fieldDisplayName+"_Sec", seconds); + } else + formValues.put(fieldDisplayName+"_Sec", seconds); + */ + timeStampStr += " Sec "; + } + + returnString += timeStampStr; + String checkboxStr = ""; + if(inSchedule && (validationType.equals(VT_DATE) || validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) ) { + if(!Globals.isScheduleDateParamAutoIncr()) { + checkboxStr = /*checkboxStr +" "+ */ ""; + } else { + checkboxStr = /*checkboxStr +" "+ */""; + } + /*if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) { + checkboxStr = checkboxStr +" "+ ""; + } + if(validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) { + checkboxStr = checkboxStr +" "+ ""; + } + if(validationType.equals(VT_TIMESTAMP_SEC)) { + checkboxStr = checkboxStr +" "+ ""; + }*/ + } + if(isVisible()) + return returnString+checkboxStr; + else return ""; + } else if (fieldType.equals(FFT_TEXTAREA)) { + + if(nvl(fieldValue).length()>0) { + fieldValue = Pattern.compile("(^[\r\n])|\\([\\']", Pattern.DOTALL).matcher(fieldValue).replaceAll(""); + fieldValue = Pattern.compile("[\\']\\)", Pattern.DOTALL).matcher(fieldValue).replaceAll(""); + fieldValue = fieldValue.replaceAll("','",","); // changed from "|" + fieldValue = fieldValue.replaceAll("' , '","\r\n"); + } + + if(isVisible()) + return ""; - else - return ""; - } else if (fieldType.equals(FFT_COMBO_BOX)) { - StringBuffer sb = new StringBuffer(); - //System.out.println("COMBO BOX " + fieldName); - String oldSQL = ""; - - IdNameList lookup = getLookupList(); - try { - if(!hasPredefinedList) { - //if(dependsOn != null && dependsOn != "") { - //if(dependsOn != null && dependsOn != "" ) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - //System.out.println("FORMFIELD 6666667 First" + ((IdNameSql)lookup).getSql()); - oldSQL = lu.getSql(); - if(formValues != null) { - Set set = formValues.entrySet(); - String value = ""; - for(Iterator iter = set.iterator(); iter.hasNext(); ) { - Map.Entry entry = (Entry) iter.next(); - value = (String) entry.getValue(); - if (value!=null && (value.length() <=0 || value.equals("NULL"))) { - value = "NULL"; - SQL = Utils.replaceInString(SQL, "'["+entry.getKey()+"]'", value); - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } else { - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } - } - lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); - } - //} - lookupList = lookup; - - - //} - try { - lookup.loadUserData(0, "", getDbInfo(), getUserId()); - } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - } - lookup.trimToSize(); - - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - break; - } - - String selectedValue = ""; - int count = 0; - sb.append("
\"Loading,
"); - sb.append(""); - if( isVisible()) - return sb.toString(); - else return ""; - } else if (fieldType.equals(FFT_LIST_BOX)) { - StringBuffer sb = new StringBuffer(); - String oldSQL = ""; - IdNameList lookup = null; - - lookup = getLookupList(); - String selectedValue = ""; - try { - if(!hasPredefinedList) { - //if(dependsOn != null && dependsOn != "") { - //if(dependsOn != null && dependsOn != "" ) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - oldSQL = lu.getSql(); - if(formValues != null) { - Set set = formValues.entrySet(); - String value = ""; - for(Iterator iter = set.iterator(); iter.hasNext(); ) { - Map.Entry entry = (Entry) iter.next(); - value = (String) entry.getValue(); - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } - lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); - } - //} - lookupList = lookup; - //} - try { - lookup.loadUserData(0, "", getDbInfo(), getUserId()); - } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - } - lookup.trimToSize(); - - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - break; - } - - int iCnt = 0; - sb.append(""); - - if(!hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - } - - if(isVisible()) - return sb.toString(); - else - return ""; - } else if (fieldType.equals(FFT_HIDDEN)) { - StringBuffer sb = new StringBuffer(); - String oldSQL = ""; - String progress = "
\"Loading,
"; - sb.append(progress); - sb.append("0 && (dependsOn == null || dependsOn.length()<=0)) { - sb.append(" value=\""); - sb.append((fieldValue!=null)?fieldValue:""); - sb.append("\">"); - } else if (lookup != null) { - lookup.loadUserData(0, "", getDbInfo(), getUserId()); - int iCnt = 0; - for (lookup.resetNext(); lookup.hasNext(); iCnt++) { - IdNameValue value = lookup.getNext(); - //System.out.println("HIDDEN " + value.getId() + " " + value.getName()); - sb.append(" value=\""); - sb.append((value!=null)?value.getId():""); - sb.append("\">"); - break; - } // for - if(lookup.size()<=0) { - sb.append(" value=\""); - sb.append("\">"); - - } - } else { - sb.append(" value=\""); - sb.append((fieldValue!=null)?fieldValue:""); - sb.append("\"/>"); - } - } else { - sb.append(" value=\""); - sb.append((fieldValue!=null)?fieldValue:""); - sb.append("\"/>"); - } - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - // lookup.clearData(); - } catch (Exception e) { - sb.append(" value=\"\"/>"); - //throw new RaptorRuntimeException(e); - } - - if(!hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - } - //if(isVisible()) - return sb.toString() ; - } else if (fieldType.equals(FFT_RADIO_BTN)) { - StringBuffer sb = new StringBuffer(); - if (!required) { - sb.append("\n"); - } - - try { - IdNameList lookup = getLookupList(); - lookup.loadUserData(0, "", getDbInfo(),getUserId()); - String selectedValue = ""; - - int iCnt = 0; - for (lookup.resetNext(); lookup.hasNext(); iCnt++) { - IdNameValue value = lookup.getNext(); - sb.append("0) { - if (fieldValue.equals((value!=null)?value.getId():"") || (fieldValue.equals("") && required && iCnt == 0)) { - sb.append("\" checked>"); - selectedValue = value.getId(); - } else { - sb.append("\">"); - } - } else { - if(value!=null && value.isDefaultValue()) { - sb.append("\" checked>"); - selectedValue = value.getId(); - } else { - sb.append("\">"); - } - } - sb.append((value!=null)?value.getName():""); - sb.append("
\n"); - } // for - if (formValues.containsKey(fieldDisplayName)){ - formValues.remove(fieldDisplayName); - } - formValues.put(fieldDisplayName, selectedValue); - - // lookup.clearData(); - } catch (Exception e) { - throw new RaptorRuntimeException(e); - } - if(isVisible()) - return sb.toString() ; - else - return ""; - } else if (fieldType.equals(FFT_CHECK_BOX)) { - StringBuffer sb = new StringBuffer(); - - fieldValue = '|' + fieldValue + '|'; - int count = 0 ; - try { - String selectedValue = ""; - IdNameList lookup = getLookupList(); - if(lookup != null) { - lookup.loadUserData(0, "", getDbInfo(), getUserId()); - - for (lookup.resetNext(); lookup.hasNext();) { - count++; - IdNameValue value = lookup.getNext(); - sb.append("= 0) { // || (value.isDefaultValue())) - sb.append("\" checked " + getHelpLink(fieldName)); - selectedValue = value.getId(); - } - else - sb.append("\"" + getHelpLink(fieldName)); - } else { - if(value!=null && value.isDefaultValue()) { - sb.append("\" checked " + getHelpLink(fieldName)); - selectedValue = value.getId(); - } else { - sb.append("\"" + getHelpLink(fieldName)); - } - } - - if(!(/*(value.getName().equals("Y")||value.getName().equals("N")) && */(!lookup.hasNext()) && count == 1)) - sb.append((value!=null)?value.getName():""); - sb.append("
\n"); - } // for - - if (formValues.containsKey(fieldDisplayName)){ - formValues.remove(fieldDisplayName); - } - formValues.put(fieldDisplayName, selectedValue); - } - - // lookup.clearData(); - } catch (Exception e) { - throw new RaptorRuntimeException(e); - } - if(isVisible()) - return sb.toString(); - else - return ""; - } else if (fieldType.equals(FFT_LIST_MULTI)) { - StringBuffer sb = new StringBuffer(); - String oldSQL = ""; - - fieldValue = '|' + fieldValue + '|'; - IdNameList lookup = getLookupList(); - try { - if(!hasPredefinedList) { - //if(dependsOn != null && dependsOn != "") { - //if(dependsOn != null && dependsOn != "" ) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - oldSQL = lu.getSql(); - if(formValues != null) { - Set set = formValues.entrySet(); - String value = ""; - for(Iterator iter = set.iterator(); iter.hasNext(); ) { - Map.Entry entry = (Entry) iter.next(); - value = (String) entry.getValue(); - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } - lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); - } - //} - lookupList = lookup; - //} - - lookup.loadUserData(0, "", getDbInfo(),getUserId()); - } - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - break; - } - - sb.append("
\"Loading,
"); - sb.append(""); - if(isVisible()) - return sb.toString(); - else - return ""; - } else if (fieldType.equals(FFT_BLANK)) { - StringBuffer sb = new StringBuffer(); - sb.append(" "); - return sb.toString(); - } else - throw new org.openecomp.portalsdk.analytics.error.RaptorRuntimeException("FormField.getHtml: Unsupported form field type"); - } // getHtml - - public String getValidateJavaScript() { - StringBuffer javaScript = new StringBuffer(); - - if (fieldType.equals(FFT_TEXT_W_POPUP) || fieldType.equals(FFT_TEXT) - || fieldType.equals(FFT_TEXTAREA)) { - if (required) { - javaScript.append("\n\tif(document."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".value==\"\") {\n\t\talert(\"Please enter value for "); - javaScript.append(fieldDisplayName); - javaScript.append("\");\n\t\tdocument."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".focus();\n\t\tdocument."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".select();\n\t\treturn false;\n\t}\n"); - } // if - - if (!validationType.equals(VT_NONE)) { - javaScript.append("\n\tif(! "); - if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC)) - javaScript.append("checkDate("); - else if (validationType.equals(VT_INT)) - javaScript.append("checkInteger("); - else if (validationType.equals(VT_INT_POSITIVE)) - javaScript.append("checkPositiveInteger("); - else if (validationType.equals(VT_INT_NON_NEGATIVE)) - javaScript.append("checkNonNegativeInteger("); - else if (validationType.equals(VT_FLOAT)) - javaScript.append("checkFloat("); - else if (validationType.equals(VT_FLOAT_POSITIVE)) - javaScript.append("checkPositiveFloat("); - else if (validationType.equals(VT_FLOAT_NON_NEGATIVE)) - javaScript.append("checkNonNegativeFloat("); - javaScript.append("document."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".value"); - if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC)) - javaScript.append(", true"); - javaScript.append(")) {\n\t\talert(\""); - javaScript.append(fieldDisplayName); - javaScript.append(" is not a valid "); - if (validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR)||validationType.equals(VT_TIMESTAMP_MIN)||validationType.equals(VT_TIMESTAMP_SEC)) - javaScript.append("date formatted "+ Globals.getCalendarOutputDateFormat()); - else if (validationType.equals(VT_INT)) - javaScript.append("integer"); - else if (validationType.equals(VT_INT_POSITIVE)) - javaScript.append("integer greater than zero"); - else if (validationType.equals(VT_INT_NON_NEGATIVE)) - javaScript.append("integer greater than or equal to zero"); - else if (validationType.equals(VT_FLOAT)) - javaScript.append("number"); - else if (validationType.equals(VT_FLOAT_POSITIVE)) - javaScript.append("number greater than zero"); - else if (validationType.equals(VT_FLOAT_NON_NEGATIVE)) - javaScript.append("number greater than or equal to zero"); - javaScript.append(".\\nPlease enter a valid value.\");\n\t\tdocument."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".focus();\n\t\tdocument."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".select();\n\t\treturn false;\n\t}\n"); - } // if - } // if - else if (fieldType.equals(FFT_CHECK_BOX)) { - if (required) { - javaScript.append("\n\tvar isChecked = false;"); - javaScript.append("\n\tfor (var i=0; i < document."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".length; i++) { "); - javaScript.append("\n\t\tif(document."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append("[i].checked) {"); - javaScript.append("\n\t\t\tisChecked = true;"); - javaScript.append("\n\t\t\tbreak;"); - javaScript.append("\n\t\t}"); - javaScript.append("\n\t}"); - javaScript.append("\n\tif(!isChecked) {"); - javaScript.append("\n\t\talert(\"Please select at least one "); - javaScript.append(fieldDisplayName); - javaScript.append("\");\n\t\treturn false;"); - javaScript.append("\n\t}"); - } // if - } // else if FFT_CHECK_BOX - else if (fieldType.equals(FFT_LIST_MULTI)) { - if (required) { - javaScript.append("\n\tif(document."); - javaScript.append(HTML_FORM); - javaScript.append("."); - javaScript.append(fieldName); - javaScript.append(".selectedIndex == -1) {"); - javaScript.append("\n\t\talert(\"Please select at least one "); - javaScript.append(fieldDisplayName); - javaScript.append("\");\n\t\treturn false;"); - javaScript.append("\n\t}"); - } // if - } // else if - - return javaScript.toString(); - } // getValidateJavaScript - - public void setDbInfo(String dbInfo) { - this.dbInfo = dbInfo; - } - - public String getDbInfo() { - return dbInfo; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public String getUserId() { - return userId; - } - - - public String getFieldDefaultSQL() { - - return fieldDefaultSQL; - } - - - public void setFieldDefaultSQL(String fieldDefaultSQL) { - - this.fieldDefaultSQL = fieldDefaultSQL; - } - - - public boolean isVisible() { - - return visible; - } - - - public void setVisible(boolean visible) { - - this.visible = visible; - } - - public String getDependsOn() { - return dependsOn; - } - - public void setDependsOn(String dependsOn) { - this.dependsOn = dependsOn; - } - - public Calendar getRangeEndDate() { - if(rangeEndDate != null) - rangeEndDate.add(Calendar.DATE, 1); - return rangeEndDate; - } - - public void setRangeEndDate(Calendar rangeEndDate) { - this.rangeEndDate = rangeEndDate; - } - - public Calendar getRangeStartDate() { - if(rangeStartDate != null) - rangeStartDate.add(Calendar.DATE, -1); - return rangeStartDate; - } - - public void setRangeStartDate(Calendar rangeStartDate) { - this.rangeStartDate = rangeStartDate; - } - - public String getRangeEndDateSQL() { - return rangeEndDateSQL; - } - - public void setRangeEndDateSQL(String rangeEndDateSQL) { - this.rangeEndDateSQL = rangeEndDateSQL; - } - - public void setMultiSelectListSize(String multiSelectListSize) { - this.multiSelectListSize = multiSelectListSize; - } - - public String getRangeStartDateSQL() { - return rangeStartDateSQL; - } - - public void setRangeStartDateSQL(String rangeStartDateSQL) { - this.rangeStartDateSQL = rangeStartDateSQL; - } - - public boolean isHasPredefinedList() { - return hasPredefinedList; - } - - public void setHasPredefinedList(boolean hasPredefinedList) { - this.hasPredefinedList = hasPredefinedList; - } - - public boolean isTriggerOtherFormFields() { - return triggerOtherFormFields; - } - - public void setTriggerOtherFormFields(boolean triggerOtherFormFields) { - this.triggerOtherFormFields = triggerOtherFormFields; - } - - public boolean isTriggerThisFormfield() { - return triggerThisFormfield; - } - - public void setTriggerThisFormfield(boolean triggerThisFormfield) { - this.triggerThisFormfield = triggerThisFormfield; - } - - -} // FormField diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java deleted file mode 100644 index b08feb1b..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java +++ /dev/null @@ -1,369 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.*; - -import org.openecomp.portalsdk.analytics.*; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; -import org.openecomp.portalsdk.analytics.view.*; -import org.openecomp.portalsdk.analytics.xmlobj.*; - -public class FormatProcessor extends RaptorObject { - - - private SemaphoreType semaphore = null; - - private String colType = null; - - private String dateFormat = null; - - private HtmlFormatter defaultFormatter = null; - - private HashMap formatters = null; - - private HashMap convertedValues = null; - - private boolean attemptNumericConversion = false; - - public FormatProcessor(SemaphoreType sem, String colType, String dateFormat, - boolean attemptNumericConversion) { - - super(); - - if (sem == null) - return; - - this.semaphore = sem; - this.colType = colType; - this.dateFormat = dateFormat; - - this.attemptNumericConversion = attemptNumericConversion; - if (attemptNumericConversion) - for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter - .hasNext();) { - FormatType fmt = (FormatType) iter.next(); - if (!isNumber(fmt.getLessThanValue())) { - this.attemptNumericConversion = false; - break; - } // if - } // for - - formatters = new HashMap(semaphore.getFormatList().getFormat().size() * 4 / 3); - convertedValues = new HashMap(semaphore.getFormatList().getFormat().size() * 4 / 3); - - for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter.hasNext();) { - FormatType fmt = (FormatType) iter.next(); - if ((fmt.getFormatId() == null) || (fmt.getFormatId().length() <= 0)) { - defaultFormatter = new HtmlFormatter(fmt.isBold(), fmt.isItalic(), fmt - .isUnderline(), fmt.getBgColor(), fmt.getFontColor(), fmt - .getFontFace(), fmt.getFontSize(), fmt.getAlignment()); - } else { - formatters.put(fmt.getFormatId(), new HtmlFormatter(fmt.isBold(), fmt - .isItalic(), fmt.isUnderline(), fmt.getBgColor(), fmt.getFontColor(), - fmt.getFontFace(), fmt.getFontSize(), fmt.getAlignment())); - convertedValues.put(fmt.getFormatId(), convertValue(fmt.getLessThanValue())); - } - } // for - } // FormatProcessor - - private String convertValue(String origValue) { - - if (colType.equals(AppConstants.CT_DATE)) - return convertDateValue(origValue); - else if (colType.equals(AppConstants.CT_NUMBER)) - return convertNumericValue(origValue); - else if (attemptNumericConversion) - return convertUnknownValue(origValue); - else - return origValue; - } // convertValue - - private String convertDateValue(String origValue) { - - // Converts to YYYY-MM-DD if possible - if (nvl(dateFormat).length() == 0 || nvl(origValue).length() == 0) - return origValue; - - if (dateFormat.equals("MM/DD/YYYY") && origValue.length() == 10) - // Special processing for the default date format - for saving DB - // calls - return origValue.substring(6, 10) + "-" + origValue.substring(0, 2) + "-" - + origValue.substring(3, 5); - - try { - // DataSet ds = DbUtils.executeQuery("SELECT TO_CHAR(TO_DATE('" + origValue + "', '" - // + dateFormat + "'), 'YYYY-MM-DD') val FROM DUAL"); - - String sql = Globals.getGenerateSqlVisualDual(); - DataSet ds = DbUtils.executeQuery("SELECT TO_CHAR(TO_DATE('" + origValue + "', '" - + dateFormat + "'), 'YYYY-MM-DD') val"+sql); - - if (ds.getRowCount() > 0) - return ds.getString(0, 0); - } catch (Exception e) { - } - - return origValue; - } // convertDateValue - - private String convertNumericValue(String origValue) { - - // Converts to [20 pos.5 pos] if possible - if (nvl(origValue).length() == 0) - return origValue; - boolean isNegative = false; - - StringBuffer integerValue = new StringBuffer(); - StringBuffer fractionValue = new StringBuffer(); - - boolean beforeDecimalPoint = true; - for (int i = 0; i < origValue.length(); i++) { - char c = origValue.charAt(i); - if (c == '.') - beforeDecimalPoint = false; - else if (c == '-' && integerValue.length() == 0) - isNegative = true; - // else - // if(c=='0'||c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7'||c=='8'||c=='9') - else if (Character.isDigit(c)) - if (beforeDecimalPoint) - integerValue.append(c); - else - fractionValue.append(c); - } // for - - while (integerValue.length() < 20) - integerValue.insert(0, '0'); - - while (fractionValue.length() < 5) - fractionValue.append('0'); - - integerValue.append('.'); - integerValue.append(fractionValue); - integerValue.insert(0, (isNegative ? '-' : '+')); - - return integerValue.toString(); - } // convertNumericValue - - private boolean isNumber(String value) { // As per Raptor def, like - - // -$3,270.56 - value = value.trim(); - for (int i = 0; i < value.length(); i++) { - char c = value.charAt(i); - if (!(Character.isDigit(c) || c == '.' || c == '-' || c == '+' || c == ',' - || c == '$' || c == '%')) - return false; - } // for - - return true; - } // isNumber - - private String convertUnknownValue(String origValue) { - - return isNumber(origValue) ? convertNumericValue(origValue) : origValue; - } // convertUnknownValue - - private boolean isEqual(String value1, String value2) { - - return value1.trim().equals(value2.trim()); - } // isEqual - - private boolean isLessThan(String value1, String value2) { - - boolean compareAsNumbers = colType.equals(AppConstants.CT_NUMBER); - if ((!compareAsNumbers) && attemptNumericConversion) - compareAsNumbers = isNumber(value1) && isNumber(value2); - if (compareAsNumbers && value1.length()>0 && value2.length()>0) { - boolean value1IsNegative = (value1.charAt(0) == '-'); - boolean value2IsNegative = (value2.charAt(0) == '-'); - if (value1IsNegative && (!value2IsNegative)) { - return true; - } - else if ((!value1IsNegative) && value2IsNegative) { - return false; - } - return Double.parseDouble(value1)0) { - for (dr.resetNext(); dr.hasNext();) { - DataValue dv1 = dr.getNext(); - //add null check - if(dv1.getColId()!=null) { - if(dv1.getColId().equals(compareColId)) - sValue = convertValue(dv1.getDisplayValue()); - if(targetColId!=null) { - if(dv1.getColId().equals(targetColId)) - targetDataValue = dv1; - } - } - } - } - - for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter - .hasNext();) { - FormatType fmt = (FormatType) iter.next(); - if(fmt.getLessThanValue().length() <= 0) { - anyFormatter = (HtmlFormatter) formatters.get(fmt.getFormatId()); - anyFormatter.setFormatId(fmt.getFormatId()); - break; - } - } - - if( anyFormatter == null ) anyFormatter = formatter; - // String sValue = convertValue(dv.getDisplayValue()); - //if (sValue.length() > 0) { - for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter - .hasNext();) { - FormatType fmt = (FormatType) iter.next(); - // For Excel Download - - if ((fmt.getFormatId() == null) || (fmt.getFormatId().length() <= 0)) { - // Default formatter - continue; - } - - String formatterValue = nvl((String) convertedValues.get(fmt.getFormatId())); - boolean valueMatched = false; - if (fmt.getExpression().equals("=")) { - valueMatched = isEqual(sValue, formatterValue); - } - - else if (fmt.getExpression().equals("<>")) - valueMatched = (!isEqual(sValue, formatterValue)); - else if (fmt.getExpression().equals(">")) { - valueMatched = (!(isEqual(sValue, formatterValue) || isLessThan(sValue, - formatterValue))); - } - else if (fmt.getExpression().equals(">=")) { - valueMatched = /* isEqual(sValue, formatterValue)|| */(!isLessThan( - sValue, formatterValue)); - } - else if (fmt.getExpression().equals("<")) { - valueMatched = isLessThan(sValue, formatterValue); - } - else if (fmt.getExpression().equals("<=")) { - valueMatched = isEqual(sValue, formatterValue) - || isLessThan(sValue, formatterValue); - } - //s_logger.debug("SYSOUT " + " " +sValue +" " +fmt.getBgColor() + " " + fmt.getLessThanValue()+ " " +valueMatched); - if (fmt.getLessThanValue().length() > 0 && valueMatched) { - formatter = (HtmlFormatter) formatters.get(fmt.getFormatId()); - formatter.setFormatId(fmt.getFormatId()); - formatModified = true; - //dv.setFormatId(fmt.getFormatId()); - //dr.setFormatId(fmt.getFormatId()); - //break; - } else { // if - if(!formatModified) formatter = anyFormatter; - //if(!((formatter!=null && formatter!=anyFormatter) || (defaultFormatter!=null && formatter!=defaultFormatter))) - // formatter = anyFormatter; - //formatter.setFormatId(anyFormatter.getFormatId()); - } - /*else if ((fmt.getLessThanValue().length() <= 0) - && (fmt.getFormatId().length() > 0)) { - formatter = (HtmlFormatter) formatters.get(fmt.getFormatId()); - System.out.println("---------------lesser "+ fmt.getFormatId()+ " " + fmt.getBgColor()); - dv.setFormatId(fmt.getFormatId()); - dr.setFormatId(fmt.getFormatId()); - // break; - } // else if*/ - } // for - /*} else { - for (Iterator iter = semaphore.getFormatList().getFormat().iterator(); iter - .hasNext();) { - FormatType fmt = (FormatType) iter.next(); - if(fmt.getLessThanValue().length()<=0 && fmt.getExpression().length()<=0 && !fmt.isBold() && !fmt.isItalic() && !fmt.isUnderline() && fmt.getFontSize().equals("11")) { - formatter = defaultFormatter; - } else - formatter = anyFormatter; - } - - //formatter.setFormatId(anyFormatter.getFormatId()); - } */ - if(formatter != null) { - if (semaphore.getSemaphoreType().equals(AppConstants.ST_ROW)) { - - if (dr.getRowFormatter() == null || formatter != defaultFormatter) { - // Making sure the default formatter doesn't overwrite - // valid row formatter set from another column - dr.setRowFormatter(formatter); - dr.setFormatId(formatter.getFormatId()); - // This is added for excel download - //if (!formatter.equals(defaultFormatter)) { - dr.setRowFormat(true); - //} - - } - } else { - if(nvl(targetColId).length()>0) { - if(targetDataValue!=null) { - targetDataValue.setCellFormatter(formatter); - targetDataValue.setFormatId(formatter.getFormatId()); - //if (!formatter.equals(defaultFormatter)) { - targetDataValue.setCellFormat(true); - int count = 0; - for (dr.resetNext(); dr.hasNext();) { - DataValue dv1 = dr.getNext(); - //add null check - if(targetColId!=null) { - if(dv1.getColId().equals(targetColId)) - dr.setDataValue(count, targetDataValue); - } - count++; - } - } - //} - - } else { - dv.setCellFormatter(formatter); - dv.setFormatId(formatter.getFormatId()); - //if (!formatter.equals(defaultFormatter)) { - dv.setCellFormat(true); - //} - } - }// else - } - } // setHtmlFormatters - -} // FormatProcessor diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java deleted file mode 100644 index 7ffaa3f6..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -public class Item { - private String _id; - private String _name; - - public Item() { - } - - public Item(String id, String name) { - this._id = id; - this._name = name; - } - - public String getId() { - return _id; - } - - public void setId(String id) { - this._id = id; - } - - public String getName() { - return _name; - } - - public void setName(String name) { - this._name = name; - } - - public String toString() { - return _name; - } -} - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java deleted file mode 100644 index e733e84b..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java +++ /dev/null @@ -1,89 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import org.openecomp.portalsdk.analytics.RaptorObject; - -public class LookupDBInfo extends RaptorObject { - private String tableName = null; - - private String fieldName = null; - - private String lookupTable = null; - - private String lookupIdField = null; - - private String lookupNameField = null; - - public LookupDBInfo() { - } - - public LookupDBInfo(String tableName, String fieldName, String lookupTable, - String lookupIdField, String lookupNameField) { - this(); - - setTableName(tableName); - setFieldName(fieldName); - setLookupTable(lookupTable); - setLookupIdField(lookupIdField); - setLookupNameField(lookupNameField); - } // LookupDBInfo - - public String getTableName() { - return tableName; - } - - public String getFieldName() { - return fieldName; - } - - public String getLookupTable() { - return lookupTable; - } - - public String getLookupIdField() { - return lookupIdField; - } - - public String getLookupNameField() { - return lookupNameField; - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public void setFieldName(String fieldName) { - this.fieldName = fieldName; - } - - public void setLookupTable(String lookupTable) { - this.lookupTable = lookupTable; - } - - public void setLookupIdField(String lookupIdField) { - this.lookupIdField = lookupIdField; - } - - public void setLookupNameField(String lookupNameField) { - this.lookupNameField = lookupNameField; - } - -} // LookupDBInfo diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java deleted file mode 100644 index 9660e7fe..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -class RangeColorJSON extends IndexValueJSON {} -class RangeAxisLabelJSON extends IndexValueJSON {} -class RangeLineTypeJSON extends IndexValueJSON {} - -public class RangeAxisJSON { - - private RangeAxisLabelJSON rangeAxisLabelJSON; - private RangeColorJSON rangeColorJSON; - private RangeLineTypeJSON rangeLineTypeJSON; - private String rangeChartGroup; - private String rangeYAxis; - private boolean showAsArea; - - public RangeAxisLabelJSON getRangeAxisLabelJSON() { - return rangeAxisLabelJSON; - } - public void setRangeAxisLabelJSON(RangeAxisLabelJSON rangeAxisLabelJSON) { - this.rangeAxisLabelJSON = rangeAxisLabelJSON; - } - public RangeColorJSON getRangeColorJSON() { - return rangeColorJSON; - } - public void setRangeColorJSON(RangeColorJSON rangeColorJSON) { - this.rangeColorJSON = rangeColorJSON; - } - public RangeLineTypeJSON getRangeLineTypeJSON() { - return rangeLineTypeJSON; - } - public void setRangeLineTypeJSON(RangeLineTypeJSON rangeLineTypeJSON) { - this.rangeLineTypeJSON = rangeLineTypeJSON; - } - public String getRangeChartGroup() { - return rangeChartGroup; - } - public void setRangeChartGroup(String rangeChartGroup) { - this.rangeChartGroup = rangeChartGroup; - } - public String getRangeYAxis() { - return rangeYAxis; - } - public void setRangeYAxis(String rangeYAxis) { - this.rangeYAxis = rangeYAxis; - } - public boolean isShowAsArea() { - return showAsArea; - } - public void setShowAsArea(boolean showAsArea) { - this.showAsArea = showAsArea; - } - - public String getRangeAxis() { - if(getRangeAxisLabelJSON()!=null) - return getRangeAxisLabelJSON().getValue(); - else - return ""; - } - - public String getRangeColor(){ - if(getRangeColorJSON()!=null) - return getRangeColorJSON().getValue(); - else - return ""; - } - - public String getRangeLineType(){ - if(getRangeLineTypeJSON()!=null) - return getRangeLineTypeJSON().getValue(); - else - return ""; - } - -} \ No newline at end of file diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java deleted file mode 100644 index fd2dc70d..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java +++ /dev/null @@ -1,356 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.*; -import javax.servlet.http.*; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.*; -import org.openecomp.portalsdk.analytics.model.base.*; -import org.openecomp.portalsdk.analytics.model.definition.*; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; -import org.openecomp.portalsdk.analytics.xmlobj.*; - -public class ReportFormFields extends Vector { - private int nextElemIdx = 0; - - public ReportFormFields(ReportWrapper rw, HttpServletRequest request) throws RaptorException { - super(); - - if (rw.getFormFieldList() != null) - for (Iterator iter = rw.getFormFieldList().getFormField().iterator(); iter - .hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - - String fieldName = fft.getFieldId(); - String fieldDisplayName = fft.getFieldName(); - String fieldType = fft.getFieldType(); - String validationType = fft.getValidationType(); - String mandatory = nvl(fft.getMandatory(), "N"); - String defaultValue = fft.getDefaultValue(); - String fieldSQL = fft.getFieldSQL(); - String fieldDefaultSQL = fft.getFieldDefaultSQL(); - String[] reqParameters = Globals.getRequestParams().split(","); - String[] sessionParameters = Globals.getSessionParams().split(","); - String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(","); - javax.servlet.http.HttpSession session = request.getSession(); - String visible = nvl(fft.getVisible(),"Y"); - String dependsOn = nvl(fft.getDependsOn(), ""); - Calendar rangeStartDate = (fft.getRangeStartDate()==null)?null:fft.getRangeStartDate().toGregorianCalendar(); - Calendar rangeEndDate = (fft.getRangeEndDate()==null)?null:fft.getRangeEndDate().toGregorianCalendar(); - //Calendar rangeEndDate = fft.getRangeEndDate().toGregorianCalendar(); - String rangeStartDateSQL = fft.getRangeStartDateSQL(); - String rangeEndDateSQL = fft.getRangeEndDateSQL(); - String user_id = AppUtils.getUserID(request); - String multiSelectListSize = fft.getMultiSelectListSize(); - - //s_logger.debug("ranges are : " + fft.getRangeStartDate() + fft.getRangeEndDate()); - //s_logger.debug("fieldSQL B4" + fieldSQL); - if(fieldSQL!=null) { - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff") && (request.getParameter(reqParameters[i].toUpperCase())!=null && request.getParameter(reqParameters[i].toUpperCase()).length() > 0)) - fieldSQL = Utils.replaceInString(fieldSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - else if (request.getParameter(reqParameters[i])!=null && request.getParameter(reqParameters[i]).length() > 0) - fieldSQL = Utils.replaceInString(fieldSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - - for (int i = 0; i < scheduleSessionParameters.length; i++) { - //s_logger.debug(" Session " + " scheduleSessionParameters[i] " + scheduleSessionParameters[i].toUpperCase() + " " + request.getParameter(scheduleSessionParameters[i])); - if(request.getParameter(scheduleSessionParameters[i])!=null && request.getParameter(scheduleSessionParameters[i]).trim().length()>0 ) - fieldSQL = Utils.replaceInString(fieldSQL, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); - if(request.getAttribute(scheduleSessionParameters[i])!=null && ((String)request.getAttribute(scheduleSessionParameters[i])).trim().length()>0 ) - fieldSQL = Utils.replaceInString(fieldSQL, "[" + scheduleSessionParameters[i].toUpperCase()+"]", (String) request.getAttribute(scheduleSessionParameters[i]) ); - - } - - for (int i = 0; i < sessionParameters.length; i++) { - //if(!sessionParameters[i].startsWith("ff")) - //fieldSQL = Utils.replaceInString(fieldSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); - //else { - if (session.getAttribute(sessionParameters[i])!=null && ((String)session.getAttribute(sessionParameters[i])).length() > 0) { - //s_logger.debug(" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i])); - fieldSQL = Utils.replaceInString(fieldSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - // } - } - fieldSQL = Utils.replaceInString(fieldSQL, "[USERID]", user_id); - fieldSQL = Utils.replaceInString(fieldSQL, "[USER_ID]", user_id); - fieldSQL = Utils.replaceInString(fieldSQL, "[LOGGED_USERID]", user_id); - - } - - if(fieldDefaultSQL!=null) { - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff") && (request.getParameter(reqParameters[i].toUpperCase())!=null && request.getParameter(reqParameters[i].toUpperCase()).length() > 0)) - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - else if (request.getParameter(reqParameters[i])!=null && request.getParameter(reqParameters[i]).length() > 0) - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - for (int i = 0; i < scheduleSessionParameters.length; i++) { - //s_logger.debug(" Session " + " scheduleSessionParameters[i] " + scheduleSessionParameters[i].toUpperCase() + " " + request.getParameter(scheduleSessionParameters[i])); - if(request.getParameter(scheduleSessionParameters[i])!=null && request.getParameter(scheduleSessionParameters[i]).trim().length()>0 ) - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); - if(request.getAttribute(scheduleSessionParameters[i])!=null && ((String)request.getAttribute(scheduleSessionParameters[i])).trim().length()>0 ) - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + scheduleSessionParameters[i].toUpperCase()+"]", (String) request.getAttribute(scheduleSessionParameters[i]) ); - - } - - for (int i = 0; i < sessionParameters.length; i++) { - //if(!sessionParameters[i].startsWith("ff")) - //fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); - //else - if (session.getAttribute(sessionParameters[i])!=null && ((String)session.getAttribute(sessionParameters[i])).length() > 0) - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[USERID]", user_id); - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[USER_ID]", user_id); - fieldDefaultSQL = Utils.replaceInString(fieldDefaultSQL, "[LOGGED_USERID]", user_id); - } - //s_logger.debug("fieldSQL After" + fieldSQL); - if(rangeStartDateSQL!=null) { - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff") && (request.getParameter(reqParameters[i].toUpperCase())!=null && request.getParameter(reqParameters[i].toUpperCase()).length() > 0)) - rangeStartDateSQL = Utils.replaceInString(rangeStartDateSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - else if (request.getParameter(reqParameters[i])!=null && request.getParameter(reqParameters[i]).length() > 0) - rangeStartDateSQL = Utils.replaceInString(rangeStartDateSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - for (int i = 0; i < sessionParameters.length; i++) { - if (session.getAttribute(sessionParameters[i])!=null && ((String)session.getAttribute(sessionParameters[i])).length() > 0) - rangeStartDateSQL = Utils.replaceInString(rangeStartDateSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - } - if(rangeEndDateSQL!=null) { - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff")&& (request.getParameter(reqParameters[i].toUpperCase())!=null && request.getParameter(reqParameters[i].toUpperCase()).length() > 0)) - rangeEndDateSQL = Utils.replaceInString(rangeEndDateSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - else if (request.getParameter(reqParameters[i])!=null && request.getParameter(reqParameters[i]).length() > 0) - rangeEndDateSQL = Utils.replaceInString(rangeEndDateSQL, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - for (int i = 0; i < sessionParameters.length; i++) { - if (session.getAttribute(sessionParameters[i])!=null && ((String)session.getAttribute(sessionParameters[i])).length() > 0) - rangeEndDateSQL = Utils.replaceInString(rangeEndDateSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - } - String helpText = fft.getComment(); - - List predefinedValues = null; - if (fft.getPredefinedValueList() != null) { - predefinedValues = fft.getPredefinedValueList().getPredefinedValue(); - if (predefinedValues.size() == 0) - predefinedValues = null; - } // if - - DataColumnType dct = rw.getColumnById(nvl(fft.getColId())); - - boolean basedOnColumn = false; - if (rw.getReportDefType().equals(AppConstants.RD_SQL_BASED)) - basedOnColumn = (nvl(fft.getColId()).indexOf('.') > 0); - else - basedOnColumn = (dct != null); - - if (((!basedOnColumn) && (nvl(fieldSQL).length() == 0)) - || predefinedValues != null) { - if (predefinedValues != null) - if (nvl(defaultValue).equals(AppConstants.FILTER_MAX_VALUE)) - defaultValue = (String) Collections.max(predefinedValues); - else if (nvl(defaultValue).equals(AppConstants.FILTER_MIN_VALUE)) - defaultValue = (String) Collections.min(predefinedValues); - add(new FormField(fieldName, fieldDisplayName, fieldType, validationType, - mandatory.equals("Y"), defaultValue, helpText, predefinedValues,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize)); - } else if (nvl(fieldSQL).length() > 0) { - add(new FormField(fieldName, fieldDisplayName, fieldType, validationType, - mandatory.equals("Y"), fieldDefaultSQL, helpText, fieldSQL,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize)); - } else { - String lTableName = null; - String lColumnName = null; - String lColumnType = null; - String lColFormat = null; - if (rw.getReportDefType().equals(AppConstants.RD_SQL_BASED)) { - String colId = nvl(fft.getColId()); - lTableName = ReportWrapper.getSQLBasedFFTColTableName(colId); // colId.substring(0, - // colId.indexOf('.')); - lColumnName = ReportWrapper.getSQLBasedFFTColColumnName(colId); // colId.substring(colId.lastIndexOf('.')+1); - lColumnType = AppConstants.CT_CHAR; - try { - lColumnType = nvl(DataCache.getReportTableDbColumnType(lTableName, - lColumnName, rw.getDBInfo()), AppConstants.CT_CHAR); - } catch (Exception e) { - } - lColFormat = lColumnType.equals(AppConstants.CT_DATE) ? nvl( - ReportWrapper.getSQLBasedFFTColDisplayFormat(colId), - AppConstants.DEFAULT_DATE_FORMAT) : ""; - } else { - lTableName = rw.getColumnTableById(dct.getColId()).getTableName(); // should - // be - // same - // as - // rw.getTableById(dct.getTableId()).getTableName() - lColumnName = dct.getColName(); - lColumnType = dct.getColType(); - lColFormat = nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT); - } // else - - if (nvl(defaultValue).equals(AppConstants.FILTER_MAX_VALUE) - || nvl(defaultValue).equals(AppConstants.FILTER_MIN_VALUE)) - try { - String selectVal = (defaultValue - .equals(AppConstants.FILTER_MAX_VALUE) ? "MAX" : "MIN") - + "(" + lColumnName + ")"; - if (lColumnType.equals(AppConstants.CT_DATE)) - selectVal = "TO_CHAR(" + selectVal + ", '" - + AppConstants.DEFAULT_DATE_FORMAT + "')"; - // DataSet ds = DbUtils.executeQuery("SELECT - // "+selectVal+" FROM "+lTableName); - DataSet ds = ConnectionUtils.getDataSet("SELECT " + selectVal - + " FROM " + lTableName, rw.getDBInfo()); - if (ds.getRowCount() > 0) - defaultValue = ds.getString(0, 0); - } catch (Exception e) { - } - - LookupDBInfo lookupDBInfo = DataCache.getLookupTable(lTableName, - lColumnName); - String lookupTable = lookupDBInfo.getLookupTable(); - String lookupIdField = lookupDBInfo.getLookupIdField(); - String lookupNameField = lookupDBInfo.getLookupNameField(); - String lookupSortByField = lookupDBInfo.getLookupNameField(); - if (lColumnType.equals(AppConstants.CT_DATE)) { - // Expects lookup on DATE fields will have both Id and - // Name fields with DATE format; if not the case will - // generate an error - lookupIdField = "TO_CHAR(" + lookupIdField + ", '" - + AppConstants.DEFAULT_DATE_FORMAT + "')"; - lookupSortByField = " TO_DATE(TO_CHAR("+ lookupNameField +", '" + AppConstants.DEFAULT_DATE_FORMAT+ "'),'" + AppConstants.DEFAULT_DATE_FORMAT+ "') "; - lookupNameField = "TO_CHAR(" + lookupNameField + ", '" + lColFormat - + "')"; - lookupSortByField += " DESC"; - } // if - if (fieldDefaultSQL!=null && fieldDefaultSQL.length()>0 && (fieldDefaultSQL.trim().length()>10) && fieldDefaultSQL.substring(0,10).toLowerCase().startsWith("select")) { - add(new FormField(fieldName, fieldDisplayName, fieldType, validationType, - mandatory.equals("Y"), fieldDefaultSQL, helpText, lookupTable, - lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"),dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize)); - - } else { - add(new FormField(fieldName, fieldDisplayName, fieldType, validationType, - mandatory.equals("Y"), defaultValue, helpText, lookupTable, - lookupIdField, lookupNameField, lookupSortByField,visible.equals("Y"), dependsOn, rangeStartDate, rangeEndDate, rangeStartDateSQL, rangeEndDateSQL, multiSelectListSize)); - } - } // else - } // for - - List reportCols = rw.getAllColumns(); - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - - if (dct.getColFilterList() != null) { - int fNo = 0; - List fList = dct.getColFilterList().getColFilter(); - for (Iterator iterF = fList.iterator(); iterF.hasNext(); fNo++) { - ColFilterType cft = (ColFilterType) iterF.next(); - - if (nvl(cft.getArgType()).equals(AppConstants.AT_FORM) - && rw.getFormFieldByDisplayValue(cft.getArgValue()) == null) { - String fieldName = rw.getFormFieldName(cft); - String fieldDisplayName = rw.getFormFieldDisplayName(dct, cft); - - LookupDBInfo lookupDBInfo = DataCache.getLookupTable(rw - .getColumnTableById(dct.getColId()).getTableName(), dct - .getColName()); - String lookupTable = lookupDBInfo.getLookupTable(); - String lookupIdField = lookupDBInfo.getLookupIdField(); - String lookupNameField = lookupDBInfo.getLookupNameField(); - String lookupSortByField = lookupDBInfo.getLookupNameField(); - Calendar lookupRangeStartDate = rw.getFormFieldRangeStart(cft); - Calendar lookupRangeEndDate = rw.getFormFieldRangeEnd(cft); - String lookupRangeStartDateSQL = rw.getFormFieldRangeStartSQL(cft); - String lookupRangeEndDateSQL = rw.getFormFieldRangeEndSQL(cft); - if (dct.getColType().equals(AppConstants.CT_DATE)) { - // Expects lookup on DATE fields will have both Id - // and Name fields with DATE format; if not the case - // will generate an error - lookupIdField = "TO_CHAR(" - + lookupIdField - + ", '" - + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) - + "')"; - lookupNameField = "TO_CHAR(" - + lookupNameField - + ", '" - + nvl(dct.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) - + "')"; - lookupSortByField += " DESC"; - } // if - add(new FormField(fieldName, fieldDisplayName, - FormField.FFT_TEXT_W_POPUP, null, false, null, null, - lookupTable, lookupIdField, lookupNameField, lookupSortByField,null, lookupRangeStartDate, lookupRangeEndDate, lookupRangeStartDateSQL, lookupRangeEndDateSQL, "0")); - } // if - } // for - } // if - } // for - } // ReportFormFields - - public int getFieldCount() { - return size(); - } // getFieldCount - - public FormField getFormField(int fieldIdx) { - return (FormField) get(fieldIdx); - } // getFormField - - public FormField getFormField(String fieldName) { - for (int i = 0; i < getFieldCount(); i++) { - FormField ff = (FormField) get(i); - if (ff.getFieldName().equals(fieldName)) - return ff; - } // for - - return null; - } // getFormField - - public void resetNext() { - resetNext(0); - } // resetNext - - public void resetNext(int toPos) { - nextElemIdx = toPos; - } // resetNext - - public boolean hasNext() { - return (nextElemIdx < size()); - } // hasNext - - public FormField getNext() { - return hasNext() ? getFormField(nextElemIdx++) : null; - } // getNext - - /** ************************************************************************************************* */ - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - -} // ReportFormFields diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java deleted file mode 100644 index 0239147e..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java +++ /dev/null @@ -1,709 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Map; - -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; - -import org.json.JSONObject; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.view.ColumnHeader; -import org.openecomp.portalsdk.analytics.view.DataValue; -import org.openecomp.portalsdk.analytics.xmlobj.ColFilterList; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnList; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; - -/*class MetaColumn { - private String tableId; - private String dbColName; - private String crossTabValue; - private String colName; - private String displayName; - private Integer displayWidth; - private String displayWidthInPxls; - private String pdfDisplayWidthInPxls; - private String displayAlignment; - private String displayHeaderAlignment; - private int orderSeq; - private boolean visible; - private boolean calculated; - private String colType; - private String hyperlinkURL; - private String hyperlinkType; - private String actionImg; - private Integer groupByPos; - private String subTotalCustomText; - private Boolean hideRepeatedKey; - private String colFormat; - private boolean groupBreak; - private Integer orderBySeq; - private String orderByAscDesc; - private String displayTotal; - private String colOnChart; - private Integer chartSeq; - private String chartColor; - private String chartLineType; - private Boolean chartSeries; - private Boolean isRangeAxisFilled; - private Boolean createInNewChart; - private String drillDownType; - private Boolean drillinPoPUp; - private String drillDownURL; - private String drillDownParams; - private String comment; - private ColFilterList colFilterList; - private String semaphoreId; - private String dbColType; - private String chartGroup; - private String yAxis; - private String dependsOnFormField; - private String nowrap; - private Integer indentation; - private Boolean enhancedPagination; - private Integer level; - private Integer start; - private Integer colspan; - private String dataMiningCol; - private String colId; - - public String getTableId() { - return tableId; - } - public void setTableId(String tableId) { - this.tableId = tableId; - } - public String getDbColName() { - return dbColName; - } - public void setDbColName(String dbColName) { - this.dbColName = dbColName; - } - public String getCrossTabValue() { - return crossTabValue; - } - public void setCrossTabValue(String crossTabValue) { - this.crossTabValue = crossTabValue; - } - public String getColName() { - return colName; - } - public void setColName(String colName) { - this.colName = colName; - } - public String getDisplayName() { - return displayName; - } - public void setDisplayName(String displayName) { - this.displayName = displayName; - } - public Integer getDisplayWidth() { - return displayWidth; - } - public void setDisplayWidth(Integer displayWidth) { - this.displayWidth = displayWidth; - } - public String getDisplayWidthInPxls() { - return displayWidthInPxls; - } - public void setDisplayWidthInPxls(String displayWidthInPxls) { - this.displayWidthInPxls = displayWidthInPxls; - } - public String getPdfDisplayWidthInPxls() { - return pdfDisplayWidthInPxls; - } - public void setPdfDisplayWidthInPxls(String pdfDisplayWidthInPxls) { - this.pdfDisplayWidthInPxls = pdfDisplayWidthInPxls; - } - public String getDisplayAlignment() { - return displayAlignment; - } - public void setDisplayAlignment(String displayAlignment) { - this.displayAlignment = displayAlignment; - } - public String getDisplayHeaderAlignment() { - return displayHeaderAlignment; - } - public void setDisplayHeaderAlignment(String displayHeaderAlignment) { - this.displayHeaderAlignment = displayHeaderAlignment; - } - public int getOrderSeq() { - return orderSeq; - } - public void setOrderSeq(int orderSeq) { - this.orderSeq = orderSeq; - } - public boolean isVisible() { - return visible; - } - public void setVisible(boolean visible) { - this.visible = visible; - } - public boolean isCalculated() { - return calculated; - } - public void setCalculated(boolean calculated) { - this.calculated = calculated; - } - public String getColType() { - return colType; - } - public void setColType(String colType) { - this.colType = colType; - } - public String getHyperlinkURL() { - return hyperlinkURL; - } - public void setHyperlinkURL(String hyperlinkURL) { - this.hyperlinkURL = hyperlinkURL; - } - public String getHyperlinkType() { - return hyperlinkType; - } - public void setHyperlinkType(String hyperlinkType) { - this.hyperlinkType = hyperlinkType; - } - public String getActionImg() { - return actionImg; - } - public void setActionImg(String actionImg) { - this.actionImg = actionImg; - } - public Integer getGroupByPos() { - return groupByPos; - } - public void setGroupByPos(Integer groupByPos) { - this.groupByPos = groupByPos; - } - public String getSubTotalCustomText() { - return subTotalCustomText; - } - public void setSubTotalCustomText(String subTotalCustomText) { - this.subTotalCustomText = subTotalCustomText; - } - public Boolean getHideRepeatedKey() { - return hideRepeatedKey; - } - public void setHideRepeatedKey(Boolean hideRepeatedKey) { - this.hideRepeatedKey = hideRepeatedKey; - } - public String getColFormat() { - return colFormat; - } - public void setColFormat(String colFormat) { - this.colFormat = colFormat; - } - public boolean isGroupBreak() { - return groupBreak; - } - public void setGroupBreak(boolean groupBreak) { - this.groupBreak = groupBreak; - } - public Integer getOrderBySeq() { - return orderBySeq; - } - public void setOrderBySeq(Integer orderBySeq) { - this.orderBySeq = orderBySeq; - } - public String getOrderByAscDesc() { - return orderByAscDesc; - } - public void setOrderByAscDesc(String orderByAscDesc) { - this.orderByAscDesc = orderByAscDesc; - } - public String getDisplayTotal() { - return displayTotal; - } - public void setDisplayTotal(String displayTotal) { - this.displayTotal = displayTotal; - } - public String getColOnChart() { - return colOnChart; - } - public void setColOnChart(String colOnChart) { - this.colOnChart = colOnChart; - } - public Integer getChartSeq() { - return chartSeq; - } - public void setChartSeq(Integer chartSeq) { - this.chartSeq = chartSeq; - } - public String getChartColor() { - return chartColor; - } - public void setChartColor(String chartColor) { - this.chartColor = chartColor; - } - public String getChartLineType() { - return chartLineType; - } - public void setChartLineType(String chartLineType) { - this.chartLineType = chartLineType; - } - public Boolean getChartSeries() { - return chartSeries; - } - public void setChartSeries(Boolean chartSeries) { - this.chartSeries = chartSeries; - } - public Boolean getIsRangeAxisFilled() { - return isRangeAxisFilled; - } - public void setIsRangeAxisFilled(Boolean isRangeAxisFilled) { - this.isRangeAxisFilled = isRangeAxisFilled; - } - public Boolean getCreateInNewChart() { - return createInNewChart; - } - public void setCreateInNewChart(Boolean createInNewChart) { - this.createInNewChart = createInNewChart; - } - public String getDrillDownType() { - return drillDownType; - } - public void setDrillDownType(String drillDownType) { - this.drillDownType = drillDownType; - } - public Boolean getDrillinPoPUp() { - return drillinPoPUp; - } - public void setDrillinPoPUp(Boolean drillinPoPUp) { - this.drillinPoPUp = drillinPoPUp; - } - public String getDrillDownURL() { - return drillDownURL; - } - public void setDrillDownURL(String drillDownURL) { - this.drillDownURL = drillDownURL; - } - public String getDrillDownParams() { - return drillDownParams; - } - public void setDrillDownParams(String drillDownParams) { - this.drillDownParams = drillDownParams; - } - public String getComment() { - return comment; - } - public void setComment(String comment) { - this.comment = comment; - } - public ColFilterList getColFilterList() { - return colFilterList; - } - public void setColFilterList(ColFilterList colFilterList) { - this.colFilterList = colFilterList; - } - public String getSemaphoreId() { - return semaphoreId; - } - public void setSemaphoreId(String semaphoreId) { - this.semaphoreId = semaphoreId; - } - public String getDbColType() { - return dbColType; - } - public void setDbColType(String dbColType) { - this.dbColType = dbColType; - } - public String getChartGroup() { - return chartGroup; - } - public void setChartGroup(String chartGroup) { - this.chartGroup = chartGroup; - } - public String getyAxis() { - return yAxis; - } - public void setyAxis(String yAxis) { - this.yAxis = yAxis; - } - public String getDependsOnFormField() { - return dependsOnFormField; - } - public void setDependsOnFormField(String dependsOnFormField) { - this.dependsOnFormField = dependsOnFormField; - } - public String getNowrap() { - return nowrap; - } - public void setNowrap(String nowrap) { - this.nowrap = nowrap; - } - public Integer getIndentation() { - return indentation; - } - public void setIndentation(Integer indentation) { - this.indentation = indentation; - } - public Boolean getEnhancedPagination() { - return enhancedPagination; - } - public void setEnhancedPagination(Boolean enhancedPagination) { - this.enhancedPagination = enhancedPagination; - } - public Integer getLevel() { - return level; - } - public void setLevel(Integer level) { - this.level = level; - } - public Integer getStart() { - return start; - } - public void setStart(Integer start) { - this.start = start; - } - public Integer getColspan() { - return colspan; - } - public void setColspan(Integer colspan) { - this.colspan = colspan; - } - public String getDataMiningCol() { - return dataMiningCol; - } - public void setDataMiningCol(String dataMiningCol) { - this.dataMiningCol = dataMiningCol; - } - public String getColId() { - return colId; - } - public void setColId(String colId) { - this.colId = colId; - } - -}*/ - -/*class Row { - private String displayValue; - private String dataType; - private String colId; - private boolean visible; - - - public boolean isVisible() { - return visible; - } - public void setVisible(boolean visible) { - this.visible = visible; - } - public String getDisplayValue() { - return displayValue; - } - public void setDisplayValue(String displayValue) { - this.displayValue = displayValue; - } - public String getDataType() { - return dataType; - } - public void setDataType(String dataType) { - this.dataType = dataType; - } - public String getColId() { - return colId; - } - public void setColId(String colId) { - this.colId = colId; - } - - -}*/ -class FormFieldJSON { - private String fieldId; - private String fieldDisplayName; - private String fieldType; - private String validationType; - private boolean required; - //private String defaultValue; - - private Calendar rangeStartDate; - private Calendar rangeEndDate; - private String multiSelectListSize; - private String helpText; - private boolean visible; - private boolean triggerOtherFormFields; - private ArrayList formFieldValues; - - public String getFieldId() { - return fieldId; - } - public void setFieldId(String fieldId) { - this.fieldId = fieldId; - } - public String getFieldDisplayName() { - return fieldDisplayName; - } - public void setFieldDisplayName(String fieldDisplayName) { - this.fieldDisplayName = fieldDisplayName; - } - public String getFieldType() { - return fieldType; - } - public void setFieldType(String fieldType) { - this.fieldType = fieldType; - } - public String getValidationType() { - return validationType; - } - public void setValidationType(String validationType) { - this.validationType = validationType; - } - public boolean isRequired() { - return required; - } - public void setRequired(boolean required) { - this.required = required; - } - public Calendar getRangeStartDate() { - return rangeStartDate; - } - public void setRangeStartDate(Calendar rangeStartDate) { - this.rangeStartDate = rangeStartDate; - } - public Calendar getRangeEndDate() { - return rangeEndDate; - } - public void setRangeEndDate(Calendar rangeEndDate) { - this.rangeEndDate = rangeEndDate; - } - public String getMultiSelectListSize() { - return multiSelectListSize; - } - public void setMultiSelectListSize(String multiSelectListSize) { - this.multiSelectListSize = multiSelectListSize; - } - public String getHelpText() { - return helpText; - } - public void setHelpText(String helpText) { - this.helpText = helpText; - } - public boolean isVisible() { - return visible; - } - public void setVisible(boolean visible) { - this.visible = visible; - } - public boolean isTriggerOtherFormFields() { - return triggerOtherFormFields; - } - public void setTriggerOtherFormFields(boolean triggerOtherFormFields) { - this.triggerOtherFormFields = triggerOtherFormFields; - } - public ArrayList getFormFieldValues() { - return formFieldValues; - } - public void setFormFieldValues(ArrayList formFieldValues) { - this.formFieldValues = formFieldValues; - } - - -} -public class ReportJSONRuntime { - - private String reportID; - private String reportName; - private String reportDescr; - private String reportTitle; - private String reportSubTitle; - private boolean allowSchedule; - private boolean allowEdit; - private ArrayList formFieldList; - private String formfield_comments; - private ArrayList reportDataColumns; - private ArrayList> reportDataRows; - private int totalRows; - private int pageSize; - private String sqlWhole; - private boolean chartAvailable; - private boolean chartWizardAvailable; - private boolean displayData; - private boolean displayForm; - private boolean displayExcel; - private boolean displayPDF; - private String backBtnURL; - private String colIdxTobeFreezed; - private int numFormCols; - private String message; - private boolean hideFormFieldsAfterRun; - - - public boolean isChartAvailable() { - return chartAvailable; - } - public void setChartAvailable(boolean chartAvailable) { - this.chartAvailable = chartAvailable; - } - public ArrayList> getReportDataRows() { - return reportDataRows; - } - public void setReportDataRows(ArrayList> reportDataRows) { - this.reportDataRows = reportDataRows; - } - public String getReportID() { - return reportID; - } - public void setReportID(String reportID) { - this.reportID = reportID; - } - public String getReportName() { - return reportName; - } - public void setReportName(String reportName) { - this.reportName = reportName; - } - public String getReportDescr() { - return reportDescr; - } - public void setReportDescr(String reportDescr) { - this.reportDescr = reportDescr; - } - public String getReportTitle() { - return reportTitle; - } - public void setReportTitle(String reportTitle) { - this.reportTitle = reportTitle; - } - public String getReportSubTitle() { - return reportSubTitle; - } - public void setReportSubTitle(String reportSubTitle) { - this.reportSubTitle = reportSubTitle; - } - public boolean isAllowSchedule() { - return allowSchedule; - } - public void setAllowSchedule(boolean allowSchedule) { - this.allowSchedule = allowSchedule; - } - public ArrayList getFormFieldList() { - return formFieldList; - } - public void setFormFieldList(ArrayList formFieldList) { - this.formFieldList = formFieldList; - } - public String getFormfield_comments() { - return formfield_comments; - } - public void setFormfield_comments(String formfield_comments) { - this.formfield_comments = formfield_comments; - } - public ArrayList getReportDataColumns() { - return reportDataColumns; - } - public void setReportDataColumns(ArrayList reportDataColumns) { - this.reportDataColumns = reportDataColumns; - } - - public int getTotalRows() { - return totalRows; - } - public void setTotalRows(int totalRows) { - this.totalRows = totalRows; - } - public int getPageSize() { - return pageSize; - } - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - public String getSqlWhole() { - return sqlWhole; - } - public void setSqlWhole(String sqlWhole) { - this.sqlWhole = sqlWhole; - } - - public boolean isAllowEdit() { - return allowEdit; - } - public void setAllowEdit(boolean allowEdit) { - this.allowEdit = allowEdit; - } - public String getBackBtnURL() { - return backBtnURL; - } - public void setBackBtnURL(String backBtnURL) { - this.backBtnURL = backBtnURL; - } - public String getColIdxTobeFreezed() { - return colIdxTobeFreezed; - } - public void setColIdxTobeFreezed(String colIdxTobeFreezed) { - this.colIdxTobeFreezed = colIdxTobeFreezed; - } - public int getNumFormCols() { - return numFormCols; - } - public void setNumFormCols(int numFormCols) { - this.numFormCols = numFormCols; - } - public boolean isDisplayData() { - return displayData; - } - public void setDisplayData(boolean displayData) { - this.displayData = displayData; - } - public boolean isDisplayForm() { - return displayForm; - } - public void setDisplayForm(boolean displayForm) { - this.displayForm = displayForm; - } - public boolean isDisplayExcel() { - return displayExcel; - } - public void setDisplayExcel(boolean displayExcel) { - this.displayExcel = displayExcel; - } - public boolean isDisplayPDF() { - return displayPDF; - } - public void setDisplayPDF(boolean displayPDF) { - this.displayPDF = displayPDF; - } - public String getMessage() { - return message; - } - public void setMessage(String message) { - this.message = message; - } - public boolean isChartWizardAvailable() { - return chartWizardAvailable; - } - public void setChartWizardAvailable(boolean chartWizardAvilable) { - this.chartWizardAvailable = chartWizardAvilable; - } - public boolean isHideFormFieldsAfterRun() { - return hideFormFieldsAfterRun; - } - public void setHideFormFieldsAfterRun(boolean hideFormFieldsAfterRun) { - this.hideFormFieldsAfterRun = hideFormFieldsAfterRun; - } - - - - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java deleted file mode 100644 index 5ebf34bc..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java +++ /dev/null @@ -1,196 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import javax.servlet.http.*; - -import org.openecomp.portalsdk.analytics.model.base.*; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.*; -import org.openecomp.portalsdk.analytics.xmlobj.*; - -public class ReportParamDateValueParser { - - /*public static final SimpleDateFormat[] dateFormats; - - static { - dateFormats = new SimpleDateFormat[5]; - (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY)) - .setLenient(true); - (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY)) - .setLenient(true); - (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY)) - .setLenient(true); - (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY)) - .setLenient(true); - (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY)) - .setLenient(true); - }*/ - - public static boolean isDateHrParam(String param) { - SimpleDateFormat[] dateFormats = new SimpleDateFormat[2]; - (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY_HR)) - .setLenient(true); - (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY_HR)) - .setLenient(true); - for (int i = 0; i < dateFormats.length; i++) { - try { - if (dateFormats[i].parse(param) != null) { - return true; - } - } catch (ParseException pe) { - // do nothing, continue to check param against other dates - } - catch (NumberFormatException pe) { - // do nothing, continue to check param against other dates - } - } - return false; - } - public static boolean isDateParam(String param) { - SimpleDateFormat[] dateFormats = new SimpleDateFormat[5]; - (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY)) - .setLenient(true); - (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY)) - .setLenient(true); - (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY)) - .setLenient(true); - (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY)) - .setLenient(true); - (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY)) - .setLenient(true); - - for (int i = 0; i < dateFormats.length; i++) { - try { - if (dateFormats[i].parse(param) != null) { - return true; - } - } catch (ParseException pe) { - // do nothing, continue to check param against other dates - } - catch (NumberFormatException pe) { - // do nothing, continue to check param against other dates - } - } - return false; - } - - public static String formatDateParamValue(String param) { - return ReportParamDateValueParser.formatDateParamValue(param, null); - } - - public static String formatDateHrParamValue(String param) { - return ReportParamDateValueParser.formatDateHrParamValue(param, null); - } - - public static String formatDateHrParamValue(String param, String dateHrFormatPattern) { - String formattedDate = null; - Date parsedDate = null; - - dateHrFormatPattern = (dateHrFormatPattern != null) ? dateHrFormatPattern - : "HH"; - - SimpleDateFormat[] dateFormats = new SimpleDateFormat[2]; - (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY_HR)) - .setLenient(true); - (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY_HR)) - .setLenient(true); - - for (int i = 0; i < dateFormats.length; i++) { - try { - if (dateFormats[i].parse(param) != null) { - SimpleDateFormat newDateFormat = new SimpleDateFormat(dateHrFormatPattern); - parsedDate = dateFormats[i].parse(param); - formattedDate = newDateFormat.format(parsedDate); - - - return formattedDate; - } - } catch (ParseException pe) { - // do nothing, continue to check param against other dates and - // format accordingly - } - catch (NumberFormatException pe) { - // do nothing, continue to check param against other dates - } - } - return param; - } - - - public static String formatDateParamValue(String param, String dateFormatPattern) { - String formattedDate = null; - Date parsedDate = null; - - dateFormatPattern = (dateFormatPattern != null) ? dateFormatPattern - : AppConstants.JAVA_DATE_FORMAT_MMDDYYYY; - - SimpleDateFormat[] dateFormats = new SimpleDateFormat[5]; - (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY)) - .setLenient(true); - (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY)) - .setLenient(true); - (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY)) - .setLenient(true); - (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY)) - .setLenient(true); - (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY)) - .setLenient(true); - - for (int i = 0; i < dateFormats.length; i++) { - try { - if (dateFormats[i].parse(param) != null) { - SimpleDateFormat newDateFormat = new SimpleDateFormat(dateFormatPattern); - parsedDate = dateFormats[i].parse(param); - formattedDate = newDateFormat.format(parsedDate); - - if (Globals.getMonthFormatUseLastDay() - && (dateFormats[i].toPattern().equals( - AppConstants.JAVA_DATE_FORMAT_MMYYYY) || dateFormats[i] - .toPattern().equals( - AppConstants.JAVA_DATE_FORMAT_MONTHYYYY))) { - - GregorianCalendar gc = new GregorianCalendar(); - gc.setTime(parsedDate); - int day = gc.getActualMaximum(GregorianCalendar.DAY_OF_MONTH); - formattedDate = Utils.replaceInString(formattedDate, "/01/", "/" - + String.valueOf(day) + "/"); - - } - - return formattedDate; - } - } catch (ParseException pe) { - // do nothing, continue to check param against other dates and - // format accordingly - } - catch (NumberFormatException pe) { - // do nothing, continue to check param against other dates - } - } - return param; - } - -} // ReportParamValues - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java deleted file mode 100644 index 8cdd30a2..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java +++ /dev/null @@ -1,369 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -import org.openecomp.portalsdk.analytics.system.DbUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.analytics.util.XSSFilter; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class ReportParamValues extends Hashtable { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportParamValues.class); - - private Hashtable paramIsMultiValue = null; - private Hashtable paramIsTextAreaValue = null; - private Hashtable paramIsTextAreaDrilldownValue = null; - private Hashtable paramIsTextAreaValueModified = null; - private ReportFormFields rff = null; - - private Hashtable multiValueBaseSQL = null; - private Hashtable textAreaValueBaseSQL = null; - - public ReportParamValues() { - super(); - paramIsMultiValue = new Hashtable(); - multiValueBaseSQL = new Hashtable(); - paramIsTextAreaValue = new Hashtable(); - paramIsTextAreaDrilldownValue = new Hashtable(); - paramIsTextAreaValueModified = new Hashtable(); - } // ReportParamValues - - public ReportParamValues(ReportFormFields rff, String reportDefType) { - this(); - this.rff = rff; - for (Iterator iter = rff.iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - put(ff.getFieldName(), nvl(ff.getDefaultValue())); - put(ff.getFieldName()+"_Hr", nvl(ff.getDefaultValue())); - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - put(ff.getFieldName()+"_Min", nvl(ff.getDefaultValue())); - } - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - put(ff.getFieldName()+"_Sec", nvl(ff.getDefaultValue())); - } - } else - put(ff.getFieldName(), nvl(ff.getDefaultValue())); - - boolean isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); - boolean isTextAreaValue = ff.getFieldType().equals(FormField.FFT_TEXTAREA) && reportDefType - .equals(AppConstants.RD_SQL_BASED); - - paramIsMultiValue.put(ff.getFieldName(), new Boolean(isMultiValue)); - paramIsTextAreaValue.put(ff.getFieldName(), new Boolean(isTextAreaValue)); - - if ((isMultiValue || isTextAreaValue) && ff.getBaseSQL() != null) - multiValueBaseSQL.put(ff.getFieldName(), ff.getBaseSQL()); - - - } // for - } // ReportParamValues - - /* - * public ReportParamValues(ReportFormFields rff, HttpServletRequest - * request) { this(rff); - * - * setParamValues(request); } // ReportParamValues - */ - public boolean isParameterMultiValue(String fieldName) { - Boolean b = (Boolean) paramIsMultiValue.get(fieldName); - return (b != null) ? b.booleanValue() : false; - } // isParameterMultiValue - - public boolean isParameterTextAreaValue(String fieldName) { - Boolean b = (Boolean) paramIsTextAreaValue.get(fieldName); - return (b != null) ? b.booleanValue() : false; - } // isParameterMultiValue - - public boolean isParameterTextAreaValueAndModified(String fieldName) { - Boolean b = (Boolean) paramIsTextAreaValueModified.get(fieldName); - return (b != null) ? b.booleanValue() : false; - } // isParameterMultiValue - - public boolean setParamValues(HttpServletRequest request, boolean refresh) { - long currentTime = System.currentTimeMillis(); - //System.out.println("ReportParamValues setParamValues called " + refresh); - boolean paramUpdated = false; - if(refresh) clearValues(); - for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - String oldValue = XSSFilter.filterRequestOnlyScript(getParamValue(key)); - String newValue = null; - if (isParameterMultiValue(key)) { - String[] values = request.getParameterValues(key); - - if (values != null) { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < values.length; i++) { - if (sb.length() > 0) - sb.append('|'); - sb.append(values[i]); - } // for - - newValue = XSSFilter.filterRequestOnlyScript(sb.toString()); - } // if - } else if (isParameterTextAreaValue(key)) { -/* String[] values = request.getParameterValues(key); - - if (values != null) { - StringBuffer sb = new StringBuffer(); - for (int i = 0; i < values.length; i++) { - if (sb.length() > 0) - sb.append('|'); - sb.append(values[i]); - } // for -*/ - String value = ""; - value = request.getParameter(key); - value = Utils.oracleSafe(nvl(value)); - paramIsTextAreaDrilldownValue.put(key, value); - value = value.replaceAll(",", "|"); - value = "('" + Utils.replaceInString(value, "|", "','") + "')"; - //value = Utils.replaceInString(value, "|", ","); - newValue = XSSFilter.filterRequestOnlyScript(value); - paramIsTextAreaValueModified.put(key, new Boolean(true)); - //} // if - - } else - // newValue = nvl(request.getParameter(key)); - newValue = XSSFilter.filterRequestOnlyScript(request.getParameter(key)); - //debugLogger.debug("IN REPORTPARAM ^NEW VALUE " + newValue + " OLD VALUE " + oldValue + " KEY " + key + " isParameterMultiValue(key) " + isParameterMultiValue(key)); - if(!isParameterMultiValue(key) && !isParameterTextAreaValue(key)) { - if(refresh && nvl(newValue).length()<=0) { - put(key, oldValue); - } else if ( ((newValue != null && newValue.trim().length()>0) && (oldValue!=null && oldValue.trim().length()>0) && !newValue.equals(oldValue)) || - ((newValue != null && newValue.trim().length()>0) && (oldValue == null || oldValue.trim().length() <= 0)) ) { - paramUpdated = true; - //System.out.println("paramupdated1 " +paramUpdated+ " " + newValue + " " + oldValue); - // if(newValue.startsWith("[") && newValue.endsWith("]")) { - // newValue = getDateAsString(newValue); - // } - put(key, newValue); - } else if (((newValue == null || newValue.trim().length()<=0)) && (oldValue!=null && oldValue.trim().length()>0)) { - paramUpdated = true; - put(key, newValue); - } else if (nvl(newValue).equals(nvl(oldValue)) ) { - put(key, newValue); - } else { - put(key, ""); - } - } else { - if (((newValue != null && newValue.trim().length()>0) && (oldValue!=null && oldValue.trim().length()>0) && !newValue.equals(oldValue)) || - ((newValue != null && newValue.trim().length()>0) && (oldValue == null || oldValue.trim().length() <= 0)) && (isParameterMultiValue(key)||isParameterTextAreaValue(key))) { - if(isParameterTextAreaValue(key)) { - newValue = getParamValueforTextAreaDrilldown(key); - if(newValue.length() > 0 && !newValue.equals(oldValue)) { - paramUpdated = true; - put (key, newValue); - } - } else { - paramUpdated = true; - put (key, newValue); - } - - } else if (((newValue == null || newValue.trim().length()<=0)) && (oldValue!=null && oldValue.trim().length()>0) && (isParameterMultiValue(key)||isParameterTextAreaValue(key))) { - paramUpdated = true; - //System.out.println("paramupdated3 " +paramUpdated+ " N" + newValue + " O" + oldValue); - put(key, ""); - } - } - } // for - //printValues(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] ------->Time Taken for Adding/Clearing Param Values for Search Field Display " + (System.currentTimeMillis() - currentTime))); - return paramUpdated; - } // setParamValues - - public String getParamValueforTextAreaDrilldown(String key) { - return (String) paramIsTextAreaDrilldownValue.get(key); - } - - public String getParamValue(String key) { - //This logic below is added to avoid BLANK formfield to pass through logic - Sundar - if (key!=null) { - if(isParameterTextAreaValueAndModified(key)) { - String value = ""; - value = (String) get(key); - value = Utils.oracleSafe(nvl(value)); - value = value.replaceAll(",","|"); - if(nvl(value).length()>0) { - if(value.indexOf("|")!= -1) { // Need option to support "|" - value = Utils.replaceInString(value,"\r\n","~"); - } - value = Utils.replaceInString(value, "~", "' , '"); - value = "('" + Utils.replaceInString(value, "|", "','") + "')"; // changed from "|" - //value = Utils.replaceInString(value, "|", ","); - value = XSSFilter.filterRequestOnlyScript(value); - return value; - } else return ""; - -// if(nvl(value).length()>0) { -// value = Utils.replaceInString(value, ",", "|"); -// value = value.indexOf("('")!=-1? value.substring(2, value.length()-2):value; -// value = Utils.replaceInString(value, "'|'", ","); -// } -// return value; - - } else - return (String) get(key); - } - else - return ""; - } // getParamValue - - public String getParamDisplayValue(String key) { - String value = getParamValue(key); - if (isParameterMultiValue(key)) - value = "(" + Utils.replaceInString(value, "|", ",") + ")"; - return value; - } // getParamValue - - public String getParamBaseSQL(String key) { - return (String) multiValueBaseSQL.get(key); - } // getParamBaseSQL - - /** ************************************************************************************************* */ - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - private boolean isNull(String a) { - if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) - return true; - else - return false; - } - - private void clearValues() { - FormField ff = null; - String defaultValue = ""; - String defaultSQL = ""; - String defaultQuery = ""; - DataSet dsDefault = null; - if (rff!= null) { - for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - for(rff.resetNext(); rff.hasNext(); ) { - ff = rff.getNext(); - if(ff.getFieldName().equals(key)) { - // Add default Value - defaultValue = ff.getDefaultValue(); - defaultSQL = ff.getFieldDefaultSQL(); - if(nvl(defaultValue).length()>0) { - put(key,ff.getDefaultValue()); - } else if(nvl(defaultSQL).length() > 0) { - //defaultSQL = Utils.replaceInString(defaultSQL, "[LOGGED_USERID]", userId); - if(!(isParameterMultiValue(key) || isParameterTextAreaValue(key))) { - defaultQuery = "SELECT id, name FROM (SELECT rownum r, id, name FROM (" + defaultSQL - + ") x " - + ") xx "; - try { - dsDefault = ConnectionUtils.getDataSet(defaultQuery, ff.getDbInfo()); - if(dsDefault!=null && dsDefault.getRowCount()>0) { - for (int i = 0; i < dsDefault.getRowCount(); i++) { - put(key, dsDefault.getString(i, 0)); - } - } - } catch (RaptorException ex) {} - } else put(key, ""); - - } else put(key,""); - break; - } - } - } - } - -/* for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - put(key,""); - } -*/ - } - - - public void printValues() { - for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - String value = (String) get(key); - System.out.println("ReportParamValues " + key + " "+ value); - } - } - - private String getDateAsString (String keyword) { - String sql = ""; - if (keyword.equals("[PROCESSING_DATE]")) { - //sql = "select to_char(trunc(sysdate,'dd'), 'mm/dd/yyyy') as dateStr from dual"; - sql = "select to_char(trunc(sysdate,'dd'), 'mm/dd/yyyy') as dateStr" + Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[PROCESSING_NEXT_DATE]")) { - //sql = "select to_char(trunc(sysdate+1,'dd'), 'mm/dd/yyyy') as dateStr from dual"; - sql = "select to_char(trunc(sysdate+1,'dd'), 'mm/dd/yyyy') as dateStr" + Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[PROCESSING_DAY_BEFORE_DATE]")) { - //sql = "select to_char(trunc(sysdate-1,'dd'), 'mm/dd/yyyy') as dateStr from dual"; - sql = "select to_char(trunc(sysdate-1,'dd'), 'mm/dd/yyyy') as dateStr"+ Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[PROCESSING_MONTH_START_DATE]")) { - //sql = "select to_char(trunc(sysdate,'MM'), 'mm/dd/yyyy') as dateStr from dual"; - sql = "select to_char(trunc(sysdate,'MM'), 'mm/dd/yyyy') as dateStr"+ Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[PROCESSING_MONTH_END_DATE]")) { - //sql = "select to_char(last_day(sysdate), 'mm/dd/yyyy') as dateStr from dual"; - sql = "select to_char(last_day(sysdate), 'mm/dd/yyyy') as dateStr" + Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[CURRENT_HOUR]")) { - //sql = "select to_char(trunc(sysdate,'HH24'),'mm/dd/yyyy HH24') as dateStr from dual"; - sql = "select to_char(trunc(sysdate,'HH24'),'mm/dd/yyyy HH24') as dateStr"+ Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[PREVIOUS_HOUR]")) { - //sql = "select to_char(trunc(sysdate-1/24, 'HH24'),'mm/dd/yyyy HH24') as dateStr from dual"; - sql = "select to_char(trunc(sysdate-1/24, 'HH24'),'mm/dd/yyyy HH24') as dateStr" + Globals.getGenerateSqlVisualDual(); - } else if (keyword.equals("[NEXT_HOUR]")) { - //sql = "select to_char(trunc(sysdate+1/24, 'HH24'),'mm/dd/yyyy HH24') as dateStr from dual"; - sql = "select to_char(trunc(sysdate+1/24, 'HH24'),'mm/dd/yyyy HH24') as dateStr" + Globals.getGenerateSqlVisualDual(); - } - DataSet ds = null; - - try { - if(sql.length()>0) { - ds = DbUtils.executeQuery(sql); - return ds.getString(0,0); - } - else - return ""; - } catch (RaptorException ex) { - ex.printStackTrace(); - //throw ex; - } - return ""; - } -} // ReportParamValues - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java deleted file mode 100644 index b1c54fa3..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java +++ /dev/null @@ -1,419 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class ReportParamValuesForPDFExcel extends Hashtable { - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportParamValuesForPDFExcel.class); - - private Hashtable paramIsMultiValue = null; - private Hashtable paramIsTextAreaValue = null; - private ReportFormFields rff = null; - - private Hashtable multiValueBaseSQL = null; - - public ReportParamValuesForPDFExcel() { - super(); - paramIsMultiValue = new Hashtable(); - paramIsTextAreaValue = new Hashtable(); - multiValueBaseSQL = new Hashtable(); - } // ReportParamValues - - public ReportParamValuesForPDFExcel(ReportFormFields rff, String reportDefType) { - this(); - this.rff = rff; - for (Iterator iter = rff.iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - - put(ff.getFieldName(), nvl(ff.getDefaultValue())); - - boolean isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); - boolean isTextAreaValue = ff.getFieldType().equals(FormField.FFT_TEXTAREA) && reportDefType - .equals(AppConstants.RD_SQL_BASED); - paramIsMultiValue.put(ff.getFieldName(), new Boolean(isMultiValue)); - paramIsTextAreaValue.put(ff.getFieldName(), new Boolean(isTextAreaValue)); - if (isMultiValue && ff.getBaseSQL() != null) - multiValueBaseSQL.put(ff.getFieldName(), ff.getBaseSQL()); - } // for - } // ReportParamValues - - /* - * public ReportParamValues(ReportFormFields rff, HttpServletRequest - * request) { this(rff); - * - * setParamValues(request); } // ReportParamValues - */ - public boolean isParameterMultiValue(String fieldName) { - Boolean b = (Boolean) paramIsMultiValue.get(fieldName); - return (b != null) ? b.booleanValue() : false; - } // isParameterMultiValue - - public boolean isParameterTextAreaValue(String fieldName) { - Boolean b = (Boolean) paramIsTextAreaValue.get(fieldName); - return (b != null) ? b.booleanValue() : false; - } // isParameterMultiValue - - public boolean setParamValues(HttpServletRequest request, boolean refresh) { - //debugLogger.debug("ReportParamValues for PDF Excel setParamValues called " + refresh); - long currentTime = System.currentTimeMillis(); - boolean paramUpdated = false; - if(refresh) clearValues(); - String name = null; - String value = null; - String value1 = ""; - String sql = ""; - FormField ff = null; - String dbInfo = null; - ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); - if(rr!=null && rr.getReportType().equals(AppConstants.RT_DASHBOARD)) { - rr = (ReportRuntime) request.getSession().getAttribute("FirstDashReport"); - if(rr!=null) - rff = rr.getReportFormFields(); - } else if (rr == null) { - rr = (ReportRuntime) request.getSession().getAttribute("FirstDashReport"); - if(rr!=null) - rff = rr.getReportFormFields(); - } else { - rff = rr.getReportFormFields(); - } - - if(rr!=null) { - dbInfo = rr.getDBInfo(); - if (Utils.isNull(dbInfo)) { - dbInfo = (String) request.getSession().getAttribute("remoteDB"); - } - if(!Utils.isNull(dbInfo)){ - for (Iterator iter = rff.iterator(); iter.hasNext();) { - name=""; //just added - ff = (FormField) iter.next(); - //debugLogger.debug("ff.getFieldName " + ff.getFieldName() + " " + ff.getFieldDisplayName() + " " + ff.getFieldType()+ " " +ff.getBaseSQLForPDFExcel()+ " "+ rr.getParamValue(ff.getFieldName())); - if(!ff.getFieldType().equals(FormField.FFT_BLANK)) { - sql = ff.getBaseSQLForPDFExcel(); - if(sql!=null && sql.trim().length()>0) - sql = Utils.replaceInString(sql, "[LOGGED_USERID]", AppUtils.getUserID(request)); - if(ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) || ff.getFieldType().equals(FormField.FFT_TEXT_W_POPUP) || ff.getFieldType().equals(FormField.FFT_HIDDEN)) { - for (Enumeration enum1 = rr.getParamKeys(); enum1.hasMoreElements();) { - name = (String) enum1.nextElement(); - value = rr.getParamValue(name); - value = getParamValueForSQL(name, value); - if(name.startsWith("ff")) { - for (Iterator iter1 = rff.iterator(); iter1.hasNext();) { - FormField ff1 = (FormField) iter1.next(); - - if(sql!=null && sql.trim().length()>0){ - if(name.equals(ff.getFieldName())){ - sql = Utils.replaceInString(sql, "[VALUE]", value); - } - if(name.equals(ff1.getFieldName())){ - sql = Utils.replaceInString(sql, "["+ff1.getFieldDisplayName()+"]", value); - - } else continue; - } - } - } - } - } else if (ff.getFieldType().equals(ff.FFT_LIST_MULTI)||ff.getFieldType().equals(ff.FFT_CHECK_BOX)) { - for (Enumeration enum1 = rr.getParamKeys(); enum1.hasMoreElements();) { - name = (String) enum1.nextElement(); - value = rr.getParamValue(name); - value = getParamValueForSQL(name, value); - if(name.startsWith("ff")) { - for (Iterator iter1 = rff.iterator(); iter1.hasNext();) { - FormField ff1 = (FormField) iter1.next(); - - if(sql!=null && sql.trim().length()>0){ - if(name.equals(ff.getFieldName())){ - sql = Utils.replaceInString(sql, "[VALUE]", value); - } - if(name.equals(ff1.getFieldName())){ - sql = Utils.replaceInString(sql, "["+ff1.getFieldDisplayName()+"]", value); - - } else continue; - } - } - } - } - } else { - if(nvl(ff.getFieldDefaultSQL()).length()<=0) - sql = ""; - } - if(sql!=null && sql.trim().length()>0){ - name = ""; - if(name.length()<=0) name = ff.getFieldName(); - value = rr.getParamValue(name); - //debugLogger.debug("Name "+ name+ " value:" + value); - String paramValue = getParamValueForSQL(name, value); - //debugLogger.debug("PDFEXCEL " + name+ " " + ff.getFieldName()+ " " + value + " " + sql +" "+ paramValue); - if(name!=null && name.equals(ff.getFieldName())) - sql = Utils.replaceInString(sql, "[VALUE]", paramValue); - if(paramValue == null) { - if(sql.lastIndexOf("where id = ''")>0) - sql = sql.substring(0, sql.lastIndexOf("where id = ''")); - } - //debugLogger.debug("SQL Modified " + sql); - FormField ff2 = null; - for (Iterator iter1 = rff.iterator(); iter1.hasNext();) { - ff2 = (FormField)iter1.next(); - sql = Utils.replaceInString(sql, "[" + ff2.getFieldDisplayName() +"]", getParamValue(ff2.getFieldName())); - } - //debugLogger.debug("SQL Modified after replacing formfield" + sql); - try { - String[] reqParameters = Globals.getRequestParams().split(","); - String[] sessionParameters = Globals.getSessionParams().split(","); - String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(","); - javax.servlet.http.HttpSession session = request.getSession(); - //debugLogger.debug("B4 Session " + sql); - if(session != null ) { - for (int i = 0; i < sessionParameters.length; i++) { - sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - } - //debugLogger.debug("B4 request " + sql); - if(request != null ) { - for (int i = 0; i < scheduleSessionParameters.length; i++) { - sql = Utils.replaceInString(sql, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); - } - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff")) { - if (request.getParameter(reqParameters[i])!=null) { - sql = Utils.replaceInString(sql, "[" + reqParameters[i]+"]", request.getParameter(reqParameters[i]) ); - sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - else { - sql = Utils.replaceInString(sql, "[" + reqParameters[i]+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - } - } - else - sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - } - //debugLogger.debug("After request " + sql); - DataSet ds = null; - try { - ds = ConnectionUtils.getDataSet(sql, dbInfo); - } catch (ReportSQLException ex) { - logger.debug(EELFLoggerDelegate.debugLogger, ("sql not complete" + sql)); - } - if(ff.getFieldType().equals(FormField.FFT_LIST_MULTI) || ff.getFieldType().equals(FormField.FFT_CHECK_BOX)) { - StringBuffer multiValue = new StringBuffer(""); - if(ds!=null) { - for(int i = 0; i < ds.getRowCount(); i++) { - //if(i==0) multiValue.append("("); - multiValue.append(ds.getString(i,1)); - if(i 0 ? ":" + addZero(Utils.oracleSafe(nvl(rr - .getParamValue(ff.getFieldName()+"_Min")))) : ""); - } - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ) { - value1 = value1 + (nvl(rr - .getParamValue(ff.getFieldName()+"_Sec")).length() > 0 ? ":"+ addZero(Utils.oracleSafe(nvl(rr - .getParamValue(ff.getFieldName()+"_Sec")))) : ""); - } - //debugLogger.debug("77777777777777 " + value1); - put(ff.getFieldName(), nvl(value1)); - } else { - - if(ds!=null && ds.getRowCount()>0) put(ff.getFieldName(), nvl(ds.getString(0,1))); - else put(ff.getFieldName(), nvl(value)); - } - } - - paramUpdated = true; - } catch (ReportSQLException ex) { - logger.debug(EELFLoggerDelegate.debugLogger, ("sql not complete" + sql)); - } - catch (Exception ex) {} - - //debugLogger.debug("66666666666666666 " + ff.getValidationType()); - - //Added for TimeStamp validation - - } else { - if(!ff.getFieldType().equals(FormField.FFT_BLANK)) { - //Added for TimeStamp validation - //debugLogger.debug("666666666666 " + ff.getValidationType()); - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ) { - value1 = nvl(rr.getParamValue(ff.getFieldName())) + " "+addZero(Utils.oracleSafe(nvl(rr - .getParamValue(ff.getFieldName()+"_Hr")))); - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ) { - value1 = value1 + (nvl(rr - .getParamValue(ff.getFieldName()+"_Min")).length() > 0 ? ":" + addZero(Utils.oracleSafe(nvl(rr - .getParamValue(ff.getFieldName()+"_Min")))) : ""); - } - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC) ) { - value1 = value1 + (nvl(rr - .getParamValue(ff.getFieldName()+"_Sec")).length() > 0 ? ":"+ addZero(Utils.oracleSafe(nvl(rr - .getParamValue(ff.getFieldName()+"_Sec")))) : ""); - } - //debugLogger.debug("77777777777777 " + value1); - } else - value1 = nvl(rr.getParamValue(ff.getFieldName())); - if(value1.length()<=0) value1 = nvl(ff.getDefaultValue()); - put(ff.getFieldName(), nvl(value1)); - - } - paramUpdated = true; - } - - } // BLANK - } // for - } // dbInfo - } // !=null - - //printValues(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] ------->Time Taken for Adding/Clearing Param Values for FormField Info Bar " + (System.currentTimeMillis() - currentTime))); - return paramUpdated; - } // setParamValues - - public String getParamValue(String key) { - if (key!=null) - return (String) get(key); - else - return "NULL"; - } // getParamValue - - public String getParamValueForSQL(String key, String value) { - value = Utils.oracleSafe(value); - if (isParameterMultiValue(key)) - value = "('" + Utils.replaceInString(value, "|", "','") + "')"; - return value; - } // getParamValue - - public String getParamDisplayValue(String key) { - //debugLogger.debug("Key is " + key +" Value is " + getParamValue(key)); - String value = getParamValue(key); - if (isParameterMultiValue(key)) - value = "(" + Utils.replaceInString(value, "|", ",") + ")"; - return value; - } // getParamValue - - public String getParamBaseSQL(String key) { - return (String) multiValueBaseSQL.get(key); - } // getParamBaseSQL - - /** ************************************************************************************************* */ - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - private boolean isNull(String a) { - if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) - return true; - else - return false; - } - - private void clearValues() { - FormField ff = null; - String defaultValue = ""; - String defaultSQL = ""; - String defaultQuery = ""; - DataSet dsDefault = null; - if (rff!= null) { - for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - for(rff.resetNext(); rff.hasNext(); ) { - ff = rff.getNext(); - if(ff.getFieldName().equals(key)) { - // Add default Value - defaultValue = ff.getDefaultValue(); - defaultSQL = ff.getFieldDefaultSQL(); - if(nvl(defaultValue).length()>0) { - put(key,ff.getDefaultValue()); - } else if(nvl(defaultSQL).length() > 0) { - //defaultSQL = Utils.replaceInString(defaultSQL, "[LOGGED_USERID]", userId); - if(!(isParameterMultiValue(key) || isParameterTextAreaValue(key))) { - defaultQuery = "SELECT id, name FROM (SELECT rownum r, id, name FROM (" + defaultSQL - + ") x " - + ") xx "; - try { - dsDefault = ConnectionUtils.getDataSet(defaultQuery, ff.getDbInfo()); - if(dsDefault!=null && dsDefault.getRowCount()>0) { - for (int i = 0; i < dsDefault.getRowCount(); i++) { - put(key, dsDefault.getString(i, 1)); - } - } - } catch (RaptorException ex) {} - } else put(key, ""); - - } else put(key,""); - break; - } - } - } - } - - } - - public void printValues() { - for (Enumeration enKeys = keys(); enKeys.hasMoreElements();) { - String key = (String) enKeys.nextElement(); - String value = (String) get(key); - logger.debug(EELFLoggerDelegate.debugLogger, ("ReportParamValuesForPDFEXCEL " + key + " "+ value)); - } - } - public String addZero(String num) { - int numInt = 0; - try { - numInt = Integer.parseInt(num); - }catch(NumberFormatException ex){ - numInt = 0; - } - if(numInt < 10) return "0"+numInt; - else return ""+numInt; - } - -} // ReportParamValues - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java deleted file mode 100644 index bd780859..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java +++ /dev/null @@ -1,3401 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.io.Serializable; -import java.sql.Connection; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; -import java.util.Vector; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.DataCache; -import org.openecomp.portalsdk.analytics.model.ReportHandler; -import org.openecomp.portalsdk.analytics.model.ReportLoader; -import org.openecomp.portalsdk.analytics.model.base.IdNameList; -import org.openecomp.portalsdk.analytics.model.base.IdNameSql; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.base.ReportWrapper; -import org.openecomp.portalsdk.analytics.model.definition.Marker; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -import org.openecomp.portalsdk.analytics.system.DbUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.analytics.view.ColumnHeader; -import org.openecomp.portalsdk.analytics.view.ColumnHeaderRow; -import org.openecomp.portalsdk.analytics.view.CrossTabOrderManager; -import org.openecomp.portalsdk.analytics.view.CrossTabTotalValue; -import org.openecomp.portalsdk.analytics.view.DataRow; -import org.openecomp.portalsdk.analytics.view.DataValue; -import org.openecomp.portalsdk.analytics.view.ReportData; -import org.openecomp.portalsdk.analytics.view.RowHeaderCol; -import org.openecomp.portalsdk.analytics.xmlobj.CustomReportType; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; -import org.openecomp.portalsdk.analytics.xmlobj.ObjectFactory; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -import com.fasterxml.jackson.databind.ObjectMapper; - - -/**
- * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting)
- *
- * - * --------------------------------------------------------------------------------------------------
- * ReportRuntime.java - This class involves in running, downloading RAPTOR reports. - * --------------------------------------------------------------------------------------------------
- * - * - * Change Log

- * - * 27-Aug-2009 : Version 8.5 (Sundar);
  • Order by logic is restored for DAYTONA.
- * 13-Aug-2009 : Version 8.5 (Sundar);
  • Removing order by logic is rollbacked.
- * 22-Jun-2009 : Version 8.4 (Sundar);
  • Bug while parsing SQL for text download is fixed.
- * - */ - -public class ReportRuntime extends ReportWrapper implements Cloneable, Serializable { - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportRuntime.class); - - - //TODO DELETE IF PARSE SQL is not working - private int curSQLParsePos = 0; - - private String xmlFileURL = null; - - private String xmlFileName = null; - - private String flatFileName = null; - - private String excelPageFileName = null; - - private int reportDataSize = -1; - - private boolean displayChart = true; - - private boolean displayForm = true; - - private boolean displayContent = true; - - private boolean reportRunLogged = false; // Used to avoid multiple - // entries in the report log - // when executing with different - // params or going to next page - - private DataSet chartDataCache = null; - - private ReportData pageDataCache = null; - - private int cachedPageNo = -1; - - private String cachedSQL = null; // For display purposes only - - private String wholeSQL = null; // For display purposes only - - private String totalSql = null; // For display purposes only - - private ReportParamValues reportParamValues = null; - - private ReportParamValuesForPDFExcel reportParamValuesFPE = null; - - private ReportFormFields reportFormFields = null; - - private VisualManager visualManager = null; - - private CrossTabOrderManager crossTabOrderManager = null; - - private boolean displayColTotals = false; - - private boolean displayRowTotals = false; - - private DataRow colDataTotalsLinear = null; - - private Vector colDataTotalsCrosstab = null; - - private Vector rowDataTotalsCrosstab = null; - - private String grandTotalCrosstab = null; - - public static int DISPLAY_DATA_ONLY = 1; - public static int DISPLAY_CHART_ONLY = 2; - public static int DISPLAY_CHART_AND_DATA = 3; - - public static final int DATE_OPTION_MONTHLY = 1; - public static final int DATE_OPTION_YEARLY = 2; - public static final int DATE_OPTION_DAILY = 3; - - - private int DISPLAY_MODE = 0; - - private int DATE_OPTION = -1; - - /* - * private ReportRuntime(CustomReport cr, String reportID, - * HttpServletRequest request) { super(cr, reportID); - * - * reportParamValues = new ReportParamValues(this); reportFormFields = new - * ReportFormFields(this); - * - * if(request!=null) setParamValues(request); } // ReportRuntime - */ - private ReportRuntime(CustomReportType crType, String reportID, HttpServletRequest request, - String ownerID, String createID, String createDate, String updateID, - String updateDate, String menuID, boolean menuApproved) throws RaptorException { - super(crType, reportID, ownerID, createID, createDate, updateID, updateDate, menuID, - menuApproved); - initializeReportRuntime(request); - } // ReportRuntime - - public ReportRuntime(ReportWrapper rw) throws RaptorException { - this(rw, null); - } // ReportRuntime - - public ReportRuntime(ReportWrapper rw, HttpServletRequest request)throws RaptorException { - super(rw); - initializeReportRuntime(request); - } // ReportRuntime - - private void initializeReportRuntime(HttpServletRequest request) throws RaptorException { - reportFormFields = new ReportFormFields(this, request); - setParamValues(request, true, true); - - visualManager = new VisualManager(); - } // initializeReportRuntime - -// public void setReportFormFields(HttpServletRequest request) { -// reportFormFields = new ReportFormFields(this, request); -// setParamValues(request, true, true); -// } - - public static ReportRuntime unmarshal(String reportXML, String reportID) - throws RaptorException { - return unmarshal(reportXML, reportID, null); - } // unmarshal - - public static ReportRuntime unmarshal(String reportXML, String reportID, - HttpServletRequest request) throws RaptorException { - CustomReportType crType = ReportWrapper.unmarshalCR(reportXML); - ObjectFactory objFactory = new ObjectFactory(); - - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report [" + reportID + "]: XML unmarshalled")); - - return new ReportRuntime(crType, reportID, request, null, null, null, null, null, null, - false); - - } // unmarshal - - public String getXmlFileURL() { - return xmlFileURL; - } - - public String getXmlFileName() { - return xmlFileName; - } - - public String getFlatFileName() { - return flatFileName; - } - - public String getExcelPageFileName() { - return excelPageFileName; - } - - public int getReportDataSize() { - return reportDataSize; - } - - public boolean getDisplayChart() { - return displayChart; - } - - public boolean getDisplayForm() { - return displayForm; - } - - public boolean getDisplayContent() { - return displayContent; - } - - public int getCachedPageNo() { - return cachedPageNo; - } - - public String getCachedSQL() { - return cachedSQL; - } - - public boolean isDashboardType() throws RaptorException { - return ReportLoader.isDashboardType(getReportID()); - } - - - public void setXmlFileURL(String xmlFileURL) { - this.xmlFileURL = xmlFileURL; - } - - public void setXmlFileName(String xmlFileName) { - this.xmlFileName = xmlFileName; - } - - public void setFlatFileName(String flatFileName) { - this.flatFileName = flatFileName; - } - - public void setExcelPageFileName(String excelPageFileName) { - this.excelPageFileName = excelPageFileName; - } - - /*private*/ public void setReportDataSize(int reportDataSize) { - this.reportDataSize = reportDataSize; - } - - private void setDisplayForm(boolean displayForm) { - this.displayForm = displayForm; - } - - private void setDisplayContent(boolean displayContent) { - this.displayContent = displayContent; - } - - public void setDisplayFlags(boolean isFirstAccess, boolean forceDisplayContent) { - if (isFirstAccess) { - setDisplayForm(true); - - if (forceDisplayContent) - setDisplayContent(true); - else if (Globals.getDisplayFormBeforeRun()) - if (needFormInput()) - setDisplayContent(false); - else - setDisplayContent(true); - else - setDisplayContent(true); - } else { - setDisplayContent(true); - - if (Globals.getIncludeFormWithData()) - setDisplayForm(true); - else if (Globals.getDisplayFormBeforeRun()) - setDisplayForm(false); - else - setDisplayForm(true); - } // else - } // setDisplayFlags - - public void logReportRun(String userID, String executionTime, String formFields) throws RaptorException { - if (reportRunLogged) - return; - - ReportLoader.createReportLogEntry(null, reportID, userID, AppConstants.RLA_RUN,executionTime,formFields ); - reportRunLogged = true; - } // logReportRun - - public void logReportExecutionTime(String userId, String executionTime, String action, String formFields) throws RaptorException { - ReportLoader.createReportLogEntryForExecutionTime(null, reportID, userId,executionTime , action, formFields); - } - - public void logReportExecutionTimeFromLogList (String userId, String executionTime, String formFields) throws RaptorException { - ReportLoader.createReportLogEntryForExecutionTime(null, reportID, userId,executionTime , AppConstants.RLA_FROM_LOG, formFields); - } - - public void resetVisualSettings() { - boolean haveToResetCachedData = (visualManager.getSortByColId().length() > 0); - visualManager = new VisualManager(); - - if (haveToResetCachedData) - pageDataCache = null; - - if (pageDataCache != null) - pageDataCache.resetVisualSettings(); - } // resetVisualSettings - - /** ************** ReportParamValues processing *************** */ - - public boolean setParamValues(HttpServletRequest request, boolean resetParams, boolean refresh) throws RaptorException { - boolean paramsUpdated = false; - if (resetParams) { - reportFormFields = new ReportFormFields(this, request); - reportParamValues = new ReportParamValues(reportFormFields, getReportDefType()); - // This is called even in the wizard page. Hence this condition. - if((ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null) - reportParamValuesFPE = new ReportParamValuesForPDFExcel(reportFormFields, getReportDefType()); - paramsUpdated = true; - - reportRunLogged = false; - } else if (request != null) { - paramsUpdated = reportParamValues.setParamValues(request,refresh); - } - // This is called even in the wizard page. Hence this condition. - if((ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)!=null) { - if(reportParamValuesFPE!=null) reportParamValuesFPE.setParamValues(request,refresh); - else { - reportParamValuesFPE = new ReportParamValuesForPDFExcel(reportFormFields, getReportDefType()); - reportParamValuesFPE.setParamValues(request,refresh); - } - } else { - reportFormFields = new ReportFormFields(this, request); - //added below two lines for dashboard default value - reportParamValues = new ReportParamValues(reportFormFields, getReportDefType()); - reportParamValues.setParamValues(request,refresh); - //End - reportParamValuesFPE = new ReportParamValuesForPDFExcel(reportFormFields, getReportDefType()); - reportParamValuesFPE.setParamValues(request,refresh); - - } -// } - if (paramsUpdated) { - setReportDataSize(-1); - chartDataCache = null; - pageDataCache = null; - cachedPageNo = -1; - - crossTabOrderManager = null; - - colDataTotalsLinear = null; - colDataTotalsCrosstab = null; - rowDataTotalsCrosstab = null; - grandTotalCrosstab = null; - if(!refresh) - resetVisualSettings(); - } // if - - displayChart = (request.getParameter(AppConstants.RI_DISPLAY_CHART) == null) ? !isDisplayOptionHideChart() : request.getParameter("display_chart") - .equals("Y"); - - return paramsUpdated; - } // setParamValues - - public String getParamValue(String key) { - //reportParamValues.printValues(); - return reportParamValues.getParamValue(key); - } // getParamValue - - public String getParamDisplayValue(String key) { - //reportParamValues.printValues(); - return reportParamValues.getParamDisplayValue(key); - } // getParamValue - - public Enumeration getParamKeys() { - return reportParamValues.keys(); - } // getParamKeys - - public Enumeration getParamKeysForPDFExcel() { - return reportParamValuesFPE.keys(); - } // getParamKeys - - public String getParamValueForPDFExcel(String key) { - return reportParamValuesFPE.getParamValue(key); - } // getParamValue - - public ArrayList getParamNameValuePairs() { - ArrayList paramList = new ArrayList(getReportFormFields().size()); - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - paramList.add(new IdNameValue(ff.getFieldDisplayName(), reportParamValues - .getParamDisplayValue(ff.getFieldName()))); - } // for - return paramList; - } // getParamNameValuePairs - - public ArrayList getParamNameValuePairsforPDFExcel(HttpServletRequest request, int type /*excel =1; pdf=2*/) { - javax.servlet.http.HttpSession session = request.getSession(); - ArrayList paramList = new ArrayList(getReportFormFields().size()); - if(session.getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO)!=null) { - paramList = (ArrayList) session.getAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO); - if(paramList!=null && paramList.size()>0) - return paramList; - } - //System.out.println(" getParamNamePairs type " + type + " " + Globals.customizeFormFieldInfo()); - if ( reportParamValuesFPE == null) { - reportParamValuesFPE = new ReportParamValuesForPDFExcel(reportFormFields, getReportDefType()); - reportParamValuesFPE.setParamValues(request,true); - } - - String valueString = ""; - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - if(ff.isVisible() && /*!ff.getFieldType().equals(FormField.FFT_HIDDEN) &&*/ type == 1){ - valueString = reportParamValuesFPE.getParamDisplayValue(ff.getFieldName()); - } else if(ff.isVisible() && type != 1) { - valueString = reportParamValuesFPE.getParamDisplayValue(ff.getFieldName()); - } - if(valueString.equalsIgnoreCase("NULL")) - valueString=""; - paramList.add(new IdNameValue(ff.getFieldDisplayName(), valueString)); -// } - } // for - - String pdfAttachmentKey = AppUtils.getRequestValue(request, "pdfAttachmentKey"); - boolean isSchedule = false; - if(pdfAttachmentKey != null) - isSchedule = true; - if(Globals.customizeFormFieldInfo() && type == 2) { - String[] sessionParameters = Globals.getSessionParams().split(","); - - if(session != null && !isSchedule ) { - session.setAttribute("login_id", AppUtils.getUserBackdoorLoginId(request)); - for (int i = 0; i < sessionParameters.length; i++) { - if(session.getAttribute(sessionParameters[i])!=null) - paramList.add(new IdNameValue(sessionParameters[i].toUpperCase(), (String)session.getAttribute(sessionParameters[i]))); - } - } - - if(isSchedule) { - //debugLogger.debug("Globals " + Globals.getSessionParamsForScheduling()); - String[] scheduleSessionParam = Globals.getSessionParamsForScheduling().split(","); - for (int i = 0; i < scheduleSessionParam.length; i++) { - //debugLogger.debug(" scheduleSessionParam[i] " + scheduleSessionParam[i] + " " + request.getParameter(scheduleSessionParam[i]) ); - if(request.getParameter(scheduleSessionParam[i])!=null) - paramList.add(new IdNameValue(scheduleSessionParam[i].toUpperCase(), request.getParameter(scheduleSessionParam[i]))); - } - } - - try { - SimpleDateFormat oracleDateFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss"); - Date sysdate = oracleDateFormat.parse(ReportLoader.getSystemDateTime()); - SimpleDateFormat dtimestamp = new SimpleDateFormat(Globals.getScheduleDatePattern()); - paramList.add(new IdNameValue("DATE", dtimestamp.format(sysdate)+" "+Globals.getTimeZone())); - } catch(Exception ex) {} - - } else { - //System.out.println(" In Else getParamNamePairs type " + type); - String[] sessionDisplayParameters = Globals.getDisplaySessionParamInPDFEXCEL().split(","); - if(session != null && !isSchedule ) { - session.setAttribute("login_id", AppUtils.getUserBackdoorLoginId(request)); - for (int i = 0; i < sessionDisplayParameters.length; i++) { - String sessionDispParam = sessionDisplayParameters[i]; - if(nvl(sessionDispParam).length()>0) { - String sessionDispParamArr[] = sessionDispParam.split(";"); - //System.out.println("Session " + sessionDispParamArr[1] + " " + (String)session.getAttribute(sessionDispParamArr[0])); - paramList.add(new IdNameValue(sessionDispParamArr[1], nvl((String)session.getAttribute(sessionDispParamArr[0]),""))); - } - } - } - if(isSchedule) { - String[] scheduleSessionParam = Globals.getDisplayScheduleSessionParamInPDFEXCEL().split(","); - for (int i = 0; i < scheduleSessionParam.length; i++) { - String scheduleSessionDispParam = scheduleSessionParam[i]; - if(nvl(scheduleSessionDispParam).length()>0) { - String scheduleSessionDispParamArr[] = scheduleSessionDispParam.split(";"); - paramList.add(new IdNameValue(scheduleSessionDispParamArr[1], nvl(request.getParameter(scheduleSessionDispParamArr[0]),""))); - } - } - } - try { - SimpleDateFormat oracleDateFormat = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss"); - Date sysdate = oracleDateFormat.parse(ReportLoader.getSystemDateTime()); - SimpleDateFormat dtimestamp = new SimpleDateFormat(Globals.getScheduleDatePattern()); - paramList.add(new IdNameValue("Report Date/Time", dtimestamp.format(sysdate)+" "+Globals.getTimeZone())); - } catch(Exception ex) {} - - } - - for (int i = 0; i < paramList.size(); i++) { - IdNameValue value = (IdNameValue) paramList.get(i); - String name = value.getName().replaceAll(",","~"); - value.setName(name); - } - //request.getSession().setAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO, paramList); - return paramList; - } // getParamNameValuePairs - - /** ************** ReportFormFields processing *************** */ - - public String getFormFieldComments(HttpServletRequest request) { - String comment = ""; - StringBuffer st = new StringBuffer(""); - if(getFormFieldList()!=null){ - comment = nvl(getFormFieldList().getComment()); - ArrayList al = null; - if(comment.length()>0) { - al = getParamNameValuePairsforPDFExcel(request, 2); - if(al!=null) { - //st = new StringBuffer(comment); - for (int i=0; i < al.size(); i++) { - IdNameValue idNameValue = (IdNameValue)al.get(i); - if(nvl(idNameValue.getId()).equals("DATE")) - st.append("Date/Time Report Run:"+ idNameValue.getName() +"

"); - } - - for (int i=0; i < al.size(); i++) { - IdNameValue idNameValue = (IdNameValue)al.get(i); - comment = Utils.replaceInString(comment, "["+ idNameValue.getId()+"]", idNameValue.getName()); - } - st.append(comment); - - } - } - } - return st.toString(); - } - - public boolean needFormInput() { - return reportFormFields.getFieldCount() > 0; - } // needFormInput - - public FormField getFormField(String fieldName) { - return reportFormFields.getFormField(fieldName); - } // getFormField - - public ReportFormFields getReportFormFields() { - return reportFormFields; - } // getReportFormFields - - /** ************** Report Data processing *************** */ - public DataSet loadChartData(String userId, HttpServletRequest request) throws RaptorException { - if (nvl(getChartType()).length() == 0) - return null; - if (!getDisplayChart()) - return null; - - DataSet ds = chartDataCache; - String sql = null; - if (ds == null) { - sql = generateChartSQL(reportParamValues, userId, request); - String dbInfo = getDBInfo(); - ds = ConnectionUtils.getDataSet(sql, dbInfo); - if (Globals.getCacheChartData()) - chartDataCache = ds; - } // if - - return ds; - } // loadChartData - - public String getReportDataSQL(String userId, int downloadLimit, HttpServletRequest request) throws RaptorException { - String reportSQL = ""; - if(doesReportContainsGroupFormField()) { - reportSQL = generateSubsetSQL(0, downloadLimit,userId, request, true, reportParamValues); - } else - reportSQL = generateSubsetSQL(0, downloadLimit,userId, request, false, reportParamValues); - return reportSQL; - } - - public ReportData loadReportData(int pageNo, String userId, int downloadLimit, HttpServletRequest request, boolean download) throws RaptorException { - ReportData rd = null; - boolean isGoBackAction = AppUtils.getRequestFlag(request, AppConstants.RI_GO_BACK); - if (pageNo >= 0) - if (pageNo == cachedPageNo && pageDataCache != null) - rd = pageDataCache; - - if(isGoBackAction && rd!=null) return rd; - if (rd == null) { // Commented So that Data is refreshed from DB again - if (getReportDataSize() < 0) - if (getReportType().equals(AppConstants.RT_CROSSTAB)) - rd = loadCrossTabReportData(pageNo, userId, downloadLimit, request, download); - else if (getReportType().equals(AppConstants.RT_LINEAR)) - rd = loadLinearReportData(pageNo, userId, downloadLimit, request, download); - else - throw new RuntimeException( - "[ReportRuntime.loadReportData] Invalid report type"); - - if (pageNo >= 0) - if (Globals.getCacheCurPageData()) { - pageDataCache = rd; - cachedPageNo = pageNo; - } - } // if // Commented So that Data is refreshed from DB again - - return rd; - } // loadReportData - - private ReportData loadCrossTabReportData(int pageNo, String userId, int downloadLimit, HttpServletRequest request, boolean download) throws RaptorException { - String reportSQL = generateSQL(reportParamValues, userId, request); - setWholeSQL(reportSQL); - cachedSQL = reportSQL; - wholeSQL = reportSQL; - List reportCols = getAllColumns(); - // replace the request parameter specified in the drill down - DataColumnType dataColumnRequest = getCrossTabValueColumn(); - reportSQL = parseReportSQLForDrillDownParams(reportSQL, dataColumnRequest, request); - - - DataSet ds = null; - // try { - String dbInfo = getDBInfo(); - StringBuffer colNames = new StringBuffer(); - StringBuffer colExtraIdNames = new StringBuffer(); - StringBuffer colExtraDateNames = new StringBuffer(); - - - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - DataColumnType dc = (DataColumnType) iter.next(); - //TODO: commented if (dc.isVisible()) { - if (colNames.length() > 0) - colNames.append(", "); - colNames.append(dc.getColId()); - //TODO uncomment if it's not working} // if - - // Checking for extra fields necessary for drill-down - if (nvl(dc.getDrillDownURL()).length() > 0) { - System.out.println("Drilldown URL " + dc.getDrillDownURL()); - - } - } // for - - if (reportSQL.toUpperCase().indexOf("GROUP BY ") < 0) - colNames.append(colExtraIdNames.toString()); - colNames.append(colExtraDateNames.toString()); - //reportSQL = " SELECT ROWNUM rnum, " - // + colNames.toString() + " FROM (" + reportSQL + ") "; - - String rSQL = Globals.getLoadCrosstabReportData(); - rSQL = rSQL.replace("[colNames.toString()]", colNames.toString()); - rSQL = rSQL.replace("[reportSQL]", reportSQL); - reportSQL = rSQL; - setWholeSQL(reportSQL); - if (crossTabOrderManager == null) - crossTabOrderManager = new CrossTabOrderManager(this, userId,request); - ds = ConnectionUtils.getDataSet(reportSQL, dbInfo); - - ReportData rd = new ReportData(pageNo, false); - ReportFormFields childReportFormFields = null; - if(doesReportContainsGroupFormField()) { - List reportCols1 = getAllColumns(); - reportCols = new Vector(); - outer: - for (Iterator iter = reportCols1.iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - for (int k=0; k 0) { - childReportFormFields = getChildReportFormFields(request,dct.getDrillDownURL()); - } - - if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) { - RowHeaderCol rhc = new RowHeaderCol(); - rhc.setColumnTitle(dct.getDisplayName()); - // rhc.setColumnWidth("10%"); - //rhc.setColumnWidth(dct.getDisplayWidth() + "%"); - if(nvl(dct.getDisplayWidthInPxls()).length()<=0) { - dct.setDisplayWidthInPxls("100px"); - } - if(dct.getDisplayWidthInPxls().endsWith("px")) - rhc.setColumnWidth(dct.getDisplayWidthInPxls()); - else - rhc.setColumnWidth(dct.getDisplayWidthInPxls()+"px"); - - rhc.setAlignment(dct.getDisplayAlignment()); - rhc.setDisplayHeaderAlignment(dct.getDisplayHeaderAlignment()); - rhc.setNowrap(nvl(dataColumn.getNowrap(),"null").equals("false")?"null":nvl(dataColumn.getNowrap(),"null")); - rd.reportRowHeaderCols.addRowHeaderCol(rhc); - } else if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) { - ColumnHeaderRow chr = new ColumnHeaderRow(); - chr.setAlignment(dct.getDisplayHeaderAlignment()); - chr.setRowHeight("15"); - if(nvl(dct.getDisplayWidthInPxls()).length()<=0) { - dct.setDisplayWidthInPxls("80px"); - } - if(dct.getDisplayWidthInPxls().endsWith("px")) - chr.setDisplayWidth(dct.getDisplayWidthInPxls()); - else - chr.setDisplayWidth(dct.getDisplayWidthInPxls()+"px"); - - rd.reportColumnHeaderRows.addColumnHeaderRow(chr); - } else if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE)) { - columnValue = dct.getColId(); - } else { - if(!dct.getColId().toLowerCase().endsWith("_sort")) { - RowHeaderCol rhc = new RowHeaderCol(); - rhc.setVisible(false); - rd.reportRowHeaderCols.addRowHeaderCol(rhc); - } - } - } // for - - //int dataColumnIdx = getCrossTabValueColumnIndex(); - FormatProcessor formatProcessor = new FormatProcessor(getSemaphoreById(dataColumn - .getSemaphoreId()), - getReportDefType().equals(AppConstants.RD_SQL_BASED) ? AppConstants.CT_NUMBER - : dataColumn.getColType(), dataColumn.getColFormat(), false); - List dataList = new ArrayList(); - /* //fillup all rows based on rowheaders - Vector rowHeaders = crossTabOrderManager.getRowHeaderValues(); - CrossTabColumnValues crossTabRowValues; - int size = 0; - for (int i = 0; i < rowHeaders.size(); i++) { - if((i+1)==rowHeaders.size()) { - crossTabRowValues = (CrossTabColumnValues) rowHeaders.get(i); - size = crossTabRowValues.getValuesCount(); - } - } - - for (int i = 0; i < size; i++) { - dataList.add(new DataRow()); - }*/ - - for (int i = 0; i < ds.getRowCount(); i++) { - Vector rValues = new Vector(); - Vector cValues = new Vector(); - Vector cValuesSort = new Vector(); - - int colIdx = 0; - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - try { - DataColumnType dct = (DataColumnType) iter.next(); - if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_ROW)) - rValues.add(addDataValue(dct, ds.getString(i, dct.getColId()))); - if (nvl(dct.getCrossTabValue()).trim().length()<=0 && !dct.getColId().toLowerCase().endsWith("_sort")) - rValues.add(addDataValue(dct, ds.getString(i, dct.getColId()))); - if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_COLUMN)) { - cValues.add(addDataValue(dct, ds.getString(i, dct.getColId()))); - if(getColumnById(dct.getColId().toLowerCase()+"_sort")!=null) - cValuesSort.add(addDataValue(dct, new Integer(ds.getString(i, dct.getColId()+"_sort")).toString())); - } - if (dct.isVisible()) - colIdx++; - } catch (ArrayIndexOutOfBoundsException ex ) {continue;} - catch (NumberFormatException ex1) { - ex1.printStackTrace(); - continue; - } - } // for - - DataValue dv = new DataValue(); - dv.setDisplayValue(ds.getString(i, columnValue)); - if (nvl(dataColumn.getCrossTabValue()).trim().length()<=0) - dv.setVisible(false); - dv.setAlignment(dataColumn.getDisplayAlignment()); - dv.setDisplayTotal(dataColumn.getDisplayTotal()); - dv.setColName(dataColumn.getColName()); - dv.setDisplayName(dataColumn.getDisplayName()); - dv.setColId(dataColumn.getColId()); - dv.setNowrap(nvl(dataColumn.getNowrap(),"null").equals("false")?"null":nvl(dataColumn.getNowrap(),"null")); - /*StringBuffer indentation = new StringBuffer(""); - if(dataColumn.getIndentation()!=null && dataColumn.getIndentation().intValue()>0) { - for (int indent=0; indent < dataColumn.getIndentation(); indent++) { - indentation.append("\t"); - } - dv.setNowrap("true"); - } - dv.setIndentation(indentation.toString());*/ - - if (nvl(dataColumn.getDrillDownURL()).length() > 0) { - if(dv.getDisplayValue().length() > 0) { - dv.setDrillDownURL(parseDrillDownURL(i, /* dataColumnIdx, */ds, dataColumn,request, childReportFormFields)); - dv.setDrillDowninPoPUp(dataColumn.isDrillinPoPUp()!=null?dataColumn.isDrillinPoPUp():false); - } - if (dv.getDisplayValue().length() == 0) { - //dv.setDisplayValue("[NULL]"); - dv.setDisplayValue(""); - } - } // if - - rd.setDataValue(rValues, cValues, cValuesSort.size()==0?null:cValuesSort, dv, formatProcessor, crossTabOrderManager, dataList); - } // for - rd.setReportDataList(dataList); - /*if (getReportDataSize() < 0) - setReportDataSize(rd.getDataRowCount());*/ - - /*if (pageNo >= 0) - rd.truncateData(pageNo * getPageSize(), (pageNo + 1) * getPageSize() - 1); - else { - if( downloadLimit != -1) - rd.truncateData(0, downloadLimit - 1); - else - rd.truncateData(0, -1); - }*/ - - if (colDataTotalsCrosstab == null) - colDataTotalsCrosstab = generateDataTotalsCrossTab(AppConstants.CV_COLUMN, userId,request); - if (displayColTotals && colDataTotalsCrosstab != null) - rd.setColumnDataTotalsCrossTab(colDataTotalsCrosstab, dataColumn - .getDisplayAlignment(), getCrossTabDisplayTotal(AppConstants.CV_COLUMN), - crossTabOrderManager, dataList); - - if (rowDataTotalsCrosstab == null) - rowDataTotalsCrosstab = generateDataTotalsCrossTab(AppConstants.CV_ROW, userId, request); - if (displayRowTotals && rowDataTotalsCrosstab != null) - rd.setRowDataTotalsCrossTab(rowDataTotalsCrosstab, dataColumn - .getDisplayAlignment(), getCrossTabDisplayTotal(AppConstants.CV_ROW), - crossTabOrderManager, dataList); - - if (displayColTotals - && displayRowTotals - && getCrossTabDisplayTotal(AppConstants.CV_COLUMN).equals( - getCrossTabDisplayTotal(AppConstants.CV_ROW))) { - // Display grand total - if (grandTotalCrosstab == null) - grandTotalCrosstab = ((CrossTabTotalValue) generateDataTotalsCrossTab("", - userId,request).get(0)).getTotalValue(); - if (grandTotalCrosstab != null) - rd.setGrandTotalCrossTab(Utils.truncateTotalDecimals(grandTotalCrosstab), - dataColumn.getDisplayAlignment(), - getCrossTabDisplayTotal(AppConstants.CV_COLUMN), dataList); - } // if - - rd.consolidateColumnHeaders(visualManager); - //if (Globals.getMergeCrosstabRowHeadings()) - // rd.consolidateRowHeaders(); - //rd.addRowNumbers(pageNo, dataList); - - if (displayColTotals && colDataTotalsCrosstab != null) { - String totalLabel = "Total"; - String colDisplayTotal = getCrossTabDisplayTotal(AppConstants.CV_COLUMN); - if (colDisplayTotal.length() > 0 - && (!colDisplayTotal.equals(AppConstants.TOTAL_SUM_ID))) - totalLabel = nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(colDisplayTotal)); - if (getReportDataSize() > getPageSize()) - totalLabel += "_nl_(for all pages)"; - - //rd.setCrossTabColumnTotalLabel(totalLabel); - } // if - - //rd.applyVisibility(); - //Collections.sort((List)dataList, new DataRowComparable()); - DataRow drInFor1 = null; - Vector v1= null, v2 = null; - ArrayList temp = new ArrayList(); - if (Globals.getMergeCrosstabRowHeadings()) { - for (int i = 0; i < dataList.size(); i++) { - drInFor1 = (DataRow)dataList.get(i); - drInFor1.setRowNum(i+1); - v1 = drInFor1.getRowValues(); - if(i0) { // another ArrayList - temp = new ArrayList(); - temp.add(v1.get(j).getDisplayValue()); - } - if(v2!=null && temp.get(j).equals(v2.get(j).getDisplayValue())) { - v2.get(j).setDisplayValue(""); - } - } - } - } - } - rd.setReportDataList(dataList); - if (getReportDataSize() < 0) { - //setReportDataSize(rd.getDataRowCount()); - setReportDataSize(rd.getReportDataList().size()); - } - - return rd; - } // loadCrossTabReportData - - - public DataValue addDataValue(DataColumnType dataColumn, String columnValue) { - DataValue dv = new DataValue(); - dv.setDisplayValue(columnValue); - if (nvl(dataColumn.getCrossTabValue()).trim().length()<=0) - dv.setVisible(false); - dv.setAlignment(dataColumn.getDisplayAlignment()); - dv.setDisplayTotal(dataColumn.getDisplayTotal()); - dv.setColName(dataColumn.getColName()); - dv.setDisplayName(dataColumn.getDisplayName()); - dv.setColId(dataColumn.getColId()); - dv.setNowrap(nvl(dataColumn.getNowrap(),"null").equals("false")?"null":nvl(dataColumn.getNowrap(),"null")); - return dv; - - } - - /*private*/ public boolean doesReportContainsGroupFormField() { - int flag = 0; - if(getFormFieldList()!=null) { - for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - if(fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue()) { - flag = 1; - break; - } - } - } - return (flag ==1); - } - - private ReportData loadLinearReportData(int pageNo, String userId, int downloadLimit, HttpServletRequest request, boolean download) throws RaptorException { - String action = nvl(request.getParameter(AppConstants.RI_ACTION), request.getParameter("action"));; - - String reportSQL = ""; - - if(action.endsWith("session")) { - reportSQL = getWholeSQL(); - wholeSQL = reportSQL; - } else { - reportSQL = generateSQL(reportParamValues, visualManager.getSortByColId(), - visualManager.getSortByAscDesc(), userId, request); - wholeSQL = reportSQL; - setWholeSQL(wholeSQL); - } - DataSet ds = null; - String dbInfo = getDBInfo(); - ds = ConnectionUtils.getDataSet(wholeSQL, dbInfo); - setReportDataSize(ds.getRowCount()); - //wholeSQL = reportSQL; - HttpSession session = request.getSession(); - //debugLogger.debug(" ******** Download Limit ********* " + downloadLimit + " %%%%%%%%%%PAGE " + pageNo ); - List reportCols = null; - StringBuffer colNames = new StringBuffer(); - - if(download && action.endsWith("session")) { - reportCols = getAllColumns(); - colNames = new StringBuffer(); - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dc = (DataColumnType) iter.next(); - if (colNames.length() > 0) - colNames.append(", "); - colNames.append(dc.getColId()); - } - - } - else { - String pagedSQL = null; // reportSQL; - if (pageNo >= 0) - pagedSQL = generatePagedSQL(pageNo, userId, request, false, null); - else - pagedSQL = generateSubsetSQL(0, downloadLimit, userId, request, false, null); - // replace the request parameter specified in the drill down - reportCols = getAllColumns(); - colNames = new StringBuffer(); - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dc = (DataColumnType) iter.next(); - if (colNames.length() > 0) - colNames.append(", "); - colNames.append(dc.getColId()); - if (dc.isVisible()) { - reportSQL = parseReportSQLForDrillDownParams(reportSQL, dc, request); - pagedSQL = parseReportSQLForDrillDownParams(pagedSQL, dc, request); - } - } - - cachedSQL = pagedSQL; - - - // try { - if(doesReportContainsGroupFormField()) { - if (pageNo >= 0) - pagedSQL = generatePagedSQL(pageNo, userId, request, true, reportParamValues); - else - pagedSQL = generateSubsetSQL(0, downloadLimit, userId, request, true, reportParamValues); - } - //check for Group formfield - //if groupformfield get columns from sql - - ds = ConnectionUtils.getDataSet(pagedSQL, dbInfo); - - if(doesReportContainsGroupFormField()) { - List reportCols1 = getAllColumns(); - reportCols = new Vector(); - outer: - for (Iterator iter = reportCols1.iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - for (int k=0; k 0) - setReportDataSize(ds2.getInt(0, 0)); - else - throw new RuntimeException( - "[ReportRuntime.loadLinearReportData] Unable to load report data size"); - } else - setReportDataSize(50); - // if ( (remDbInfo!=null) && - // (!remDbInfo.equals(AppConstants.DB_LOCAL))){ - // Globals.getRDbUtils().setDBPrefix(remDbInfo); - // ds2 = RemDbUtils.executeQuery(countSQL); - // } - // else - // ds2 = DbUtils.executeQuery(countSQL); - /* - * } catch(SQLException e) { throw new - * ReportSQLException("[ReportRuntime.loadLinearReportData size] - * "+e.getMessage(), countSQL); } - */ - - - } // else - } - ReportData rd = new ReportData(pageNo, true); - - // Already defined changed for modifying request parameters - //List reportCols = getAllColumns(); - Vector visibleCols = new Vector(reportCols.size()); - Vector formatProcessors = new Vector(reportCols.size()); - - // ColumnHeaderRow chr = new ColumnHeaderRow(); - // rd.reportColumnHeaderRows.addColumnHeaderRow(chr); - // chr.setRowHeight("30"); - int count =0 ; - - /* ADDED */ - ReportFormFields rff = getReportFormFields(); - ReportFormFields childReportFormFields = null; - String fieldDisplayName = ""; - String fieldValue = ""; - - for (int c = 0; c < reportCols.size(); c++) { - if(reportCols.get(c)!=null) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - if(nvl(dct.getDependsOnFormField()).length()>0 && nvl(dct.getDependsOnFormField()).indexOf("[")!=-1) { - for(int i = 0 ; i < rff.size(); i++) { - fieldDisplayName = "["+((FormField)rff.getFormField(i)).getFieldDisplayName()+"]"; - fieldValue = ""; - //if(dct.getOriginalDisplayName()==null) dct.setOriginalDisplayName(dct.getDisplayName()); - if (dct.getDependsOnFormField().equals(fieldDisplayName)) { - fieldValue = nvl(request.getParameter(((FormField)rff.getFormField(i)).getFieldName())); - - if (fieldValue.length()>0) { - if(!fieldValue.toUpperCase().equals("Y")) - dct.setDisplayName(fieldValue); - if(!dct.isVisible()) - dct.setVisible(true); - } else { - dct.setVisible(false); - } - } - } - } - } - } - - /* ADDED */ - String displayName = ""; - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dc = (DataColumnType) iter.next(); - - formatProcessors.add(count,new FormatProcessor( - getSemaphoreById(dc.getSemaphoreId()), dc.getColType(), dc - .getColFormat(), getReportDefType().equals( - AppConstants.RD_SQL_BASED))); - - if (nvl(dc.getDrillDownURL()).length() > 0) { - childReportFormFields = getChildReportFormFields(request,AppUtils.getDrillActionURL()+""+dc.getDrillDownURL()); - } - if (dc.isVisible()) { - visibleCols.add(count,dc); - //if(dc.getColId().startsWith("group")) { - for (int d = 0; d < reportCols.size(); d++) { - if(reportCols.get(d)!=null) { - DataColumnType dct1 = (DataColumnType) reportCols.get(d); - if(dct1.getColId().equals(dc.getColId()+"_name") && ds.getRowCount()>0) { - displayName = ds.getString(0,dct1.getColId()); - dc.setDisplayName(displayName); - } - } - } - //} - - String widthInPxls = dc.getDisplayWidthInPxls(); - - if(nvl(widthInPxls).endsWith("px")) - dc.setDisplayWidthInPxls(widthInPxls); - else { - widthInPxls = widthInPxls+"px"; - dc.setDisplayWidthInPxls(widthInPxls+"px"); - } - - rd.createColumn(dc.getColId(), dc.getDisplayName(), dc.getDisplayWidthInPxls(), dc.getDisplayHeaderAlignment(), - visualManager.isColumnVisible(dc.getColId()), visualManager - .getSortByColId().equals(dc.getColId()) ? visualManager - .getSortByAscDesc() : null, isRuntimeColSortDisabled(), dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); - // chr.addColumnHeader(new ColumnHeader(dc.getDisplayName(), - // (dc.getDisplayWidth()>100)?"10%":(""+dc.getDisplayWidth()+"%"))); - } // if - else { - visibleCols.add(count,null); - rd.createColumn(dc.getColId(), AppConstants.HIDDEN, dc.getDisplayWidthInPxls(), dc.getDisplayHeaderAlignment(), - true, null,false, dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); -// formatProcessors.add(count,null); - } - count++; - } // for - - if(getReportDefType().equals(AppConstants.RD_SQL_BASED_DATAMIN) && pageNo ==0) { - /*Vector v = null; - try { - v = addForecastData(reportSQL); - } catch (Exception ex) { - ex.printStackTrace(); - throw new RaptorException (ex); - } - session.setAttribute("FORECASTED_DATA", v); - DataSet dsWhole = ConnectionUtils.getDataSet(wholeSQL, dbInfo); - dsWhole.addAll(v); - session.setAttribute(AppConstants.RI_CHART_FORECAST_DATA, dsWhole); - } - - if(getReportDefType().equals(AppConstants.RD_SQL_BASED_DATAMIN) && session.getAttribute("FORECASTED_DATA")!=null) { - Vector vForecastedData = (Vector)session.getAttribute("FORECASTED_DATA"); - if(vForecastedData.size() > 0) - ds.addAll(vForecastedData);*/ - } - - - // Utils._assert(chr.size()==ds.getColumnCount(), - // "[ReportRuntime.loadLinearReportData] The number of visible columns - // does not match the number of data columns"); - //TODO: This should be optimized to accept -1 for flat file download - for (int r = 0; r < Math.min(ds.getRowCount(), ((pageNo < 0) ? (downloadLimit == -1?Globals.getFlatFileUpperLimit():Globals.getDownloadLimit() ) : getPageSize())); r++) { - DataRow dr = new DataRow(); - rd.reportDataRows.addDataRow(dr); - - for (int c = 0; c < reportCols.size(); c++) { - if(reportCols.get(c)!=null) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - DataValue dv = new DataValue(); - dr.addDataValue(dv); - dv.setDisplayValue(ds.getString(r, c)); - dv.setColName(dct.getColName()); - dv.setColId(dct.getColId()); - dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); - StringBuffer indentation = new StringBuffer(""); - if(dct.getIndentation()!=null && dct.getIndentation()>0) { - for (int indent=0; indent< dct.getIndentation(); indent++) { - indentation.append("\t"); - } - dv.setNowrap("true"); - } - dv.setIndentation(indentation.toString()); - if(dct.isVisible()) { - - dv.setVisible(true); - dv.setAlignment(dct.getDisplayAlignment()); - dv.setDisplayTotal(dct.getDisplayTotal()); - dv.setDisplayName(dct.getDisplayName()); - - if (nvl(dct.getDrillDownURL()).length() > 0) { - - if(dv.getDisplayValue().length() > 0) { - dv.setDrillDownURL(parseDrillDownURL(r, /* c, */ds, dct,request, childReportFormFields)); - dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); - } - - if (dv.getDisplayValue().length() == 0) { - //dv.setDisplayValue("[NULL]"); - dv.setDisplayValue(""); - } - } // if - - } else { - dv.setVisible(false); - dv.setHidden(true); - } - //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); - - if(dr.getFormatId()!=null) - ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, true); - else - ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, false); - - //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); - } // if reportCols - } // for - } // for - - //Only if rownumber options is needed - //rd.addRowNumbers(pageNo, getPageSize()); - - if (colDataTotalsLinear == null) { - if(!download && !action.endsWith("session")) - colDataTotalsLinear = generateColumnDataTotalsLinear(new ArrayList(reportCols), userId, - getDbInfo(),request); - if(download && action.endsWith("session")) - colDataTotalsLinear = generateColumnDataTotalsLinear(new ArrayList(reportCols), userId, - getDbInfo(), getTotalSql()); - } - if (displayColTotals && colDataTotalsLinear != null) { - String totalLabel = "Total"; - if (getReportDataSize() > getPageSize()) - totalLabel += "
(for all pages)"; - - rd.setColumnDataTotalsLinear(colDataTotalsLinear, totalLabel); - } // if - // Please note the below function doesn't set the visibility for dv since this is set in this function. - Sundar - rd.applyVisibility(); - - return rd; - } // loadLinearReportData - - - - public DataRow generateColumnDataTotalsLinear(ArrayList reportCols, String userId, - String dbInfo, String reportSQL) throws RaptorException { - DataRow dr = null; - - boolean displayColTotals = false; - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dct = (DataColumnType) iter.next(); - if( dct != null ) { - if (nvl(dct.getDisplayTotal()).length() > 0) { - displayColTotals = true; - break; - } // if - } // if checking dct - } // for - - DataSet ds = null; - if (displayColTotals) { - dr = new DataRow(); - // ds = - // DbUtils.executeQuery(generateTotalSQLLinear(reportParamValues, - // userId)); - ds = ConnectionUtils.getDataSet(reportSQL, - dbInfo); - - for (int c = 0; c < reportCols.size(); c++) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - if ( dct != null ) { - DataValue dv = new DataValue(); - - String totalValue = ""; - if (ds != null) - totalValue = ds.getString(0, c); - if (nvl(dct.getDisplayTotal()).length() > 0 - && (!dct.getDisplayTotal().equals(AppConstants.TOTAL_SUM_ID))) - totalValue = nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(dct - .getDisplayTotal())) - + ": " + totalValue; - dv.setDisplayValue(Utils.truncateTotalDecimals(totalValue)); - - dv.setAlignment(dct.getDisplayAlignment()); - dv.setColName(dct.getColName()); - dv.setDisplayName(dct.getDisplayName()); - dv.setColId(dct.getColId()); - dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); - StringBuffer indentation = new StringBuffer(""); - if(dct.getIndentation()!=null && dct.getIndentation()>0) { - for (int indent=0; indent< dct.getIndentation(); indent++) { - indentation.append("\t"); - } - dv.setNowrap("true"); - } - dv.setIndentation(indentation.toString()); - dv.setDisplayTotal(dct.getDisplayTotal()); - dv.setBold(true); - dv.setVisible(dct.isVisible()); - if(dv.isVisible()) - dr.addDataValue(dv); - } // dct check - } // for - } - - return dr; - } // generateColumnDataTotalsLinear - - - public ReportData loadHiveLinearReportData(String reportSQL, String userId, int downloadLimit, HttpServletRequest request) throws RaptorException { - wholeSQL = reportSQL; - int countRows = getHiveReportCount(wholeSQL); - setReportDataSize(countRows); - if(countRows < 1001) - wholeSQL += " limit "+ countRows; - else - wholeSQL += " limit "+ downloadLimit; - HttpSession session = request.getSession(); - - DataSet ds = null; - // try { - String dbInfo = getDBInfo(); - - List reportCols = getAllColumns(); - StringBuffer colNames = new StringBuffer(); - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dc = (DataColumnType) iter.next(); - if (colNames.length() > 0) - colNames.append(", "); - colNames.append(dc.getColId()); - } - - ds = ConnectionUtils.getDataSet(wholeSQL, dbInfo); - - ReportData rd = new ReportData(0, true); - - // Already defined changed for modifying request parameters - //List reportCols = getAllColumns(); - Vector visibleCols = new Vector(reportCols.size()); - Vector formatProcessors = new Vector(reportCols.size()); - - // ColumnHeaderRow chr = new ColumnHeaderRow(); - // rd.reportColumnHeaderRows.addColumnHeaderRow(chr); - // chr.setRowHeight("30"); - int count =0 ; - - /* ADDED */ - ReportFormFields rff = getReportFormFields(); - ReportFormFields childReportFormFields = null; - String fieldDisplayName = ""; - String fieldValue = ""; - - for (int c = 0; c < reportCols.size(); c++) { - if(reportCols.get(c)!=null) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - if(nvl(dct.getDependsOnFormField()).length()>0 && nvl(dct.getDependsOnFormField()).indexOf("[")!=-1) { - for(int i = 0 ; i < rff.size(); i++) { - fieldDisplayName = "["+((FormField)rff.getFormField(i)).getFieldDisplayName()+"]"; - fieldValue = ""; - //if(dct.getOriginalDisplayName()==null) dct.setOriginalDisplayName(dct.getDisplayName()); - if (dct.getDependsOnFormField().equals(fieldDisplayName)) { - fieldValue = nvl(request.getParameter(((FormField)rff.getFormField(i)).getFieldName())); - - if (fieldValue.length()>0) { - if(!fieldValue.toUpperCase().equals("Y")) - dct.setDisplayName(fieldValue); - if(!dct.isVisible()) - dct.setVisible(true); - } else { - dct.setVisible(false); - } - } - } - } - } - } - - /* ADDED */ - String displayName = ""; - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dc = (DataColumnType) iter.next(); - - formatProcessors.add(count,new FormatProcessor( - getSemaphoreById(dc.getSemaphoreId()), dc.getColType(), dc - .getColFormat(), getReportDefType().equals( - AppConstants.RD_SQL_BASED))); - - if (nvl(dc.getDrillDownURL()).length() > 0) { - childReportFormFields = getChildReportFormFields(request,dc.getDrillDownURL()); - } - if (dc.isVisible()) { - visibleCols.add(count,dc); - //if(dc.getColId().startsWith("group")) { - for (int d = 0; d < reportCols.size(); d++) { - if(reportCols.get(d)!=null) { - DataColumnType dct1 = (DataColumnType) reportCols.get(d); - if(dct1.getColId().equals(dc.getColId()+"_name") && ds.getRowCount()>0) { - displayName = ds.getString(0,dct1.getColId()); - dc.setDisplayName(displayName); - } - } - } - //} - - String widthInPxls = dc.getDisplayWidthInPxls(); - - if(nvl(widthInPxls).endsWith("px")) - dc.setDisplayWidthInPxls(widthInPxls); - else { - widthInPxls = widthInPxls+"px"; - dc.setDisplayWidthInPxls(widthInPxls+"px"); - } - - rd.createColumn(dc.getColId(), dc.getDisplayName(), dc.getDisplayWidthInPxls(), dc.getDisplayHeaderAlignment(), - visualManager.isColumnVisible(dc.getColId()), visualManager - .getSortByColId().equals(dc.getColId()) ? visualManager - .getSortByAscDesc() : null, isRuntimeColSortDisabled(), dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); - // chr.addColumnHeader(new ColumnHeader(dc.getDisplayName(), - // (dc.getDisplayWidth()>100)?"10%":(""+dc.getDisplayWidth()+"%"))); - } // if - else { - visibleCols.add(count,null); - rd.createColumn(dc.getColId(), "", dc.getDisplayWidthInPxls(), dc.getDisplayHeaderAlignment(), - true, null,false, dc.getLevel()!=null?dc.getLevel():0, dc.getStart()!=null?dc.getStart():0, dc.getColspan()!=null?dc.getColspan():0, dc.isIsSortable()!=null?dc.isIsSortable():false); -// formatProcessors.add(count,null); - } - count++; - } // for - - ArrayList reportDataList = new ArrayList(); - for (int r = 0; r < ds.getRowCount(); r++) { - DataRow dr = new DataRow(); - rd.reportDataRows.addDataRow(dr); - - for (int c = 0; c < reportCols.size(); c++) { - if(reportCols.get(c)!=null) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - DataValue dv = new DataValue(); - dr.addDataValue(dv); - dv.setDisplayValue(ds.getString(r, c)); - dv.setColName(dct.getColName()); - dv.setColId(dct.getColId()); - dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); - StringBuffer indentation = new StringBuffer(""); - if(dct.getIndentation()!=null && dct.getIndentation()>0) { - for (int indent=0; indent< dct.getIndentation(); indent++) { - indentation.append("\t"); - } - dv.setNowrap("true"); - } - dv.setIndentation(indentation.toString()); - if(dct.isVisible()) { - - dv.setVisible(true); - dv.setAlignment(dct.getDisplayAlignment()); - dv.setDisplayTotal(dct.getDisplayTotal()); - dv.setDisplayName(dct.getDisplayName()); - - if (nvl(dct.getDrillDownURL()).length() > 0) { - - if(dv.getDisplayValue().length() > 0) { - dv.setDrillDownURL(parseDrillDownURL(r, /* c, */ds, dct,request, childReportFormFields)); - dv.setDrillDowninPoPUp(dct.isDrillinPoPUp()!=null?dct.isDrillinPoPUp():false); - } - - if (dv.getDisplayValue().length() == 0) { - //dv.setDisplayValue("[NULL]"); - dv.setDisplayValue(""); - } - } // if - - } else { - dv.setVisible(false); - dv.setHidden(true); - } - //System.out.println("in Linear report b4" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); - - if(dr.getFormatId()!=null) - ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, true); - else - ((FormatProcessor) formatProcessors.get(c)).setHtmlFormatters(dv, dr, false); - - //System.out.println("in Linear report After" + dr.getFormatId() + dr.getBgColorHtml() + dv.getDisplayValue()); - } // if reportCols - } // for - reportDataList.add(dr); - } // for - rd.setReportDataList(reportDataList); - //Only if rownumber options is needed - //rd.addRowNumbers(pageNo, getPageSize()); - - if (colDataTotalsLinear == null) - colDataTotalsLinear = generateColumnDataTotalsLinear(new ArrayList(reportCols), userId, - getDbInfo(),request); - if (displayColTotals && colDataTotalsLinear != null) { - String totalLabel = "Total"; - if (getReportDataSize() > getPageSize()) - totalLabel += "
(for all pages)"; - - rd.setColumnDataTotalsLinear(colDataTotalsLinear, totalLabel); - } // if - // Please note the below function doesn't set the visibility for dv since this is set in this function. - Sundar - rd.applyVisibility(); - - return rd; - } // loadHiveLinearReportData - - //For Hive reports - public int getHiveReportCount(String sql) throws RaptorException { - //select t from (select count(*) t from (select * from program)x)x1; - int count = 0; - String countSql = "select t from (select count(*) t from ("+ sql + ")" + (Globals.isPostgreSQL() || Globals.isMySQL() ?" AS ":"") + " x) AS x1"; - - DataSet ds = null; - // try { - String dbInfo = getDBInfo(); - System.out.println("SQL getReportCount()- " + countSql); - try { - ds = ConnectionUtils.getDataSet(countSql, dbInfo); - int totalRows = 0; - String dbType = ""; - if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { - try { - org.openecomp.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.openecomp.portalsdk.analytics.util.RemDbInfo(); - dbType = remDbInfo.getDBType(dbInfo); - } catch (Exception ex) { - throw new RaptorException(ex); - } - } - if( ds.getRowCount()>0) { - count = Integer.parseInt(ds.getString(0,0)); - } - } catch (NumberFormatException ex) {} - return count; - - } // getReportCount - - - /*private*/ public ReportFormFields getChildReportFormFields( HttpServletRequest request, String URL ) throws RaptorException { - String childReportID = getReportID(URL); - - ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, childReportID, - false, 1); - - ReportFormFields ddReportFormFields = ddRr.getReportFormFields(); - return ddReportFormFields; - } - - private String getReportID(String URL) { - URL = nvl(URL); - int pos = URL.toLowerCase().indexOf("c_master=")+9; - String reportID = ""; - if(URL.toLowerCase().indexOf("&", pos)!=-1) - reportID = URL.substring(pos, URL.toLowerCase().indexOf("&", pos)); - else - reportID = URL.substring(pos); - return reportID; - - } - /*private*/ public String parseDrillDownURL(int rowIdx, /* int colIdx, */DataSet ds, DataColumnType dct, HttpServletRequest request, ReportFormFields ddReportFormFields) - throws RaptorException { - Vector viewActions = DataCache.getDataViewActions(); - javax.servlet.http.HttpSession session = request.getSession(); - - StringBuffer dUrl = new StringBuffer(); - - //String childReportID = getReportID(dct.getDrillDownURL()); - - //ReportRuntime ddRr = (new ReportHandler()).loadReportRuntime(request, childReportID, - // false, 1); - - //ReportFormFields ddReportFormFields = ddRr.getReportFormFields(); - - boolean isViewAction = false; - int flag = 0; - String requestParam =""; - for (int k = 0; k < viewActions.size(); k++) - if (dct.getDrillDownURL().equals( - AppUtils.getBaseActionURL() + ((String) viewActions.get(k)))) - isViewAction = true; - if (isViewAction) { - // Drill-down to record details - String param = nvl(dct.getDrillDownParams()); // i.e. - // "c_master=[bo1.RECID$]" - param = param.substring(AppUtils.getBaseActionParam().length() + 1, - param.length() - 1); // i.e. "bo1.RECID$" - param = param.replace('.', '_'); // i.e. "bo1.RECID$" - - dUrl.append(AppUtils.getBaseActionParam()); - dUrl.append(java.net.URLEncoder.encode(ds.getString(rowIdx, param.toLowerCase()))); - } else { - // Drill-down to another report - // Replacing col ids with values - String param = nvl(dct.getDrillDownParams()); - while (param.indexOf('[') >= 0) { - int startIdx = param.indexOf('['); - int endIdx = param.indexOf(']'); - StringBuffer sb = new StringBuffer(); - if(startIdx>endIdx) { - if (endIdx < param.length() - 1) - sb.append(param.substring(endIdx + 1)); - param = sb.toString(); - continue; - } - if (startIdx > 0) - sb.append(param.substring(0, startIdx)); - - if (param.charAt(startIdx + 1) == '!') { - // Parameter is a form field value - String fieldId = param.substring(startIdx + 2, endIdx); - String fieldValue = (String) reportParamValues.get(fieldId); - - sb.append(java.net.URLEncoder.encode(nvl(fieldValue))); - //TODO Add a else if condition to check whether the param is from request Param - //TODO make a unique symbol like # - }else if (param.charAt(startIdx + 1) == '#') { - flag = 1; - String fieldId = param.substring(startIdx + 2, endIdx); - String fieldValue = request.getParameter(fieldId); - sb.append(java.net.URLEncoder.encode(nvl(fieldValue))); - - }else { - // Parameter is a column value - String fieldValue = ""; - String colValue = null; - String colId = null; - if (param.indexOf('!') < 0 || param.indexOf('!') > endIdx) - colId = param.substring(startIdx + 1, endIdx); - else { - // Need to use NVL(column, form field) - colId = param.substring(startIdx + 1, param.indexOf('!')); - - String fieldId = param.substring(param.indexOf('!') + 1, endIdx); - FormField ff = getFormField(fieldId); - if (ff.getFieldType().equals(FormField.FFT_TEXTAREA)) { - fieldValue = reportParamValues.getParamValueforTextAreaDrilldown(fieldId); - } else - fieldValue = (String) reportParamValues.get(fieldId); - } // else - - DataColumnType column = getColumnById(colId); - String columnName = ""; - int groupColumn = 0; - int groupMatch = 0; - if(column.getColName().startsWith("[")) { - groupColumn = 1; - columnName = column.getDisplayName(); - for(ddReportFormFields.resetNext(); ddReportFormFields.hasNext(); ) { - FormField ff = ddReportFormFields.getNext(); - if(ff.getFieldDisplayName().toLowerCase().equals(columnName.toLowerCase())) { - groupMatch = 1; - sb.delete(sb.lastIndexOf("&")+1, sb.length()); - sb.append(ff.getFieldName()+"="); - } - } - } - if (groupColumn == 0 || (groupColumn == 1 && groupMatch == 1)) { - String dependsOn = column.getDependsOnFormField(); - if(nvl(dependsOn).length()>0) - System.out.println("DependsOn " + dependsOn); - if (column != null) { - // if (column.getColType().equals(AppConstants.CT_DATE)) - //if (!nvl(column.getColFormat(), AppConstants.DEFAULT_DATE_FORMAT) - // .equals(AppConstants.DEFAULT_DATE_FORMAT)) - // Use extra column instead - //commented out below line usually for Visual - //colId += AppConstants.DD_COL_EXTENSION; - colValue = ds.getString(rowIdx, colId.toLowerCase()); - // if SQL-Based and drill-down param is a date, decode - // it to the expected Oracle format **/ - if (getReportDefType().equals(AppConstants.RD_SQL_BASED)) - if (!getColumnNoParseDateFlag(column)) - if (ReportParamDateValueParser.isDateParam(colValue)) - colValue = ReportParamDateValueParser - .formatDateParamValue(colValue); - } // if - - String suppressValues = "|" + nvl(dct.getDrillDownType()) + "|"; - if (suppressValues.length() > 2 - && suppressValues.indexOf("|" + colValue + "|") >= 0) - // Parameter value is suppressed and not passed to the - // drill-down report - colValue = null; - - sb.append(java.net.URLEncoder.encode(nvl(colValue, fieldValue))); - } else { - sb.delete(sb.lastIndexOf("&")+1, sb.length()); - } - } // else - - if (endIdx < param.length() - 1) - sb.append(param.substring(endIdx + 1)); - param = sb.toString(); - } // while - if(Globals.getPassRequestParamInDrilldown()) { - if(param.indexOf('#') < 0) { - String[] reqParameters = Globals.getRequestParams().split(","); - String[] sessionParameters = Globals.getSessionParams().split(","); - for (int i = 0; i < reqParameters.length; i++) { - if(request.getParameter(reqParameters[i])!=null) { - if(!reqParameters[i].toUpperCase().startsWith("FF")){ - if(param.length()>0) { - param += "&" + reqParameters[i]+"=" - + request.getParameter(reqParameters[i]); - } else { - param += "&" + reqParameters[i]+"=" - + request.getParameter(reqParameters[i]); - - } - } - } - } - for (int i = 0; i < sessionParameters.length; i++) { - if(session.getAttribute(sessionParameters[i].toUpperCase())!=null) { - if(!sessionParameters[i].toUpperCase().startsWith("FF")){ - if(param.length()>0) { - param += "&" + sessionParameters[i].toUpperCase()+"=" - + (String)session.getAttribute(sessionParameters[i].toUpperCase()); - } else { - param += "&" + sessionParameters[i].toUpperCase()+"=" - + (String)session.getAttribute(sessionParameters[i].toUpperCase()); - - } - } - } else { - param += "&" + sessionParameters[i].toUpperCase()+"=" - + (String)session.getAttribute(sessionParameters[i]); - - } - } - - } - } - - dUrl.append(param.toString()); - dUrl.append("&"); - dUrl.append(AppConstants.RI_DISPLAY_CONTENT); - dUrl.append("=Y"); - dUrl.append("&"); - if(dct.isDrillinPoPUp()==null || (!dct.isDrillinPoPUp().booleanValue())) { - dUrl.append(AppConstants.RI_SHOW_BACK_BTN); - dUrl.append("=Y"); - dUrl.append("&"); - } - dUrl.append(AppConstants.DRILLDOWN_INDEX); - int index = Integer.parseInt(nvl(AppUtils.getRequestValue(request, AppConstants.DRILLDOWN_INDEX), "0")); - /* - int form_index = Integer.parseInt(nvl(AppUtils.getRequestValue(request, AppConstants.FORM_DRILLDOWN_INDEX), "0")); - index = index>0 ? --index : 0; - form_index = form_index>0 ? --form_index : 0;*/ - request.setAttribute(AppConstants.DRILLDOWN_INDEX, Integer.toString(index)); - /*session.setAttribute(AppConstants.DRILLDOWN_INDEX, Integer.toString(index)); - request.setAttribute(AppConstants.FORM_DRILLDOWN_INDEX, Integer.toString(form_index)); - session.setAttribute(AppConstants.FORM_DRILLDOWN_INDEX, Integer.toString(form_index));*/ - - dUrl.append("=" + AppUtils.getRequestNvlValue(request, AppConstants.DRILLDOWN_INDEX)); - - //TODO Add a if condition to check whether the param is request Param - } // if - - if (dUrl.length() > 0) - dUrl.insert(0, ((dct.getDrillDownURL()).indexOf('&') > 0) ? '&' : '&'); - dUrl.insert(0, AppUtils.getDrillActionURL()+dct.getDrillDownURL()); - - //debugLogger.debug(" [[[[[[[[[[[[[[[[ " + dUrl); - - return dUrl.toString(); - } // parseDrillDownURL - - /** *********************************************************************************** */ - - public DataRow generateColumnDataTotalsLinear(ArrayList reportCols, String userId, - String dbInfo, HttpServletRequest request) throws RaptorException { - DataRow dr = null; - - displayColTotals = false; - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - - DataColumnType dct = (DataColumnType) iter.next(); - if( dct != null ) { - if (nvl(dct.getDisplayTotal()).length() > 0) { - displayColTotals = true; - break; - } // if - } // if checking dct - } // for - - DataSet ds = null; - if (displayColTotals) { - dr = new DataRow(); - // ds = - // DbUtils.executeQuery(generateTotalSQLLinear(reportParamValues, - // userId)); - ds = ConnectionUtils.getDataSet(generateTotalSQLLinear(reportParamValues, userId,request), - dbInfo); - - for (int c = 0; c < reportCols.size(); c++) { - DataColumnType dct = (DataColumnType) reportCols.get(c); - if ( dct != null ) { - DataValue dv = new DataValue(); - if(dv.isVisible()) - dr.addDataValue(dv); - - String totalValue = ""; - if (ds != null) - totalValue = ds.getString(0, c); - if (nvl(dct.getDisplayTotal()).length() > 0 - && (!dct.getDisplayTotal().equals(AppConstants.TOTAL_SUM_ID))) - totalValue = nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(dct - .getDisplayTotal())) - + ": " + totalValue; - dv.setDisplayValue(Utils.truncateTotalDecimals(totalValue)); - - dv.setAlignment(dct.getDisplayAlignment()); - dv.setColName(dct.getColName()); - dv.setDisplayName(dct.getDisplayName()); - dv.setColId(dct.getColId()); - dv.setNowrap(nvl(dct.getNowrap(),"null").equals("false")?"null":nvl(dct.getNowrap(),"null")); - StringBuffer indentation = new StringBuffer(""); - if(dct.getIndentation()!=null && dct.getIndentation()>0) { - for (int indent=0; indent< dct.getIndentation(); indent++) { - indentation.append("\t"); - } - dv.setNowrap("true"); - } - dv.setIndentation(indentation.toString()); - dv.setDisplayTotal(dct.getDisplayTotal()); - dv.setBold(true); - } // dct check - } // for - } - - return dr; - } // generateColumnDataTotalsLinear - - private Vector generateDataTotalsCrossTab(String rowColPos, String userId, HttpServletRequest request) - throws RaptorException { - String sql = getWholeSQL(); - Vector dataTotals = new Vector(); - - boolean displayTotals = ((rowColPos.length() == 0) || (getCrossTabDisplayTotal( - rowColPos).length() > 0)); - if (rowColPos.equals(AppConstants.CV_COLUMN)) - displayColTotals = displayTotals; - else if (rowColPos.equals(AppConstants.CV_ROW)) - displayRowTotals = displayTotals; - - if (displayTotals) { - // DataSet ds = - // DbUtils.executeQuery(generateTotalSQLCrossTab(reportParamValues, - // rowColPos, userId)); - String executeSql = generateTotalSQLCrossTab( - sql, rowColPos, userId, request, reportParamValues); - DataSet ds = ConnectionUtils.getDataSet(executeSql, getDbInfo()); - - for (int i = 0; i < ds.getRowCount(); i++) { - Vector headerValues = new Vector(); - String totalValue = null; - - int cPos = 0; - for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - - if (rowColPos.length() > 0 - && nvl(dct.getCrossTabValue()).equals(rowColPos)) { - DataValue dataValue = new DataValue(); - dataValue.setBold(true); - dataValue.setAlignment("center"); - dataValue.setDisplayValue(ds.getString(i, cPos++)); - headerValues.add(dataValue); - - //headerValues.add(ds.getString(i, cPos++)); - } - else if (nvl(dct.getCrossTabValue()).equals(AppConstants.CV_VALUE)) - totalValue = ds.getString(i, cPos++); - } // for - - dataTotals.add(new CrossTabTotalValue(headerValues, Utils - .truncateTotalDecimals(totalValue))); - } // for - } // if - - return dataTotals; - } // generateDataTotalsCrossTab - - /** *********************************************************************************** */ - - public void hideColVisual(String colId) { - visualManager.hideColumn(colId); - if (pageDataCache != null) - pageDataCache.columnVisualShowHide(colId, false); - } // hideColVisual - - public void showColVisual(String colId) { - visualManager.showColumn(colId); - if (pageDataCache != null) - pageDataCache.columnVisualShowHide(colId, true); - } // showColVisual - - public void sortColVisual(String colId) { - visualManager.setSortByColumn(colId); - resetCache(true); - - pageDataCache = null; - cachedPageNo = -1; - } // sortColVisual - - /** *********************************************************************************** */ - - public String generateDistinctValuesSQL(DataColumnType dct, String userId, HttpServletRequest request) throws RaptorException { - return super.generateDistinctValuesSQL(reportParamValues, dct, userId, request); - } // generateDistinctValuesSQL - - public String getDbInfo() { - return this.cr.getDbInfo(); - } - - private String fixSQL(StringBuffer sql) { - int pos = 0; - int pos_f_format = 0; - int pos_t_format = 0; - int pos_alias = 0; - String format = ""; - String alias = null; - if(sql.indexOf("SELECT", 7)!= -1) { - pos = sql.indexOf("SELECT", 7); - if(sql.indexOf("TO_CHAR", pos)!= -1){ - pos = sql.indexOf("TO_CHAR", pos); - if(sql.indexOf("999",pos)!= -1) { - pos = sql.indexOf("999",pos); - pos_f_format = sql.lastIndexOf(", '", pos); - if(pos_f_format == -1 || (pos - pos_f_format > 10)) { - pos_f_format = sql.lastIndexOf(",'", pos); - pos_f_format -= 1; - } - pos = pos_f_format; - if(sql.indexOf("')", pos)!= -1) { - pos_t_format = sql.indexOf("')", pos); - //debugLogger.debug("pos_t - " + pos_t_format + " " + pos); - if(pos_t_format == -1 || (pos_t_format - pos > 20)) { - pos_t_format = sql.indexOf("' )", pos); - pos_t_format += 3; - } - else if (pos_t_format != -1) - pos_t_format += 2; - format = sql.substring(pos_f_format+3, pos_t_format); - //alias = sql.substring(pos_t_format+3, pos_t_format+6); - pos_alias = sql.indexOf(" ", pos_t_format); - alias = sql.substring(pos_alias+1, pos_alias+4); - } - } - } - - if(sql.indexOf(alias)!=-1) { - pos = sql.indexOf(alias); - //debugLogger.debug(pos + " " + alias.length()+1 + "\n" + sql); - sql.delete(pos,pos+4); - sql.insert(pos, "TO_NUMBER("+alias+", '"+format+"')),'"+ format + "')"); - pos = sql.lastIndexOf("SUM", pos); - if(pos==-1) - pos = sql.lastIndexOf("AVG", pos); - else if (pos==-1) - pos = sql.lastIndexOf("COUNT", pos); - else if (pos == -1) - pos = sql.lastIndexOf("STDDEV", pos); - else if (pos == -1) - pos = sql.lastIndexOf("VARIANCE", pos); - sql.insert(pos, "TO_CHAR ("); - } - - } - - //debugLogger.debug("Alias|" + alias + "| Format " + format); - //debugLogger.debug(sql.toString()); - return sql.toString(); - } // FixSQL - - public String parseReportSQL(String sql) throws RaptorException { - StringBuffer parsedSQL = new StringBuffer(); - - Vector updatedReportCols = new Vector(); - - curSQLParsePos = 0; - int lastParsePos = curSQLParsePos; - String lastToken = null; - logger.debug(EELFLoggerDelegate.debugLogger, ("Flat File parseReportSQL ******* SQL " + sql)); - sql = sql.replaceAll("([\\s]*\\() (?!FROM)", "("); - sql = sql.replaceAll("[\\s]*\\)", ")"); - //sql = sql.replaceAll("[dD][eE][cC][oO][dD][eE] ", "decode"); - //sql = sql.replaceAll("[\\s]*\\(", "("); - //sql = replaceNewLine(sql, "decode ", "decode"); - //sql = replaceNewLine(sql, "DECODE ", "decode"); - //sql = replaceNewLine(sql, "Decode ", "decode"); - - String nextToken = getNextSQLParseToken(sql, true); - String dbInfo = getDbInfo(); - boolean isCYMBALScript = false; - if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) { - try { - org.openecomp.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.openecomp.portalsdk.analytics.util.RemDbInfo(); - String dbType = remDbInfo.getDBType(dbInfo); - if (dbType.equals("DAYTONA") && !(nextToken.toUpperCase().equals("SELECT"))) { - isCYMBALScript = true; - } - } catch (Exception ex) { - throw new RaptorException(ex); - } - } - if ( isCYMBALScript == false ) { - while (nextToken.length() > 0) { - //System.out.println("LastToken " + lastToken + " NextToken " + nextToken); - - - if (parsedSQL.length() == 0) { - if (nextToken.toUpperCase().equals("SELECT")) - parsedSQL.append("SELECT "); - else - throw new org.openecomp.portalsdk.analytics.error.ValidationException( - "The SQL must start with the SELECT keyword."); - } else if (nextToken.toUpperCase().equals("DISTINCT") - && parsedSQL.toString().equals("SELECT ")) { - parsedSQL.append("DISTINCT "); - } else if (nextToken.equals("*") - && (parsedSQL.toString().equals("SELECT ") || parsedSQL.toString().equals( - "SELECT DISTINCT "))) { - throw new org.openecomp.portalsdk.analytics.error.ValidationException( - "You cannot use \"SELECT *\". Please specify select columns/expressions."); - } else if (nextToken.toUpperCase().equals("FROM")) { - if (lastToken != null) { - updatedReportCols.add(getParseSQLDataColumn(lastToken, null, parsedSQL, - updatedReportCols, false)); - lastToken = null; - } - - parsedSQL.append(" \n"); - while (lastParsePos < sql.length() - && Character.isWhitespace(sql.charAt(lastParsePos))) - lastParsePos++; - parsedSQL.append(sql.substring(lastParsePos)); - break; - } else { - //System.out.println("Next Token " + nextToken); - if (nextToken.charAt(nextToken.length() - 1) == ',') { - // The token ends with , - nextToken = nextToken.substring(0, nextToken.length() - 1); - - if (nextToken.length() == 0) { - if (lastToken != null) { - updatedReportCols.add(getParseSQLDataColumn(lastToken, null, - parsedSQL, updatedReportCols, false)); - lastToken = null; - } // else just comma => ignore it - } else { - //System.out.println("Next Token " + nextToken + " is Here" + " Last Token " + lastToken); - if (lastToken != null) { - updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken, - parsedSQL, updatedReportCols, false)); - lastToken = null; - } else - updatedReportCols.add(getParseSQLDataColumn(nextToken, null, - parsedSQL, updatedReportCols, false)); - } - } else { - // The token doesn't end with , - if (lastToken == null) - lastToken = nextToken; - else { - String token = getNextSQLParseToken(sql, false); - //System.out.println(" ********** " + token + " " + lastToken); - if (!token.toUpperCase().equals("FROM")) - throw new org.openecomp.portalsdk.analytics.error.ValidationException( - "|FROM keyword or a comma expected after [" + nextToken - + "]."); - //System.out.println("Next Token " + nextToken); - updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken, - parsedSQL, updatedReportCols, false)); - lastToken = null; - } // else - } // else - } // else - - lastParsePos = curSQLParsePos; - nextToken = getNextSQLParseToken(sql, true); - } // while - } else { // if CYMBAL Script - nextToken = getNextCYMBALSQLParseToken(sql, true); - Pattern re = null; - Matcher matcher = null; - String extracted = null; - while (nextToken.length() > 0) { - if (lastToken == null) lastToken = nextToken; - - if( lastToken.toUpperCase().equals("DO DISPLAY")) { - re = Pattern.compile("each(.*)\\[.(.*?)\\]"); //\\[(.*?)\\] - matcher = re.matcher(nextToken); - if (matcher.find()) { - extracted = matcher.group(); - re = Pattern.compile("\\[(.*?)\\]"); - matcher = re.matcher(nextToken); - if(matcher.find()) { - extracted = matcher.group(); - extracted = extracted.substring(1,extracted.length()-2); - StringTokenizer sToken = new StringTokenizer(extracted); - while(sToken.hasMoreTokens()) { - updatedReportCols.add(getParseSQLDataColumn("", sToken.nextToken(), - new StringBuffer(""), updatedReportCols, true)); - } - } - - } - - } - lastToken = nextToken; - nextToken = getNextCYMBALSQLParseToken(sql, true); - } - } - - if (updatedReportCols.size() == 0) - throw new org.openecomp.portalsdk.analytics.error.ValidationException( - "The SQL statement must have at least one column in the SELECT clause."); - - - return parsedSQL.toString(); - - } // parseReportSQL - - private String getNextCYMBALSQLParseToken(String sql, boolean updateParsePos) { - int braketCount = 0; - boolean isInsideQuote = false; - StringBuffer nextToken = new StringBuffer(); - for (int idxNext = curSQLParsePos; idxNext < sql.length(); idxNext++) { - char ch = sql.charAt(idxNext); - - if (ch!='\n') - nextToken.append(ch); - else break; - } // for - - return nextToken.toString(); - } // getNextSQLParseToken - - private String getNextSQLParseToken(String sql, boolean updateParsePos) { - int braketCount = 0; - boolean isInsideQuote = false; - StringBuffer nextToken = new StringBuffer(); - for (int idxNext = curSQLParsePos; idxNext < sql.length(); idxNext++) { - char ch = sql.charAt(idxNext); - - if (Character.isWhitespace(ch) || ch == ',') { - if (ch == ',') - nextToken.append(ch); - - if (nextToken.length() == 0) - continue; - else if (braketCount == 0 && (!isInsideQuote)) { - if (updateParsePos) - curSQLParsePos = idxNext + ((ch == ',') ? 1 : 0); - break; - } else if (ch != ',' && nextToken.charAt(nextToken.length() - 1) != ' ') - nextToken.append(' '); - } else { - nextToken.append(ch); - - if (ch == '(' || ch == '[') - braketCount++; - else if (ch == ')' || ch == ']') - braketCount--; - else if (ch == '\''/* ||ch=='\"' */) - isInsideQuote = (!isInsideQuote); - } // else - } // for - - return nextToken.toString(); - } // getNextSQLParseToken - - private DataColumnType getParseSQLDataColumn(String sqlExpression, String colId, - StringBuffer parsedSQL, Vector updatedReportCols, boolean isCYMBALScript) throws RaptorException { - DataColumnType dct = null; - - if (colId != null) { - if (!isParseSQLColID(colId)) - throw new org.openecomp.portalsdk.analytics.error.ValidationException( - "[" - + colId - + "] must either be a valid column id consisting only of letters, numbers, and underscores, or there must be a comma in front of it."); - - dct = getColumnById(colId); - } else { - // Getting unique column id - colId = ""; - int colIdN = 0; - for (int i = 0; (i < sqlExpression.length()) && (colIdN < 2); i++) - if (Character.isLetter(sqlExpression.charAt(i))) { - colId += sqlExpression.toLowerCase().charAt(i); - colIdN++; - } // if - - colIdN = getAllColumns().size() + updatedReportCols.size(); - for (boolean idAlreadyUsed = true; idAlreadyUsed; colIdN++) { - String newColId = colId + colIdN; - idAlreadyUsed = false; - - for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) - if (newColId.equals(((DataColumnType) iter.next()).getColId())) { - idAlreadyUsed = true; - break; - } - - if (!idAlreadyUsed) - for (Iterator iter = updatedReportCols.iterator(); iter.hasNext();) - if (newColId.equals(((DataColumnType) iter.next()).getColId())) { - idAlreadyUsed = true; - break; - } - } // for - - colId += (colIdN - 1); - } // else - - if (dct == null) { - dct = (new ObjectFactory()).createDataColumnType(); - dct.setColId(colId); - dct.setDisplayWidth(10); - dct.setDisplayAlignment("Left"); - dct.setVisible(true); - dct.setGroupBreak(false); // ??? - - boolean isValidIdentifier = Character.isLetterOrDigit(sqlExpression.charAt(0)); - for (int i = 0; i < sqlExpression.length(); i++) - if (!(Character.isLetterOrDigit(sqlExpression.charAt(i)) - || (sqlExpression.charAt(i) == '_') || (sqlExpression.charAt(i) == '$'))) { - isValidIdentifier = false; - break; - } // if - - if (isValidIdentifier) { - dct.setDisplayName(sqlExpression); - } else { - dct.setDisplayName(colId); - } // else - } // if - if(!isCYMBALScript) - sqlExpression = sqlExpression.replaceAll(", '", ",'"); - dct.setDbColName(sqlExpression); - dct.setColName(sqlExpression); - dct.setCalculated(true); - dct.setColType(AppConstants.CT_CHAR); - dct.setDbColType(AppConstants.CT_CHAR); - adjustColumnType(dct); // ??? - - if(!isCYMBALScript) { - if (parsedSQL.toString().equals("SELECT ") - || parsedSQL.toString().equals("SELECT DISTINCT ")) - parsedSQL.append("\n\t"); - else - parsedSQL.append(", \n\t"); - parsedSQL.append(sqlExpression); - parsedSQL.append(" "); - parsedSQL.append(colId); - } - - return dct; - } // getParseSQLDataColumn - - private boolean isParseSQLColID(String token) { - if (nvl(token).length() == 0) - return false; - - for (int i = 0; i < token.length(); i++) { - char ch = token.charAt(i); - - if (i == 0 && ch == '_') - return false; - - if (!(Character.isLetterOrDigit(ch) || ch == '_')) - return false; - } // for - - return true; - } // isParseSQLColID - - /*private*/ public String parseReportSQLForDrillDownParams(String reportSQL, DataColumnType dataColumnRequest, HttpServletRequest request){ - String param = nvl(dataColumnRequest.getDrillDownParams()); - String sql = reportSQL; - int pos = 0; - while (param.indexOf('[', pos) >= 0) { - int startIdx = param.indexOf('[',pos); - int endIdx = param.indexOf(']',startIdx+1); - pos = startIdx+1; - StringBuffer sb = new StringBuffer(); - if (startIdx > 0) - sb.append(param.substring(0, startIdx)); - else break; - - if (param.charAt(startIdx + 1) == '#') { - // Parameter is a form field value - String fieldId = param.substring(startIdx + 2, endIdx); - String fieldValue = request.getParameter(fieldId); - sql = Utils.replaceInString(sql, "[" + fieldId.toUpperCase()+"]", fieldValue ); - } - } - return sql; - } - -public List getMapMarkers(ReportData rd, org.openecomp.portalsdk.analytics.xmlobj.ReportMap xmlmap){ - - ArrayList markers = new ArrayList(); - int rNum = 0; - HashMap colHash = new HashMap(); - - for(rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext(); rNum++) { - DataRow dr = rd.reportDataRows.getNext(); - for(dr.resetNext(); dr.hasNext(); ) { - DataValue dv = dr.getNext(); - colHash.put(dv.getColId(), dv.getDisplayValueLinkHtml()); - } - - for (int i = 0; i < xmlmap.getMarkers().size(); i ++){ - Marker marker = new Marker("", "", ""); - org.openecomp.portalsdk.analytics.xmlobj.Marker m = (org.openecomp.portalsdk.analytics.xmlobj.Marker) xmlmap.getMarkers().get(i); - String address = (String) colHash.get(m.getAddressColumn()); - String data = (String) colHash.get(m.getDataColumn()); - marker.setAddress(address); - if (xmlmap.getAddAddressInDataYN() != null && xmlmap.getAddAddressInDataYN().equals("Y")){ - marker.setData(address + "
" + data); - } - else{ - marker.setData(data); - } - marker.setColor(m.getMarkerColor()); - markers.add(marker); - System.out.println("%%%%%%%%%%%% marker is : " + address + data); - } - - } - - return markers; - } - - - - public ReportParamValues getReportParamValues() { - return reportParamValues; - } - - public String getFormFieldFilled(String title) { - if( getFormFieldList()!=null && reportParamValues!=null && nvl(title).length()>0) { - for (Iterator iter1 = getFormFieldList().getFormField().iterator(); iter1.hasNext();) { - FormFieldType fft = (FormFieldType) iter1.next(); - String fieldDisplay = getFormFieldDisplayName(fft); - String fieldId = fft.getFieldId(); - if(!fft.getFieldType().equals(FormField.FFT_BLANK) && !fft.getFieldType().equals(FormField.FFT_LIST_MULTI) && !fft.getFieldType().equals(FormField.FFT_TEXTAREA)) { - String paramValue = Utils.oracleSafe(nvl(reportParamValues.getParamValue(fieldId))); - title = Utils.replaceInString(title, fieldDisplay, nvl( - paramValue, "")); - } - } - } - return title; - } - - public synchronized Object clone() { - try { - return super.clone(); - } catch (CloneNotSupportedException e) { - // this shouldn't happen, since we are Cloneable - throw new InternalError("Cloning throws error."); - } - } - - public VisualManager getVisualManager() { - return visualManager; - } - - public String getReportSQLWithRowNum(String _orderBy, boolean asc) { - String sql = getWholeSQL(); - int closeBracketPos = 0; - // Added reportSQLOnlyFirstPart which has Column information with Rownum - return nvl(getReportSQLOnlyFirstPart()) + " " + sql + ") x "; - - } - - public int getDisplayMode() { - return DISPLAY_MODE; - } - - public void setDisplayMode(int mode) { - DISPLAY_MODE = mode; - } - - public int getDateOption() { - return DATE_OPTION; - } - - public void setDateOption(int dateOption) { - DATE_OPTION = dateOption; - } - - public boolean isDisplayColTotals() { - return displayColTotals; - } - - public void setDisplayColTotals(boolean displayColTotals) { - this.displayColTotals = displayColTotals; - } - - public boolean isDisplayRowTotals() { - return displayRowTotals; - } - - public void setDisplayRowTotals(boolean displayRowTotals) { - this.displayRowTotals = displayRowTotals; - } - - - private boolean canPersistLinearReport() { - boolean visibleColExist = false; - - if (getDataSourceList().getDataSource().size() > 0) { - for (Iterator iter = getAllColumns().iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - - if (dct.isVisible()) { - visibleColExist = true; - break; - } - } // for - } // if - - return visibleColExist; - } // canPersistLinearReport - - public void persistLinearReport(HttpServletRequest request) - throws RaptorException { - if (!canPersistLinearReport()) - return; - - Connection connection = null; - try { - String userID = AppUtils.getUserID(request); - String reportXML = marshal(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report " + reportID - + " XML marshalled succesfully")); - - // Update report - verifySQLBasedReportAccess(request); - reportSecurity.reportUpdate(request); - connection = DbUtils.startTransaction(); - ReportLoader.updateCustomReportRec(connection, this, reportXML); - ReportLoader.createReportLogEntry(connection, reportID, userID, - AppConstants.RLA_UPDATE, "", ""); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB update report " - + reportID + " succesfull")); - DbUtils.commitTransaction(connection); - } catch (RaptorException e) { - e.printStackTrace(); - DbUtils.rollbackTransaction(connection); - throw e; - } finally { - DbUtils.clearConnection(connection); - } - } // persistLinearReport - - public void persistDashboardReport(HttpServletRequest request) - throws RaptorException { - - Connection connection = null; - try { - String userID = AppUtils.getUserID(request); - String reportXML = marshal(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] Report " + reportID - + " XML marshalled succesfully")); - - // Update report - verifySQLBasedReportAccess(request); - reportSecurity.reportUpdate(request); - connection = DbUtils.startTransaction(); - ReportLoader.updateCustomReportRec(connection, this, reportXML); - ReportLoader.createReportLogEntry(connection, reportID, userID, - AppConstants.RLA_UPDATE, "", ""); - logger.debug(EELFLoggerDelegate.debugLogger, ("[DEBUG MESSAGE FROM RAPTOR] DB update report " - + reportID + " succesfull")); - DbUtils.commitTransaction(connection); - } catch (RaptorException e) { - e.printStackTrace(); - DbUtils.rollbackTransaction(connection); - throw e; - } finally { - DbUtils.clearConnection(connection); - } - } // persistDashboardReport - public String getTotalSql() { - return totalSql; - } - - public void setTotalSql(String totalSql) { - this.totalSql = totalSql; - } - - public void setTriggerFormFieldCheck( ReportFormFields FormFieldList, FormField selectedFormField) { - - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - if(!ff.getFieldName().equals(selectedFormField.getFieldName())) { - if(nvl(ff.getBaseSQL()).length()>0 && ff.getBaseSQL().indexOf("["+selectedFormField.getFieldDisplayName() +"]")!= -1) { - selectedFormField.setTriggerOtherFormFields(true); - } - - } - } - - } - - public void setTriggerThisFormFieldCheck( ReportFormFields FormFieldList, FormField selectedFormField) { - - String sql = nvl(selectedFormField.getBaseSQL()).length()>0 ? selectedFormField.getBaseSQL():""; - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - FormField ff = (FormField) iter.next(); - if(!ff.getFieldName().equals(selectedFormField.getFieldName())) { - if(sql.indexOf("["+ff.getFieldDisplayName() +"]")!= -1) { - selectedFormField.setTriggerThisFormfield(true); - break; - } - - } - } - - } - - private boolean isAllowEdit(HttpServletRequest request) { - boolean allowEdit = false; - String userId = AppUtils.getUserID(request); - try { - if( AppUtils.isAdminUser(request) || AppUtils.isSuperUser(request) ) { - allowEdit = true; - } else { - if(getOwnerID().equals(userId)) allowEdit = true; - else allowEdit = false; - } - } catch (RaptorException ex) { - allowEdit = false; - } - return allowEdit; - } - public ReportJSONRuntime createReportJSONRuntime(HttpServletRequest request, ReportData rd) { - String userId = AppUtils.getUserID(request); - ObjectMapper mapper = new ObjectMapper(); - ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime(); - reportJSONRuntime.setReportTitle(getReportTitle()); - //reportJSONRuntime.setReportSubTitle(getReportSubTitle()); - reportJSONRuntime.setReportID(getReportID()); - reportJSONRuntime.setReportDescr(getReportDescr()); - reportJSONRuntime.setReportName(getReportName()); - reportJSONRuntime.setReportSubTitle(getReportSubTitle()); - reportJSONRuntime.setAllowSchedule(isAllowSchedule()); - reportJSONRuntime.setAllowEdit(isAllowEdit(request)); - reportJSONRuntime.setColIdxTobeFreezed(getFrozenColumnId()); - reportJSONRuntime.setNumFormCols(getNumFormColsAsInt()); - //back button url - reportJSONRuntime.setBackBtnURL(""); - String chartType = getChartType(); - boolean displayChart = (nvl(chartType).length()>0)&&getDisplayChart(); - boolean displayChartWizard = getDisplayChart(); - reportJSONRuntime.setChartAvailable(displayChart); - reportJSONRuntime.setChartWizardAvailable(displayChartWizard); - reportJSONRuntime.setDisplayData(!isDisplayOptionHideData()); - reportJSONRuntime.setDisplayForm(!isDisplayOptionHideForm()); - reportJSONRuntime.setHideFormFieldsAfterRun(isHideFormFieldAfterRun()); - reportJSONRuntime.setDisplayExcel(!isDisplayOptionHideExcelIcons()); - reportJSONRuntime.setDisplayPDF(!isDisplayOptionHidePDFIcons()); - ArrayList formFieldValues = new ArrayList(); - ArrayList formFieldJSONList = new ArrayList(); - if(getReportFormFields()!=null) { - formFieldJSONList = new ArrayList(getReportFormFields().size()); - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - formFieldValues = new ArrayList(); - FormField ff = (FormField) iter.next(); - ff.setDbInfo(getDbInfo()); - FormFieldJSON ffJSON = new FormFieldJSON(); - ffJSON.setFieldId(ff.getFieldName()); - ffJSON.setFieldType(ff.getFieldType()); - ffJSON.setFieldDisplayName(ff.getFieldDisplayName()); - ffJSON.setHelpText(ff.getHelpText()); - ffJSON.setValidationType(ff.getValidationType()); - ffJSON.setVisible(ff.isVisible()); - //ffJSON.setTriggerOtherFormFields(ff.getDependsOn()); - IdNameList lookup = null; - lookup = ff.getLookupList(); - String selectedValue = ""; - String oldSQL = ""; - IdNameList lookupList = null; - boolean readOnly = false; - if(lookup!=null) { - if(!ff.hasPredefinedList) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - oldSQL = lu.getSql(); - setTriggerFormFieldCheck( getReportFormFields(), ff); - ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); - SQL = parseAndFillReq_Session_UserValues(request, SQL, userId); - SQL = parseAndFillWithCurrentValues(request, SQL, ff); - String defaultSQL = lu.getDefaultSQL(); - defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId); - defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff); - lookup = new IdNameSql(-1,SQL,defaultSQL); - - lookupList = lookup; - try { - lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId()); - } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - } - lookup.trimToSize(); - - String[] requestValue = request.getParameterValues(ff.getFieldName()); - - if(lookup != null && lookup.size() > 0) { - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - if(requestValue != null && Arrays.asList(requestValue).contains(value.getId())) { - //if(value.getId().equals(requestValue)) - value.setDefaultValue(true); - } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) { - if(ff.getDefaultValue().equals(value.getId())) { - value.setDefaultValue(true); - } - } - if(!(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) && value.isDefaultValue()) - formFieldValues.add(value); - else if(ff.getFieldType().equals(FormField.FFT_CHECK_BOX) || ff.getFieldType().equals(FormField.FFT_COMBO_BOX) || ff.getFieldType().equals(FormField.FFT_LIST_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI)) { - formFieldValues.add(value); - } - //break; - } - } else { - if(requestValue!=null && requestValue.length>0) { - IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); - formFieldValues.add(value); - } - } - - } else { - setTriggerFormFieldCheck( getReportFormFields(), ff); - ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); - String[] requestValue = request.getParameterValues(ff.getFieldName()); - if(requestValue!=null && requestValue.length>0) { - IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); - formFieldValues.add(value); - } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) { - IdNameValue value = new IdNameValue(ff.getDefaultValue(), ff.getDefaultValue(), true, false); - formFieldValues.add(value); - } - } - if(!ff.hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - } - - - - ffJSON.setFormFieldValues(formFieldValues); - formFieldJSONList.add(ffJSON); - } // for - } - reportJSONRuntime.setFormFieldList(formFieldJSONList); - //reportJSONRuntime.setReportDataColumns(get); - int count = 0; - Map dvJSON = null; - if(rd!=null) { - count = 0; - reportJSONRuntime.setTotalRows(getReportDataSize()); - ArrayList colList = new ArrayList(); - ArrayList> reportDataRows = new ArrayList>(); - for(rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext(); ) { - count++; - ColumnHeaderRow chr = rd.reportColumnHeaderRows.getNext(); - for(chr.resetNext(); chr.hasNext(); ) { - colList.add(chr.getNext()); - } - } - if(getReportDataSize() > 0) { - count = 0; - for(rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext(); count++) { - dvJSON = new HashMap(); - DataRow dr = rd.reportDataRows.getNext(); - for(dr.resetNext(); dr.hasNext(); ) { - DataValue dv = dr.getNext(); - try { - dvJSON.put(dv.getColId(), dv); - } catch (Exception ex) { - ex.printStackTrace(); - - } - } - reportDataRows.add(dvJSON); - } - } - reportJSONRuntime.setReportDataColumns(colList); - reportJSONRuntime.setReportDataRows(reportDataRows); - //reportJSONRuntime.setSqlWhole(getWholeSQL()); - reportJSONRuntime.setPageSize(getPageSize()); - - } - - if(getReportDataSize() <= 0) { - reportJSONRuntime.setMessage(getEmptyMessage()); - } - reportJSONRuntime.setSqlWhole(getWholeSQL()); - return reportJSONRuntime; - - } - - public ReportJSONRuntime createFormFieldJSONRuntime(HttpServletRequest request) { - String userId = AppUtils.getUserID(request); - ObjectMapper mapper = new ObjectMapper(); - ReportJSONRuntime reportJSONRuntime = new ReportJSONRuntime(); - reportJSONRuntime.setReportTitle(getReportTitle()); - reportJSONRuntime.setReportID(getReportID()); - reportJSONRuntime.setReportName(getReportName()); - reportJSONRuntime.setReportSubTitle(getReportSubTitle()); - reportJSONRuntime.setNumFormCols(getNumFormColsAsInt()); - ArrayList formFieldValues = new ArrayList(); - ArrayList formFieldJSONList = new ArrayList(); - if(reportFormFields!=null) { - formFieldJSONList = new ArrayList(reportFormFields.size()); - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList(); - FormField ff = (FormField) iter.next(); - FormFieldJSON ffJSON = new FormFieldJSON(); - ffJSON.setFieldId(ff.getFieldName()); - ffJSON.setFieldType(ff.getFieldType()); - ffJSON.setFieldDisplayName(ff.getFieldDisplayName()); - ffJSON.setHelpText(ff.getHelpText()); - ffJSON.setValidationType(ff.getValidationType()); - ffJSON.setFormFieldValues(formFieldValues); - ffJSON.setVisible(ff.isVisible()); - formFieldJSONList.add(ffJSON); - } - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList(); - FormField ff = (FormField) iter.next(); - ff.setDbInfo(getDbInfo()); - for (Iterator iter1 = formFieldJSONList.iterator(); iter1.hasNext();) { - FormFieldJSON ffJSON = (FormFieldJSON) iter1.next(); - if(ffJSON.getFieldId().equals(ff.getFieldName())) { - IdNameList lookup = null; - lookup = ff.getLookupList(); - String selectedValue = ""; - String oldSQL = ""; - IdNameList lookupList = null; - boolean readOnly = false; - if(lookup!=null) { - if(!ff.hasPredefinedList) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - oldSQL = lu.getSql(); - setTriggerFormFieldCheck( getReportFormFields(), ff); - ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); - setTriggerThisFormFieldCheck(getReportFormFields(), ff); - SQL = parseAndFillReq_Session_UserValues(request, SQL, userId); - SQL = parseAndFillOtherFormfieldValues(request, SQL, userId, formFieldJSONList); - //SQL = parseAndFillWithCurrentValues(formGrid,SQL, ff); - String defaultSQL = lu.getDefaultSQL(); - defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId); - //defaultSQL = parseAndFillWithCurrentValues(formGrid,defaultSQL, ff); - lookup = new IdNameSql(-1,SQL,defaultSQL); - - lookupList = lookup; - try { - lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId()); - } catch (Exception e ){ e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - } - lookup.trimToSize(); - - String requestValue = request.getParameter(ff.getFieldName()); - ArrayList requestValueList = new ArrayList(); - requestValueList.add(requestValue); - - /*if(ff.isTriggerThisFormfield()) { - refreshFormFieldsWithLatestValue(request, userId, ff, formFieldJSONList); - }*/ - - - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - if(nvl(requestValue).length()>0) { - if(value.getId().equals(requestValue)) - value.setDefaultValue(true); - } - formFieldValues.add(value); - //break; - } - - } else { - setTriggerFormFieldCheck( getReportFormFields(), ff); - ffJSON.setTriggerOtherFormFields(ff.isTriggerOtherFormFields()); - String[] requestValue = request.getParameterValues(ff.getFieldName()); - if(requestValue!=null && requestValue.length>0) { - IdNameValue value = new IdNameValue(requestValue[0], requestValue[0], true, false); - formFieldValues.add(value); - } else if (AppUtils.nvl(ff.getDefaultValue()).length()>0) { - IdNameValue value = new IdNameValue(ff.getDefaultValue(), ff.getDefaultValue(), true, false); - formFieldValues.add(value); - } - } - if(!ff.hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - } - - - //if(!ff.isTriggerThisFormfield()) { - ffJSON.setFormFieldValues(formFieldValues); - //} - - break; - - } //if - } //for - }//for - }//if - - reportJSONRuntime.setFormFieldList(formFieldJSONList); - //reportJSONRuntime.setReportDataColumns(get); - - return reportJSONRuntime; - - } - - - private String parseAndFillOtherFormfieldValues(HttpServletRequest request, String SQL, String userId, ArrayList formFieldJSONList) { - ArrayList formFieldValues = new ArrayList(); - String selectedValue = ""; - String displayName = ""; - for (Iterator iter1 = formFieldJSONList.iterator(); iter1.hasNext();) { - FormFieldJSON ffJSON = (FormFieldJSON) iter1.next(); - displayName = ffJSON.getFieldDisplayName(); - ArrayList formfieldvalues = ffJSON.getFormFieldValues(); - for (int i = 0; i< formfieldvalues.size(); i++) { - IdNameValue formfieldItem = formfieldvalues.get(i); - if(formfieldItem.isDefaultValue()) { - selectedValue = formfieldItem.getId(); - } - } - SQL = Utils.replaceInString(SQL, "["+displayName+"]", selectedValue); - } - return SQL; - - } - - private void refreshFormFieldsWithLatestValue(HttpServletRequest request, String userId, FormField ff_src, ArrayList formFieldJSONList) { - ArrayList formFieldValues = new ArrayList(); - List requestValueList = null; - IdNameList lookup = null; - lookup = ff_src.getLookupList(); - IdNameSql lu = (IdNameSql) lookup; - String SQL = "" ; - String oldSQL = ""; - String oldDefaultSQL = ""; - String defaultSQL = ""; - IdNameList lookupList = null; - if(lu != null) { - SQL = lu.getSql(); - oldSQL = lu.getSql(); - oldDefaultSQL = lu.getDefaultSQL(); - defaultSQL = lu.getDefaultSQL(); - } - boolean readOnly = false; - for (Iterator iter1 = formFieldJSONList.iterator(); iter1.hasNext();) { - FormFieldJSON ffJSON = (FormFieldJSON) iter1.next(); - if((ffJSON.getFieldId().equals(ff_src.getFieldName())) && ffJSON.isVisible()) { - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList(); - FormField ff = (FormField) iter.next(); - if(!ff.getFieldName().equals(ff_src.getFieldName())) { - //IdNameList lookup = null; - //lookup = ff.getLookupList(); - String selectedValue = ""; - - - - String [] requestParam = request.getParameterValues(ff.getFieldName()); - if(requestParam != null) { - requestValueList = Arrays.asList(request.getParameterValues(ff.getFieldName())); - - } else { - requestValueList = new ArrayList(); - } - - - if(nvl(ff_src.getBaseSQL()).length()>0 && ff_src.getBaseSQL().indexOf("["+ff.getFieldDisplayName() +"]")!= -1) { - if(lookup!=null) { - try { - if(!ff_src.hasPredefinedList) { - String formatSelected = null; - if(ff_src.getFieldType().equals(FormField.FFT_LIST_MULTI) || ff_src.getFieldType().equals(FormField.FFT_CHECK_BOX)) { - formatSelected = formatSelectedItems(requestValueList, ff_src.getFieldType()); - } else - formatSelected = requestValueList.size()>0?requestValueList.get(0):""; - SQL = Utils.replaceInString(SQL, "["+ff_src.getFieldDisplayName()+"]", formatSelected); - defaultSQL = Utils.replaceInString(defaultSQL, "["+ff_src.getFieldDisplayName()+"]", formatSelected); - defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff_src); - defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId); - SQL = parseAndFillReq_Session_UserValues(request, SQL, userId); - SQL = parseAndFillWithCurrentValues(request, SQL, ff_src); - - } - } catch (Exception ex) { - ex.printStackTrace(); - } - - } - - } - } - } - - if(nvl(ff_src.getBaseSQL()).length()>0) { - lookup = new IdNameSql(-1,SQL,defaultSQL); - lookupList = lookup; - try { - lookup.loadUserData(0, "", ff_src.getDbInfo(), ff_src.getUserId()); - } catch (Exception e ){ - e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - if(!ff_src.hasPredefinedList) { - lookup.trimToSize(); - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); - formFieldValues.add(value); - } - } - ffJSON.setFormFieldValues(formFieldValues); - } - if(!ff_src.hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - if(oldDefaultSQL != null && !oldDefaultSQL.equals("")) { - ((IdNameSql)lookup).setDefaultSQL(oldDefaultSQL); - } - } - - } - } - - } - - - private void triggerOtherFormFieldsWithThisValue(HttpServletRequest request, String userId, FormField ff_src, ArrayList requestValueList, ArrayList formFieldJSONList) { - ArrayList formFieldValues = new ArrayList(); - //ArrayList formFieldJSONList = new ArrayList(); - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList(); - FormField ff = (FormField) iter.next(); - if(!ff_src.getFieldName().equals(ff.getFieldName())) { - for (Iterator iter1 = formFieldJSONList.iterator(); iter1.hasNext();) { - FormFieldJSON ffJSON = (FormFieldJSON) iter1.next(); - if(ffJSON.getFieldId().equals(ff.getFieldName()) && ffJSON.isVisible()) { - if(nvl(ff.getBaseSQL()).length()>0 && ff.getBaseSQL().indexOf("["+ff_src.getFieldDisplayName() +"]")!= -1) { - IdNameList lookup = null; - lookup = ff.getLookupList(); - String selectedValue = ""; - String oldSQL = ""; - String oldDefaultSQL = ""; - IdNameList lookupList = null; - boolean readOnly = false; - if(lookup!=null) { - try { - if(!ff.hasPredefinedList) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - oldSQL = lu.getSql(); - oldDefaultSQL = lu.getDefaultSQL(); - String defaultSQL = lu.getDefaultSQL(); - String formatSelected = null; - if(ff_src.getFieldType().equals(FormField.FFT_LIST_MULTI) || ff_src.getFieldType().equals(FormField.FFT_CHECK_BOX)) { - formatSelected = formatSelectedItems(requestValueList, ff.getFieldType()); - } - else - formatSelected = requestValueList.size()>0?requestValueList.get(0):""; - SQL = Utils.replaceInString(SQL, "["+ff_src.getFieldDisplayName()+"]", formatSelected); - defaultSQL = Utils.replaceInString(defaultSQL, "["+ff_src.getFieldDisplayName()+"]", formatSelected); - defaultSQL = parseAndFillWithCurrentValues(request, defaultSQL, ff_src); - defaultSQL = parseAndFillReq_Session_UserValues(request, defaultSQL, userId); - SQL = parseAndFillReq_Session_UserValues(request, SQL, userId); - SQL = parseAndFillWithCurrentValues(request, SQL, ff_src); - lookup = new IdNameSql(-1,SQL,defaultSQL); - lookupList = lookup; - try { - lookup.loadUserData(0, "", ff.getDbInfo(), ff.getUserId()); - } catch (Exception e ){ - e.printStackTrace(); //throw new RaptorRuntimeException(e); - } - } - lookup.trimToSize(); - - - - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - readOnly = value.isReadOnly(); -// if(nvl(requestValue).length()>0) { -// if(value.getId().equals(requestValue)) -// value.setDefaultValue(true); -// } - formFieldValues.add(value); - //break; - } - - ffJSON.setFormFieldValues(formFieldValues); - - if(!ff.hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - if(oldDefaultSQL != null && !oldDefaultSQL.equals("")) { - ((IdNameSql)lookup).setDefaultSQL(oldDefaultSQL); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - } //ff baseSQL - } - } - } - } - - } - - public String formatSelectedItems(List selectedItems, String type) { - StringBuffer value = new StringBuffer(""); - int count = 0; - boolean multiple = false; - if(type.equals("LIST_MULTI_SELECT")) - multiple = true; - //multiple = (selectedItems.size()>1); - for(Iterator iter = selectedItems.iterator(); iter.hasNext(); ) { - count++; - String entry = (String) iter.next(); - if(count == 1 && multiple) - value.append("("); - //if(type.equals(FormField.FFT_CHECK_BOX)) - /*if(type.equals(FormField.FFT_CHECK_BOX)) - value.append("'"+Utils.oracleSafe(entry)+"'"); - else*/ if (type.equals(FormField.FFT_LIST_MULTI)) - value.append("'"+Utils.oracleSafe(entry)+"'"); - else if(type.equals(FormField.FFT_LIST_BOX)) - value.append(Utils.oracleSafe(entry)); - else - value.append("'"+Utils.oracleSafe(entry)+"'"); - if((count < selectedItems.size()) && multiple) - value.append(","); - if((count == selectedItems.size()) && multiple) - value.append(")"); - } - - if(value.length()>0) - return value.toString(); - else - return null; - } - -public String parseAndFillWithCurrentValues(HttpServletRequest request, String sql, FormField source_Formfield) { - - if (getFormFieldList() != null) { - for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - String fieldId = fft.getFieldId(); - String fieldDisplay = getFormFieldDisplayName(fft); - String formfield_value = ""; - List selectedItems = new ArrayList(); - //Added so that Combo Box in old RAPTOR definition is translated to List box - if(fft.getFieldType().equals(FormField.FFT_COMBO_BOX)) { - fft.setFieldType(FormField.FFT_LIST_BOX); - } - if(!fft.getFieldType().equals(FormField.FFT_BLANK)) { - //if(source_Formfield==null || (source_Formfield!=null && !fft.getFieldId().equals(source_Formfield.getFieldName()))) { - // Add oracle safe - // Add param base sql - if(fft.getFieldType().equals(FormField.FFT_LIST_MULTI) || fft.getFieldType().equals(FormField.FFT_CHECK_BOX)) { - if(request.getParameterValues(fieldId)!=null && request.getParameterValues(fieldId).length > 0) { - - selectedItems = Arrays.asList(request.getParameterValues(fieldId)); - formfield_value = formatSelectedItems(selectedItems, fft.getFieldType()); - } else { - formfield_value = ""; - } - } else if(fft.getFieldType().equals(FormField.FFT_RADIO_BTN)) { - if(request.getParameter(fieldId)!=null) { - formfield_value = request.getParameter(fieldId); - } else { - formfield_value = ""; - } - } else if (fft.getFieldType().equals(FormField.FFT_HIDDEN)) { - if(request.getParameter(fieldId)!=null) { - formfield_value = request.getParameter(fieldId); - } else { - formfield_value = ""; - } - } else if((fft.getFieldType().equals(FormField.FFT_TEXT) || fft.getFieldType().equals(FormField.FFT_TEXTAREA)) && - (!fft.getValidationType().equals(FormField.VT_DATE) && !fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)&& - !fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) && !fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) ) { - if(request.getParameter(fieldId)!=null) { - formfield_value = request.getParameter(fieldId); - } else { - formfield_value = ""; - } - } else if (fft.getValidationType().equals(FormField.VT_DATE) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)|| - fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - /*if(formGrid.hasFellow(fieldId, true)) { - Datebox tb = (Datebox) formGrid.getFellowIfAny(fieldId, true); - try { - formfield_value = tb.getText(); - } catch (WrongValueException ex) { - formfield_value = ""; - } - if(AppUtils.nvl(formfield_value).length() > 0) { - if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { - if(formGrid.hasFellow(fieldId+"_Hr", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - } - } else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { - if(formGrid.hasFellow(fieldId+"_Min", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - Label hiddenLbMin = (Label) formGrid.getFellowIfAny(fieldId+"_Min", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue(); - - } - } else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - if(formGrid.hasFellow(fieldId+"_Sec", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - Label hiddenLbMin = (Label) formGrid.getFellowIfAny(fieldId+"_Min", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue(); - Label hiddenLbSec = (Label) formGrid.getFellowIfAny(fieldId+"_Sec", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue()+ ":" +hiddenLbSec.getValue(); - - } - } - } - - } else { - formfield_value = ""; - }*/ - } else if ((fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)|| - fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC))) { - /*if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)|| - fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { - if(formGrid.hasFellow(fieldId+"_Hr", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - } - } else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { - if(formGrid.hasFellow(fieldId+"_Min", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - Label hiddenLbMin = (Label) formGrid.getFellowIfAny(fieldId+"_Min", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue(); - - } - } else if(fft.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - if(formGrid.hasFellow(fieldId+"_Sec", true)) { - Label hiddenLbHr = (Label) formGrid.getFellowIfAny(fieldId+"_Hr", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue(); - Label hiddenLbMin = (Label) formGrid.getFellowIfAny(fieldId+"_Min", true); - //formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue(); - Label hiddenLbSec = (Label) formGrid.getFellowIfAny(fieldId+"_Sec", true); - formfield_value = formfield_value + " " + hiddenLbHr.getValue() + ":" +hiddenLbMin.getValue()+ ":" +hiddenLbSec.getValue(); - - } - } - - } */ - } else if (fft.getFieldType().equals(FormField.FFT_TEXT_W_POPUP)) { - if(request.getParameter(fieldId)!=null) { - formfield_value = request.getParameter(fieldId); - } else { - formfield_value = ""; - } - } else if (fft.getFieldType().equals(FormField.FFT_LIST_BOX)) { - if(request.getParameter(fieldId)!=null) { - formfield_value = request.getParameter(fieldId); - } else { - formfield_value = ""; - } - //} - } - if(nvl(formfield_value).length()>0) { - sql = Utils.replaceInString(sql, fieldDisplay, formfield_value); - } else { - sql = Utils.replaceInString(sql, "'"+fieldDisplay+"'", "null"); - sql = Utils.replaceInString(sql, fieldDisplay, "null"); - //sql = Utils.replaceInString(sql, fieldDisplay, "''"); - } - } // for - } - } - return sql; - } - public String parseAndFillReq_Session_UserValues(HttpServletRequest request, String sql, String user_id) { - HttpSession session = request.getSession(); - - String[] reqParameters = Globals.getRequestParams().split(","); - String[] sessionParameters = Globals.getSessionParams().split(","); - String[] scheduleSessionParameters = Globals.getSessionParamsForScheduling().split(","); - - - if(AppUtils.nvl(sql).length()>0) { - for (int i = 0; i < reqParameters.length; i++) { - if(!reqParameters[i].startsWith("ff") && (request.getParameter(reqParameters[i].toUpperCase())!=null && request.getParameter(reqParameters[i].toUpperCase()).length() > 0)) - sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i].toUpperCase()) ); - else if (request.getParameter(reqParameters[i])!=null && request.getParameter(reqParameters[i]).length() > 0) - sql = Utils.replaceInString(sql, "[" + reqParameters[i].toUpperCase()+"]", request.getParameter(reqParameters[i]) ); - } - - for (int i = 0; i < scheduleSessionParameters.length; i++) { - //debugLogger.debug(" Session " + " scheduleSessionParameters[i] " + scheduleSessionParameters[i].toUpperCase() + " " + request.getParameter(scheduleSessionParameters[i])); - if(request.getParameter(scheduleSessionParameters[i])!=null && request.getParameter(scheduleSessionParameters[i]).trim().length()>0 ) - sql = Utils.replaceInString(sql, "[" + scheduleSessionParameters[i].toUpperCase()+"]", request.getParameter(scheduleSessionParameters[i]) ); - if(request.getAttribute(scheduleSessionParameters[i])!=null && ((String)request.getAttribute(scheduleSessionParameters[i])).trim().length()>0 ) - sql = Utils.replaceInString(sql, "[" + scheduleSessionParameters[i].toUpperCase()+"]", (String) request.getAttribute(scheduleSessionParameters[i]) ); - - } - - for (int i = 0; i < sessionParameters.length; i++) { - //if(!sessionParameters[i].startsWith("ff")) - //fieldSQL = Utils.replaceInString(fieldSQL, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i].toUpperCase()) ); - //else { - if (session.getAttribute(sessionParameters[i])!=null && ((String)session.getAttribute(sessionParameters[i])).length() > 0) { - //debugLogger.debug(" Session " + " sessionParameters[i] " + sessionParameters[i] + " " + (String)session.getAttribute(sessionParameters[i])); - sql = Utils.replaceInString(sql, "[" + sessionParameters[i].toUpperCase()+"]", (String)session.getAttribute(sessionParameters[i]) ); - } - // } - } - sql = Utils.replaceInString(sql, "[USERID]", user_id); - sql = Utils.replaceInString(sql, "[USER_ID]", user_id); - sql = Utils.replaceInString(sql, "[LOGGED_USERID]", user_id); - - } - return sql; - } - -} // ReportRuntime diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java deleted file mode 100644 index b1cdedfa..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -public class TimeSeriesChartOptions { - private String lineChartRenderer; - private boolean multiSeries; - private boolean nonTimeAxis; - private boolean showXAxisLabel; - private boolean addXAxisTicker; - - public String getLineChartRenderer() { - return lineChartRenderer; - } - public void setLineChartRenderer(String lineChartRenderer) { - this.lineChartRenderer = lineChartRenderer; - } - public boolean isMultiSeries() { - return multiSeries; - } - public void setMultiSeries(boolean multiSeries) { - this.multiSeries = multiSeries; - } - public boolean isNonTimeAxis() { - return nonTimeAxis; - } - public void setNonTimeAxis(boolean nonTimeAxis) { - this.nonTimeAxis = nonTimeAxis; - } - public boolean isShowXAxisLabel() { - return showXAxisLabel; - } - public void setShowXAxisLabel(boolean showXAxisLabel) { - this.showXAxisLabel = showXAxisLabel; - } - public boolean isAddXAxisTicker() { - return addXAxisTicker; - } - public void setAddXAxisTicker(boolean addXAxisTicker) { - this.addXAxisTicker = addXAxisTicker; - } - - - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java deleted file mode 100644 index 7b5ed449..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.*; - -import org.openecomp.portalsdk.analytics.*; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; - -public class VisualManager extends RaptorObject { - private HashMap hiddenCols = new HashMap(); - - private String sortByColId = ""; - - private String sortByAscDesc = AppConstants.SO_ASC; - - public VisualManager() { - super(); - } - - public void hideColumn(String colId) { - hiddenCols.put(colId, "Y"); - } // hideColumn - - public void showColumn(String colId) { - hiddenCols.put(colId, "N"); - } // showColumn - - public boolean isColumnVisible(String colId) { - return nvl((String) hiddenCols.get(colId), "N").equals("N"); - } // isColumnVisible - - public void setSortByColumn(String colId) { - if (sortByColId.equals(colId)) - sortByAscDesc = sortByAscDesc.equals(AppConstants.SO_ASC) ? AppConstants.SO_DESC - : AppConstants.SO_ASC; - else { - sortByColId = colId; - sortByAscDesc = AppConstants.SO_ASC; - } - } // setSortByColumn - - public String getSortByColId() { - return sortByColId; - } - - public String getSortByAscDesc() { - return sortByAscDesc; - } - -} // VisualManager diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java deleted file mode 100644 index 91e8e9db..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import java.util.*; - -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; - -public class ReportSearchResult extends SearchResult { - private static final String HTML_FORM = "forma"; - - public ReportSearchResult(int pageNo) { - this(pageNo, Globals.getDefaultPageSize(), -1, -1); - } // ReportSearchResult - - public ReportSearchResult(int pageNo, int writeAccessColIndex, int ownerIndicatorColIndex) { - this(pageNo, Globals.getDefaultPageSize(), writeAccessColIndex, ownerIndicatorColIndex); - } // ReportSearchResult - - public ReportSearchResult(int pageNo, int pageSize, int writeAccessColIndex, - int ownerIndicatorColIndex) { - super(pageNo, pageSize, writeAccessColIndex, ownerIndicatorColIndex); - - addColumn(new SearchResultColumn("no","No", "5%", "Center")); - addColumn(new SearchResultColumn("rep_id","Report ID", "5%", "Center")); - addColumn(new SearchResultColumn("rep_name","Report Name", "25%", "Left")); - addColumn(new SearchResultColumn("descr","Description", "30%", "Left")); - addColumn(new SearchResultColumn("owner","Report Owner", "10%", "Center")); - addColumn(new SearchResultColumn("create_date","Create Date", "10%", "Center")); - addColumn(new SearchResultColumn("copy","  Copy  ", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.copy';", "Copy report", HTML_FORM, - "Are you sure you want to create a copy of this report?", AppUtils - .getImgFolderURL() - + "modify_icon.gif", "13", "12", true, false, false)); - /*addColumn(new SearchResultColumn("  Schedule  ", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.schedule_only';", "Schedule report", HTML_FORM, - null, AppUtils - .getImgFolderURL() - + "calendar_icon.gif", "13", "12", true, false, false)); - */ - - addColumn(new SearchResultColumn("edit","  Edit  ", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.edit';", "Edit report", HTML_FORM, null, AppUtils - .getImgFolderURL() - + "pen_paper.gif", "12", "12", false, true, false)); - addColumn(new SearchResultColumn("delete","Delete", "5%", "Center", "document." + HTML_FORM - + "." + AppConstants.RI_ACTION + ".value='report.delete';", "Delete report", - HTML_FORM, "Are you sure you want to delete this report?", AppUtils - .getImgFolderURL() - + "deleteicon.gif", "12", "12", false, false, true)); - addColumn(new SearchResultColumn("schedule","Schedule", "5%", "Center", "document." + HTML_FORM - + "." + AppConstants.RI_ACTION + ".value='report.schedule.report.submit_wmenu';", "Schedule report", - HTML_FORM, null, AppUtils - .getImgFolderURL() - + "calendar_icon.gif", "20", "20", false, false, false, true)); - addColumn(new SearchResultColumn("run","  Run  ", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.run';", "Run report", HTML_FORM, null, AppUtils - .getImgFolderURL() - + "test_run.gif", "12", "12")); - } // ReportSearchResult - -} // ReportSearchResult - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java deleted file mode 100644 index 379a0cd2..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java +++ /dev/null @@ -1,249 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import java.util.*; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; - -import com.fasterxml.jackson.databind.ObjectMapper; - -class MetaReport { - private boolean pagination = true; - private int pageSize; - private int totalSize; - private int pageNo; - public boolean isPagination() { - return pagination; - } - public void setPagination(boolean pagination) { - this.pagination = pagination; - } - public int getPageSize() { - return pageSize; - } - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - public int getTotalSize() { - return totalSize; - } - public void setTotalSize(int totalSize) { - this.totalSize = totalSize; - } - public int getPageNo() { - return pageNo; - } - public void setPageNo(int pageNo) { - this.pageNo = pageNo; - } - - -} -class SearchReport { - private MetaReport metaReport; - public MetaReport getMetaReport() { - return metaReport; - } - public void setMetaReport(MetaReport metaReport) { - this.metaReport = metaReport; - } - private ArrayList> columns = new ArrayList>(); - private ArrayList> rows = new ArrayList>(); - public ArrayList> getColumns() { - return columns; - } - public void setColumns(ArrayList> columns) { - this.columns = columns; - } - public ArrayList> getRows() { - return rows; - } - public void setRows(ArrayList> rows) { - this.rows = rows; - } - -} - -public class ReportSearchResultJSON extends SearchResultJSON { - private static final String HTML_FORM = "forma"; - private String JSONString= ""; - private SearchReport searchReport; - //private ArrayList> columns = new ArrayList>(); - //private ArrayList> rows = new ArrayList>(); - - - public ReportSearchResultJSON(int pageNo) { - this(pageNo, Globals.getDefaultPageSize(), -1, -1); - } // ReportSearchResult - - public ReportSearchResultJSON(int pageNo, int writeAccessColIndex, int ownerIndicatorColIndex) { - this(pageNo, Globals.getDefaultPageSize(), writeAccessColIndex, ownerIndicatorColIndex); - } // ReportSearchResult - - public ReportSearchResultJSON(int pageNo, int pageSize, int writeAccessColIndex, - int ownerIndicatorColIndex) { - - searchReport = new SearchReport(); - MetaReport metaReport = new MetaReport(); - //if(searchReport.getMetaReport()!=null) - searchReport.setMetaReport(metaReport); - metaReport.setPageNo(pageNo); - metaReport.setPageSize(pageSize); - metaReport.setPagination(true); - addColumn(new SearchResultColumn("no", "No", "5%", "Center")); - addColumn(new SearchResultColumn("rep_id", "Report ID", "5%", "Center")); - addColumn(new SearchResultColumn("rep_name", "Report Name", "25%", "Left")); - addColumn(new SearchResultColumn("descr", "Description", "30%", "Left")); - addColumn(new SearchResultColumn("owner", "Report Owner", "10%", "Center")); - addColumn(new SearchResultColumn("create_date", "Create Date", "10%", "Center")); - addColumn(new SearchResultColumn("copy", "Copy", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.copy';", "Copy report", HTML_FORM, - "Are you sure you want to create a copy of this report?", AppUtils - .getImgFolderURL() - + "modify_icon.gif", "13", "12", true, false, false)); - /*addColumn(new SearchResultColumn("  Schedule  ", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.schedule_only';", "Schedule report", HTML_FORM, - null, AppUtils - .getImgFolderURL() - + "calendar_icon.gif", "13", "12", true, false, false)); - */ - - addColumn(new SearchResultColumn("edit", "Edit", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.edit';", "Edit report", HTML_FORM, null, AppUtils - .getImgFolderURL() - + "pen_paper.gif", "12", "12", false, true, false)); - addColumn(new SearchResultColumn("delete", "Delete", "5%", "Center", "document." + HTML_FORM - + "." + AppConstants.RI_ACTION + ".value='report.delete';", "Delete report", - HTML_FORM, "Are you sure you want to delete this report?", AppUtils - .getImgFolderURL() - + "deleteicon.gif", "12", "12", false, false, true)); - addColumn(new SearchResultColumn("schedule", "Schedule", "5%", "Center", "document." + HTML_FORM - + "." + AppConstants.RI_ACTION + ".value='report.schedule.report.submit_wmenu';", "Schedule report", - HTML_FORM, null, AppUtils - .getImgFolderURL() - + "calendar_icon.gif", "20", "20", false, false, false, true)); - addColumn(new SearchResultColumn("run", "Run", "5%", "Center", - "document." + HTML_FORM + "." + AppConstants.RI_ACTION - + ".value='report.run';", "Run report", HTML_FORM, null, AppUtils - .getImgFolderURL() - + "test_run.gif", "12", "12")); - searchReport.getColumns().add(searchResultColumns); - } // ReportSearchResult - - public void parseData(DataSet ds, HttpServletRequest request, int pageNo, int pageSize, int writeAccessColIndex, int ownerIndicatorColIndex) throws RaptorException { - // Presumes single ID field in the first column of the DataSet and row - // number in the first SearchResultColumn - - pageNo = AppUtils.getRequestNvlValue(request, "r_page").length()>0?Integer.parseInt(AppUtils.getRequestNvlValue(request, "r_page")):0; - String userID = AppUtils.getUserID(request); - int dataSize = ds.getRowCount(); - //pageSize = 0; - - if(searchReport.getMetaReport()!=null) { - searchReport.getMetaReport().setPageNo(pageNo); - //searchReport.getMetaReport().setPageSize(pageSize); - pageSize = searchReport.getMetaReport().getPageSize(); - searchReport.getMetaReport().setTotalSize(dataSize); - } - int startRow = (pageNo >= 0) ? (pageNo * pageSize) : 0; - int endRow = (pageNo >= 0) ? Math.min(startRow + pageSize, ds.getRowCount()) : ds - .getRowCount(); - for (int r = startRow; r < endRow; r++) { - SearchResultRow row = new SearchResultRow(); - searchResultRows.add(row); - - String idValue = ds.getString(r, 0); - - boolean bCanEdit = true; - if (writeAccessColIndex >= 0) { - String isReadOnlyValue = nvl(ds.getString(r, writeAccessColIndex), "Y"); - bCanEdit = AppUtils.isSuperUser(request) || AppUtils.isAdminUser(request) - || isReadOnlyValue.equals("N"); - } - - boolean bCanDelete = bCanEdit; - if (Globals.getDeleteOnlyByOwner() && ownerIndicatorColIndex >= 0) { - String isOwnedByUserRecord = nvl(ds.getString(r, ownerIndicatorColIndex), "N"); - bCanDelete = AppUtils.isSuperUser(request) || isOwnedByUserRecord.equals("Y"); - } - - boolean bCanSchedule = ds.getString(r, getNumColumns()-3).equals("Y"); - - row.addColumnContent(new ColumnContent(getColumn(0).getColumnId(), new SearchResultField("" + (r + 1), idValue, - getColumn(0), true))); - boolean isAuthorized = true; - for (int c = 1; c < getNumColumns(); c++) { - SearchResultColumn column = getColumn(c); - isAuthorized = true; - - if(column.isCopyLink()) - isAuthorized = Globals.getCanCopyOnReadOnly()? true:bCanEdit; - else if (column.isDeleteLink()) - isAuthorized = bCanDelete; - else if (column.isEditLink()) - isAuthorized = bCanEdit; - else if (column.isScheduleLink()) - isAuthorized = bCanSchedule; - row.addColumnContent(new ColumnContent(column.getColumnId(), new SearchResultField( - (column.getLinkURL() == null) ? ds.getString(r, c) : column - .getLinkTitle(), idValue, column, isAuthorized - ))); - } // for - } // for - searchReport.getRows().add(searchResultRows); - ObjectMapper mapper = new ObjectMapper(); - String jsonInString = ""; - try { - jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(searchReport); - } catch (Exception ex) { - ex.printStackTrace(); - - } - System.out.println(jsonInString); - this.JSONString = jsonInString; - } // parseData - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - public String getJSONString() { - return JSONString; - } - - public void setJSONString(String jSONString) { - JSONString = jSONString; - } - - -} // ReportSearchResult - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java deleted file mode 100644 index a8dfba7a..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import java.util.*; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; - -public class SearchResult{ - private int pageNo = -1; - - private int pageSize = 50; - - private int dataSize = -1; - - private int writeAccessColIndex = -1; - - private int ownerIndicatorColIndex = -1; - - private String csvPageFileName = null; - - - - private String csvAllRowsFileName = null; - - private String excelAllRowsFileName = null; - - public ArrayList searchResultColumns = new ArrayList(); - - public ArrayList searchResultRows = new ArrayList(); - - public SearchResult(int pageNo) { - this(pageNo, Globals.getDefaultPageSize()); - } // SearchResult - - public SearchResult(int pageNo, int pageSize) { - this(pageNo, pageSize, -1, -1); - } // SearchResult - - public SearchResult(int pageNo, int pageSize, int writeAccessColIndex, - int ownerIndicatorColIndex) { - super(); - - this.pageNo = pageNo; - this.pageSize = pageSize; - - this.writeAccessColIndex = writeAccessColIndex; - this.ownerIndicatorColIndex = ownerIndicatorColIndex; - } // SearchResult - - public int getPageNo() { - return pageNo; - } - - public int getPageSize() { - return pageSize; - } - - public int getDataSize() { - return dataSize; - } - - public String getCsvPageFileName() { - return csvPageFileName; - } - - public String getCsvAllRowsFileName() { - return csvAllRowsFileName; - } - - public String getExcelAllRowsFileName() { - return excelAllRowsFileName; - } - - private void setDataSize(int dataSize) { - this.dataSize = dataSize; - } - - public void setCsvPageFileName(String csvPageFileName) { - this.csvPageFileName = csvPageFileName; - } - - - - public void setCsvAllRowsFileName(String csvAllRowsFileName) { - this.csvAllRowsFileName = csvAllRowsFileName; - } - - - - public void addColumn(SearchResultColumn column) { - searchResultColumns.add(column); - } // addColumn - - public SearchResultColumn getColumn(int index) { - return (SearchResultColumn) searchResultColumns.get(index); - } // getColumn - - public int getNumColumns() { - return searchResultColumns.size(); - } // getNumColumns - - public int getNumRows() { - return searchResultRows.size(); - } // getNumRows - - public SearchResultRow getRow(int index) { - return (SearchResultRow) searchResultRows.get(index); - } // getRow - - public void parseData(DataSet ds, HttpServletRequest request) throws RaptorException { - // Presumes single ID field in the first column of the DataSet and row - // number in the first SearchResultColumn - String userID = AppUtils.getUserID(request); - setDataSize(ds.getRowCount()); - - int startRow = (pageNo >= 0) ? (pageNo * pageSize) : 0; - int endRow = (pageNo >= 0) ? Math.min(startRow + pageSize, ds.getRowCount()) : ds - .getRowCount(); - for (int r = startRow; r < endRow; r++) { - SearchResultRow row = new SearchResultRow(); - searchResultRows.add(row); - - String idValue = ds.getString(r, 0); - - boolean bCanEdit = true; - if (writeAccessColIndex >= 0) { - String isReadOnlyValue = nvl(ds.getString(r, writeAccessColIndex), "Y"); - bCanEdit = AppUtils.isSuperUser(request) || AppUtils.isAdminUser(request) - || isReadOnlyValue.equals("N"); - } - - boolean bCanDelete = bCanEdit; - if (Globals.getDeleteOnlyByOwner() && ownerIndicatorColIndex >= 0) { - String isOwnedByUserRecord = nvl(ds.getString(r, ownerIndicatorColIndex), "N"); - bCanDelete = AppUtils.isSuperUser(request) || isOwnedByUserRecord.equals("Y"); - } - - boolean bCanSchedule = ds.getString(r, getNumColumns()-3).equals("Y"); - - row.addSearchResultField(new SearchResultField("" + (r + 1), idValue, - getColumn(0), true)); - boolean isAuthorized = true; - for (int c = 1; c < getNumColumns(); c++) { - SearchResultColumn column = getColumn(c); - isAuthorized = true; - - if(column.isCopyLink()) - isAuthorized = Globals.getCanCopyOnReadOnly()? true:bCanEdit; - else if (column.isDeleteLink()) - isAuthorized = bCanDelete; - else if (column.isEditLink()) - isAuthorized = bCanEdit; - else if (column.isScheduleLink()) - isAuthorized = bCanSchedule; - - row.addSearchResultField(new SearchResultField( - (column.getLinkURL() == null) ? ds.getString(r, c) : column - .getLinkTitle(), idValue, column, isAuthorized - )); - } // for - } // for - } // parseData - - public void truncateToPage(int pageNo) { - if (this.pageNo >= 0 || pageNo < 0) - return; - - this.pageNo = pageNo; - - int startRow = pageNo * pageSize; - int endRow = Math.min(startRow + pageSize, dataSize); - - for (int r = getNumRows() - 1; r >= endRow; r--) - searchResultRows.remove(r); - - for (int r = startRow - 1; r >= 0; r--) - searchResultRows.remove(r); - } // truncateToPage - - /** *********************************************************************** */ - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - -} // SearchResult diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java deleted file mode 100644 index 1afe5ec9..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java +++ /dev/null @@ -1,256 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import org.openecomp.portalsdk.analytics.util.*; - -public class SearchResultColumn extends org.openecomp.portalsdk.analytics.RaptorObject { - private String columnId = ""; - private String columnTitle = ""; - - private String columnWidth = ""; - - private String alignment = "Left"; - - private String linkURL = null; // if not null => display link instead of - // text - - private String linkTitle = null; // if img => hint, otherwise link - // display text - - private String linkForm = null; // if not null => displays input submit - // instead of link - - private String linkConfirmMsg = null; // if not null => display conf. box - // on link click - - private String linkImg = null; // if not null => link shows image, not text - - private String linkImgWidth = null; // optional - - private String linkImgHeight = null; // optional - - private boolean copyLink = false; // optional - - private boolean editLink = false; // optional - - private boolean deleteLink = false; // optional - - private boolean scheduleLink = false; // optional - - public SearchResultColumn(String columnId, String columnTitle) { - super(); - setColumnId(columnId); - setColumnTitle(columnTitle); - } // SearchResultColumn - - public SearchResultColumn(String columnId, String columnTitle, String columnWidth, String alignment) { - super(); - setColumnId(columnId); - setColumnTitle(columnTitle); - setColumnWidth(columnWidth); - setAlignment(alignment); - } // SearchResultColumn - - public SearchResultColumn(String columnId, String columnTitle, String columnWidth, String alignment, - String linkURL, String linkTitle, String linkForm, String linkConfirmMsg, - String linkImg) { - super(); - setColumnId(columnId); - setColumnTitle(columnTitle); - setColumnWidth(columnWidth); - setAlignment(alignment); - setLinkURL(linkURL); - setLinkTitle(linkTitle); - setLinkForm(linkForm); - setLinkConfirmMsg(linkConfirmMsg); - setLinkImg(linkImg); - } // SearchResultColumn - - public SearchResultColumn(String columnId, String columnTitle, String columnWidth, String alignment, - String linkURL, String linkTitle, String linkForm, String linkConfirmMsg, - String linkImg, String linkImgWidth, String linkImgHeight) { - this(columnId, columnTitle, columnWidth, alignment, linkURL, linkTitle, linkForm, - linkConfirmMsg, linkImg); - - setLinkWidth(linkImgWidth); - setLinkHeight(linkImgHeight); - } // SearchResultColumn - - public SearchResultColumn(String columnId, String columnTitle, String columnWidth, String alignment, - String linkURL, String linkTitle, String linkForm, String linkConfirmMsg, - String linkImg, String linkImgWidth, String linkImgHeight, boolean copyLink, - boolean editLink, boolean deleteLink) { - this(columnId, columnTitle, columnWidth, alignment, linkURL, linkTitle, linkForm, - linkConfirmMsg, linkImg, linkImgWidth, linkImgHeight); - - setCopyLink(copyLink); - setEditLink(editLink); - setDeleteLink(deleteLink); - } // SearchResultColumn - - public SearchResultColumn(String columnId, String columnTitle, String columnWidth, String alignment, - String linkURL, String linkTitle, String linkForm, String linkConfirmMsg, - String linkImg, String linkImgWidth, String linkImgHeight, boolean copyLink, - boolean editLink, boolean deleteLink, boolean scheduleLink) { - this(columnId, columnTitle, columnWidth, alignment, linkURL, linkTitle, linkForm, - linkConfirmMsg, linkImg, linkImgWidth, linkImgHeight); - - setCopyLink(copyLink); - setEditLink(editLink); - setDeleteLink(deleteLink); - setScheduleLink(scheduleLink); - } // SearchResultColumn - - public String getColumnTitle() { - return columnTitle; - } - - public String getColumnWidth() { - return columnWidth; - } - - public String getAlignment() { - return alignment; - } - - public String getLinkURL() { - return linkURL; - } - - public String getLinkTitle() { - return linkTitle; - } - - public String getLinkForm() { - return linkForm; - } - - public String getLinkConfirmMsg() { - return linkConfirmMsg; - } - - public String getLinkImg() { - return linkImg; - } - - public String getLinkImgWidth() { - return linkImgWidth; - } - - public String getLinkImgHeight() { - return linkImgHeight; - } - - public boolean isCopyLink() { - return copyLink; - } - - public boolean isEditLink() { - return editLink; - } - - public boolean isDeleteLink() { - return deleteLink; - } - - public void setColumnTitle(String columnTitle) { - this.columnTitle = nvl(columnTitle); - } - - public void setColumnWidth(String columnWidth) { - this.columnWidth = nvl(columnWidth); - } - - public void setAlignment(String alignment) { - this.alignment = alignment; - } - - public void setLinkURL(String linkURL) { - this.linkURL = linkURL; - } - - public void setLinkTitle(String linkTitle) { - this.linkTitle = linkTitle; - } - - public void setLinkForm(String linkForm) { - this.linkForm = linkForm; - } - - public void setLinkConfirmMsg(String linkConfirmMsg) { - this.linkConfirmMsg = linkConfirmMsg; - } - - public void setLinkImg(String linkImg) { - this.linkImg = linkImg; - } - - public void setLinkWidth(String linkImgWidth) { - this.linkImgWidth = linkImgWidth; - } - - public void setLinkHeight(String linkImgHeight) { - this.linkImgHeight = linkImgHeight; - } - - public void setCopyLink(boolean copyLink) { - this.copyLink = copyLink; - } - - public void setEditLink(boolean editLink) { - this.editLink = editLink; - } - - public void setDeleteLink(boolean deleteLink) { - this.deleteLink = deleteLink; - } - - public String getColumnTitleHtml() { - return (columnTitle.length() == 0) ? " " : columnTitle; - } - - public String getColumnWidthHtml() { - return (columnWidth.length() == 0) ? "" : (" width=" + columnWidth); - } - - public String getLinkImgSizeHtml() { - return ((nvl(linkImgWidth).length() > 0) ? " width=\"" + linkImgWidth + "\"" : "") - + ((nvl(linkImgHeight).length() > 0) ? " height=\"" + linkImgHeight + "\"" - : ""); - } - - public boolean isScheduleLink() { - return scheduleLink; - } - - public void setScheduleLink(boolean scheduleLink) { - this.scheduleLink = scheduleLink; - } - - public String getColumnId() { - return columnId; - } - - public void setColumnId(String columnId) { - this.columnId = columnId; - } - -} // SearchResultColumn diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java deleted file mode 100644 index 152ef3a8..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java +++ /dev/null @@ -1,214 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import org.openecomp.portalsdk.analytics.util.*; - -public class SearchResultField extends org.openecomp.portalsdk.analytics.RaptorObject { - private String columnId; - private String displayValue = ""; - - private String alignment = "Left"; - - private String drillDownLink = null; - - private String drillDownImage = null; - - private String confirmationText = null; - - - - public String getConfirmationText() { - return confirmationText; - } - - public void setConfirmationText(String confirmationText) { - this.confirmationText = confirmationText; - } - - public String getDrillDownImage() { - return drillDownImage; - } - - public void setDrillDownImage(String drillDownImage) { - this.drillDownImage = drillDownImage; - } - - public SearchResultField() { - } - - public SearchResultField(String displayValue, String linkIdValue, - SearchResultColumn column, boolean isAuthorized) { - super(); - - if (!isAuthorized) - return; - - setColumnId(column.getColumnId()); - setDisplayValue(displayValue); - setAlignment(column.getAlignment()); - if(column.getColumnId().equals("edit")) { -// setDrillDownLink("report_wizard.htm?action=report.edit&c_master="+linkIdValue); - setDrillDownLink("report#/report_wizard/"+linkIdValue); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(null); - } else if(column.getColumnId().equals("copy")) { -// setDrillDownLink("report_wizard.htm?action=report.copy&c_master="+linkIdValue); - setDrillDownLink("report#/report_wizard/copy/"+linkIdValue); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(column.getLinkConfirmMsg()); - } else if(column.getColumnId().equals("delete")) { - setDrillDownLink("raptor.htm?action=report.delete&c_master="+linkIdValue); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(column.getLinkConfirmMsg()); - } else if(column.getColumnId().equals("schedule")) { - setDrillDownLink("report_wizard.htm?action=report.schedule.report.submit_wmenu&c_master="+linkIdValue+"&refresh=Y"); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(null); - } else if(column.getColumnId().equals("run")) { - setDrillDownLink("raptor.htm?action=report.run.container&c_master="+linkIdValue+"&refresh=Y"); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(null); - } else { - if (column.getLinkURL() != null) { - StringBuffer sb = new StringBuffer(); - - if (column.getLinkForm() == null) { - sb.append(""); - if (column.getLinkImg() != null) { - sb.append("\"""); - } else - sb.append(column.getLinkTitle()); - sb.append(""); - } else { - sb.append(""); - } // else - - setDrillDownLink(sb.toString()); - } // if - } - } // SearchResultField - - public String getDisplayValue() { - return displayValue; - } - - public String getAlignment() { - return alignment; - } - - public String getDrillDownLink() { - return drillDownLink; - } - - public void setDisplayValue(String displayValue) { - this.displayValue = nvl(displayValue); - } - - public void setAlignment(String alignment) { - this.alignment = alignment; - } - - public void setDrillDownLink(String drillDownLink) { - this.drillDownLink = drillDownLink; - } - - public String getTooltipValue() { - return (displayValue.length() == 0) ? " " : displayValue; - } - - /*public String getAlignmentHtml() { - return (alignment.length() == 0) ? "" : (" align=" + alignment); - }*/ - - /*public String getDisplayValueLinkHtml() { - if (nvl(drillDownLink).length() == 0) - return getDisplayValueHtml(); - else - return getDrillDownLink(); - } // getDisplayValueLinkHtml*/ - - public String getColumnId() { - return columnId; - } - - public void setColumnId(String columnId) { - this.columnId = columnId; - } - - -} // SearchResultField diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java deleted file mode 100644 index c0d635d7..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import java.util.*; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.util.*; - -public class SearchResultJSON{ - - public ArrayList searchResultColumns = new ArrayList(); - - public ArrayList searchResultRows = new ArrayList(); - - - - - - - public ArrayList getSearchResultColumns() { - return searchResultColumns; - } - - public void setSearchResultColumns(ArrayList searchResultColumns) { - this.searchResultColumns = searchResultColumns; - } - - public ArrayList getSearchResultRows() { - return searchResultRows; - } - - public void setSearchResultRows(ArrayList searchResultRows) { - this.searchResultRows = searchResultRows; - } - - public void addColumn(SearchResultColumn column) { - searchResultColumns.add(column); - } // addColumn - - public SearchResultColumn getColumn(int index) { - return (SearchResultColumn) searchResultColumns.get(index); - } // getColumn - - public int getNumColumns() { - return searchResultColumns.size(); - } // getNumColumns - - public int getNumRows() { - return searchResultRows.size(); - } // getNumRows - - public SearchResultRow getRow(int index) { - return (SearchResultRow) searchResultRows.get(index); - } // getRow - - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - -} // SearchResultJSON diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java deleted file mode 100644 index f6696ccd..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.search; - -import java.util.*; - -class ColumnContent { - String columnId; - SearchResultField searchresultField; - - public ColumnContent(String columnId, SearchResultField searchresultField) { - this.columnId = columnId; - this.searchresultField = searchresultField; - } - public String getColumnId() { - return columnId; - } - public void setColumnId(String columnId) { - this.columnId = columnId; - } - public SearchResultField getSearchresultField() { - return searchresultField; - } - public void setSearchresultField(SearchResultField searchresultField) { - this.searchresultField = searchresultField; - } - - - -} -public class SearchResultRow extends ArrayList { - - - //private SearchResultField searchresultField; - private int nextElemIdx = 0; - - public void resetNext() { - resetNext(0); - } // resetNext - - public void resetNext(int toPos) { - nextElemIdx = toPos; - } // resetNext - - public boolean hasNext() { - return (nextElemIdx < size()); - } // hasNext - - public SearchResultField getNext() { - return hasNext() ? getSearchResultField(nextElemIdx++) : null; - } // getNext - - public SearchResultField getSearchResultField(int idx) { - return (SearchResultField) get(idx); - } // getRowHeader - - public void addSearchResultField(SearchResultField searchResultField) { - add(searchResultField); - } // addSearchResultField - - public void addSearchResultField(int idx, SearchResultField searchResultField) { - add(idx, searchResultField); - } // addSearchResultField - - public void addColumnContent(ColumnContent cc ) { - - add(cc); - } // addSearchResultField - - public void addColumnContent(int idx, ColumnContent cc) { - add(idx, cc); - } // addSearchResultField - - -} // SearchResultRow diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SchedulerUtil.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SchedulerUtil.java deleted file mode 100644 index 0ff6b2d9..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SchedulerUtil.java +++ /dev/null @@ -1,369 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.scheduler; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.math.BigDecimal; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Types; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; -import java.util.Locale; - -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.system.DbUtils; - -//import oracle.jdbc.*; -//import oracle.sql.BLOB; - - -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{ - 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{ - stat.close(); - } - - } - - /*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 params, List 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{ - 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 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/openecomp/portalsdk/analytics/scheduler/SendEmail.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendEmail.java deleted file mode 100644 index 1ace58d2..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendEmail.java +++ /dev/null @@ -1,416 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.scheduler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigDecimal; -import java.net.HttpURLConnection; -import java.net.URL; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Types; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.scheduler.SchedulerUtil.Executor; -import org.openecomp.portalsdk.analytics.system.Globals; - - - - -public class SendEmail { - -SchedulerUtil schedulerUtil; - - public SendEmail() { - - } - - - public void sendEmail( String p_mail_server, String p_sender, String p_subject, String p_mail_text, String p_url, int p_file_type, int p_schedule_id, int p_time_interval, boolean p_send_attachment, int connectionTimeout) throws SQLException, ReportSQLException{ - - String allEmailAddr = ""; - final List emailArr = new ArrayList(); - //int count1 = 0; - String schedular_email; - - - schedular_email = (String) schedulerUtil.getSingleResult("select email from fn_user au, cr_report_schedule crs where CRS.SCHED_USER_ID = AU.USER_ID and CRS.SCHEDULE_ID = "+ p_schedule_id, "email"); - - - String sql=Globals.getSchedulerUserEmails().replace("[p_schedule_id]", p_schedule_id+""); - schedulerUtil.getAndExecute(sql, new Executor() { - - @Override - public void execute(ResultSet rs) throws SQLException { - - emailArr.add(rs.getString("email")); - // count1 = count1 + 1 - } - - }); - - if (!p_send_attachment) { - http_to_blob(p_url, p_file_type, p_schedule_id, connectionTimeout); - } - - int i = 0; - for (String email : emailArr) { - /* If the email address is invalid ignore that email address */ - if (email.contains("@")) { - - if (i == 0) - allEmailAddr = email; - else - allEmailAddr += ',' + email; - - i++; - } - } - - /*List mailAttachments = null; - - if (p_file_type > 1 && p_send_attachment) { - mailAttachments = add_attachment(p_url, p_file_type, p_schedule_id, connectionTimeout); - } - AppUtils.notifyWithAttachments(p_mail_text, emailArr.toArray(new String[emailArr.size()]), p_sender, p_subject, new String[] { schedular_email }, null, mailAttachments, true); - */ - } - - class HistRec { - - String file_blob; - BigDecimal rep_id; - BigDecimal hist_id; - String file_name; - int sched_user_id; - String recurrence; - int file_size = 0; - String raptor_url; - int schedule_id; - int file_type_id; - int user_id; - String deleted_yn; - } - - - private HistRec http_to_blob(String p_url, int v_file_type, int p_schedule_id, int connectionTimeout) throws SQLException , ReportSQLException{ - - - final HistRec v_hist_rec = initializeVHistoryRecord(p_url, v_file_type, p_schedule_id); - HttpURLConnection con = null; - try { - URL url = new URL(p_url); - con = (HttpURLConnection) url.openConnection(); - con.setConnectTimeout(connectionTimeout*1000); - con.setRequestMethod("GET"); - schedulerUtil.insertOrUpdate("INSERT INTO cr_filehist_log (SCHEDULE_ID, url, notes, run_time) VALUES ("+ p_schedule_id +",'" + p_url+ "','http_to_blob: Initiated HTTP request', " + Globals.getCurrentDateString() + " )"); - int responseCode = con.getResponseCode(); - String outputFolder = Globals.getProjectFolder() + java.io.File.separator + Globals.getOutputFolder(); - String fileName = v_hist_rec.file_name; - createFile(con, outputFolder, fileName); - - File readFile = new File(outputFolder + java.io.File.separator + fileName); - // need to revist this conversion; may not be safe for large file sizes - v_hist_rec.file_size = (int)readFile.length(); - - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url +"', 'http_to_blob: http response recieved. Code " + responseCode + "', " + Globals.getCurrentDateString() + " )"); - - //v_hist_rec.file_blob = response.toString(); - //v_hist_rec.file_size = v_hist_rec.file_blob.length(); - - List params = new ArrayList(); - List types = new ArrayList(); - prepareHisRecUpdate(v_hist_rec, params, types); - - schedulerUtil - .insertOrUpdateWithPrepared("INSERT INTO cr_report_file_history(HIST_ID, SCHED_USER_ID, SCHEDULE_ID, USER_ID, REP_ID, RUN_DATE, RECURRENCE, FILE_TYPE_ID, FILE_NAME, FILE_SIZE, RAPTOR_URL, ERROR_YN, ERROR_CODE, DELETED_YN, DELETED_BY)" - + " VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", - params, types - ); - - FileInputStream fileStream = new FileInputStream(readFile); - schedulerUtil.updateBinaryStream("update cr_report_file_history set file_blob = ? where hist_id = ?", v_hist_rec.hist_id, fileStream, v_hist_rec.file_size); - fileStream.close(); - - String userAddRecSql = - Globals.getSchedulerUserEmails().replace("[p_schedule_id]", p_schedule_id+""); - - schedulerUtil.getAndExecute(userAddRecSql, new Executor() { - - @Override - public void execute(ResultSet rs) throws SQLException { - - try { - schedulerUtil.insertOrUpdate("INSERT INTO CR_HIST_USER_MAP (HIST_ID, USER_ID) values ( " + v_hist_rec.hist_id + "," + rs.getInt("user_id") + ")"); - } catch (ReportSQLException e) { - throw new SQLException(e.getMessage()); - } - } - - }); - - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url + "','Success: http_to_blob', " + Globals.getCurrentDateString() + " )"); - - - } catch (Exception e) { - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url + "', 'Failure: http_to_blob : Exception" + e.getMessage() +"', " + Globals.getCurrentDateString() + " )"); - e.printStackTrace(); - } finally { - if(con != null) - con.disconnect(); - } - return v_hist_rec; - - } - - - protected void prepareHisRecUpdate(final HistRec v_hist_rec, List params, - List types) { - params.add( v_hist_rec.hist_id); - types.add(Types.BIGINT); - params.add( v_hist_rec.sched_user_id); - types.add(Types.INTEGER); - params.add( v_hist_rec.schedule_id); - types.add(Types.INTEGER); - params.add( v_hist_rec.user_id); - types.add(Types.INTEGER); - params.add( v_hist_rec.rep_id); - types.add(Types.BIGINT); - params.add( new java.sql.Date(Calendar.getInstance().getTime().getTime())); - types.add(Types.DATE); - params.add( v_hist_rec.recurrence); - types.add(Types.VARCHAR); - params.add( v_hist_rec.file_type_id); - types.add(Types.INTEGER); - params.add( v_hist_rec.file_name); - types.add(Types.VARCHAR); - params.add( v_hist_rec.file_size); - types.add(Types.INTEGER); - params.add( v_hist_rec.raptor_url); - types.add(Types.VARCHAR); - params.add( "N"); - types.add(Types.VARCHAR); - params.add( "NULL"); - types.add(Types.INTEGER); - params.add( v_hist_rec.deleted_yn); - types.add(Types.VARCHAR); - params.add(v_hist_rec.sched_user_id ); - types.add(Types.INTEGER); - } - - - protected HistRec initializeVHistoryRecord(String p_url, int v_file_type, - int p_schedule_id) throws SQLException, - ReportSQLException { - - final HistRec v_hist_rec = new HistRec(); - - v_hist_rec.rep_id = (BigDecimal) schedulerUtil.getSingleResult("SELECT rep_id FROM cr_report_schedule WHERE schedule_id =" + p_schedule_id, "rep_id"); - - Object sequenceId = schedulerUtil.getSingleResult(Globals.getSequenceNextVal().replace("[sequenceName]", "seq_cr_report_file_history"),"ID"); - - if(sequenceId instanceof Long) - v_hist_rec.hist_id = new BigDecimal((Long)sequenceId); - else if(sequenceId instanceof BigDecimal) - v_hist_rec.hist_id = (BigDecimal)sequenceId; - - v_hist_rec.file_name = (String) schedulerUtil.getSingleResult("select translate(title||to_char( "+ Globals.getCurrentDateString() + ",'MM-dd-yyyyHH24:mm:ss'), " - + "'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'||'():;.-`~^\\|'||chr(34)||chr(39)||chr(9)||' ', " - + "'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')|| "+ v_hist_rec.hist_id +" as title FROM cr_report WHERE rep_id = "+v_hist_rec.rep_id, "title"); - - - class File { - - String file_name; - String file_ext; - } - final File file = new File(); - schedulerUtil.getAndExecute("select template_file from cr_report_template_map where report_id = " + v_hist_rec.rep_id, new Executor() { - - @Override - public void execute(ResultSet rs) throws SQLException { - - file.file_name = rs.getString("template_file"); - file.file_ext = file.file_name.substring(file.file_name.indexOf('.')); - - } - }); - - if (v_file_type == 2) { - v_hist_rec.file_name = v_hist_rec.file_name + ".pdf"; - - } else if (v_file_type == 4) { - v_hist_rec.file_name = v_hist_rec.file_name + ".xls"; - - } else if (v_file_type == 5) { - if (file.file_name != null && file.file_ext.length() > 0) { - v_hist_rec.file_name = v_hist_rec.file_name + file.file_ext; - } else { - v_hist_rec.file_name = v_hist_rec.file_name + ".xlsx"; - } - } else if (v_file_type == 3) { - v_hist_rec.file_name = v_hist_rec.file_name + ".csv"; - - } - - - schedulerUtil.getAndExecute("select sched_user_id, rep_id, recurrence from cr_report_schedule where schedule_id="+p_schedule_id, new Executor() { - - @Override - public void execute(ResultSet rs) throws SQLException { - v_hist_rec.sched_user_id = rs.getInt("sched_user_id"); - v_hist_rec.rep_id = rs.getBigDecimal("rep_id"); - v_hist_rec.recurrence = rs.getString("recurrence"); - } - }); - - - v_hist_rec.file_size = 0; - v_hist_rec.raptor_url = p_url; - v_hist_rec.schedule_id = p_schedule_id; - v_hist_rec.file_type_id = v_file_type; - v_hist_rec.user_id = v_hist_rec.sched_user_id; - v_hist_rec.deleted_yn = "N"; - - return v_hist_rec; - } - - - - /*private List add_attachment(String p_url, int v_file_type, int p_schedule_id, int connectionTimeout) throws SQLException,ReportSQLException{ - - - List mailAttachmentList = new ArrayList(); - final HistRec vHistRec = initializeVHistoryRecord(p_url, v_file_type, p_schedule_id); - - /* - refer to http_to_blob for more details - - String v_content_type; - String v_content_disposition; - int transfer_timeout_limit = 1800; - String v_title; - - if (v_file_type == 2) { - v_content_type = "application/pdf"; - v_content_disposition ="inline; filename=\""+v_title+".pdf\""; - - }else if(v_file_type == 4){ - v_content_type = "application/excel"; - v_content_disposition ="inline; filename=\""+v_title+".xls\""; - - }else if(v_file_type == 5){ - v_content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; - - if (file.file_ext != null && file.file_ext.length() > 0) { - v_content_disposition ="inline; filename=\""+v_title+ file.file_ext+"\""; - if (".xlsm".equals(file.file_ext)) { - v_content_type = "application/vnd.ms-excel.sheet.macroEnabled.12"; - } - } else { - v_content_disposition ="inline; filename=\""+v_title+".xlsx\""; - }; - }else if(v_file_type == 3){ - v_content_type = "application/csv"; - v_content_disposition ="inline; filename=\""+v_title+".csv\""; - - } - * ... / - HttpURLConnection con = null; - try { - URL url = new URL(p_url); - con = (HttpURLConnection) url.openConnection(); - con.setConnectTimeout(connectionTimeout*1000); - con.setRequestMethod("GET"); - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'"+ p_url +"', 'Success: http request began.', " + Globals.getCurrentDateString() + " )"); - int responseCode = con.getResponseCode(); - - String outputFolder = Globals.getProjectFolder() + java.io.File.separator + Globals.getOutputFolder(); - String fileName = vHistRec.file_name; - createFile(con, outputFolder, fileName); - - MailAttachment mailAttachment = new MailAttachment(); - mailAttachment.setAttachmentType(MailAttachment.FILE_ATTACHMENT); - mailAttachment.setFilePathName(outputFolder); - mailAttachment.setFileName(fileName); - mailAttachmentList.add(mailAttachment); - - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url +"', 'Success: http response recieved. Code " + responseCode + "', " + Globals.getCurrentDateString() + " )"); - - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url + "','Success: added attachment', " + Globals.getCurrentDateString() + " )"); - - } catch (Exception e) { - schedulerUtil.insertOrUpdate("insert into cr_schedule_activity_log (SCHEDULE_ID, url, notes, run_time) values (" + p_schedule_id + ",'" + p_url + "', 'Failure: adding attachment : Exception" + e.getMessage() +"', " + Globals.getCurrentDateString() + " )"); - e.printStackTrace(); - } finally { - if(con != null) - con.disconnect(); - } - - - return mailAttachmentList; - }*/ - - - void createFile(HttpURLConnection con, String outputFolder, String fileName) - throws IOException, FileNotFoundException { - //BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - InputStream in = con.getInputStream(); - - try { - - FileOutputStream out = new FileOutputStream(outputFolder + java.io.File.separator + fileName ); - try { - int inputLine; - - while ((inputLine = in.read()) != -1) { - out.write(inputLine); - } - out.flush(); - } - finally { - out.close(); - } - - } - finally { - in.close(); - } - } - - - public SchedulerUtil getSchedulerUtil() { - return schedulerUtil; - } - - - public void setSchedulerUtil(SchedulerUtil schedulerUtil) { - this.schedulerUtil = schedulerUtil; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendNotifications.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendNotifications.java deleted file mode 100644 index bb0e14a0..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/scheduler/SendNotifications.java +++ /dev/null @@ -1,462 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.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.Calendar; -import java.util.Date; -import java.util.UUID; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.scheduler.SchedulerUtil.Executor; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.Log; - -public class SendNotifications { - - SchedulerUtil schedulerUtil; - public SendEmail sendEmail; - - public SendNotifications() throws Exception { - schedulerUtil = new SchedulerUtil(); - sendEmail = new SendEmail(); - sendEmail.setSchedulerUtil(schedulerUtil); - init(); - } - - - public void deInit() throws SQLException { - schedulerUtil.closeConnection(); - } - - 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 = "

" + p_system_name + " System Notification

" + "

Report " + rs.getString("title") + " is available for viewing.

You can view the report if it is attached.
" - + "If it is not attached, or you have problem to open it, you can log into Business Direct and run the report.

" + ""; - - 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(); - - } - - private boolean shouldSendAttachmentInEmail(int v_schedule_id) throws SQLException, ReportSQLException { - - String l_boolean = (String) schedulerUtil.getSingleResult("SELECT ATTACHMENT_YN from cr_report_schedule where schedule_id = " + v_schedule_id, "ATTACHMENT_YN"); - if ("Y".equals(l_boolean)) - return true; - return false; - } - - private String strip_formfields(int v_schedule_id, String p_formfields) throws SQLException, ReportSQLException { - - String v_formfields_insert = ""; - String v_formfields_generate = ""; - String v_name = ""; - String v_value = ""; - - - String[] column_values = schedulerUtil.cr_dissecturl(p_formfields, "&"); - - for(String column_value : column_values){ - if(column_value == null || column_value.isEmpty()) - continue; - - v_name = column_value.substring(0, column_value.indexOf('=')); - v_formfields_insert += column_value + "&"; - v_value = column_value.substring(column_value.indexOf('=') + 1); - if (column_value.indexOf("_auto") > 0) { - v_formfields_generate = v_formfields_generate + v_name.substring(0, v_name.indexOf("_auto")) + "=" + v_value + "&"; - } else { - v_formfields_generate = v_formfields_generate + column_value + "&"; - } - } - - schedulerUtil.insertOrUpdate("update CR_REPORT_SCHEDULE set processed_formfields ='" + v_formfields_insert + "' where schedule_id = " + v_schedule_id); - - return v_formfields_generate.substring(0, v_formfields_generate.length()); - - } - - private String modify_formfields(int v_schedule_id, String p_formfields) throws SQLException, ReportSQLException { - - class Result { - - String v_formfields_insert = ""; - String v_formfields_generate = ""; - String v_name = ""; - String v_value = ""; - Date v_date; - String v_hour = ""; - String v_hour_value = ""; - } - - final Result result = new Result(); - - final String v_recurrence = (String) schedulerUtil.getSingleResult("select recurrence from cr_report_schedule where schedule_id = " + v_schedule_id, "recurrence"); - - String[] column_values = schedulerUtil.cr_dissecturl(p_formfields, "&"); - - for(String column_value : column_values){ - if (column_value == null) - column_value = ""; - - if ("MONTHLY".equals(v_recurrence)) { - if (column_value.indexOf("_auto") > 0) { - result.v_name = column_value.substring(0, column_value.indexOf('=')); - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1), "mm/dd/yyyy"); - result.v_value = schedulerUtil.add_months(result.v_date, 1).toString(); - - if (result.v_name.length() > 0) { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - } else { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - - } else if ("DAILY".equals(v_recurrence)) { - if (column_value.indexOf("_auto") > 0) { - result.v_name = column_value.substring(0, column_value.indexOf('=')); - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1), "mm/dd/yyyy"); - result.v_value = schedulerUtil.add_months(result.v_date, 1).toString(); - - if (result.v_name.length() > 0) { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - } else { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - - } else if ("DAILY_MO_FR".equals(v_recurrence)) { - if (column_value.indexOf("_auto") > 0) { - result.v_name = column_value.substring(0, column_value.indexOf('=')); - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1), "mm/dd/yyyy"); - SimpleDateFormat sdf = new SimpleDateFormat("EEE"); - sdf.format(result.v_date); - if ("FRI".equals(result.v_date.toString())) { - result.v_date = schedulerUtil.add_days(result.v_date, 3); - } else if ("SAT".equals(result.v_date.toString())) { - result.v_date = schedulerUtil.add_days(result.v_date, 2); - } else { - result.v_date = schedulerUtil.add_days(result.v_date, 1); - } - result.v_value = result.v_date.toString(); - if (result.v_name.length() > 0) { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - - } else { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - - } else if ("HOURLY".equals(v_recurrence)) { - - result.v_name = column_value.indexOf('=')>0?column_value.substring(0, column_value.indexOf('=')) : ""; - if (column_value.indexOf("_auto") > 0) { - - - String[] column_values2 = schedulerUtil.cr_dissecturl(p_formfields, "&"); - - for(String column_value2 : column_values2){ - - String key = column_value2.substring(0, column_value2.indexOf("=")); - if(key.equals(result.v_name.substring(0, result.v_name.indexOf("_auto"))) || key.equals(result.v_name.substring(0, result.v_name.indexOf("_Hr")))){ - result.v_hour = column_value2; - } - } - -// schedulerUtil.getAndExecute("select c.column_value from table(CR_DISSECTURL(p_formfields)) c where substr(c.column_value, 1, instr(c.column_value, '=')-1) = substr(" + result.v_name + ",1,instr(" + result.v_name + ",'_auto')-1)||'_Hr'", new Executor() { -// -// @Override -// public void execute(ResultSet rs) throws SQLException { -// -// result.v_hour = rs.getString("column_value"); -// } -// -// }); - - if (result.v_hour.length() > 0) { - result.v_hour_value = result.v_hour.substring(result.v_hour.indexOf('=') + 1); - } - - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1) + " " + result.v_hour_value, "mm/dd/yyyy HH24:MI:SS"); - - result.v_value = schedulerUtil.to_date_str(schedulerUtil.add_hours(result.v_date, 1), "mm/dd/yyyy HH24"); - - if (result.v_name.length() > 0) { - if (result.v_hour.length() > 0) { - - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value.substring(0, 10) + "&" + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "_Hr=" + result.v_value.substring(11, 13); - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value.substring(0, 10) + "&" + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "_Hr=" - + result.v_value.substring(11, 13) + "&"; - - } else { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - } - } - if (column_value.indexOf("_Hr") <= 0) { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - } else if ("WEEKLY".equals(v_recurrence)) { - - if (column_value.indexOf("_auto") > 0) { - result.v_name = column_value.substring(0, column_value.indexOf('=')); - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1), "mm/dd/yyyy"); - result.v_value = schedulerUtil.add_days(result.v_date, 7).toString(); - - if (result.v_name.length() > 0) { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - - } else { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - - } else { - if (column_value.indexOf("_auto") > 0) { - result.v_name = column_value.substring(0, column_value.indexOf('=')); - result.v_date = schedulerUtil.to_date(column_value.substring(column_value.indexOf('=') + 1), "mm/dd/yyyy"); - result.v_value = schedulerUtil.add_days(result.v_date, 7).toString(); - if (result.v_name.length() > 0) { - result.v_formfields_insert = result.v_formfields_insert + result.v_name + "=" + result.v_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + result.v_name.substring(0, result.v_name.indexOf("_auto")) + "=" + result.v_value + "&"; - } - - } else { - result.v_formfields_insert = result.v_formfields_insert + column_value + "&"; - result.v_formfields_generate = result.v_formfields_generate + column_value + "&"; - } - } - } - - schedulerUtil.insertOrUpdate("update CR_REPORT_SCHEDULE set processed_formfields ='" + result.v_formfields_insert + "' where schedule_id =" + v_schedule_id); - return "&" + result.v_formfields_generate.substring(0, result.v_formfields_generate.length()); - } - - private int get_report_sched_offset(int p_rep_id, int p_schedule_id) throws SQLException, ReportSQLException { - - class CrReportSchedule { - - Date run_date; - String recurrence; - } - Date v_last_date = null; - Date v_sysdate = new Date(); - - final CrReportSchedule v_report_schedule_rec = new CrReportSchedule(); - - schedulerUtil.getAndExecute("SELECT * FROM cr_report_schedule WHERE rep_id = " + p_rep_id + " and schedule_id = " + p_schedule_id, new Executor() { - - @Override - public void execute(ResultSet rs) throws SQLException { - - v_report_schedule_rec.recurrence = rs.getString("recurrence"); - java.sql.Timestamp runDate = rs.getTimestamp("run_date"); - v_report_schedule_rec.run_date = new Date(runDate.getTime()) ; - } - - }); - - if (v_report_schedule_rec.run_date == null || v_report_schedule_rec.run_date.compareTo(v_sysdate) > 0) { - return Integer.MAX_VALUE; - } - - Date v_next_date = v_report_schedule_rec.run_date; - - while (v_next_date.compareTo(v_sysdate) < 0) { - - if ("HOURLY".equals(v_report_schedule_rec.recurrence)) { - v_next_date = SchedulerUtil.add_hours(v_next_date, 1); - } else if ("DAILY".equals(v_report_schedule_rec.recurrence)) { - v_next_date = SchedulerUtil.add_days(v_next_date, 1); - } else if ("DAILY_MO_FR".equals(v_report_schedule_rec.recurrence)) { - SimpleDateFormat sdf = new SimpleDateFormat("EEE"); - sdf.format(v_next_date); - if ("FRI".equals(v_next_date.toString())) { - v_next_date = SchedulerUtil.add_days(v_next_date, 3); - } else if ("SAT".equals(v_next_date.toString())) { - v_next_date = SchedulerUtil.add_days(v_next_date, 2); - } else { - v_next_date = SchedulerUtil.add_days(v_next_date, 1); - } - } else if ("WEEKLY".equals(v_report_schedule_rec.recurrence)) { - v_next_date = SchedulerUtil.add_days(v_next_date, 7); - } else if ("MONTHLY".equals(v_report_schedule_rec.recurrence)) { - v_next_date = SchedulerUtil.add_months(v_next_date, 1); - } else { - break; - } - v_last_date = v_next_date; - } - - if (SchedulerUtil.trunc_hour(v_last_date).compareTo(SchedulerUtil.trunc_hour(v_sysdate)) == 0) { - return (int)(Math.abs (v_sysdate.getTime() - v_last_date.getTime()) / 1000); - } else { - // More than an hour - return 3601; - } - } - - public SchedulerUtil getSchedulerUtil() { - return schedulerUtil; - } - - public void setSchedulerUtil(SchedulerUtil schedulerUtil) { - this.schedulerUtil = schedulerUtil; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/AppUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/AppUtils.java deleted file mode 100644 index 6da2fef6..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/AppUtils.java +++ /dev/null @@ -1,344 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.*; - -import javax.servlet.http.*; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.util.*; - -public class AppUtils /* implements IAppUtils */{ - private static String baseURL = null; - - private AppUtils() { - } - - /** ******************************************************** */ - - public static String generateFileName(HttpServletRequest request, String fileTypeExtension) { - return AppConstants.FILE_PREFIX + getUserID(request) + fileTypeExtension; - } // generateFileName - - public static String generateUniqueFileName(HttpServletRequest request, String reportName, String fileTypeExtension) { - String formattedReportName = new HtmlStripper().stripSpecialCharacters(reportName); - String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new Date()); - return formattedReportName+formattedDate+getUserID(request)+fileTypeExtension; - } // generateFileName - - public static String getRequestValue(HttpServletRequest request, String valueID) { - String value = (String) request.getAttribute(valueID); - if (value == null) - value = request.getParameter(valueID); - return value; - } // getRequestValue - - public static String getRequestNvlValue(HttpServletRequest request, String valueID) { - String value = getRequestValue(request, valueID); - return (value == null) ? "" : value; - } // getRequestValue - - public static boolean getRequestFlag(HttpServletRequest request, String valueID) { - String value = getRequestNvlValue(request, valueID); - return value.toLowerCase().equals("true") || value.toUpperCase().startsWith("Y"); - } // getRequestFlag - - /** ******************************************************** */ - - public static String getUserID(HttpServletRequest request) { - return Globals.getAppUtils().getUserID(request); - } // getUserID - - public static String getUserName(HttpServletRequest request) { - return Globals.getAppUtils().getUserName(request); - } // getUserName - - public static String getUserName(String userId) { - return Globals.getAppUtils().getUserName(userId); - } // getUserName - - public static String getUserEmail(String userId) { - return Globals.getAppUtils().getUserEmail(userId); - } // getUserEmail - - public static String getUserEmail(HttpServletRequest request) { - return Globals.getAppUtils().getUserEmail(request); - } // getUserEmail - - public static String getUserLoginId(HttpServletRequest request) { - return Globals.getAppUtils().getUserLoginId(request); - } // getUserLoginId - - public static String getUserLoginId(String userId) { - return Globals.getAppUtils().getUserLoginId(userId); - } // getUserLoginId - - public static String getUserBackdoorLoginId(HttpServletRequest request) { - return Globals.getAppUtils().getUserBackdoorLoginId(request); - } // getUserBackdoorLoginId - - public static Vector getAllUsers(String customizedQuery, String param, boolean isAdmin) { - return Globals.getAppUtils().getAllUsers(customizedQuery, param, isAdmin); - } // getAllUsers - - public static String getRoleName(String roleId) { - return Globals.getAppUtils().getRoleName(roleId); - } // getRoleName - - public static Vector getAllRoles(String customizedQuery, String param, boolean isAdmin) { - return Globals.getAppUtils().getAllRoles(customizedQuery, param, isAdmin); - } // getAllRoles - - public static boolean isUserInRole(HttpServletRequest request, String roleId) throws RaptorException { - return Globals.getAppUtils().isUserInRole(request,roleId); - } // isUserInRole - -// public static boolean isUserInRole(String userId, String roleId) throws RaptorException { -// return Globals.getAppUtils().isUserInRole(userId, roleId); -// } // isUserInRole - - public static Vector getUserRoles(HttpServletRequest request) throws RaptorException { - return Globals.getAppUtils().getUserRoles(request); - } // getUserRoles - - public static Vector getUserRoles(String userID) throws RaptorException { - return Globals.getAppUtils().getUserRoles(userID); - } // getUserRoles - -// public static Vector getUserRoles(HttpServletRequest request) throws RaptorException { -// return Globals.getAppUtils().getUserRoles(request); -// } // getUserRoles - - public static void resetUserCache() { - Globals.getAppUtils().resetUserCache(); - } // resetUserCache - - public static String getSuperRoleID() { - return Globals.getAppUtils().getSuperRoleID(); - } // getSuperRoleID - - public static Vector getAdminRoleIDs() { - return Globals.getAppUtils().getAdminRoleIDs(); - } // getAdminRoleIDs - - // This is changed to check for Admin User as admin user also need super user privilege if explicitly specified in properties file. - public static boolean isSuperUser(HttpServletRequest request)throws RaptorException { - if(Globals.isAdminRoleEquivalenttoSuperRole()) return isAdminUser(request); - else return isUserInRole(request, getSuperRoleID()); - } // isSuperUser - - /*public static boolean isSuperUser(String userId) throws RaptorException { - if(Globals.isAdminRoleEquivalenttoSuperRole()) return isAdminUser(userId); - else return isUserInRole(userId, getSuperRoleID()); - } // isSuperUser - */ - - public static boolean isAdminUser(HttpServletRequest request) throws RaptorException { - if (isSuperUser(request)) - return true; - for (int i = 0; i < getAdminRoleIDs().size(); i++) - if (isUserInRole(request, (String) getAdminRoleIDs().get(i))) - return true; - - return false; - } // isAdminUser - - /*public static boolean isAdminUser(String userId) throws RaptorException { - if (isSuperUser(userId)) - return true; - - for (int i = 0; i < getAdminRoleIDs().size(); i++) - if (isUserInRole(userId, (String) getAdminRoleIDs().get(i))) - return true; - - return false; - } // isAdminUser - */ - - public static String getTempFolderPath() { - String path = Globals.getAppUtils().getTempFolderPath(); - if (path.endsWith(File.separator) || path.endsWith("/")){ - return path; - } else { - path = path + File.separator; - return path; - } - } // getTempFolderPath - - public static String getUploadFolderPath() { - String path = Globals.getAppUtils().getUploadFolderPath(); - if (path.endsWith(File.separator)){ - return path; - } else { - path = path + File.separator; - return path; - } - } // getUploadFolderPath - - public static String getTempFolderURL() { - return Globals.getAppUtils().getTempFolderURL(); - } // getTempFolderURL - - public static String getUploadFolderURL() { - return Globals.getAppUtils().getUploadFolderURL(); - } // getUploadFolderURL - - public static String getSMTPServer()throws Exception { - return Globals.getAppUtils().getSMTPServer(); - } // getSMTPServer - - public static String getDefaultEmailSender() throws RaptorException { - return Globals.getAppUtils().getDefaultEmailSender(); - } // getDefaultEmailSender - - public static String getErrorPage() { - return getJspContextPath() + Globals.getAppUtils().getErrorPage(); - } // getErrorPage - - public static String getErrorPageWMenu() { - return getJspContextPath() + Globals.getAppUtils().getErrorPageWMenu(); - } // getErrorPage - - public static String getJspContextPath() { - return Globals.getAppUtils().getJspContextPath(); - } // getJspContextPath - - public static String getImgFolderURL() { - return Globals.getAppUtils().getImgFolderURL(); - } // getImgFolderURL - - public static String getBaseFolderURL() { - return Globals.getAppUtils().getBaseFolderURL(); - } // getBaseFolderURL - - public static String getChartScriptsPath() { - return getFolderPathAdj()+getBaseFolderURL(); - } // getBaseFolderURL - - public static String getChartScriptsPath(String folderAdj1) { - return folderAdj1+getBaseFolderURL(); - } // getBaseFolderURL - - public static String getFolderPathAdj() { - return Globals.getAppUtils().getFolderPathAdj(); - } // getBaseFolderURL - - - /* - * public static String getReportExecuteActionURL() { return - * Globals.getAppUtils().getReportExecuteActionURL(); } // - * getReportExecuteActionURL - * - * public static String getDataViewActionURL() { return - * Globals.getAppUtils().getDataViewActionURL(); } // getDataViewActionURL - * - * public static String getDataViewActionParam() { return - * Globals.getAppUtils().getDataViewActionParam(); } // - * getDataViewActionParam - */ - public static String getDirectAccessURL() { - return Globals.getAppUtils().getDirectAccessURL(); - } // getDirectAccessURL - - public static String getBaseURL() { - if (baseURL == null) { - baseURL = getBaseActionURL(); - if (baseURL.indexOf("?") > 0) - baseURL = baseURL.substring(0, baseURL.indexOf("?")); - } // if - - return baseURL; - } // getBaseURL - - public static String getBaseActionURL() { - return Globals.getAppUtils().getBaseActionURL(); - } // getBaseActionURL - - public static String getDrillActionURL() { - return Globals.getAppUtils().getDrillActionURL(); - } // getBaseActionURL - - public static String getRaptorActionURL() { - return Globals.getAppUtils().getBaseActionURL() + "raptor&" + AppConstants.RI_ACTION - + "="; - } // getRaptorActionURL - - public static String getRaptorActionURLNG() { - return Globals.getAppUtils().getBaseActionURLNG(); - } // getRaptorActionURL - - public static String getReportExecuteActionURL() { - return getRaptorActionURL() + "report.run.container&" + AppConstants.RI_REPORT_ID + "="; // getBaseActionParam(); - } // getReportExecuteActionURL - - public static String getReportExecuteActionURLNG() { - return getRaptorActionURLNG() + "report_run/"; // getBaseActionParam(); - } // getReportExecuteActionURL - - public static String getBaseActionParam() { - return Globals.getAppUtils().getBaseActionParam(); - } // getBaseActionParam - - public static Vector getQuickLinksMenuIDs() { - return Globals.getAppUtils().getQuickLinksMenuIDs(); - } // getQuickLinksMenuIDs - - public static String getMenuLabel(String menuId) { - return Globals.getAppUtils().getMenuLabel(menuId); - } // getMenuLabel - - public static String getReportDbColsMaskSQL() { - return Globals.getAppUtils().getReportDbColsMaskSQL(); - } // getReportDbColsMaskSQL - - public static String getReportDbLookupsSQL() { - return Globals.getAppUtils().getReportDbLookupsSQL(); - } // getReportDbLookupsSQL - - public static void processErrorNotification(HttpServletRequest request, RaptorException e) { - Globals.getAppUtils().processErrorNotification(request, e); - } // processErrorNotification - - public static String getExcelTemplatePath() { - String path = Globals.getAppUtils().getExcelTemplatePath(); - if (path.endsWith(File.separator)){ - return path; - } else { - path = path + File.separator; - return path; - } - } // getTempFolderPath - - public static String nvl(String s) { - return (s == null) ? "" : s; - } - - public static boolean isNotEmpty(String s) { - return nvl(s).length()>0; - } - public static String nvls(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - -} // AppUtils - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ConnectionUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ConnectionUtils.java deleted file mode 100644 index 8c824ead..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ConnectionUtils.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.Connection; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; - -public class ConnectionUtils { - - public static DataSet getDataSet(String sql, String remoteDbPrefix) - throws RaptorException { - return getDataSet(sql, remoteDbPrefix, false); - } - - public static Connection getConnection(String remoteDbPrefix) throws ReportSQLException { - if (!isNull(remoteDbPrefix) && (!remoteDbPrefix.equals(AppConstants.DB_LOCAL)) && !Globals.getSystemType().equals(Globals.ST_GENERIC) ) { - return RemDbUtils.getConnection(remoteDbPrefix); - } else { - return DbUtils.getConnection(); - } - } - - public static DataSet getDataSet(String sql, String remoteDbPrefix, - boolean pagesize) throws ReportSQLException { - DataSet ds = null; - if (!isNull(remoteDbPrefix) && (!remoteDbPrefix.equals(AppConstants.DB_LOCAL)) && !Globals.getSystemType().equals(Globals.ST_GENERIC) ) { - if (pagesize == false) - ds = RemDbUtils.executeQuery(sql,remoteDbPrefix); - else - ds = RemDbUtils.executeQuery(sql, Globals.getDefaultPageSize() + 1,remoteDbPrefix); - } else { - if (pagesize == false) - ds = DbUtils.executeQuery(sql); - else - ds = DbUtils.executeQuery(sql, Globals.getDefaultPageSize() + 1); - } - return ds; - } - - public static boolean isNull(String a) { - if ((a == null) || (a.length() == 0) || a.equalsIgnoreCase("null")) - return true; - else - return false; - } - - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java deleted file mode 100644 index 1eb3a2c8..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/DbUtils.java +++ /dev/null @@ -1,271 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.CallableStatement; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Types; - -import javax.sql.DataSource; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.web.support.AppUtils; -import org.springframework.beans.factory.annotation.Autowired; - -public class DbUtils /* implements IDbUtils */{ - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(DbUtils.class); - - private static DataSource dataSource; - - public DbUtils() { - } - - public static Connection getConnection() throws ReportSQLException { - try { - return AppUtils.getDatasource().getConnection(); - } catch(SQLException ex) { - ex.printStackTrace(); - } - return null; - } // getConnection - - public static void clearConnection(Connection con) throws ReportSQLException { - try { - if ((con != null) && !con.isClosed()) - Globals.getDbUtils().clearConnection(con); - } catch (SQLException ex) { - throw new ReportSQLException(ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); - } - } // clearConnection - - public static Connection startTransaction() throws ReportSQLException { - Connection con = null; - try { - con = getConnection(); - con.setAutoCommit(false); - } catch (SQLException ex) { - throw new ReportSQLException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); - } - return con; - } // startTransaction - - public static void commitTransaction(Connection con) throws ReportSQLException { - try { - con.commit(); - } catch (SQLException ex) { - throw new ReportSQLException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); - } - } // commitTransaction - - public static void rollbackTransaction(Connection con) throws ReportSQLException { - try { - con.rollback(); - clearConnection(con); - } catch (SQLException ex) { - throw new ReportSQLException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new ReportSQLException (ex2.getMessage(), ex2.getCause()); - } - } // rollbackTransaction - - public static String executeCall(Connection con, String sql, boolean expectResult) - throws ReportSQLException { - String result = null; - - try { - if(con.isClosed()) con = getConnection(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL Call] " + sql)); - CallableStatement stmt = con.prepareCall(sql); - if (expectResult) - stmt.registerOutParameter(1, Types.CHAR); - stmt.executeUpdate(); - if (expectResult) - result = stmt.getString(1); - stmt.close(); - con.commit(); - } catch (SQLException e) { - throw new ReportSQLException(e.getMessage(), sql); - } finally { - clearConnection(con); - } - - return result; - } // executeCall - - public static String executeCall(String sql, boolean expectResult) - throws RaptorException { - Connection con = null; - con = getConnection(); - String result = executeCall(con, sql, expectResult); - //con.commit(); - return result; - } // executeCall - - public static int executeUpdate(Connection con, 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); - stmt.close(); - //con.commit(); - } catch (SQLException e) { - //e.printStackTrace(); - 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")) - con.commit(); - - return rcode; - } catch (SQLException e) { - throw new ReportSQLException(e.getMessage(), sql); - } finally { - clearConnection(con); - } - } // executeUpdate - - public static DataSet executeQuery(Connection con, String sql) throws ReportSQLException { - return executeQuery(con, sql, Integer.MAX_VALUE); - } // executeQuery - - public static DataSet executeQuery(Connection con, String sql, int maxRowLimit) - throws ReportSQLException { - try { - if(con.isClosed()) con = getConnection(); - //con. - Statement stmt = con.createStatement(); - - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); - ResultSet rs = stmt.executeQuery(sql); - DataSet ds = new DataSet(rs, maxRowLimit); - - if(rs!=null) - rs.close(); - if(stmt!=null) - stmt.close(); - - return ds; - } catch (SQLException e) { - throw new ReportSQLException(e.getMessage(), sql); - } - } // executeQuery - - public static DataSet executeQuery(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(); - return executeQuery(con, sql, maxRowLimit); - }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()); - } finally { - clearConnection(con); - } - } // executeQuery - - //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(); - - DataColumnType dc = rr.getColumnWhichNeedEnhancedPagination(); - String date_ColId = dc.getColId(); - String dataFormat = dc.getColFormat(); - if(dataFormat!=null && dataFormat.length()>0) - date_ColId = "to_date("+date_ColId+", '"+ dataFormat +"')"; - String sql = ""; - if(dateOption == 1) - sql = "select count(distinct to_char("+date_ColId+", 'YYYY/MM')) from ("+wholeSql+")"; - else if (dateOption == 3) - sql = "select count(distinct to_char("+date_ColId+", 'YYYY/MM/DD')) from ("+wholeSql+")"; - 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) { - ex.printStackTrace(); - }catch(Exception ex1) { - ex1.printStackTrace(); - } finally { - try { - clearConnection(con); - } catch (ReportSQLException ex2) { - ex2.printStackTrace(); - } - } - return rowCount; - } - - public String nvl(String s) { - return (s == null) ? "" : s; - } - - public static String nvls(String s) { - return (s == null) ? "" : s; - } - - public static String nvl(String s, String sDefault) { - return nvls(s).equals("") ? sDefault : s; - } - - public static DataSource getDataSource() { - return dataSource; - } - - @Autowired - public void setDataSource(DataSource dataSource) { - dataSource = dataSource; - } - -} // DbUtils diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ExecuteQuery.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ExecuteQuery.java deleted file mode 100644 index a111a816..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/ExecuteQuery.java +++ /dev/null @@ -1,61 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.concurrent.Callable; - -public class ExecuteQuery implements Callable{ - - private Statement stmt; - private String sql = ""; - private int maxRowLimit; - private ResultSet resultSet; - - public ResultSet getResultSet() { - return resultSet; - } - public void setResultSet(ResultSet resultSet) { - this.resultSet = resultSet; - } - - public ExecuteQuery(Statement stmt, String sql, int maxRowLimit) { - super(); - this.stmt = stmt; - this.sql = sql; - this.maxRowLimit = maxRowLimit; - } - - public ResultSet call() throws SQLException { - try { - System.out.println("Query Started" + new java.util.Date()); - resultSet = stmt.executeQuery(sql); - System.out.println("Query End" + new java.util.Date()); - } catch (SQLException ex) { - System.out.println("Query Exception" + new java.util.Date()); - ex.printStackTrace(); - throw ex; - } - return resultSet; - } -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/Globals.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/Globals.java deleted file mode 100644 index 008789fc..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/Globals.java +++ /dev/null @@ -1,2299 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ - -/* =========================================================================================== - * This class is part of RAPTOR (Rapid Application Programming Tool for OLAP Reporting) - * Raptor : This tool is used to generate different kinds of reports with lot of utilities - * =========================================================================================== - * - * ------------------------------------------------------------------------------------------- - * Globals.java - This class is used to read properties file and call the common methods - * existing among all the frameworks. - - * ------------------------------------------------------------------------------------------- - * - * - * Changes - * ------- - * 31-Jul-2009 : Version 8.4 (Sundar);
  • getRequestparametersMap method iterates form field collections.
  • - *
- * 27-Jul-2009 : Version 8.4 (Sundar);
  • Added property "admin_role_equiv_to_super_role" to specify Admin User equivalent to Super User.
  • - *
- * 14-Jul-2009 : Version 8.4 (Sundar);
  • Added property to showing/hiding params displayed in dashboard reports.
  • - *
- * - */ -package org.openecomp.portalsdk.analytics.system; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.StringTokenizer; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.config.ConfigLoader; -import org.openecomp.portalsdk.analytics.controller.ActionMapping; -import org.openecomp.portalsdk.analytics.model.runtime.FormField; -import org.openecomp.portalsdk.analytics.model.runtime.ReportFormFields; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.ExcelColorDef; -import org.openecomp.portalsdk.analytics.util.Scheduler; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class Globals extends org.openecomp.portalsdk.analytics.RaptorObject { - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(Globals.class); - - - private static boolean systemInitialized = false; - - private static ActionMapping raptorActionMapping = null; - - private static Scheduler scheduler = null; - - // System type constants - public final static String ST_FUSION = "fusion"; - - public final static String ST_GENERIC = "generic"; - - public final static String ST_PRISMS = "prisms"; - - private static String systemType = ST_PRISMS; // default - - private static IAppUtils appUtils = null; - - private static IDbUtils dbUtils = null; - - private static RDbUtils rdbUtils = null; - - private static int debugLevel = 5; - - private static int downloadLimit = 65000; // max number rows for download - // csv file - - private static int defaultPageSize = 50; - - private static int formFieldsListSize = 50; - - private static int schedulerInterval = 0; - - private static String systemName = "MSA Databank"; - - private static String baseTitle = "ANALYSIS"; - - private static String sheet_name = "Raptor Reports"; - - private static boolean allowSQLBasedReports = true; // whether to allow - // SQL-based report - // definition (security - // risk); super users - // are always allowed to - // create SQL-based - // reports - - private static boolean showDisclaimer = true; // whether to include - // disclaimer page at the - // bottom of each screen - - private static boolean displayFormBeforeRun = true; // whether to display - // the form page as a - // separate page before - // running the report - - private static boolean includeFormWithData = true; // whether to include - // the form page on the - // report data page - - private static boolean cacheChartData = true; // whether to cache chart - // data in the session => - // faster re-display if the - // data volume does not get - // too large - - private static boolean cacheCurPageData = true; // whether to cache report - // data for the currently - // displayed page in the - // session => faster - // re-display if the data - // volume does not get too - // large - - private static boolean deleteOnlyByOwner = true; // whether to permit - // report deletion only - // by report owner or by - // everyone with "write" - // access - - private static boolean enableReportLog = true; // whether to log each - // report execution and - // update time and user ID - - private static boolean cacheUserRoles = true; // whether to cache user - // roles info in memory - // (saves many DB reads, but - // does not account for - // roles assigned after the - // cache was loaded) - - private static boolean monthFormatUseLastDay = true; // whether to - // convert month - // formats (e.g. - // MM/YYYY) to the - // last day of the - // month (true) or - // first day (false) - // - like 12/2003 is - // converted to - // either 12/31/2003 - // or 12/01/2003 - - private static boolean printTitleInDownload = false; // whether to print - // the report title - // in the download - // files - - private static boolean showDescrAtRuntime = false; // whether to show - // report description - // when the report is - // run and in the quick - // links - - // private static boolean skipChartLabelsToFit = false; // whether to skip - // labels on the Line chart axis when they overlap - private static boolean showNonstandardCharts = false; // whether to show - // chart types that - // are purpose - // and/or data - // specific - - private static boolean allowRuntimeChartSel = true; // whether to allow the - // user to change the - // chart type at runtime - - private static boolean displayChartTitle = false; // whether to display - // the report title as - // chart title as well - - private static boolean mergeCrosstabRowHeadings = true; // whether to - // merge/blank - // multi-level row - // headings in - // cross-tab report - - private static boolean displayChartByDefault = true; // whether to - // display chart - // when displaying - // the report at - // first or just a - // "Show Chart" - // button - - private static boolean printParamsInDownload = false; // whether to print - // the form field - // values in the - // download files - - // private static boolean chartLinesAlwaysSolid = true; // whether - // multi-lines chart uses solid line for all series or dashed/dotted/etc for - // each - // private static boolean chartLinesAlwaysSmooth = true; // whether line - // charts display smooth lines or with marked points on them for each value - private static int maxDecimalsOnTotals = 2; // Maximum number of decimals - // displayed in totals; decimal - // digits beyond that number - // will be truncated; if - // negative => display all - // decimal digits - - private static int defaultChartWidth = 700; - - private static int defaultChartHeight = 420; - - private static int skipChartLabelsLimit = 30; - - private static boolean canCopyOnReadOnly = true; // whether to users with - // read-only rights for - // a report can copy it - - // Currently not loaded from a property file - private static boolean restrictTablesByRole = true; // whether to restrict - // DB tables - // accessibility by user - // role; defaults to - // false if table - // CR_TABLE_ROLE is - // empty, otherwise true - - private static String javaTimeFormat = "MM/dd/yyyy h:m:s a"; - - private static String oracleTimeFormat = "%m/%d/%Y %h:%i:%s %p"; // must - // correspond - // to - // the - // java - // format - // modifier - - private static String raptorVersion = "10.5.1"; - - private static int flatFileLowerLimit = 0; - - private static int flatFileUpperLimit = 0; - - private static String shellScriptDir = ""; - - private static String queryFolder = ""; - - private static String requestParams = ""; - - private static String sessionParams = ""; - - private static boolean displayAllUsers = true; - - private static boolean user_col_def = true; - - private static boolean printFooterInDownload = true; - - private static String footerFirstLine = ""; - - private static String footerSecondLine = ""; - - private static boolean reportsInPoPUpWindow = false; - - private static boolean poPUpInNewWindow = false; - - private static boolean passRequestParamInDrilldown = false; - - private static Properties raptorPdfProperties; - - private static Properties raptorProperties; - - private static Properties sqlProperty; - - private static boolean showPDFDownloadIcon = false; - - - - private Globals() { - } - - public static synchronized void initializeSystem(ServletContext servletContext) { - if (systemInitialized) - return; - AppConstants.initializeAppConstants(); - ExcelColorDef.initializeExcelColorDef(); - - //DB Agnostic Addition - try{ - Properties sqlProperty = ConfigLoader.getProperties(servletContext, ConfigLoader.SQL_PROPERTIES); - Globals.sqlProperty = sqlProperty; - } - - catch (IOException e) { - e.printStackTrace(); - } - - try { - Properties raptorProperties = ConfigLoader.getProperties(servletContext, - ConfigLoader.RAPTOR_PROPERTIES); - initializeRaptorProperties(raptorProperties); - - - } catch (Exception e) { - logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] Globals: Unable to load properties [" - + ConfigLoader.RAPTOR_PROPERTIES + "]. Exception: " + e.getMessage())); - // throw new RuntimeException(e.getMessage()); - } - - systemInitialized = true; - - try { - appUtils = (IAppUtils) Class.forName( - "org.openecomp.portalsdk.analytics.system." + systemType.toLowerCase() + ".AppUtils") - .newInstance(); - appUtils.initializeAppUtils(servletContext); - - dbUtils = (IDbUtils) Class.forName( - "org.openecomp.portalsdk.analytics.system." + systemType.toLowerCase() + ".DbUtils") - .newInstance(); - dbUtils.initializeDbUtils(servletContext); - - if(!Globals.getSystemType().equals(Globals.ST_GENERIC)) { - rdbUtils = (RDbUtils) Class.forName( - "org.openecomp.portalsdk.analytics.system." + systemType.toLowerCase() + ".RemoteDbUtils") - .newInstance(); - rdbUtils.initializeDbUtils(servletContext); - } - } catch (Exception e) { - String eMsg = "[SYSTEM ERROR] Globals: Unable to instantiate system classes. Exception: " - + e.getMessage(); - logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] " + eMsg)); - systemInitialized = false; - throw new RuntimeException(eMsg); - } - - try { - raptorActionMapping = ConfigLoader.loadRaptorActionMapping(servletContext); - } catch (Exception e) { - String eMsg = "[SYSTEM ERROR] Globals: Unable to load Raptor action mapping. Exception: " - + e.getMessage(); - logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] " + eMsg)); - systemInitialized = false; - throw new RuntimeException(eMsg); - } // catch - - /*try { - //DataSet ds = DbUtils - // .executeQuery("SELECT 1 FROM dual WHERE EXISTS (SELECT 1 FROM cr_table_role)"); - - String p_sql = Globals.getInitializeRoles(); - DataSet ds = DbUtils.executeQuery(p_sql); - - restrictTablesByRole = (ds.getRowCount() > 0); - } catch (Exception e) { - String eMsg = "[SYSTEM ERROR] Globals: Unable to load Raptor version. Exception: " - + e.getMessage(); - debugLogger.error("[EXCEPTION ENCOUNTERED IN RAPTOR] " + eMsg, e); - } // catch - */ - /*try { - //DataSet ds = DbUtils.executeQuery("SELECT cr_raptor.get_version FROM dual"); - - //String n_sql = Globals.getInitializeVersion(); - //DataSet ds = DbUtils.executeQuery(n_sql); - //raptorVersion = Globals.get - // if(ds.getRowCount()>0) - // raptorVersion = " v"+ds.getString(0, 0); - } catch (Exception e) { - String eMsg = "[SYSTEM ERROR] Globals: Unable to load Raptor version. Exception: " - + e.getMessage(); - debugLogger.error("[EXCEPTION ENCOUNTERED IN RAPTOR] " + eMsg, e); - } // catch*/ - - - //initiate pdf global config - try { - raptorPdfProperties = ConfigLoader.getProperties(servletContext, ConfigLoader.RAPTOR_PDF_PROPERTIES); - } - catch (Exception e) { - logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] Globals: Unable to load properties [" - + ConfigLoader.RAPTOR_PDF_PROPERTIES + "]. Exception: " + e.getMessage())); - - } - - scheduler = new Scheduler(schedulerInterval); - - } // initializeSystem - - public static void initializeRaptorProperties(Properties raptorProperties) { - Globals.raptorProperties = raptorProperties; - systemType = raptorProperties.getProperty("system"); - - try { - debugLevel = Integer.parseInt(nvls(raptorProperties - .getProperty("debug_level")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - downloadLimit = Integer.parseInt(nvls(raptorProperties - .getProperty("download_limit")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - defaultPageSize = Integer.parseInt(nvls(raptorProperties - .getProperty("default_page_size")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - formFieldsListSize = Integer.parseInt(nvls(raptorProperties - .getProperty("form_fields_list_size")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - schedulerInterval = Integer.parseInt(nvls(raptorProperties - .getProperty("scheduler_interval")).trim()); - } catch (NumberFormatException nfe) { - System.out.println("NUMBERFORMATEXCEPTION Schedular " + raptorProperties - .getProperty("scheduler_interval")); - schedulerInterval = 0; - } - - try { - maxDecimalsOnTotals = Integer.parseInt(nvls(raptorProperties - .getProperty("max_decimals_on_totals")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - defaultChartWidth = Integer.parseInt(nvls(raptorProperties - .getProperty("default_chart_width")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - defaultChartHeight = Integer.parseInt(nvls(raptorProperties - .getProperty("default_chart_height")).trim()); - } catch (NumberFormatException nfe) { - } - - try { - skipChartLabelsLimit = Integer.parseInt(nvls(raptorProperties - .getProperty("skip_chart_labels_limit")).trim()); - } catch (NumberFormatException nfe) { - } - - systemName = nvls(raptorProperties.getProperty("system_name"), "MSA Databank"); - baseTitle = nvls(raptorProperties.getProperty("base_title"), "ANALYSIS"); - - allowSQLBasedReports = nvls( - raptorProperties.getProperty("allow_sql_based_reports"), "yes") - .toUpperCase().startsWith("Y"); - showDisclaimer = nvls(raptorProperties.getProperty("show_disclaimer"), "yes") - .toUpperCase().startsWith("Y"); - displayFormBeforeRun = nvls( - raptorProperties.getProperty("display_form_before_run"), "yes") - .toUpperCase().startsWith("Y"); - includeFormWithData = nvls(raptorProperties.getProperty("include_form_with_data"), - "yes").toUpperCase().startsWith("Y"); - cacheChartData = nvls(raptorProperties.getProperty("cache_chart_data"), "yes") - .toUpperCase().startsWith("Y"); - cacheCurPageData = nvls(raptorProperties.getProperty("cache_cur_page_data"), "yes") - .toUpperCase().startsWith("Y"); - deleteOnlyByOwner = nvls(raptorProperties.getProperty("delete_only_by_owner"), - "yes").toUpperCase().startsWith("Y"); - enableReportLog = nvls(raptorProperties.getProperty("enable_report_log"), "yes") - .toUpperCase().startsWith("Y"); - cacheUserRoles = nvls(raptorProperties.getProperty("cache_user_roles"), "yes") - .toUpperCase().startsWith("Y"); - monthFormatUseLastDay = nvls( - raptorProperties.getProperty("month_format_use_last_day"), "yes") - .toUpperCase().startsWith("Y"); - printTitleInDownload = nvls( - raptorProperties.getProperty("print_title_in_download"), "no") - .toUpperCase().startsWith("Y"); - showDescrAtRuntime = nvls(raptorProperties.getProperty("show_descr_at_runtime"), - "no").toUpperCase().startsWith("Y"); - // skipChartLabelsToFit = - // nvls(raptorProperties.getProperty("skip_chart_labels_to_fit"), - // "no" ).toUpperCase().startsWith("Y"); - showNonstandardCharts = nvls( - raptorProperties.getProperty("show_nonstandard_charts"), "no") - .toUpperCase().startsWith("Y"); - allowRuntimeChartSel = nvls( - raptorProperties.getProperty("allow_runtime_chart_sel"), "yes") - .toUpperCase().startsWith("Y"); - displayChartTitle = nvls(raptorProperties.getProperty("display_chart_title"), "no") - .toUpperCase().startsWith("Y"); - mergeCrosstabRowHeadings = nvls( - raptorProperties.getProperty("merge_crosstab_row_headings"), "yes") - .toUpperCase().startsWith("Y"); - displayChartByDefault = nvls( - raptorProperties.getProperty("display_chart_by_default"), "yes") - .toUpperCase().startsWith("Y"); - //System.out.println("Params Globals " + raptorProperties.getProperty("print_params_in_download")); - - printParamsInDownload = nvls( - raptorProperties.getProperty("print_params_in_download"), "no") - .toUpperCase().startsWith("Y"); - //System.out.println("printParamsInDownload " + printParamsInDownload); - - canCopyOnReadOnly = nvls(raptorProperties.getProperty("can_copy_on_read_only"), - "yes").toUpperCase().startsWith("Y"); - // chartLinesAlwaysSolid = - // nvls(raptorProperties.getProperty("chart_lines_always_solid"), - // "yes").toUpperCase().startsWith("Y"); - // chartLinesAlwaysSmooth = - // nvls(raptorProperties.getProperty("chart_lines_always_smooth"), - // "yes").toUpperCase().startsWith("Y"); - displayAllUsers = nvls( - raptorProperties.getProperty("display_all_users"), "yes") - .toUpperCase().startsWith("Y"); - requestParams = nvls( - raptorProperties.getProperty("request_get_params"), ""); - sessionParams = nvls( - raptorProperties.getProperty("session_params"), ""); - user_col_def = nvls( - raptorProperties.getProperty("user_col_def"), "no") - .toUpperCase().startsWith("Y"); - sheet_name = nvls(raptorProperties.getProperty("sheet_name"), "Raptor Reports"); - try { - flatFileLowerLimit = Integer.parseInt(raptorProperties - .getProperty("flat_file_lower_limit")); - } catch (NumberFormatException nfe) { - } - try { - flatFileUpperLimit = Integer.parseInt(raptorProperties - .getProperty("flat_file_upper_limit")); - } catch (NumberFormatException nfe) { - } - shellScriptDir = nvls(raptorProperties.getProperty("shell_script_dir"), ""); - //queryFolder = nvls(raptorProperties.getProperty("download_query_folder"), AppUtils.getTempFolderPath()+"../raptor/dwnld/query/"); - queryFolder = nvls(raptorProperties.getProperty("download_query_folder"),"../raptor/dwnld/query/"); - - - printFooterInDownload = nvls( - raptorProperties.getProperty("print_footer_in_download"), "no") - .toUpperCase().startsWith("Y"); - footerFirstLine = nvls(raptorProperties.getProperty("footer_first_line"), "AT&T Proprietary"); - footerSecondLine = nvls(raptorProperties.getProperty("footer_second_line"), "Use Pursuant to Company Instructions"); - reportsInPoPUpWindow = nvls( - raptorProperties.getProperty("report_in_popup_window"), "no") - .toUpperCase().startsWith("Y"); - poPUpInNewWindow = nvls( - raptorProperties.getProperty("popup_in_new_window"), "no") - .toUpperCase().startsWith("Y") && reportsInPoPUpWindow; - - passRequestParamInDrilldown = nvls( - raptorProperties.getProperty("pass_request_param_in_drilldown"), "yes") - .toUpperCase().startsWith("Y"); - showPDFDownloadIcon = nvls( - raptorProperties.getProperty("show_pdf_download"), "no") - .toUpperCase().startsWith("Y"); - } - - /** *********************************************************************** */ - - public static ActionMapping getRaptorActionMapping() { - if (!systemInitialized) - throw new RuntimeException("[SYSTEM ERROR] Globals not initialized"); - - return raptorActionMapping; - } // getRaptorActionMapping - - public static String getSystemType() { - if (!systemInitialized) - throw new RuntimeException("[SYSTEM ERROR] Globals not initialized"); - - return systemType; - } // getSystemType - - public static IAppUtils getAppUtils() { - if (!systemInitialized) - throw new RuntimeException("[SYSTEM ERROR] Globals not initialized"); - - return appUtils; - } // getAppUtils - - public static IDbUtils getDbUtils() { - if (!systemInitialized) - throw new RuntimeException("[SYSTEM ERROR] Globals not initialized"); - - return dbUtils; - } // getDbUtils - - public static RDbUtils getRDbUtils() { - if (!systemInitialized) - throw new RuntimeException("[SYSTEM ERROR] Globals not initialized"); - return rdbUtils; - } // getDbUtils - - /** *********************************************************************** */ - - public static int getDebugLevel() { - return debugLevel; - } - - public static int getDownloadLimit() { - return downloadLimit; - } - - public static int getCSVDownloadLimit() { - return Integer.parseInt(nvls(raptorProperties.getProperty("csv_download_limit"), new Integer(getDownloadLimit()).toString()).trim()); - } - - public static String getDownloadLimitAsText() { - return java.text.NumberFormat.getNumberInstance(java.util.Locale.US).format( - downloadLimit); - } - - public static int getDefaultPageSize() { - return defaultPageSize; - } - - public static int getFormFieldsListSize() { - return formFieldsListSize; - } - - public static int getSchedulerInterval() { - return schedulerInterval; - } - - public static String getBaseTitle() { - return baseTitle; - } - - public static String getSystemName() { - return systemName; - } - - public static boolean getAllowSQLBasedReports() { - return allowSQLBasedReports; - } - - public static boolean getShowDisclaimer() { - return showDisclaimer; - } - - public static boolean getDisplayFormBeforeRun() { - return displayFormBeforeRun; - } - - public static boolean getIncludeFormWithData() { - return includeFormWithData; - } - - public static boolean getCacheChartData() { - return cacheChartData; - } - - public static boolean getCacheCurPageData() { - return cacheCurPageData; - } - - public static boolean getDeleteOnlyByOwner() { - return deleteOnlyByOwner; - } - - public static boolean getEnableReportLog() { - return enableReportLog; - } - - public static boolean getCacheUserRoles() { - return cacheUserRoles; - } - - public static boolean getMonthFormatUseLastDay() { - return monthFormatUseLastDay; - } - - public static boolean getPrintTitleInDownload() { - return printTitleInDownload; - } - - public static boolean getShowDescrAtRuntime() { - return showDescrAtRuntime; - } - - // public static boolean getSkipChartLabelsToFit() { return - // skipChartLabelsToFit; } - public static boolean getShowNonstandardCharts() { - return showNonstandardCharts; - } - - public static boolean getAllowRuntimeChartSel() { - return allowRuntimeChartSel; - } - - public static boolean getDisplayChartTitle() { - return displayChartTitle; - } - - public static boolean getMergeCrosstabRowHeadings() { - return mergeCrosstabRowHeadings; - } - - public static boolean getDisplayChartByDefault() { - return displayChartByDefault; - } - - public static boolean getPrintParamsInDownload() { - return printParamsInDownload; - } - - public static boolean getCanCopyOnReadOnly() { - return canCopyOnReadOnly; - } - - // public static boolean getChartLinesAlwaysSolid() { return - // chartLinesAlwaysSolid; } - // public static boolean getChartLinesAlwaysSmooth() { return - // chartLinesAlwaysSmooth; } - public static int getMaxDecimalsOnTotals() { - return maxDecimalsOnTotals; - } - - public static int getDefaultChartWidth() { - return defaultChartWidth; - } - - public static int getDefaultChartHeight() { - return defaultChartHeight; - } - - public static int getSkipChartLabelsLimit() { - return skipChartLabelsLimit; - } - - public static boolean getRestrictTablesByRole() { - return restrictTablesByRole; - } - - public static String getJavaTimeFormat() { - return javaTimeFormat; - } - -/* public static String getOracleTimeFormat() { - return oracleTimeFormat; - } -*/ - - public static String getRaptorVersion() { - return raptorVersion; - } - - public static boolean getDisplayAllUsers() { - return displayAllUsers; - } - - public static boolean getUserColDef() { - return user_col_def; - } - - public static String getSheetName() { - return sheet_name; - } - - public static int getFlatFileLowerLimit() { - return flatFileLowerLimit; - } - - public static int getFlatFileUpperLimit() { - return flatFileUpperLimit; - } - - - public static String getShellScriptDir() { - return shellScriptDir; - } - - public static String getQueryFolder() { - return AppUtils.getTempFolderPath()+queryFolder; - } - - public static String getRequestParams() { - return requestParams; - } - - public static String getSessionParams() { - return sessionParams; - } - - public static boolean getPrintFooterInDownload() { - return printFooterInDownload; - } - - public static String getFooterFirstLine() { - return footerFirstLine; - } - - public static String getFooterSecondLine() { - return footerSecondLine; - } - - public static boolean getReportsInPoPUpWindow() { - return reportsInPoPUpWindow; - } - - public static boolean getPoPUpInNewWindow() { - return poPUpInNewWindow; - } - - public static boolean getPassRequestParamInDrilldown() { - return passRequestParamInDrilldown; - } - - - //pdf specific properties - public static float getDataFontSize() { - float size = 10f; - - try { - size = Float.parseFloat(nvls(raptorPdfProperties.getProperty("pdf_data_font_size")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static float getDataFontSizeOffset() { - float size = 9f; - - try { - size = Float.parseFloat(nvls(raptorPdfProperties.getProperty("pdf_data_font_size_offset")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static float getFooterFontSize() { - float size = 9f; - - try { - size = Float.parseFloat(nvls(raptorPdfProperties.getProperty("pdf_footer_font_size")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static int getPageNumberPosition() { - int size = 1; - - try { - size = Integer.parseInt(nvls(raptorPdfProperties.getProperty("pdf_page_number_position")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static String getDataFontFamily() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_font_family"),"Arial").trim(); - } - - public static String getFooterFontFamily() { - - return nvls(raptorPdfProperties.getProperty("pdf_footer_font_family"),"Arial").trim(); - } - - public static boolean isCoverPageNeeded() { - - return nvls(raptorPdfProperties.getProperty("display_cover_page"),"true").trim().equalsIgnoreCase("true"); - } - - public static boolean isDataAlternateColor() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_alternate_color"),"true").trim().equalsIgnoreCase("true"); - } - - public static String getPDFFooter() { - - return nvls(raptorPdfProperties.getProperty("pdf_footer")); - } - - public static boolean isCreatedOwnerInfoNeeded() { - return nvls(raptorPdfProperties.getProperty("display_create_owner_info"),"true").trim().equalsIgnoreCase("true"); - } - - // Selected Form field section in the run page - public static boolean displayFormFieldInfo() { - return nvls(raptorProperties.getProperty("display_formfield_info"),"no").trim().toUpperCase().startsWith("Y"); - } - - // Customize Form field section in the run page - public static boolean customizeFormFieldInfo() { - return nvls(raptorProperties.getProperty("customize_formfield_info"),"no").trim().toUpperCase().startsWith("Y"); - } - - public static boolean displayLoginIdForDownloadedBy() { - return nvls(raptorPdfProperties.getProperty("display_loginid_for_downloaded_by"),"false").trim().equalsIgnoreCase("true"); - } - - public static boolean isDefaultOrientationPortrait() { - return nvls(raptorPdfProperties.getProperty("is_default_orientation_portrait"),"true").trim().equalsIgnoreCase("true"); - } - - public static String getSessionInfoForTheCoverPage() { - return nvls(raptorPdfProperties.getProperty("session_info")); - } - - public static String getDatePattern() { - - return nvls(raptorPdfProperties.getProperty("pdf_date_pattern"),"MM/dd/yyyy hh:mm:ss a"); - } - - public static String getTimeZone() { - - return nvls(raptorPdfProperties.getProperty("pdf_date_timezone"),"EST"); - } - - public static String getWordBeforePageNumber() { - - return nvls(raptorPdfProperties.getProperty("pdf_word_before_page_number")); - } - - public static String getWordAfterPageNumber() { - - return nvls(raptorPdfProperties.getProperty("pdf_word_after_page_number")); - } - - public static float getPDFFooterFontSize() { - float size = 7f; - - try { - size = Float.parseFloat(nvls(raptorPdfProperties.getProperty("pdf_footer_font_size")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static String getDataBackgroundAlternateHexCode() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_background_alternate_hex_code"),"#FFFFFF"); - } - - public static String getDataDefaultBackgroundHexCode() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_default_background_hex_code"),"#FFFFFF"); - } - - public static String getDataTableHeaderFontColor() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_table_header_font_hex_code"),"#FFFFFF"); - } - - public static String getDataTableHeaderBackgroundFontColor() { - - return nvls(raptorPdfProperties.getProperty("pdf_data_table_header_background_hex_code"),"#8A9BB3"); - } - - public static boolean isFolderTreeAllowed() { - return nvls(raptorProperties.getProperty("show_folder_tree"),"yes").trim().toUpperCase().startsWith("Y"); - } - - public static boolean isFolderDefaultMinimized() { - return nvls(raptorProperties.getProperty("folder_tree_minimized"),"no").trim().toUpperCase().startsWith("Y"); - } - - public static boolean isFolderTreeAllowedOnlyForAdminUsers() { - return nvls(raptorProperties.getProperty("show_folder_tree_only_to_admin_users"),"yes").trim().toUpperCase().startsWith("Y"); - } - - public static float getCoverPageFirstColumnSize() { - float size = 0.3f; - - try { - size = Float.parseFloat(nvls(raptorPdfProperties.getProperty("pdf_coverpage_firstcolumn_size")).trim()); - } catch (Exception ex) { - - } - return size; - } - - public static boolean isImageAutoRotate() { - return nvls(raptorPdfProperties.getProperty("pdf_image_auto_rotate"),"false").trim().equalsIgnoreCase("true"); - } - - - public static boolean isShowPDFDownloadIcon() { - return showPDFDownloadIcon; - } - - - public static void setShowPDFDownloadIcon(boolean showPDFDownloadIcon) { - Globals.showPDFDownloadIcon = showPDFDownloadIcon; - } - - public static int getScheduleLimit() { - int limit = 1000; - try { - limit = Integer.parseInt(nvls(raptorProperties.getProperty("schedule_limit")).trim()); - } catch (Exception ex) { - - } - return limit; - } - -// public static String getWhereConditionForUserRole() { -// return nvls(raptorProperties.getProperty("schedule_where_condition"),"").trim(); -// } - public static String getCustomizedScheduleQueryForUsers() { - return nvls(raptorProperties.getProperty("schedule_custom_query_for_users"),"").trim(); - } - - public static String getTimeFormat() { - return nvls(raptorProperties.getProperty("time_format"),"%m/%d/%Y %h:%i:%s %p").trim(); - } - - public static String getCustomizedScheduleQueryForRoles() { - return nvls(raptorProperties.getProperty("schedule_custom_query_for_roles"),"").trim(); - } - - public static String getScheduleDatePattern() { - return nvls(raptorProperties.getProperty("schedule_date_pattern"),"MM/dd/yyyy hh:mm:ss a"); - } - - public static String getChartYearlyPattern() { - return nvls(raptorProperties.getProperty("chart_yearly_format"),"yyyy"); - } - - public static String getChartMonthlyPattern() { - return nvls(raptorProperties.getProperty("chart_monthly_format"),"MMM-yyyy"); - } - - public static String getChartDailyPattern() { - return nvls(raptorProperties.getProperty("chart_daily_format"),"MM-dd-yyyy"); - } - - public static String getChartWeeklyPattern() { - return nvls(raptorProperties.getProperty("chart_weekly_format"),"MM-dd-yyyy"); - } - - public static String getChartHourlyPattern() { - return nvls(raptorProperties.getProperty("chart_hourly_format"),"HH"); - } - - public static String getChartMinutePattern() { - return nvls(raptorProperties.getProperty("chart_minute_format"),"HH:mm"); - } - - public static String getChartSecPattern() { - return nvls(raptorProperties.getProperty("chart_second_format"),"HH:mm:ss"); - } - - public static String getChartMilliSecPattern() { - return nvls(raptorProperties.getProperty("chart_millisecond_format"),"HH:mm:ss.S"); - } - - public static String getSessionParamsForScheduling() { - return nvls(raptorProperties.getProperty("session_params_for_scheduling"),""); - } - - public static String getDisplaySessionParamInPDFEXCEL() { - return nvls(raptorProperties.getProperty("display_session_param_pdfexcel"),""); - } - - public static String getDisplayScheduleSessionParamInPDFEXCEL() { - return nvls(raptorProperties.getProperty("session_params_for_displaying_in_scheduling"),""); - } - - public static boolean isScheduleDateParamAutoIncr() { - return nvls(raptorProperties.getProperty("session_date_formfield_auto_incr"),"yes").trim().toUpperCase().startsWith("Y"); - } - - public static int getMaxCellWidthInExcel() { - int cellWidth = 40; - try { - cellWidth = Integer.parseInt(nvls(raptorProperties.getProperty("max_cell_width_in_excel")).trim()); - } catch (Exception ex) { - - } - return cellWidth; - } - - public static synchronized int getFormFieldsCount(HttpServletRequest request) - { - if(request.getSession().getAttribute( - AppConstants.SI_REPORT_RUNTIME) == null ) - { - return 0; - } - - ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( - AppConstants.SI_REPORT_RUNTIME); - - ReportFormFields rff = rr.getReportFormFields(); - - int idx = 0; - FormField ff = null; - Map fieldNameMap = new HashMap(); - int countOfFields = 0 ; - for(rff.resetNext(); rff.hasNext(); idx++) { - ff = rff.getNext(); - fieldNameMap.put(ff.getFieldName(), ff.getFieldDisplayName()); - countOfFields++; - } - return countOfFields; - - } - - public static synchronized java.util.HashMap getRequestParametersMap(HttpServletRequest request, HashMap paramsMap) { - HashMap valuesMap = new HashMap(); - if(paramsMap.size() <= 0) { - return valuesMap; - } - - ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute( - AppConstants.SI_REPORT_RUNTIME); - if(rr.getReportType().equals(AppConstants.RT_DASHBOARD)) { - rr = (ReportRuntime) request.getSession().getAttribute("FirstDashReport"); - } - ReportFormFields rff = rr.getReportFormFields(); - - int idx = 0; - FormField ff = null; - - Map fieldNameMap = new HashMap(); - int countOfFields = 0 ; - - - for(rff.resetNext(); rff.hasNext(); idx++) { - ff = rff.getNext(); - fieldNameMap.put(ff.getFieldName(), ff.getFieldDisplayName()); - countOfFields++; - } - - List formParameter = new ArrayList(); - String formField = ""; - - for(int i = 0 ; i < rff.size(); i++) { - ff = ((FormField)rff.getFormField(i)); - formField = ff.getFieldName(); - - if(paramsMap.containsKey(formField) ) { - String vals = (String) paramsMap.get(formField); - StringBuffer value = new StringBuffer(""); - boolean isMultiValue = false; - isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); - boolean isTextArea = (ff.getFieldType().equals(FormField.FFT_TEXTAREA) && rr.getReportDefType() - .equals(AppConstants.RD_SQL_BASED)); - - if(isMultiValue) { - value.append("("); - } - StringTokenizer st = new StringTokenizer(vals, "|"); - if(st.countTokens()>0) { - while(st.hasMoreTokens()) { - if(isMultiValue) value.append("'"); - String token = st.nextToken(); - try { - if(token !=null && token.length() > 0) - token = java.net.URLDecoder.decode(token, "UTF-8"); - } catch (UnsupportedEncodingException ex) {} - catch (IllegalArgumentException ex1){} - catch (Exception ex2){} - value.append(token); - if(isMultiValue) value.append("'"); - if(st.hasMoreTokens()) { - value.append(","); - } - } - } else { - String valueStr = ""; - valueStr = request.getParameter(formField); - valueStr = Utils.oracleSafe(valueStr); - valueStr = "('" + Utils.replaceInString(valueStr, ",", "'|'") + "')"; - valueStr = Utils.replaceInString(valueStr, "|", ","); - valuesMap.put(fieldNameMap.get(formField), valueStr); - valueStr = ""; - } - if(isMultiValue) value.append(")"); - - valuesMap.put(fieldNameMap.get(formField), value.toString()); - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - String valueStr = ""; - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { - valueStr = (String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - } else if (ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { - valueStr =(String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - valueStr = (String) paramsMap.get(formField +"_Min"); - valuesMap.put(formField+"_Min", valueStr); - valueStr = ""; - } else if (ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - valueStr = (String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - valueStr =(String) paramsMap.get(formField +"_Min"); - valuesMap.put(formField+"_Min", valueStr); - valueStr = ""; - valueStr = (String) paramsMap.get(formField +"_Sec"); - valuesMap.put(formField+"_Sec", valueStr); - valueStr = ""; - } - } - - value = new StringBuffer(""); - - } else if (paramsMap.containsKey(formField +"_auto")) { - String vals = (String) paramsMap.get(formField +"_auto"); - StringBuffer value = new StringBuffer(""); - boolean isMultiValue = false; - isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); - boolean isTextArea = (ff.getFieldType().equals(FormField.FFT_TEXTAREA) && rr.getReportDefType() - .equals(AppConstants.RD_SQL_BASED)); - - if(isMultiValue) { - value.append("("); - } - StringTokenizer st = new StringTokenizer(vals, "|"); - if(st.countTokens()>0) { - while(st.hasMoreTokens()) { - if(isMultiValue) value.append("'"); - String token = st.nextToken(); - try { - if(token !=null && token.length() > 0) - token = java.net.URLDecoder.decode(Utils.oracleSafe(token), "UTF-8"); - } catch (UnsupportedEncodingException ex) {} - catch (IllegalArgumentException ex1){} - catch (Exception ex2){} - value.append(token); - if(isMultiValue) value.append("'"); - if(st.hasMoreTokens()) { - value.append(","); - } - } - } else { - String valueStr = ""; - valueStr = request.getParameter(formField +"_auto"); - valueStr = "('" + Utils.replaceInString(valueStr, ",", "'|'") + "')"; - valueStr = Utils.replaceInString(valueStr, "|", ","); - valuesMap.put(fieldNameMap.get(formField), valueStr); - valueStr = ""; - } - if(isMultiValue) value.append(")"); - - valuesMap.put(fieldNameMap.get(formField), value.toString()); - - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN) || ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - String valueStr = ""; - if(ff.getValidationType().equals(FormField.VT_TIMESTAMP_HR)) { - valueStr = (String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - } else if (ff.getValidationType().equals(FormField.VT_TIMESTAMP_MIN)) { - valueStr = (String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - valueStr = (String) paramsMap.get(formField +"_Min"); - valuesMap.put(formField+"_Min", valueStr); - valueStr = ""; - } else if (ff.getValidationType().equals(FormField.VT_TIMESTAMP_SEC)) { - valueStr = (String) paramsMap.get(formField +"_Hr"); - valuesMap.put(formField+"_Hr", valueStr); - valueStr = ""; - valueStr = (String) paramsMap.get(formField +"_Min"); - valuesMap.put(formField+"_Min", valueStr); - valueStr = ""; - valueStr = (String) paramsMap.get(formField +"_Sec"); - valuesMap.put(formField+"_Sec", valueStr); - valueStr = ""; - } - } - value = new StringBuffer(""); - - - } else - valuesMap.put(fieldNameMap.get(formField), "" ); - } - return valuesMap; - } - - public static synchronized java.util.HashMap getRequestParamtersMap(HttpServletRequest request) { - return getRequestParamtersMap(request, false); - } - - public static synchronized java.util.HashMap getRequestParamtersMap(HttpServletRequest request, boolean isFromChild) - { - HashMap valuesMap = new HashMap(); - ReportRuntime rr = null; - if(request.getSession().getAttribute( - AppConstants.SI_REPORT_RUNTIME) == null ) - { - rr = (ReportRuntime) request.getSession().getAttribute("FirstDashReport"); - if(rr==null) - return valuesMap; - } - - rr = (ReportRuntime) request.getSession().getAttribute( - AppConstants.SI_REPORT_RUNTIME); - if(rr!=null && rr.getReportType().equals(AppConstants.RT_DASHBOARD)) { - rr = (ReportRuntime) request.getSession().getAttribute("FirstDashReport"); - } - - ReportFormFields rff = rr.getReportFormFields(); - - int idx = 0; - FormField ff = null; - - Map fieldNameMap = new HashMap(); - int countOfFields = 0 ; - - - for(rff.resetNext(); rff.hasNext(); idx++) { - ff = rff.getNext(); - fieldNameMap.put(ff.getFieldName(), ff.getFieldDisplayName()); - countOfFields++; - } - if(isFromChild) { - Hashtable ht = rr.getReportParamValues(); - Set set = ht.entrySet(); - HashMap hashMap = new HashMap(); - Iterator itr = set.iterator(); - while(itr.hasNext()){ - Map.Entry entry = (Map.Entry)itr.next(); - Object key = entry.getKey(); - Object val = entry.getValue(); - if(key==null){ - key = ""; // Or whatever you want - } - if(val==null){ - val = ""; // Or whatever you want - } - hashMap.put(fieldNameMap.get((String)key),val); - } - return hashMap; - - } else { - List formParameter = new ArrayList(); - String formField = ""; - -// for(int i = 1 ; i < (countOfFields+1); i++) -// { -// formField ="ff"+i; -// -// if(request.getParameterValues(formField) != null && request.getParameterValues(formField).length > 1 ) -// { -// String[] vals = request.getParameterValues(formField); -// boolean isMultiValue = false; -// StringBuffer value = new StringBuffer(""); -// if(vals.length > 1) { -// isMultiValue = true; -// value.append("("); -// } -// for(int j = 0 ; j < vals.length; j++) -// { -// if(isMultiValue) value.append("'"); -// try { -// if(vals[j] !=null && vals[j].length() > 0) -// value.append(java.net.URLDecoder.decode(vals[j], "UTF-8"));// + ","; -// else -// value.append(vals[j]); -// } catch (UnsupportedEncodingException ex) {value.append(vals[j]);} -// catch (IllegalArgumentException ex1){value.append(vals[j]);} -// catch (Exception ex2){value.append(vals[j]);} -// -// -// if(isMultiValue) value.append("'"); -// -// if(j != vals.length -1) { -// value.append(","); -// } -// } -// if(vals.length > 1) { -// value.append(")"); -// } -// -// //value = value.substring(0 , value.length()); -// -// valuesMap.put(fieldNameMap.get(formField), value.toString()); -// value = new StringBuffer(""); -// -// } -// else if(request.getParameter(formField) != null) -// { -// String value = ""; -// value = request.getParameter(formField); -// try { -// if(value !=null && value.length() > 0) -// value = java.net.URLDecoder.decode(request.getParameter(formField), "UTF-8"); -// } catch (UnsupportedEncodingException ex) {} -// catch (IllegalArgumentException ex1){} -// catch (Exception ex2){} -// valuesMap.put(fieldNameMap.get(formField), value); -// -// }else -// { -// valuesMap.put(fieldNameMap.get(formField), "NULL" ); -// } -// } - for(int i = 0 ; i < rff.size(); i++) { - ff = ((FormField)rff.getFormField(i)); - formField = ff.getFieldName(); - boolean isMultiValue = false; - isMultiValue = ff.getFieldType().equals(FormField.FFT_CHECK_BOX) - || ff.getFieldType().equals(FormField.FFT_LIST_MULTI); - boolean isTextArea = (ff.getFieldType().equals(FormField.FFT_TEXTAREA) && rr.getReportDefType() - .equals(AppConstants.RD_SQL_BASED)); - - if(request.getParameterValues(formField) != null && isMultiValue ) { - String[] vals = request.getParameterValues(formField); - StringBuffer value = new StringBuffer(""); - if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) { - - if ( isMultiValue ) { - value.append("("); - } - for(int j = 0 ; j < vals.length; j++) { - if(isMultiValue) value.append("'"); - try { - if(vals[j] !=null && vals[j].length() > 0) { - vals[j] = Utils.oracleSafe(vals[j]); - value.append(java.net.URLDecoder.decode(vals[j], "UTF-8"));// + ","; - } - else - value.append(vals[j]); - } catch (UnsupportedEncodingException ex) {value.append(vals[j]);} - catch (IllegalArgumentException ex1){value.append(vals[j]);} - catch (Exception ex2){ - value.append(vals[j]); - } - - - if(isMultiValue) value.append("'"); - - if(j != vals.length -1) { - value.append(","); - } - } - if(vals.length > 0) { - value.append(")"); - } - } - - //value = value.substring(0 , value.length()); - - valuesMap.put(fieldNameMap.get(formField), value.toString()); - value = new StringBuffer(""); - } else if(request.getParameter(formField) != null) { - if(isTextArea) { - String value = ""; - value = request.getParameter(formField); -/* try { - value = java.net.URLDecoder.decode(value, "UTF-8"); - } catch (UnsupportedEncodingException ex) {} - catch (IllegalArgumentException ex1){} - catch (Exception ex2){} -*/ - value = Utils.oracleSafe(value); - value = "('" + Utils.replaceInString(value, ",", "'|'") + "')"; - value = Utils.replaceInString(value, "|", ","); - valuesMap.put(fieldNameMap.get(formField), value); - value = ""; - } else { - String value = ""; - if(!AppUtils.getRequestFlag(request, AppConstants.RI_RESET_ACTION)) - value = request.getParameter(formField); - /*try { - value = java.net.URLDecoder.decode(value, "UTF-8"); - } catch (UnsupportedEncodingException ex) {} - catch (IllegalArgumentException ex1){} - catch (Exception ex2){} -*/ - valuesMap.put(fieldNameMap.get(formField), Utils.oracleSafe(value)); - } - - } else { - valuesMap.put(fieldNameMap.get(formField), "" ); - } - - } - - return valuesMap; - } - } - - //new method added to get the help message for schedule tab - public static String getScheduleHelpMessage() { - return nvls(raptorProperties.getProperty("schedule_help_text"),"").trim(); - } - - //new method added to get the help message for schedule tab - public static String getUseLoginIdInSchedYN() { - return nvls(raptorProperties.getProperty("use_loginid_in_schedYN"),"N").trim(); - } - - //new method to check if map is allowed or not - public static String getMapAllowedYN() { - return nvls(raptorProperties.getProperty("map_allowed"),"").trim(); - } - - //new method added to get gmap key - public static String getGmapKey() { - return nvls(raptorProperties.getProperty("gmap_key"),"").trim(); - } - -// new method added to get gmap - public static String getProjectFolder() { - return nvls(raptorProperties.getProperty("PROJECT-FOLDER"),"").trim(); - } - - - //new method added to get gmap - public static String getMarketShapefileFolder() { - return nvls(raptorProperties.getProperty("MARKET-SHAPEFILE-FOLDER"),"").trim(); - } - - //new method added to get gmap - public static String getTileSize() { - return nvls(raptorProperties.getProperty("TILE-SIZE"),"").trim(); - } - - // new method added to get gmap - public static String getOutputFolder() { - return nvls(raptorProperties.getProperty("OUTPUT-FOLDER"),"").trim(); - } - - //getting server details - public static boolean isWeblogicServer() { - return nvls(raptorProperties.getProperty("application_server"),"tomcat").trim().toUpperCase().startsWith("WEBLOGIC"); - } - - public static String getTempFolderURL() { - return nvls(AppUtils.getTempFolderURL(),"").trim(); - } - - public static int getMaxDrillDownLevel() { - int drillDownLevel = 1; - try { - drillDownLevel = Integer.parseInt(nvls(raptorProperties.getProperty("max_drilldown_level")).trim()); - } catch (Exception ex) { - - } - return drillDownLevel; - } - - public static int getMemoryThreshold() { - int threshold = Integer.parseInt(nvls(raptorProperties.getProperty("memory_threshold_percentage"),"0").trim()); - if(threshold <= 0) threshold = 0; - return threshold; - } - - public static boolean showParamsInAllDashboardReports() { - return nvls(raptorProperties.getProperty("show_params_in_all_dashboard_reports"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean isAdminRoleEquivalenttoSuperRole() { - return nvls(raptorProperties.getProperty("admin_role_equiv_to_super_role"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean showLoadingMsgDuringFormFieldChain() { - return nvls(raptorProperties.getProperty("show_loading_during_formfield_chain"),"Y").trim().toUpperCase().startsWith("Y"); - } - - public static boolean showPrintIcon() { - return nvls(raptorProperties.getProperty("show_print_icon"),"Y").trim().toUpperCase().startsWith("Y"); - } - - public static boolean IsGlobalNoWrap() { - return nvls(raptorProperties.getProperty("globally_nowrap"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static String getCalendarOutputDateFormat() { - return nvls(raptorProperties.getProperty("calendar_output_date_format"),"MM/dd/yyyy"); - } - - public static String getUserDefinedMessageForMemoryLimitReached() { - return nvls(raptorProperties.getProperty("user_defined_message_memory_limit"),"Please note: Due to limited computing resource at this time,"); - } - - public static String getAdhocUserRoldId() { - return nvls(raptorProperties.getProperty("adhoc_user_roleId"),""); - } - - public static String getAdhocReportSequence() { - return nvls(raptorProperties.getProperty("adhoc_report_sequence"),""); - } - - public static boolean hideToolTipsGlobally() { - return nvls(raptorProperties.getProperty("hide_tooltips_in_chart"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean showScheduleIconBeforeRun() { - return nvls(raptorProperties.getProperty("show_schedule_icon_before_run"),"Y").trim().toUpperCase().startsWith("Y"); - } - - public static boolean hideRaptorFooter() { - return nvls(raptorProperties.getProperty("hide_raptor_footer"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean getPrintParamsInCSVDownload() { - return nvls(raptorProperties.getProperty("print_params_in_csv_download"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static String getLogVariablesInSession() { - return nvls(raptorProperties.getProperty("log_variable_in_session"), ""); - } - - public static boolean hideTitleInDashboard() { - return nvls(raptorProperties.getProperty("notitle_in_dashboard"), "N").trim().toUpperCase().startsWith("Y"); - } - - public static String getEncryptedSMTPServer() { - return nvls(raptorProperties.getProperty("secure_smtp_server"), ""); - } - - public static boolean generateSchedReportsInFileSystem() { - return nvls(raptorProperties.getProperty("generate_store_sched_reports"), "N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean showExcel2007DownloadIcon() { - return nvls(raptorProperties.getProperty("show_excel_2007_download"), "N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean printExcelInLandscapeMode() { - return nvls(raptorProperties.getProperty("print_excel_in_landscape"), "").trim().toUpperCase().startsWith("Y"); - } - - public static String getAppDefinedMessageForSendingSchedAsAttachment() { - return nvls(raptorProperties.getProperty("app_defined_message_schedule_attachment"),"Send as Attachment"); - } - - public static String getReportEmptyMessage() { - return nvls(raptorProperties.getProperty("no_rows_found"),"Your Search didn't yield any results."); - } - - public static boolean showAnimatedChartOption() { - return nvls(raptorProperties.getProperty("show_animated_chart_option"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean showAnimatedChartOnly() { - return nvls(raptorProperties.getProperty("show_animated_chart_only"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean adjustContentBasedOnHeight() { - return nvls(raptorProperties.getProperty("adjust_content_based_on_height"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean disclaimerPositionedTopInCSVExcel() { - return nvls(raptorProperties.getProperty("disclaimer_positioned_top_in_csvexcel"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static String customizedSubmitButtonText() { - return nvls(raptorProperties.getProperty("custom_submit_button_text"),"submit"); - } - - public static String customizedResetButtonText() { - return nvls(raptorProperties.getProperty("custom_reset_button_text"),"reset"); - } - public static boolean customizeFormFieldLayout() { - return nvls(raptorProperties.getProperty("customize_formfield_layout"),"N").trim().toUpperCase().startsWith("Y"); - } - public static String getRaptorTheme() { - return nvls(raptorProperties.getProperty("raptor_theme"),"default"); - } - - public static String getFormfieldAlignment() { - return nvls(raptorProperties.getProperty("formfield_alignment"),"left"); - } - - public static boolean displayExcelOptionInDashboard() { - return nvls(raptorProperties.getProperty("display_excel_option_in_dashboard"),"N").trim().toUpperCase().startsWith("Y"); - } - - public static boolean displayRuntimeOptionsAsDefault() { - return nvls(raptorProperties.getProperty("display_runtime_options_as_default"),"Y").trim().toUpperCase().startsWith("Y"); - } - - public static boolean displayHiddenFormfieldinExcel() { - return nvls(raptorProperties.getProperty("display_hidden_field_in_excel"),"N").trim().toUpperCase().startsWith("Y"); - } - - //ReportLoader.java - public static String getLoadCustomReportXml(){ - return nvls(sqlProperty.getProperty("load.custom.report.xml")); - } - - public static String getDBUpdateReportXml(){ - return nvls(sqlProperty.getProperty("db.update.report.xml")); - } - - public static String getDBUpdateReportXmlMySql(){ - return nvls(sqlProperty.getProperty("db.update.report.xml.mysql")); - } - - public static String getDBUpdateReportXmlMySqlSelect(){ - return nvls(sqlProperty.getProperty("db.update.report.xml.mysql.select")); - } - - public static String getUpdateCustomReportRec(){ - return nvls(sqlProperty.getProperty("update.custom.report.rec")); - } - - public static String getIsReportAlreadyScheduled(){ - return nvls(sqlProperty.getProperty("is.report.already.scheduled")); - } - - public static String getCreateCustomReportRec(){ - return nvls(sqlProperty.getProperty("create.custom.report.rec")); - } - - public static String getTheUserReportNames(){ - return nvls(sqlProperty.getProperty("get.user.report.names")); - } - - public static String getTheReportOwnerId(){ - return nvls(sqlProperty.getProperty("get.report.owner.id")); - } - - public static String getReportSecurity(){ - return nvls(sqlProperty.getProperty("report.security.create")); - } - - public static String getDeleteReportRecordLog(){ - return nvls(sqlProperty.getProperty("delete.report.record.log")); - } - - public static String getDeleteReportRecordUsers(){ - return nvls(sqlProperty.getProperty("delete.report.record.users")); - } - - public static String getDeleteReportRecordSchedule(){ - return nvls(sqlProperty.getProperty("delete.report.record.schedule")); - } - - public static String getDeleteReportRecordAccess(){ - return nvls(sqlProperty.getProperty("delete.report.record.access")); - } - - public static String getDeleteReportRecordEmail(){ - return nvls(sqlProperty.getProperty("delete.report.record.email")); - } - - public static String getDeleteReportRecordFavorite(){ - return nvls(sqlProperty.getProperty("delete.report.record.favorite")); - } - - public static String getDeleteReportRecordReport(){ - return nvls(sqlProperty.getProperty("delete.report.record.report")); - } - - public static String getLoadQuickLinks(){ - return nvls(sqlProperty.getProperty("load.quick.links")); - } - - public static String getLoadFolderReports(){ - return nvls(sqlProperty.getProperty("load.folder.reports")); - } - - public static String getLoadFolderReportsUser(){ - return nvls(sqlProperty.getProperty("load.folder.reports.user")); - } - - public static String getLoadFolderReportsPublicSql(){ - return nvls(sqlProperty.getProperty("load.folder.reports.publicsql")); - } - - public static String getLoadQuickDownloadLinks(){ - return nvls(sqlProperty.getProperty("load.quick.download.links")); - } - - public static String getLoadReportsToSchedule(){ - return nvls(sqlProperty.getProperty("load.reports.to.schedule")); - } - - public static String getLoadReportsToAddInDashboard(){ - return nvls(sqlProperty.getProperty("load.reports.to.add.in.dashboard")); - } - - public static String getLoadMyRecentLinks(){ - return nvls(sqlProperty.getProperty("load.my.recent.links")); - } - - public static String getCreateReportLogEntry(){ - return nvls(sqlProperty.getProperty("create.report.log.entry")); - } - - public static String getCreateReportLogEntryExecTime(){ - return nvls(sqlProperty.getProperty("create.report.log.entry.exec.time")); - } - - public static String getClearReportLogEntries(){ - return nvls(sqlProperty.getProperty("clear.report.log.entries")); - } - - public static String getLoadReportLogEntries(){ - return nvls(sqlProperty.getProperty("load.report.log.entries")); - } - - public static String getDoesUserCanScheduleReport(){ - return nvls(sqlProperty.getProperty("does.user.can.schedule.report")); - } - - public static String getDoesUserCanSchedule(){ - return nvls(sqlProperty.getProperty("does.user.can.schedule")); - } - - public static String getTheSystemDateTime(){ - return nvls(sqlProperty.getProperty("get.system.date.time")); - } - - public static String getTheNextDayDateTime(){ - return nvls(sqlProperty.getProperty("get.next.day.date.time")); - } - - public static String getTheNextFifteenMinDateTime(){ - return nvls(sqlProperty.getProperty("get.next.fifteen.minutes.date.time")); - } - - public static String getTheNextThirtyMinDateTime(){ - return nvls(sqlProperty.getProperty("get.next.thirty.minutes.date.time")); - } - - public static String getTheTemplateFile(){ - return nvls(sqlProperty.getProperty("get.template.file")); - } - - public static String getLoadPdfImgLookup(){ - return nvls(sqlProperty.getProperty("load.pdf.img.lookup")); - } - - public static String getLoadActionImgLookup(){ - return nvls(sqlProperty.getProperty("load.action.img.lookup")); - } - - //ActionHandler.java - - public static String getReportValuesMapDefA(){ - return nvls(sqlProperty.getProperty("report.values.map.def.a")); - } - public static String getReportValuesMapDefB(){ - return nvls(sqlProperty.getProperty("report.values.map.def.b")); - } - public static String getReportValuesMapDefC(){ - return nvls(sqlProperty.getProperty("report.values.map.def.c")); - } - public static String getReportValuesMapDefD(){ - return nvls(sqlProperty.getProperty("report.values.map.def.d")); - } - - public static String getTestSchedCondPopup(){ - return nvls(sqlProperty.getProperty("test.sched.cond.popup")); - } - - public static String getDownloadAllEmailSent(){ - return nvls(sqlProperty.getProperty("download.all.email.sent")); - } - - public static String getDownloadAllGenKey(){ - return nvls(sqlProperty.getProperty("download.all.gen.key")); - } - - public static String getDownloadAllRetrieve(){ - return nvls(sqlProperty.getProperty("download.all.retrieve")); - } - - public static String getDownloadAllInsert(){ - return nvls(sqlProperty.getProperty("download.all.insert")); - } - - //ReportWrapper.java - - public static String getReportWrapperFormat(){ - return nvls(sqlProperty.getProperty("report.wrapper.format")); - } - - public static String getGenerateSubsetSql(){ - return nvls(sqlProperty.getProperty("generate.subset.sql")); - } - - public static String getReportSqlForFormfield(){ - return nvls(sqlProperty.getProperty("formfield.id.name.sql")); - } - - public static String getReportSqlForFormfieldPrefix(){ - return nvls(sqlProperty.getProperty("formfield.id.name.sql.prefix")); - } - - public static String getReportSqlForFormfieldSuffix(){ - return nvls(sqlProperty.getProperty("formfield.id.name.sql.suffix")); - } - - public static String getReportSqlOnlyFirstPart(){ - return nvls(sqlProperty.getProperty("report.sql.only.first.part")); - } - - public static String getReportSqlOnlySecondPartA(){ - return nvls(sqlProperty.getProperty("report.sql.only.second.part.a")); - } - - public static String getReportSqlOnlySecondPartB(){ - return nvls(sqlProperty.getProperty("report.sql.only.second.part.b")); - } - - public static String getReportSqlOnlySecondPartBNoOrderBy(){ - return nvls(sqlProperty.getProperty("report.sql.only.second.part.b.noorderby")); - } - - public static String getGenerateSqlVisualSelect(){ - return nvls(sqlProperty.getProperty("generate.sql.visual.select")); - } - - public static String getGenerateSqlVisualCount(){ - return nvls(sqlProperty.getProperty("generate.sql.visual.count")); - } - - public static String getGenerateSqlVisualDual(){ - return nvls(sqlProperty.getProperty("generate.sql.visual.select")); - } - - //ReportRuntime.java - - public static String getLoadCrosstabReportData(){ - return nvls(sqlProperty.getProperty("load.crosstab.report.data")); - } - - //ReportRunHandler.java - - public static String getGenerateSqlHandler(){ - return nvls(sqlProperty.getProperty("generate.sql.handler")); - } - - public static String getGenerateSqlSelect(){ - return nvls(sqlProperty.getProperty("generate.sql.select")); - } - - public static String getRemoteDbSchemaSql() { - return nvls(sqlProperty.getProperty("load.remoteDB.schema")); - } - - public static String getRemoteDbSchemaSqlWithWhereClause() { - return nvls(sqlProperty.getProperty("load.remoteDB.schema.where")); - } - - //ReportSchedule.java - - public static String getLoadScheduleData(){ - return nvls(sqlProperty.getProperty("load.schedule.data")); - } - - public static String getLoadScheduleGetId(){ - return nvls(sqlProperty.getProperty("load.schedule.getid")); - } - - public static String getLoadScheduleUsers(){ - return nvls(sqlProperty.getProperty("load.schedule.users")); - } - - public static String getNewScheduleData(){ - return nvls(sqlProperty.getProperty("new.schedule.data")); - } - - public static String getNewReportData(){ - return nvls(sqlProperty.getProperty("new.report.data")); - } - - public static String getExecuteUpdate(){ - return nvls(sqlProperty.getProperty("execute.update")); - } - - public static String getExecuteUpdateUsers(){ - return nvls(sqlProperty.getProperty("execute.update.users")); - } - - public static String getExecuteUpdateRoles(){ - return nvls(sqlProperty.getProperty("execute.update.roles")); - } - - public static String getExecuteUpdateActivity(){ - return nvls(sqlProperty.getProperty("execute.update.activity")); - } - - public static String getDeleteScheduleData(){ - return nvls(sqlProperty.getProperty("delete.schedule.data")); - } - - public static String getDeleteScheduleDataUsers(){ - return nvls(sqlProperty.getProperty("delete.schedule.data.users")); - } - - public static String getDeleteScheduleDataId(){ - return nvls(sqlProperty.getProperty("delete.schedule.data.id")); - } - - public static String getLoadCondSql(){ - return nvls(sqlProperty.getProperty("load.cond.sql")); - } - - public static String getLoadCondSqlSelect(){ - return nvls(sqlProperty.getProperty("load.cond.sql.select")); - } - - public static String getPersistCondSqlUpdate(){ - return nvls(sqlProperty.getProperty("persist.cond.sql.update")); - } - - public static String getPersistCondSqlLarge(){ - return nvls(sqlProperty.getProperty("persist.cond.sql.large")); - } - - public static String getPersistCondSqlSet(){ - return nvls(sqlProperty.getProperty("persist.cond.sql.set")); - } - - //DataCache.java - - public static String getTheDataViewActions(){ - return nvls(sqlProperty.getProperty("get.data.view.actions")); - } - - public static String getThePublicReportIdNames(){ - return nvls(sqlProperty.getProperty("get.public.report.id.names")); - } - - public static String getThePrivateAccessibleNamesA(){ - return nvls(sqlProperty.getProperty("get.private.accessible.names.a")); - } - public static String getThePrivateAccessibleNamesIf(){ - return nvls(sqlProperty.getProperty("get.private.accessible.names.if")); - } - public static String getThePrivateAccessibleNamesB(){ - return nvls(sqlProperty.getProperty("get.private.accessible.names.b")); - } - - public static String getTheGroupAccessibleNamesA(){ - return nvls(sqlProperty.getProperty("get.group.accessible.names.a")); - } - - public static String getTheGroupAccessibleNamesB(){ - return nvls(sqlProperty.getProperty("get.group.accessible.names.b")); - } - - public static String getTheReportTableSourcesA(){ - return nvls(sqlProperty.getProperty("get.report.table.sources.a")); - } - - public static String getTheReportTableSourcesWhere(){ - return nvls(sqlProperty.getProperty("get.report.table.sources.where")); - } - - public static String getTheReportTableSourcesIf(){ - return nvls(sqlProperty.getProperty("get.report.table.sources.if")); - } - - public static String getTheReportTableSourcesElse(){ - return nvls(sqlProperty.getProperty("get.report.table.sources.else")); - } - - public static String grabTheReportTableA(){ - return nvls(sqlProperty.getProperty("grab.report.table.a")); - } - - public static String grabTheReportTableIf(){ - return nvls(sqlProperty.getProperty("grab.report.table.if")); - } - - public static String grabTheReportTableElse(){ - return nvls(sqlProperty.getProperty("grab.report.table.else")); - } - - public static String grabTheReportTableB(){ - return nvls(sqlProperty.getProperty("grab.report.table.b")); - } - - public static String grabTheReportTableC(){ - return nvls(sqlProperty.getProperty("grab.report.table.c")); - } - - public static String getTheReportTableCrJoin(){ - return nvls(sqlProperty.getProperty("get.report.table.crjoin")); - } - - public static String getTheReportTableJoins(){ - return nvls(sqlProperty.getProperty("get.report.table.joins")); - } - - public static String getGenerateReportTableCol(){ - return nvls(sqlProperty.getProperty("generate.report.table.col")); - } - - - public static String getGenerateDbUserSqlA(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.a")); - } - - public static String getGenerateDbUserSqlIf(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.if")); - } - - public static String getGenerateDbUserSqlElse(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.else")); - } - - public static String getGenerateDbUserSqlB(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.b")); - } - - public static String getGenerateDbUserSqlC(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.c")); - } - - public static String getGenerateDbUserSqlD(){ - return nvls(sqlProperty.getProperty("generate.db.user.sql.d")); - } - - //SearchHandler.java - - public static String getLoadReportSearchResult(){ - return nvls(sqlProperty.getProperty("load.report.search.result")); - } - - public static String getLoadReportSearchRepIdSql(){ - return nvls(sqlProperty.getProperty("load.report.search.rep_id_sql")); - } - - public static String getLoadReportSearchInstr(){ - return nvls(sqlProperty.getProperty("load.report.search.instr")); - } - - public static String getLoadReportSearchResultUser(){ - return nvls(sqlProperty.getProperty("load.report.search.result.user")); - } - - public static String getLoadReportSearchResultPublic(){ - return nvls(sqlProperty.getProperty("load.report.search.result.public")); - } - - public static String getLoadReportSearchResultFav(){ - return nvls(sqlProperty.getProperty("load.report.search.result.fav")); - } - - public static String getLoadReportSearchResultSort(){ - return nvls(sqlProperty.getProperty("load.report.search.result.sort")); - } - - public static String getLoadFolderReportResult(){ - return nvls(sqlProperty.getProperty("load.folder.report.result")); - } - - public static String getLoadFolderReportResultSort(){ - return nvls(sqlProperty.getProperty("load.folder.report..result.sort")); - } - - //WizardProcessor.java - - public static String getProcessFilterAddEdit(){ - return nvls(sqlProperty.getProperty("process.filter.add.edit")); - } - - //ReportDefinition.java - - public static String getPersistReportAdhoc(){ - return nvls(sqlProperty.getProperty("persist.report.adhoc")); - } - - //Globals.java - public static String getInitializeRoles(){ - return nvls(sqlProperty.getProperty("initialize.roles")); - } - - public static String getInitializeVersion(){ - return nvls(sqlProperty.getProperty("initialize.version")); - } - - public static String getDBType(){ - return nvls(raptorProperties.getProperty("db_type"), "oracle"); - } - - public static boolean isPostgreSQL(){ - return getDBType().equals("postgresql"); - } - public static boolean isMySQL(){ - return getDBType().equals("mysql"); - } - public static boolean isOracle(){ - return getDBType().equals("oracle"); - } - - //scheduler - public static String getAvailableSchedules(){ - return nvls(sqlProperty.getProperty("scheduler.available.schedules")); - } - - public static String getCurrentDateString(){ - return nvls(sqlProperty.getProperty("current.date.string")); - } - - public static String getSchedulerUserEmails(){ - return nvls(sqlProperty.getProperty("scheduler.user.emails")); - } - - public static String getSqlConvertToRaw(){ - return nvls(sqlProperty.getProperty("convert.to.raw")); - } - - public static Properties getRaptorPdfProperties() { - return raptorPdfProperties; - } - - public static void setRaptorPdfProperties(Properties raptorPdfProperties) { - Globals.raptorPdfProperties = raptorPdfProperties; - } - - public static Properties getRaptorProperties() { - return raptorProperties; - } - - public static void setRaptorProperties(Properties raptorProperties) { - Globals.raptorProperties = raptorProperties; - } - - public static Properties getSqlProperty() { - return sqlProperty; - } - - public static void setSqlProperty(Properties sqlProperty) { - Globals.sqlProperty = sqlProperty; - } - - public static String getSequenceNextVal() { - return nvls(sqlProperty.getProperty("seq.next.val")); - } - - public static String getRandomString() { - return nvls(sqlProperty.getProperty("seq.next.val")); - } - - public static String getReportUserAccess(){ - return nvls(sqlProperty.getProperty("report.user.access")); - } - - public static String getAddUserAccess(){ - return nvls(sqlProperty.getProperty("add.user.access")); - } - - public static String getUpdateUserAccess(){ - return nvls(sqlProperty.getProperty("update.user.access")); - } - - public static String getRemoveUserAccess(){ - return nvls(sqlProperty.getProperty("remove.user.access")); - } - - public static String getAddRoleAccess(){ - return nvls(sqlProperty.getProperty("add.role.access")); - } - - public static String getUpdateRoleAccess(){ - return nvls(sqlProperty.getProperty("update.role.access")); - } - - public static String getRemoveRoleAccess(){ - return nvls(sqlProperty.getProperty("remove.role.access")); - } - - public static boolean isSystemInitialized() { - return systemInitialized; - } - -} // Globals diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IAppUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IAppUtils.java deleted file mode 100644 index 1cbdf4af..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IAppUtils.java +++ /dev/null @@ -1,177 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.util.*; -import javax.servlet.*; -import javax.servlet.http.*; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; - -public interface IAppUtils { - void initializeAppUtils(ServletContext servletContext); - - /** Returns ID of the user currently logged in */ - String getUserID(HttpServletRequest request); - - /** Obtains user name by ID */ - String getUserName(HttpServletRequest request); - String getUserName(String userId); - - /** Obtains user email by ID */ - String getUserEmail(HttpServletRequest request); - String getUserEmail(String userId); - - /** Obtains user login ID */ - String getUserLoginId(HttpServletRequest request); - String getUserLoginId(String userId); - - /** Obtains user back door log id */ - String getUserBackdoorLoginId(HttpServletRequest request); - - /** Obtains list of all users (in IdNameValue objects) */ - Vector getAllUsers(String customizedQuery, String param, boolean isAdmin); - - /** Obtains role name by ID */ - String getRoleName(String roleId); - - /** Obtains list of all roles (in IdNameValue objects) */ - Vector getAllRoles(String customizedQuery, String param, boolean isAdmin); - - /** Checks whether the user currently logged in has the specified role */ - // boolean isUserInRole(HttpServletRequest request, String roleId); - /** Checks whether the specified user has the specified role */ - boolean isUserInRole(HttpServletRequest request, String roleId) throws RaptorException ; - - /** - * Returns Vector containing the IDs of all the roles to which the user - * currently logged in belongs - */ - // Vector getUserRoles(HttpServletRequest request); - /** - * Returns Vector containing the IDs of all the roles to which the specified - * user belongs - */ - Vector getUserRoles(HttpServletRequest request)throws RaptorException; - - Vector getUserRoles(String userID)throws RaptorException; - /** Empties cached lists of app users and roles */ - void resetUserCache(); - - /** Returns the ID of the super role (all powerful) */ - String getSuperRoleID(); - - /** Returns Vector containing the IDs of all Admin roles */ - Vector getAdminRoleIDs(); - - /** Returns Temp folder file path */ - String getTempFolderPath(); - - /** Returns Upload folder file path */ - String getUploadFolderPath(); - - /** Returns Temp folder web URL */ - String getTempFolderURL(); - - /** Returns Upload folder web URL */ - String getUploadFolderURL(); - - /** Returns SMTP server to be used for notifications */ - String getSMTPServer()throws RaptorException ; - - /** Returns Encrypted SMTP server to be used for notifications */ - String getEncryptedSMTPServer()throws RaptorException ; - - /** - * Returns email address used for the "From" field in the system - * notifications - */ - String getDefaultEmailSender() throws RaptorException; - - /** Returns the application error page */ - String getErrorPage(); - - /** Returns the application error page with menu for fusion*/ - String getErrorPageWMenu(); - - /** Returns path to the folder containing JSP pages */ - String getJspContextPath(); - - /** Returns web URL of the folder containing the images */ - String getImgFolderURL(); - - /** Returns web URL to the base raptor folder */ - String getBaseFolderURL(); - - /** Returns the URL used for executing a report - system specific */ - // String getReportExecuteActionURL(); - /** Returns the URL used for displaying data record - system specific */ - // String getDataViewActionURL(); - /** - * Returns the parameter name of the ID value used for displaying data - * record - system specific - */ - // String getDataViewActionParam(); - /** Returns full web URL for direct access to execute a report */ - String getDirectAccessURL(); - - /** Returns the URL of the controller servlet - system specific */ - String getBaseActionURL(); - - /** Returns the base URL of the NG report - system specific */ - String getBaseActionURLNG(); - - /** Returns the URL of the Report Run specifc to AngularJS */ - String getDrillActionURL(); - - /** Returns the primary parameter name - system specific */ - String getBaseActionParam(); - - /** Returns Vector containing menu IDs for quick links */ - Vector getQuickLinksMenuIDs(); - - /** Obtains menu label by ID */ - String getMenuLabel(String menuId); - - /** - * SQL for loading the screen labels and restricting to active cols only for - * report columns; can return null => use straight data dictionary For - * PRISMS - based on "useFieldTable" config parameter - */ - String getReportDbColsMaskSQL(); - - /** - * SQL for replacing lookup tables with id and name values; can return null => - * do NOT replace lookups Returns SQL with columns - Table_name, Field_name, - * New_Lookup_Table_name, New_Lookup_Id_Field_name, - * New_Lookup_Name_Field_name For PRISMS - based on "useFieldTable" config - * parameter - */ - String getReportDbLookupsSQL(); - - /** Obtains menu label by ID */ - void processErrorNotification(HttpServletRequest request, RaptorException e); - - /** Returns Excel template PATH web URL */ - String getExcelTemplatePath(); - - String getFolderPathAdj(); -} // IAppUtils diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IDbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IDbUtils.java deleted file mode 100644 index 367f6be9..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/IDbUtils.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.*; -import java.util.*; -import javax.servlet.*; - -import org.openecomp.portalsdk.analytics.error.RaptorRuntimeException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; - -public interface IDbUtils { - void initializeDbUtils(ServletContext servletContext); - - Connection getConnection() throws ReportSQLException ; - - void clearConnection(Connection con) throws ReportSQLException ; - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RDbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RDbUtils.java deleted file mode 100644 index d6fd7207..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RDbUtils.java +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.*; -import javax.servlet.*; - -import org.openecomp.portalsdk.analytics.error.ReportSQLException; - -public interface RDbUtils { - - void initializeDbUtils(ServletContext servletContext); - - Connection getRemoteConnection(String dbKey)throws ReportSQLException; - - void clearConnection(Connection con)throws ReportSQLException; - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RemDbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RemDbUtils.java deleted file mode 100644 index b29760a0..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/RemDbUtils.java +++ /dev/null @@ -1,200 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.RaptorRuntimeException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class RemDbUtils /* implements IDbUtils */{ - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RemDbUtils.class); - - - - public RemDbUtils() { - } - - public static Connection getConnection(String dbKey) throws ReportSQLException { - return Globals.getRDbUtils().getRemoteConnection(dbKey); - } // getConnection - - public static void clearConnection(Connection con) throws ReportSQLException { - try { - if ((con != null) && !con.isClosed()) - Globals.getRDbUtils().clearConnection(con); - } catch (SQLException ex) { throw new ReportSQLException(ex.getMessage()); } - - } // clearConnection - - public static Connection startTransaction(String dbKey) throws RaptorException { - Connection con = null; - try { - con = getConnection(dbKey); - con.setAutoCommit(false); - } catch (SQLException ex) { - throw new RaptorRuntimeException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new RaptorException (ex2.getMessage(), ex2.getCause()); - } - return con; - } // startTransaction - - public static void commitTransaction(Connection con) throws RaptorException { - try { - con.commit(); - } catch (SQLException ex) { - throw new RaptorRuntimeException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new RaptorException (ex2.getMessage(), ex2.getCause()); - } - //clearConnection(con); - } // commitTransaction - - public static void rollbackTransaction(Connection con) throws RaptorException { - try { - con.rollback(); - clearConnection(con); - } catch (SQLException ex) { - throw new RaptorRuntimeException (ex.getMessage(), ex.getCause()); - } catch (Exception ex2 ) { - throw new RaptorException (ex2.getMessage(), ex2.getCause()); - } - } // rollbackTransaction - -// public static String executeCall(Connection con, String sql, boolean expectResult) -// throws ReportSQLException, Exception { -// String result = null; -// -// try { -// if(con.isClosed()) con = getConnection(); -// Log.write("[SQL Call] " + sql, 4); -// CallableStatement stmt = con.prepareCall(sql); -// if (expectResult) -// stmt.registerOutParameter(1, Types.CHAR); -// stmt.executeUpdate(); -// if (expectResult) -// result = stmt.getString(1); -// stmt.close(); -// con.commit(); -// } catch (SQLException e) { -// throw new ReportSQLException(e.getMessage(), sql); -// } finally { -// clearConnection(con); -// } -// -// return result; -// } // executeCall -// -// public static String executeCall(String sql, boolean expectResult) -// throws ReportSQLException, Exception { -// Connection con = null; -// try { -// con = getConnection(); -// String result = executeCall(con, sql, expectResult); -// return result; -// } catch (SQLException e) { -// throw new ReportSQLException(e.getMessage(), sql); -// } -// } // executeCall -// -// public static int executeUpdate(Connection con, String sql) throws ReportSQLException, Exception { -// try { -// if(con.isClosed()) con = getConnection(); -// Statement stmt = con.createStatement(); -// -// int rcode = -1; -// try { -// Log.write("[SQL Update] " + sql, 4); -// rcode = stmt.executeUpdate(sql); -// stmt.close(); -// con.commit(); -// } finally { -// clearConnection(con); -// } -// -// return rcode; -// } catch (SQLException e) { -// throw new ReportSQLException(e.getMessage(), sql); -// } finally { -// clearConnection(con); -// } -// } // executeUpdate -// -// public static int executeUpdate(String sql) throws ReportSQLException, Exception { -// Connection con = null; -// try { -// con = getConnection(); -// int rcode = executeUpdate(con, sql); -// return rcode; -// } catch (SQLException e) { -// throw new ReportSQLException(e.getMessage(), sql); -// } -// } // executeUpdate - - public static DataSet executeQuery(Connection con, String sql, String dbKey) throws ReportSQLException, Exception { - return executeQuery(con, sql, Integer.MAX_VALUE,dbKey); - } // executeQuery - - public static DataSet executeQuery(Connection con, String sql, int maxRowLimit, String dbKey) - throws ReportSQLException { - try { - if (con==null || con.isClosed()) con = getConnection(dbKey); - if(con==null) throw new ReportSQLException("Remote Connection not configured for "+ dbKey); - Statement stmt = con.createStatement(); - logger.debug(EELFLoggerDelegate.debugLogger, ("[SQL CALL FROM RAPTOR] [SQL] " + sql)); - ResultSet rs = stmt.executeQuery(sql); - DataSet ds = new DataSet(rs, maxRowLimit); - if(rs!=null) - rs.close(); - if(stmt!=null) - stmt.close(); - - return ds; - } catch (SQLException e) { - throw new ReportSQLException(e.getMessage(), sql, e.getCause()); - } - } // executeQuery - - public static DataSet executeQuery(String sql,String dbKey) throws ReportSQLException { - return executeQuery(sql, Integer.MAX_VALUE, dbKey); - } // executeQuery - - public static DataSet executeQuery(String sql, int maxRowLimit, String dbKey) throws ReportSQLException{ - Connection con = null; - try { - con = getConnection(dbKey); - return executeQuery(con, sql, maxRowLimit,dbKey); - } catch (ReportSQLException e) { - throw new ReportSQLException(e.getMessage(), sql, e.getCause()); - } finally { - clearConnection(con); - } - } // executeQuery - -} // DbUtils - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AntBuild.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AntBuild.java deleted file mode 100644 index 27c09b50..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AntBuild.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion; - -import java.io.IOException; -import java.util.Iterator; -import java.util.Map; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.jar.Manifest; - -/** - * @author sundar - * This class is used to get version and Build information when - * user run "java -jar raptor_fusion.jar" command. - */ -public class AntBuild { - - public static void main(String[] args) { - System.out.println("Jar (raptor_fusion.jar) Information: "); - readManifest(); - } - - public static void readManifest() { - try { - JarFile jar = new JarFile("./raptor_fusion.jar"); - Manifest manifest = jar.getManifest(); - - Attributes attribs = manifest.getMainAttributes(); - Iterator it = attribs.entrySet().iterator(); - while(it.hasNext()) { - Map.Entry entry = (Map.Entry) it.next(); - Attributes.Name attributeName = (Attributes.Name) entry.getKey(); - String attributeValue = (String) entry.getValue(); - if (attributeName.toString().equals("Created-By")) - System.out.println("JDK Version " + " : " + attributeValue); - else if (attributeName.toString().equals("Ant-Version")) - System.out.println(attributeName.toString() + " : " + attributeValue); - else { - if(attributeName.toString().startsWith("Raptor")) - System.out.println(attributeName.toString() + " : " + attributeValue); - } - } - - } catch (IOException e) { - System.err.println("Cannot read jar-file manifest: " - + e.getMessage()); - } - } -} \ No newline at end of file diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AppUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AppUtils.java deleted file mode 100644 index 8916c5ed..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/AppUtils.java +++ /dev/null @@ -1,367 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion; - -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.Vector; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.config.ConfigLoader; -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.system.IAppUtils; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.RaptorAdapter; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;; - -public class AppUtils extends org.openecomp.portalsdk.analytics.RaptorObject implements IAppUtils { - - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppUtils.class); - - - private static String tempFolderPath = "/artemis/PROJECT1/MSA/databank/WEB-INF/temp/"; - private static String uploadFolderPath = "/artemis/PROJECT1/MSA/databank/WEB-INF/upload/"; - private static String tempFolderURL = "temp/"; - private static String uploadFolderURL = "upload/"; - private static String SMTPServer = "todo.smtp.server.com"; - private static String defaultEmailSender = "todo.email.sender.com"; - private static String errorPage = "error_page"; - private static String errorPageWMenu = "error_page_wmenu"; - private static String jspContextPath = "raptor/"; - private static String imgFolderURL = "raptor/images/"; - private static String baseFolderURL = "raptor/"; - //private static String reportExecuteActionURL = "dispatcher?action=raptor&r_action=report.run&c_master="; - //private static String dataViewActionURL = "dispatcher?action="; // dispatcher?action=ACTION_ID&c_master=REC_ID - //private static String dataViewActionParam = "c_master="; - private static String directAccessURL = "http://localhost:8082/databank/dispatcher?direct.access=raptor&r_action=report.run&show="; - private static String baseActionURL = "dispatcher?action="; // dispatcher?action=ACTION_ID&c_master=REC_ID or dispatcher?action=raptor&r_action=RAPTOR_ACTION_ID&c_master=REC_ID - private static String baseActionURLNG = "report#/"; // dispatcher?action=ACTION_ID&c_master=REC_ID or dispatcher?action=raptor&r_action=RAPTOR_ACTION_ID&c_master=REC_ID - private static String drillActionURL = "dispatcher?action="; // dispatcher?action=ACTION_ID&c_master=REC_ID or dispatcher?action=raptor&r_action=RAPTOR_ACTION_ID&c_master=REC_ID - private static String baseActionParam = "c_master="; - private static String superRoleID = "1"; - private static Vector adminRoleIDs = new Vector(); - private static Vector quickLinksMenuIDs = new Vector(); - - private static Properties raptorAppProperties; - - private static String encryptedSMTPServer = ""; - public AppUtils() {} - - public void initializeAppUtils(ServletContext servletContext) { - try { - Properties appProperties = ConfigLoader.getProperties(servletContext, ConfigLoader.APP_PROPERTIES, Globals.getSystemType()); - raptorAppProperties = appProperties; - tempFolderPath = appProperties.getProperty("temp_folder_path"); - uploadFolderPath = appProperties.getProperty("upload_folder_path"); - tempFolderURL = appProperties.getProperty("temp_folder_url"); - uploadFolderURL = appProperties.getProperty("upload_folder_url"); - SMTPServer = appProperties.getProperty("smtp_server"); - encryptedSMTPServer = appProperties.getProperty("encrypted_smtp_server"); - defaultEmailSender = appProperties.getProperty("default_email_sender"); - errorPage = appProperties.getProperty("error_page"); - jspContextPath = appProperties.getProperty("jsp_context_path"); - imgFolderURL = appProperties.getProperty("img_folder_url"); - baseFolderURL = appProperties.getProperty("base_folder_url"); -/* reportExecuteActionURL = appProperties.getProperty("report_execute_action_url"); - dataViewActionURL = appProperties.getProperty("data_view_action_url"); - dataViewActionParam = appProperties.getProperty("data_view_action_param");*/ - directAccessURL = appProperties.getProperty("direct_access_url"); - baseActionURL = appProperties.getProperty("base_action_url"); - baseActionURLNG = appProperties.getProperty("base_action_url_ng"); - drillActionURL = appProperties.getProperty("drill_action_url"); - baseActionParam = appProperties.getProperty("base_action_param"); - superRoleID = appProperties.getProperty("super_role_id"); - - adminRoleIDs.removeAllElements(); - StringTokenizer st = new StringTokenizer(appProperties.getProperty("admin_role_ids"), ","); - while(st.hasMoreTokens()) - adminRoleIDs.add(st.nextToken()); - - quickLinksMenuIDs.removeAllElements(); - st = new StringTokenizer(appProperties.getProperty("quick_links_menu_ids"), ","); - while(st.hasMoreTokens()) - quickLinksMenuIDs.add(st.nextToken()); - } catch(Exception e) { - logger.error(EELFLoggerDelegate.debugLogger, ("[EXCEPTION ENCOUNTERED IN RAPTOR] AppUtils.initializeAppUtils: Unable to load properties ["+Globals.getSystemType()+"_"+ConfigLoader.APP_PROPERTIES+"]. Exception: "+e.getMessage())); - //throw new RuntimeException(e.getMessage()); - } - } // initializeAppUtils - - public static void getFullURL(HttpServletRequest req) { - String applicationBase = ""; - if (applicationBase == null) { - applicationBase = req.getScheme() + "://" + req.getServerName() + - getPort(req) + req.getContextPath(); - } - } - - private static String getPort(HttpServletRequest req) { - if ("http".equalsIgnoreCase(req.getScheme()) && req.getServerPort() != 80 || - "https".equalsIgnoreCase(req.getScheme()) && req.getServerPort() != 443 ) { - return (":" + req.getServerPort()); - } else { - return ""; - } - } - public String getUserID(HttpServletRequest request) { - String pdfAttachmentKey = org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "pdfAttachmentKey"); - String report_email_sent_log_id = org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "log_id"); - boolean isEmailAttachment = false; - if(pdfAttachmentKey != null && report_email_sent_log_id !=null) - isEmailAttachment = true; - if(isEmailAttachment) { - return RaptorAdapter.getUserID(org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "user_id")); - } else - return RaptorAdapter.getUserID(request); - } // getUserID - - public Vector getAllUsers(String customizedQuery, String param, boolean isAdmin) { - Map map = RaptorAdapter.getAllUsers(customizedQuery, param, isAdmin); - - Vector vector = new Vector(map.size()); - for(Iterator iter=map.keySet().iterator(); iter.hasNext(); ) { - Long key = (Long) iter.next(); - vector.add(new IdNameValue(""+key, (String) map.get(key))); - } // for - - return vector; - } // getAllUsers - - public String getRoleName(String roleId) { - return RaptorAdapter.getRoleName(roleId); - } // getRoleName - - public Vector getAllRoles(String customizedQuery, String param, boolean isAdmin) { - Map map = RaptorAdapter.getAllRolesUsingCustomizedQuery(customizedQuery, param, isAdmin); - - Vector vector = new Vector(map.size()); - for(Iterator iter=map.keySet().iterator(); iter.hasNext(); ) { - Long key = (Long) iter.next(); - vector.add(new IdNameValue(""+key, (String) map.get(key))); - } // for - - return vector; - } // getAllRoles - - public String getUserName(HttpServletRequest request) { - return RaptorAdapter.getUserName(request); - } // getUserName - - public String getUserName(String userId) { - return RaptorAdapter.getUserName(userId); - } // getUserName - - public String getUserEmail(String userId) { - return RaptorAdapter.getUserEmail(userId); - } // getUserEmail - - public String getUserEmail(HttpServletRequest request) { - return RaptorAdapter.getUserEmail(request); - } // getUserEmail - - public String getUserLoginId(HttpServletRequest request) { - return RaptorAdapter.getUserLoginId(request); - } // getUserLoginId - - public String getUserLoginId(String userId) { - return RaptorAdapter.getUserLoginId(userId); - } // getUserLoginId - - public String getUserBackdoorLoginId(HttpServletRequest request) { - String pdfAttachmentKey = org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "pdfAttachmentKey"); - String report_email_sent_log_id = org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "log_id"); - boolean isEmailAttachment = false; - if(pdfAttachmentKey != null && report_email_sent_log_id !=null) - isEmailAttachment = true; - if(isEmailAttachment) { - return RaptorAdapter.getUserBackdoorLoginId(org.openecomp.portalsdk.analytics.system.AppUtils.getRequestValue(request, "user_id")); - } else - return RaptorAdapter.getUserBackdoorLoginId(request); - } // getUserBackdoorLoginId - - public boolean isUserInRole(HttpServletRequest request, String roleId) { - return RaptorAdapter.isCurrentUserInRole(request, roleId); - } // isUserInRole - - public Vector getUserRoles(HttpServletRequest request) { -// Map map = RaptorAdapter.getAllRoles(userId); - Set set = RaptorAdapter.getUserRoles(request); - - Vector vector = new Vector(set.size()); - for(Iterator iter=set.iterator(); iter.hasNext(); ) { - Long key = (Long) iter.next(); - vector.add(""+key); - //vector.add(new IdNameValue(""+key, (String) map.get(key))); - } // for - - return vector; - } // getUserRoles - - public Vector getUserRoles(String userId) { - Set set = RaptorAdapter.getUserRoles(userId); - - Vector vector = new Vector(set.size()); - for(Iterator iter=set.iterator(); iter.hasNext(); ) { - Long key = (Long) iter.next(); - vector.add(""+key); - //vector.add(new IdNameValue(""+key, (String) map.get(key))); - } // for - - return vector; - //return null; - } // getUserRoles - - public void resetUserCache() { - //org.openecomp.portalsdk.core.web.support.AppUtils.removeObjectFromCache(RaptorAdapter.KEY_USER_ROLES_CACHE); - } // resetUserCache - - public String getSuperRoleID(){ - return superRoleID; - } // getSuperRoleID - - public Vector getAdminRoleIDs(){ - return adminRoleIDs; - } // getAdminRoleIDs - - - public String getTempFolderPath() { - return tempFolderPath; - } // getTempFolderPath - - public String getUploadFolderPath() { - return uploadFolderPath; - } // getUploadFolderPath - - public String getTempFolderURL() { - return tempFolderURL; - } // getTempFolderURL - - public String getUploadFolderURL() { - return uploadFolderURL; - } // getUploadFolderURL - - public String getSMTPServer() { - return SMTPServer; - } // getSMTPServer - - public String getDefaultEmailSender() { - return defaultEmailSender; - } // getDefaultEmailSender - - public String getErrorPage() { - return errorPage; - } // getErrorPage - - public String getJspContextPath() { - return jspContextPath; - } // getJspContextPath - - public String getImgFolderURL() { - return imgFolderURL; - } // getImgFolderURL - - public String getBaseFolderURL() { - return baseFolderURL; - } // getBaseFolderURL - -/* public String getReportExecuteActionURL() { - return reportExecuteActionURL; - } // getReportExecuteActionURL - - public String getDataViewActionURL() { - return dataViewActionURL; - } // getDataViewActionURL - - public String getDataViewActionParam() { - return dataViewActionParam; - } // getDataViewActionParam -*/ - public String getDirectAccessURL() { - return directAccessURL.trim(); - } // getDirectAccessURL - - public String getBaseActionURL() { - return baseActionURL; - } // getBaseActionURL - - public String getBaseActionURLNG() { - return baseActionURLNG; - } // getBaseActionURLNG - - public String getDrillActionURL() { - return drillActionURL; - } // getBaseActionURL - - public String getBaseActionParam() { - return baseActionParam; - } // getBaseActionParam - - public Vector getQuickLinksMenuIDs(){ - return quickLinksMenuIDs; - } // getQuickLinksMenuIDs - - public String getMenuLabel(String menuId) { - //return menuId.substring(0, 1).toUpperCase()+menuId.substring(1).toLowerCase(); - return menuId; - } // getMenuLabel - - public String getReportDbColsMaskSQL() { - return null; -/* Example: - return "SELECT f.table_name, UPPER(f.column_name) column_name, f.label "+ - "FROM fields f WHERE f.active_yn = 'Y'"; */ - } // getReportDbColsMaskSQL - - public String getReportDbLookupsSQL() { - return null; -/* Example: - return "SELECT DISTINCT f.table_name, UPPER(f.column_name) column_name, f.lookup_table, f.lookup_id_field, f.lookup_name_field "+ - "FROM fields f WHERE f.active_yn = 'Y'"; */ - } // getReportDbLookupsSQL - - public void processErrorNotification(HttpServletRequest request, RaptorException e) { - //RaptorAdapter.processErrorNotification(request, e); -} // processErrorNotification - - public String getErrorPageWMenu() { - return errorPageWMenu; - } - - public String getExcelTemplatePath() { - return nvls(raptorAppProperties.getProperty("excel_template_path"), ""); - } - /** - * @return the encryptedSMTPServer - */ - public String getEncryptedSMTPServer() { - return encryptedSMTPServer; - } - - public String getFolderPathAdj(){ - return nvls(raptorAppProperties.getProperty("folder_path_adj"), ""); - } - -} // AppUtils diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/DbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/DbUtils.java deleted file mode 100644 index fc52e0d6..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/DbUtils.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion; - -import java.sql.*; -import java.util.*; - -import javax.servlet.*; - -import org.openecomp.portalsdk.analytics.config.*; -import org.openecomp.portalsdk.analytics.system.*; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.FusionAdapter; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.RaptorAdapter; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.SpringContext; -import org.openecomp.portalsdk.analytics.util.*; -import org.springframework.beans.factory.annotation.Autowired; - - - -public class DbUtils implements IDbUtils { - - @Autowired - public RaptorAdapter raptorAdapter; - @Autowired - public FusionAdapter fusionAdapter; - - public DbUtils() {} - - public void initializeDbUtils(ServletContext servletContext) { - raptorAdapter = (RaptorAdapter)SpringContext.getApplicationContext().getBean("raptorAdapter"); - } // initializeDbUtils - - public Connection getConnection() { - return raptorAdapter.getConnection(); - } // getConnection - - public void clearConnection(Connection con) { - raptorAdapter.releaseConnection(con); - } // clearConnection - - public RaptorAdapter getRaptorAdapter() { - return raptorAdapter; - } - - public void setRaptorAdapter(RaptorAdapter raptorAdapter) { - this.raptorAdapter = raptorAdapter; - } - - public FusionAdapter getFusionAdapter() { - return fusionAdapter; - } - - public void setFusionAdapter(FusionAdapter fusionAdapter) { - this.fusionAdapter = fusionAdapter; - } - - - - - -} // DbUtils diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/RemoteDbUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/RemoteDbUtils.java deleted file mode 100644 index afebbc85..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/RemoteDbUtils.java +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import javax.servlet.ServletContext; - -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.system.RDbUtils; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.RaptorAdapter; -import org.openecomp.portalsdk.analytics.system.fusion.adapter.SpringContext; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.Log; -import org.springframework.beans.factory.annotation.Autowired; - - - -public class RemoteDbUtils implements RDbUtils{ - - private RaptorAdapter raptorAdapter; - - - public void initializeDbUtils(ServletContext servletContext) { - raptorAdapter = (RaptorAdapter)SpringContext.getApplicationContext().getBean("raptorAdapter"); - } // initializeDbUtils - - - public Connection getRemoteConnection(String dbKey) { - return raptorAdapter.getConnection(dbKey); - } - - public void clearConnection(Connection conn) { - raptorAdapter.releaseConnection(conn); - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/AdapterSessionFactoryContainer.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/AdapterSessionFactoryContainer.java deleted file mode 100644 index e9323e67..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/AdapterSessionFactoryContainer.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - -import java.util.*; - -public class AdapterSessionFactoryContainer { - - private LinkedHashMap sessionFactories; - - public AdapterSessionFactoryContainer() { - } - - public LinkedHashMap getSessionFactories() { - return sessionFactories; - } - - public void setSessionFactories(LinkedHashMap sessionFactories) { - this.sessionFactories = sessionFactories; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/DateUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/DateUtils.java deleted file mode 100644 index a4113d3b..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/DateUtils.java +++ /dev/null @@ -1,287 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - - -import java.io.Serializable; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.TimeZone; - -import org.openecomp.portalsdk.core.FusionObject; -import org.openecomp.portalsdk.core.domain.User; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.openecomp.portalsdk.core.web.support.AppUtils; - - -public class DateUtils implements Serializable, FusionObject{ - - public static final String US_PACIFIC = "US/Pacific"; - public static final String US_MOUNTAIN = "US/Mountain"; - public static final String US_CENTRAL = "US/Central"; - public static final String US_EASTERN = "US/Eastern"; - public static final String US_HAWAII = "US/Hawaii"; - public static final String US_ALASKA = "US/Alaska"; - - //Arizona State has Mountain Time with no Daylight Savings - public static final String US_ARIZONA = "America/Phoenix"; - - private static final String DB_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; - private static final String GET_CURRENT_DATE = "getCurrentDate"; - - private static DataAccessService dataAccessService; - - public static DataAccessService getDataAccessService() { - return dataAccessService; - } - - public void setDataAccessService(DataAccessService dataAccessService) { - this.dataAccessService = dataAccessService; - } - - /** - * Parses a date value with given pattern, - * to return a Date Object - * - * @param dateValue - * @param inPattern - * @return Date Object - * @throws Exception - * - */ - public static Date parseDate(String dateValue,String inPattern) throws Exception{ - return parseDate(dateValue,inPattern,null); - } - - /** - * Parses a date value with the given pattern for the specific TimeZone, - * to return a Date Object - * - * @param dateValue - * @param inPattern - * @param currentTimeZone - * @return Date Object - * @throws Exception - * - */ - public static Date parseDate(String dateValue,String inPattern, - String currentTimeZone) throws Exception{ - DateFormat df = new SimpleDateFormat(inPattern); - if(currentTimeZone !=null && !(currentTimeZone.trim().equals(""))){ - df.setTimeZone(TimeZone.getTimeZone(currentTimeZone)); - } - Date date = df.parse(dateValue); - return date; - } - - /** - * Parses a date value with the given pattern for the specific User(in User TimeZone), - * to return a Date Object - * - * @param dateValue - * @param inPattern - * @param userId - * @return Date Object - * @throws Exception - * - */ - public static Date parseUserDate(String dateValue, String inPattern, Long userId) throws Exception{ - User user = (User)getDataAccessService().getDomainObject(User.class, userId, null); - - String userTimeZone = null; - Long timezoneId = user.getTimeZoneId(); - - if (timezoneId != null) { - userTimeZone = AppUtils.getLookupValueByLabel(timezoneId.toString(), "fn_lu_timezone", "timezone_id", "timezone_value"); - } - - return parseDate(dateValue,inPattern,userTimeZone); - } - - /** - * Formats a given date object to the desired pattern - * - * @param date - * @param outPattern - * @return Formatted date value - * @throws Exception - */ - public static String formatDate(Date date,String outPattern)throws Exception{ - return formatDate(date,outPattern,null); - } - - /** - * Formats a date value with the given pattern into a date value with the desired pattern - * - * @param dateValue - * @param inPattern - * @param outPattern - * @return Formatted date value - * @throws Exception - * - */ - public static String formatDate(String dateValue,String inPattern, - String outPattern) throws Exception{ - return formatDate(dateValue,inPattern,null,outPattern,null); - } - - /** - * Formats a given date object to the desired pattern for the TimeZone provided - * @param date - * @param outPattern - * @param requiredTimeZone - * @return Formatted date value - * @throws Exception - */ - public static String formatDate(Date date,String outPattern, - String requiredTimeZone) throws Exception{ - DateFormat df = new SimpleDateFormat(outPattern); - if(requiredTimeZone != null && !requiredTimeZone.trim().equals("")){ - df.setTimeZone(TimeZone.getTimeZone(requiredTimeZone)); - } - return df.format(date); - } - - /** - * Formats a date value with the given pattern - * into a date value with the desired pattern for the TimeZone provided - * - * @param dateValue - * @param inPattern - * @param outPattern - * @param requiredTimeZone - * @return Formatted date value - * @throws Exception - * - */ - public static String formatDate(String dateValue,String inPattern, - String outPattern,String requiredTimeZone) throws Exception{ - return formatDate(dateValue,inPattern,null,outPattern,requiredTimeZone); - } - - /** - * Formats a date value with the given pattern for a specific TimeZone, - * into a date value with the desired pattern for the TimeZone provided - * - * @param dateValue - * @param inPattern - * @param currentTimeZone - * @param outPattern - * @param requiredTimeZone - * @return Formatted date value - * @throws Exception - * - */ - public static String formatDate(String dateValue,String inPattern,String currentTimeZone, - String outPattern,String requiredTimeZone) throws Exception{ - Date date = parseDate(dateValue,inPattern,currentTimeZone); - return formatDate(date,outPattern,requiredTimeZone); - } - - /** - * Formats a date value with the given pattern, for a specific User(in User TimeZone), - * into a date value with the desired pattern for the TimeZone provided - * - * @param dateValue - * @param inPattern - * @param userId - * @param outPattern - * @param requiredTimeZone - * @return Formatted date value - * @throws Exception - * - */ - public static String formatUserDate(String dateValue,String inPattern, Long userId,String outPattern,String requiredTimeZone) throws Exception{ - User user = (User)getDataAccessService().getDomainObject(User.class, userId, null); - - String userTimeZone = null; - Long timezoneId = user.getTimeZoneId(); - - if (timezoneId != null) { - userTimeZone = AppUtils.getLookupValueByLabel(timezoneId.toString(), "fn_lu_timezone", "timezone_id", "timezone_value"); - } - - return formatDate(dateValue,inPattern,userTimeZone,outPattern,requiredTimeZone); - } - - /** - * Formats a date value with a given pattern for a specific User(User TimeZone), - * into a date value with the desired pattern for Database TimeZone - * - * @param dateValue - * @param inPattern - * @param userId - * @param outPattern - * @return Formatted date value - * @throws Exception - * - */ - public static String formatUserDateForDBTimeZone(String dateValue,String inPattern, Long userId,String outPattern) throws Exception{ - User user = (User)getDataAccessService().getDomainObject(User.class, userId, null); - - String userTimeZone = null; - Long timezoneId = user.getTimeZoneId(); - - /*if (timezoneId != null) { - userTimeZone = AppUtils.getLookupValueByLabel(timezoneId.toString(), "fn_lu_timezone", "timezone_id", "timezone_value"); - }*/ - - String dbTimeZone = SystemProperties.getProperty(SystemProperties.DATABASE_TIME_ZONE); - - return formatDate(dateValue,inPattern,userTimeZone,outPattern,dbTimeZone); - } - - /** - * Get the current database Date/Time - * @return Date object - */ - public static Date getCurrentDBDate()throws Exception{ - String dbTimeZone = SystemProperties.getProperty(SystemProperties.DATABASE_TIME_ZONE); - List results = (List)getDataAccessService().executeNamedQuery(GET_CURRENT_DATE, null, null); - return parseDate(((Object[])results.get(0))[0]+" "+((Object[])results.get(0))[1],DB_DATE_FORMAT,dbTimeZone); - } - - /** - * Get the current date value formatted for the User's TimeZone in the desired pattern - * - * @param outPattern - * @param userId - * @return Date value - * @throws Exception - */ - public static String getCurrentDBDateForUser(String outPattern,Long userId)throws Exception{ - User user = (User)getDataAccessService().getDomainObject(User.class, userId, null); - - String userTimeZone = null; - Long timezoneId = user.getTimeZoneId(); - - /*if (timezoneId != null) { - userTimeZone = AppUtils.getLookupValueByLabel(timezoneId.toString(), "fn_lu_timezone", "timezone_id", "timezone_value"); - }*/ - - Date dbDate = getCurrentDBDate(); - - return formatDate(dbDate,outPattern,userTimeZone); - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/FusionAdapter.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/FusionAdapter.java deleted file mode 100644 index 68f94715..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/FusionAdapter.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - -import java.sql.*; -import java.util.*; - -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.servlet.*; - -import com.mchange.v2.c3p0.ComboPooledDataSource; - -import org.hibernate.SessionFactory; -import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; -import org.hibernate.engine.spi.SessionFactoryImplementor; -import org.hibernate.engine.spi.SessionImplementor; -import org.openecomp.portalsdk.core.FusionObject; -import org.openecomp.portalsdk.core.service.DataAccessService; -import org.openecomp.portalsdk.core.util.SystemProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; - -public class FusionAdapter implements FusionObject { - - public static final String LOCAL_SESSION_FACTORY_KEY = "local"; - - - private ComboPooledDataSource dataSource; - private Map dataSourceMap; - - //private SessionFactory sessionFactory; - private ServletContext servletContext; - - public FusionAdapter() { - } - - - public ServletContext getServletContext() { - return servletContext; - } - - public void setServletContext(ServletContext servletContext) { - this.servletContext = servletContext; - } - - /** Gets connection to the database **/ - public Connection getConnection() { - Connection connection = null; - try { - connection = getDataSource().getConnection(); - } catch(Exception ex) { - ex.printStackTrace(); - } - return connection; - } - - - /** Gets connection to the database indicated via the session factory key **/ - public synchronized Connection getConnection(String schemaId) { - Connection connection = null; - try { - connection = getDataSourceMap().get(schemaId).getConnection(); - } catch (Exception e) { - e.printStackTrace(); - } - - return connection; - } - - - /** Releases connection to the database **/ - public void releaseConnection(Connection conn) { - try { - conn.close(); - } - catch (Exception e) { - e.printStackTrace(); - } - } - - - public ComboPooledDataSource getDataSource() { - return dataSource; - } - - - @Autowired - public void setDataSource(ComboPooledDataSource dataSource) { - this.dataSource = dataSource; - } - - public Map getDataSourceMap() { - if(dataSourceMap==null) - dataSourceMap = (Map)SpringContext.getApplicationContext().getBean("dataSourceMap"); - - return dataSourceMap; - } - - public void setdataSourceMap(Map dataSourceMap) { - this.dataSourceMap = dataSourceMap; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/IdName.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/IdName.java deleted file mode 100644 index 17264dd7..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/IdName.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - -import org.openecomp.portalsdk.core.domain.support.DomainVo; - -/** - *

IdName.java

- *

Represents a id/name data object.

-*/ -@Entity -public class IdName extends DomainVo { - - private String name; - private Long id; - - public IdName() {} - - @Id - @GeneratedValue - @Column(name = "ID", unique = true, nullable = false) - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int compareTo(Object obj){ - String c1 = getName(); - String c2 = ((IdName)obj).getName(); - - return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2); - } - -} \ No newline at end of file diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Item.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Item.java deleted file mode 100644 index 5d307746..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Item.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - - -public class Item { - private String _id; - private String _name; - - public Item() { - } - - public Item(String id, String name) { - this._id = id; - this._name = name; - } - - public String getId() { - return _id; - } - - public void setId(String id) { - this._id = id; - } - - public String getName() { - return _name; - } - - public void setName(String name) { - this._name = name; - } - - public String toString() { - return _name; - } -} - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Lookup.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Lookup.java deleted file mode 100644 index f6525fc4..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/system/fusion/adapter/Lookup.java +++ /dev/null @@ -1,85 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.system.fusion.adapter; - - -import java.io.*; - -import org.openecomp.portalsdk.core.domain.FusionVo; -import org.openecomp.portalsdk.core.domain.support.NameValueId; - - - -public class Lookup extends FusionVo implements Serializable { - - private NameValueId nameValueId = new NameValueId(); - - public Lookup() {} - - public Lookup(String label, String value) { - this(); - setLabel(label); - setValue(value); - } - - public String getValue() { - return getNameValueId().getVal(); - } - - public String getLabel() { - return getNameValueId().getLab(); - } - - public void setValue(String value) { - getNameValueId().setVal(value); - } - - public void setLabel(String label) { - getNameValueId().setLab(label); - } - - public NameValueId getNameValueId() { - return nameValueId; - } - - public void setNameValueId(NameValueId nameValueId) { - this.nameValueId = nameValueId; - } - - // required by ZK for to set the selectedItems of Listboxes (used heavily for "); - } - - if (!(nextVisualIdx + 1 < columnVisuals.size())) - break; - col = (ColumnVisual) columnVisuals.get(++nextVisualIdx); - } // while - - return sb.toString(); - } // getNextHiddenColLinks - - public String getNextVisual() { - if (!hasNextVisual()) - return null; - - ColumnVisual col = (ColumnVisual) columnVisuals.get(nextVisualIdx++); - - StringBuffer sb = new StringBuffer(); - - if (!col.isVisible() || col.getColDisplay().equals(AppConstants.HIDDEN)) - return null; - - sb.append("\n\t\t\t\n"); - sb - .append("\t\t\t\t\n"); - sb.append("\t\t\t\t\n"); - sb.append("\t\t\t\t\n"); - sb.append("\t\t\t
"); - if (col.getSortType() != null) { - sb.append("\"Sorted"); - } - sb.append(""); - sb.append(getNextHiddenColLinks()); - sb.append("
\n\t\t"); - - return sb.toString(); - } // getNext - - /** *********************************************************************************** */ - - public void setColumnDataTotalsLinear(DataRow colDataTotals, String colTotalLabel) { - //commented so that we could differentiate data rows with total rows - //reportDataRows.addDataRow(colDataTotals); - RowHeader rh = new RowHeader(colTotalLabel, "45", 1, reportRowHeaderCols.getColumnCount(),true); - if(reportRowHeaderCols.size()>0) - reportRowHeaderCols.getRowHeaderCol(0).add(rh); - - reportDataTotalRow = new ReportDataRows(); - reportDataTotalRow.addDataRow(colDataTotals); - RowHeaderCol rhc = new RowHeaderCol(); - rhc.add(rh); - reportTotalRowHeaderCols = new ReportRowHeaderCols(); - reportTotalRowHeaderCols.addRowHeaderCol(0, rhc); - } // setColumnDataTotalsLinear - - public void setCrossTabColumnTotalLabel(String colTotalLabel) { - reportRowHeaderCols.getRowHeaderCol(0).getRowHeader(getDataRowCount() - 1) - .setRowTitle(""); - reportRowHeaderCols.getRowHeaderCol(0).getRowHeader(getDataRowCount() - 1).setColSpan( - 0); - reportRowHeaderCols.getRowHeaderCol(1).set( - getDataRowCount() - 1, - new RowHeader(colTotalLabel, "45", 1, reportRowHeaderCols.getColumnCount(), - true)); - } // setCrossTabColumnTotalLabel - - public void setCrossTabColumnTotalLabel(int reportDataSize, String colTotalLabel) { - - reportRowHeaderCols.getRowHeaderCol(0).getRowHeader(getDataRowCount() - 1) - .setRowTitle(""); - reportRowHeaderCols.getRowHeaderCol(0).getRowHeader(getDataRowCount() - 1).setColSpan( - 0); - reportRowHeaderCols.getRowHeaderCol(1).set( - getDataRowCount() - 1, - new RowHeader(colTotalLabel, "45", 1, reportRowHeaderCols.getColumnCount(), - true)); - } // setCrossTabColumnTotalLabel - - public void setColumnDataTotalsCrossTab(Vector colDataTotals, String totalsAlignment, - String colDisplayTotal, CrossTabOrderManager crossTabOrderManager, List dataList) { - DataRow totalsDataRow = new DataRow(); - for (int c = 0; c < getDataColumnCount(); c++) - totalsDataRow.addDataValue(new DataValue()); - - for (Iterator iter = colDataTotals.iterator(); iter.hasNext();) { - CrossTabTotalValue tVal = (CrossTabTotalValue) iter.next(); - - int colIdx = findColumnIdx(tVal.getHeaderValues(), null, crossTabOrderManager, false, dataList); - if (colIdx >= 0) { - DataValue dataValue = new DataValue(); - - String totalValue = tVal.getTotalValue(); - // if(colDisplayTotal.length()>0&&(! - // colDisplayTotal.equals(AppConstants.TOTAL_SUM_ID))) - // totalValue = - // nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(colDisplayTotal))+": - // "+totalValue; - dataValue.setDisplayValue(totalValue); - //added below statement for displaying in excel as number - dataValue.setDisplayTotal("SUM("); - dataValue.setAlignment(totalsAlignment); - dataValue.setBold(true); - totalsDataRow.setDataValue(colIdx, dataValue); - - //totalsDataRow.addDataValue(dataValue); - - } // if - } // for - - //reportDataRows.addDataRow(totalsDataRow); - //dr.setRowValues(rowNameValues); - Vector rowNameValues = new Vector(); - for (int i=0; i < reportRowHeaderCols.size(); i++) { - if(i==0) { - DataValue dataValue = new DataValue(); - dataValue.setBold(true); - dataValue.setAlignment("center"); - dataValue.setDisplayValue("Total"); - rowNameValues.add(dataValue); - //rowNameValues.add("Total"); - } else { - //rowNameValues.add(""); - DataValue dataValue = new DataValue(); - dataValue.setDisplayValue(""); - rowNameValues.add(dataValue); - - } - } - totalsDataRow.setRowValues(rowNameValues); - totalsDataRow.setRowNum(dataList.size()); - dataList.add(totalsDataRow); - //reportRowHeaderCols.getNext().addRowHeader(new RowHeader("", "30", 1, 0)); - } // setColumnDataTotalsCrossTab - - public void setRowDataTotalsCrossTab(Vector rowDataTotals, String totalsAlignment, - String rowDisplayTotal, CrossTabOrderManager crossTabOrderManager, List dataList) { - int colIdx = getDataColumnCount(); - - boolean isFirst = true; - for (reportColumnHeaderRows.resetNext(); reportColumnHeaderRows.hasNext();) { - ColumnHeaderRow chr = reportColumnHeaderRows.getNext(); - if (isFirst) { - String totalLabel = "Total"; - if (rowDisplayTotal.length() > 0 - && (!rowDisplayTotal.equals(AppConstants.TOTAL_SUM_ID))) - totalLabel = nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(rowDisplayTotal)); - chr.addColumnHeader(colIdx, new ColumnHeader(totalLabel, "", 1, - reportColumnHeaderRows.getRowCount())); - isFirst = false; - } else - chr.addColumnHeader(colIdx, new ColumnHeader("", "", 1, 0)); - } // for - - for (reportDataRows.resetNext(); reportDataRows.hasNext();) { - DataRow dr = reportDataRows.getNext(); - dr.addDataValue(colIdx, new DataValue()); - } // for - - for (Iterator iter = rowDataTotals.iterator(); iter.hasNext();) { - CrossTabTotalValue tVal = (CrossTabTotalValue) iter.next(); - - int rowIdx = findRowIdx(tVal.getHeaderValues(), crossTabOrderManager, false, dataList); - if (rowIdx >= 0) { - DataValue dataValue = new DataValue(); - - String totalValue = tVal.getTotalValue(); - // if(rowDisplayTotal.length()>0&&(! - // rowDisplayTotal.equals(AppConstants.TOTAL_SUM_ID))) - // totalValue = - // nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(rowDisplayTotal))+": - // "+totalValue; - dataValue.setDisplayValue(totalValue); - //added below statement for displaying in excel as number - dataValue.setDisplayTotal("SUM("); - dataValue.setAlignment(totalsAlignment); - dataValue.setBold(true); - - //reportDataRows.getDataRow(rowIdx).getDataValueList().add(colIdx, dataValue); - ((DataRow)dataList.get(rowIdx)).addDataValue(colIdx, dataValue); - } // if - } // for - } // setRowDataTotalsCrossTab - - public void setGrandTotalCrossTab(String totalValue, String totalAlignment, - String displayTotal, List dataList) { - DataValue dataValue = new DataValue(); - - // if(displayTotal.length()>0&&(! - // displayTotal.equals(AppConstants.TOTAL_SUM_ID))) - // totalValue = - // nvl(AppConstants.TOTAL_FUNCTIONS.getNameById(displayTotal))+": - // "+totalValue; - dataValue.setDisplayValue(totalValue); - //added below statement for displaying in excel as number - dataValue.setDisplayTotal("SUM("); - dataValue.setAlignment(totalAlignment); - dataValue.setBold(true); - - //int colIdx = getDataColumnCount() - 1; - int rowIdx = getDataRowCount() - 1; - //reportDataRows.getDataRow(rowIdx).getDataValueList().add(colIdx, dataValue); - DataRow dr = (DataRow)dataList.get(rowIdx); - dr.addDataValue(dr.getDataValueList().size(), dataValue); - } // setGrandTotalCrossTab - - public List getReportDataList() { - return reportDataList; - } - - public void setReportDataList(List reportDataList) { - this.reportDataList = reportDataList; - } - -} // ReportData diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportDataRows.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportDataRows.java deleted file mode 100644 index e941c123..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportDataRows.java +++ /dev/null @@ -1,72 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.view; - -import java.util.*; - -public class ReportDataRows extends Vector { - private int nextElemIdx = 0; - - public void resetNext() { - resetNext(0); - } // resetNext - - public void resetNext(int toPos) { - nextElemIdx = toPos; - } // resetNext - - public boolean hasNext() { - return (nextElemIdx < size()); - } // hasNext - - public DataRow getNext() { - return hasNext() ? getDataRow(nextElemIdx++) : null; - } // getNext - - public DataValue getDataValue(int rowIdx, int colIdx) { - return getDataRow(rowIdx).getDataValue(colIdx); - } // getDataValue - - public DataRow getDataRow(int idx) { - return (DataRow) get(idx); - } // getDataRow - - public void addDataRow(DataRow dataRow) { - add(dataRow); - } // addDataRow - - public void addDataRow(int idx, DataRow dataRow) { - add(idx, dataRow); - } // addDataRow - - public int getRowCount() { - return size(); - } // getRowCount - - public int getColumnCount() { - int cSize = 0; - if (getRowCount() > 0) - cSize = getDataRow(0).getDataValueList().size(); - - return cSize; - } // getColumnCount - -} // ReportDataRows - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportRowHeaderCols.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportRowHeaderCols.java deleted file mode 100644 index ae6ee767..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/ReportRowHeaderCols.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.view; - -import java.util.*; - -public class ReportRowHeaderCols extends Vector { - private int nextElemIdx = 0; - - public void resetNext() { - resetNext(0); - } // resetNext - - public void resetNext(int toPos) { - nextElemIdx = toPos; - } // resetNext - - public boolean hasNext() { - return (nextElemIdx < size()); - } // hasNext - - public RowHeaderCol getNext() { - return hasNext() ? getRowHeaderCol(nextElemIdx++) : null; - } // getNext - - public RowHeader getRowHeader(int colIdx, int rowIdx) { - return getRowHeaderCol(colIdx).getRowHeader(rowIdx); - } // getRowHeader - - public RowHeaderCol getRowHeaderCol(int idx) { - return (RowHeaderCol) get(idx); - } // getRowHeaderCol - - public void addRowHeaderCol(RowHeaderCol rowHeaderCol) { - add(rowHeaderCol); - } // addRowHeaderCol - - public void addRowHeaderCol(int idx, RowHeaderCol rowHeaderCol) { - add(idx, rowHeaderCol); - } // addRowHeaderCol - - public int getRowCount() { - int cSize = 0; - if (getColumnCount() > 0) - cSize = getRowHeaderCol(0).size(); - - return cSize; - } // getRowCount - - public int getColumnCount() { - return size(); - } // getColumnCount - -} // ReportRowHeaderCols diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeader.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeader.java deleted file mode 100644 index c02b39b2..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeader.java +++ /dev/null @@ -1,121 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.view; - -import org.openecomp.portalsdk.analytics.util.*; - -public class RowHeader extends org.openecomp.portalsdk.analytics.RaptorObject { - private String rowTitle = ""; - - private String rowHeight = ""; - - private int rowSpan = 1; - - private int colSpan = 1; - - private boolean bold = false; - - public RowHeader() { - super(); - } - - public RowHeader(String rowTitle) { - this(); - setRowTitle(rowTitle); - } // RowHeader - - public RowHeader(String rowTitle, String rowHeight) { - this(rowTitle); - setRowHeight(rowHeight); - } // RowHeader - - public RowHeader(String rowTitle, String rowHeight, int rowSpan) { - this(rowTitle, rowHeight); - setRowSpan(rowSpan); - } // RowHeader - - public RowHeader(String rowTitle, String rowHeight, int rowSpan, int colSpan) { - this(rowTitle, rowHeight, rowSpan); - setColSpan(colSpan); - } // RowHeader - - public RowHeader(String rowTitle, String rowHeight, int rowSpan, int colSpan, boolean bold) { - this(rowTitle, rowHeight, rowSpan, colSpan); - setBold(bold); - } // RowHeader - - public String getRowTitle() { - return rowTitle; - } - - public String getRowHeight() { - return rowHeight; - } - - public int getRowSpan() { - return rowSpan; - } - - public int getColSpan() { - return colSpan; - } - - public boolean isBold() { - return bold; - } - - public void setRowTitle(String rowTitle) { - this.rowTitle = nvl(rowTitle); - } - - public void setRowHeight(String rowHeight) { - this.rowHeight = rowHeight; - } - - public void setRowSpan(int rowSpan) { - this.rowSpan = rowSpan; - } - - public void setColSpan(int colSpan) { - this.colSpan = colSpan; - } - - public void setBold(boolean bold) { - this.bold = bold; - } - - public String getRowTitleHtml() { - return (rowTitle.length() == 0) ? " " : rowTitle; - } - - public String getRowHeightHtml() { - return (rowHeight.length() == 0) ? "" : (" height=" + rowHeight); - } - - public String getRowSpanHtml() { - return (rowSpan == 1) ? "" : (" rowspan=" + rowSpan); - } - - public String getColSpanHtml() { - return (colSpan == 1) ? "" : (" colspan=" + colSpan); - } - -} // RowHeader - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeaderCol.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeaderCol.java deleted file mode 100644 index 439f2f46..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/view/RowHeaderCol.java +++ /dev/null @@ -1,158 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.view; - -import java.util.*; - -import org.openecomp.portalsdk.analytics.util.*; - -public class RowHeaderCol extends Vector { - private String columnWidth = ""; - - private String columnTitle = ""; - - private String alignment = ""; - - private String displayHeaderAlignment = ""; - - private int nextElemIdx = 0; - - private boolean visible = true; - - private String colId = ""; - - private String nowrap = "False"; - - public void resetNext() { - resetNext(0); - } // resetNext - - public void resetNext(int toPos) { - nextElemIdx = toPos; - } // resetNext - - public boolean hasNext() { - return (nextElemIdx < size()); - } // hasNext - - public RowHeader getNext() { - return hasNext() ? getRowHeader(nextElemIdx++) : null; - } // getNext - - public RowHeader getRowHeader(int idx) { - return (RowHeader) get(idx); - } // getRowHeader - - public void addRowHeader(RowHeader rowHeader) { - add(rowHeader); - } // addRowHeader - - public void addRowHeader(int idx, RowHeader rowHeader) { - add(idx, rowHeader); - } // addRowHeader - - public String getColumnTitle() { - return columnTitle; - } - - public String getColumnWidth() { - return columnWidth; - } - - public String getAlignment() { - return alignment; - } - - public void setColumnTitle(String columnTitle) { - this.columnTitle = nvl(columnTitle); - } - - public void setColumnWidth(String columnWidth) { - this.columnWidth = nvl(columnWidth); - } - - public void setAlignment(String alignment) { - this.alignment = alignment; - } - - public String getColumnTitleHtml() { - return (columnTitle.length() == 0) ? " " : columnTitle; - } - - public String getColumnWidthHtml() { - return (columnWidth.length() == 0) ? "" : (" width=" + columnWidth); - } - - public String getAlignmentHtml() { - return " align=" + nvl(alignment, "center"); - } - - /** ************************************************************************************************* */ - - private String nvl(String s) { - return (s == null) ? "" : s; - } - - private String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - public String getNowrap() { - return nowrap; - } - - public void setNowrap(String nowrap) { - this.nowrap = nowrap; - } - - public boolean isVisible() { - return visible; - } - - public void setVisible(boolean visible) { - this.visible = visible; - } - - /** - * @return the colId - */ - public String getColId() { - return colId; - } - - /** - * @param colId the colId to set - */ - public void setColId(String colId) { - this.colId = colId; - } - - public String getDisplayHeaderAlignment() { - return displayHeaderAlignment; - } - - public void setDisplayHeaderAlignment(String displayHeaderAlignment) { - this.displayHeaderAlignment = displayHeaderAlignment; - } - - - -} // RowHeaderCol - diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartAdditionalOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartAdditionalOptions.java deleted file mode 100644 index be1c0ad3..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartAdditionalOptions.java +++ /dev/null @@ -1,1178 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ChartAdditionalOptions complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ChartAdditionalOptions">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="chartMultiplePieOrder" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartMultiplePieLabelDisplay" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartOrientation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="secondaryChartRenderer" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartDisplay" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="hideToolTips" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="hidechartLegend" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="legendPosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="labelAngle" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="intervalFromdate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="intervalTodate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="intervalLabel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="lastSeriesALineChart" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="lastSeriesABarChart" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="maxLabelsInDomainAxis" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="linearRegression" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="linearRegressionColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="exponentialRegressionColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="maxRegression" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="rangeAxisUpperLimit" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="rangeAxisLowerLimit" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="overlayItemValueOnStackBar" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="animate" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="animateAnimatedChart" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="keepDomainAxisValueAsString" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="stacked" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="barControls" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="xAxisDateType" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="lessXaxisTickers" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="timeAxis" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="timeSeriesRender" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="multiSeries" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="showXAxisLabel" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="addXAxisTickers" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="zoomIn" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="timeAxisType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="logScale" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="topMargin" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="bottomMargin" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="rightMargin" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="leftMargin" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ChartAdditionalOptions", propOrder = { - "chartMultiplePieOrder", - "chartMultiplePieLabelDisplay", - "chartOrientation", - "secondaryChartRenderer", - "chartDisplay", - "hideToolTips", - "hidechartLegend", - "legendPosition", - "labelAngle", - "intervalFromdate", - "intervalTodate", - "intervalLabel", - "lastSeriesALineChart", - "lastSeriesABarChart", - "maxLabelsInDomainAxis", - "linearRegression", - "linearRegressionColor", - "exponentialRegressionColor", - "maxRegression", - "rangeAxisUpperLimit", - "rangeAxisLowerLimit", - "overlayItemValueOnStackBar", - "animate", - "animateAnimatedChart", - "keepDomainAxisValueAsString", - "stacked", - "barControls", - "xAxisDateType", - "lessXaxisTickers", - "timeAxis", - "timeSeriesRender", - "multiSeries", - "showXAxisLabel", - "addXAxisTickers", - "zoomIn", - "timeAxisType", - "logScale", - "topMargin", - "bottomMargin", - "rightMargin", - "leftMargin" -}) -public class ChartAdditionalOptions { - - protected String chartMultiplePieOrder; - protected String chartMultiplePieLabelDisplay; - protected String chartOrientation; - protected String secondaryChartRenderer; - protected String chartDisplay; - protected String hideToolTips; - protected String hidechartLegend; - protected String legendPosition; - protected String labelAngle; - protected String intervalFromdate; - protected String intervalTodate; - protected String intervalLabel; - protected String lastSeriesALineChart; - protected String lastSeriesABarChart; - protected String maxLabelsInDomainAxis; - protected String linearRegression; - protected String linearRegressionColor; - protected String exponentialRegressionColor; - protected String maxRegression; - protected String rangeAxisUpperLimit; - protected String rangeAxisLowerLimit; - protected String overlayItemValueOnStackBar; - @XmlElement(defaultValue = "false") - protected Boolean animate; - @XmlElement(defaultValue = "true") - protected Boolean animateAnimatedChart; - protected String keepDomainAxisValueAsString; - @XmlElement(defaultValue = "false") - protected Boolean stacked; - @XmlElement(defaultValue = "false") - protected Boolean barControls; - @XmlElement(defaultValue = "false") - protected Boolean xAxisDateType; - @XmlElement(defaultValue = "false") - protected Boolean lessXaxisTickers; - @XmlElement(defaultValue = "true") - protected Boolean timeAxis; - protected String timeSeriesRender; - @XmlElement(defaultValue = "false") - protected Boolean multiSeries; - @XmlElement(defaultValue = "false") - protected Boolean showXAxisLabel; - @XmlElement(defaultValue = "false") - protected Boolean addXAxisTickers; - protected Integer zoomIn; - protected String timeAxisType; - @XmlElement(defaultValue = "false") - protected Boolean logScale; - protected Integer topMargin; - protected Integer bottomMargin; - protected Integer rightMargin; - protected Integer leftMargin; - - /** - * Gets the value of the chartMultiplePieOrder property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartMultiplePieOrder() { - return chartMultiplePieOrder; - } - - /** - * Sets the value of the chartMultiplePieOrder property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartMultiplePieOrder(String value) { - this.chartMultiplePieOrder = value; - } - - /** - * Gets the value of the chartMultiplePieLabelDisplay property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartMultiplePieLabelDisplay() { - return chartMultiplePieLabelDisplay; - } - - /** - * Sets the value of the chartMultiplePieLabelDisplay property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartMultiplePieLabelDisplay(String value) { - this.chartMultiplePieLabelDisplay = value; - } - - /** - * Gets the value of the chartOrientation property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartOrientation() { - return chartOrientation; - } - - /** - * Sets the value of the chartOrientation property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartOrientation(String value) { - this.chartOrientation = value; - } - - /** - * Gets the value of the secondaryChartRenderer property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSecondaryChartRenderer() { - return secondaryChartRenderer; - } - - /** - * Sets the value of the secondaryChartRenderer property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSecondaryChartRenderer(String value) { - this.secondaryChartRenderer = value; - } - - /** - * Gets the value of the chartDisplay property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartDisplay() { - return chartDisplay; - } - - /** - * Sets the value of the chartDisplay property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartDisplay(String value) { - this.chartDisplay = value; - } - - /** - * Gets the value of the hideToolTips property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHideToolTips() { - return hideToolTips; - } - - /** - * Sets the value of the hideToolTips property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHideToolTips(String value) { - this.hideToolTips = value; - } - - /** - * Gets the value of the hidechartLegend property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHidechartLegend() { - return hidechartLegend; - } - - /** - * Sets the value of the hidechartLegend property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHidechartLegend(String value) { - this.hidechartLegend = value; - } - - /** - * Gets the value of the legendPosition property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLegendPosition() { - return legendPosition; - } - - /** - * Sets the value of the legendPosition property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLegendPosition(String value) { - this.legendPosition = value; - } - - /** - * Gets the value of the labelAngle property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLabelAngle() { - return labelAngle; - } - - /** - * Sets the value of the labelAngle property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLabelAngle(String value) { - this.labelAngle = value; - } - - /** - * Gets the value of the intervalFromdate property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIntervalFromdate() { - return intervalFromdate; - } - - /** - * Sets the value of the intervalFromdate property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIntervalFromdate(String value) { - this.intervalFromdate = value; - } - - /** - * Gets the value of the intervalTodate property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIntervalTodate() { - return intervalTodate; - } - - /** - * Sets the value of the intervalTodate property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIntervalTodate(String value) { - this.intervalTodate = value; - } - - /** - * Gets the value of the intervalLabel property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIntervalLabel() { - return intervalLabel; - } - - /** - * Sets the value of the intervalLabel property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIntervalLabel(String value) { - this.intervalLabel = value; - } - - /** - * Gets the value of the lastSeriesALineChart property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLastSeriesALineChart() { - return lastSeriesALineChart; - } - - /** - * Sets the value of the lastSeriesALineChart property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLastSeriesALineChart(String value) { - this.lastSeriesALineChart = value; - } - - /** - * Gets the value of the lastSeriesABarChart property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLastSeriesABarChart() { - return lastSeriesABarChart; - } - - /** - * Sets the value of the lastSeriesABarChart property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLastSeriesABarChart(String value) { - this.lastSeriesABarChart = value; - } - - /** - * Gets the value of the maxLabelsInDomainAxis property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMaxLabelsInDomainAxis() { - return maxLabelsInDomainAxis; - } - - /** - * Sets the value of the maxLabelsInDomainAxis property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMaxLabelsInDomainAxis(String value) { - this.maxLabelsInDomainAxis = value; - } - - /** - * Gets the value of the linearRegression property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLinearRegression() { - return linearRegression; - } - - /** - * Sets the value of the linearRegression property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLinearRegression(String value) { - this.linearRegression = value; - } - - /** - * Gets the value of the linearRegressionColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLinearRegressionColor() { - return linearRegressionColor; - } - - /** - * Sets the value of the linearRegressionColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLinearRegressionColor(String value) { - this.linearRegressionColor = value; - } - - /** - * Gets the value of the exponentialRegressionColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExponentialRegressionColor() { - return exponentialRegressionColor; - } - - /** - * Sets the value of the exponentialRegressionColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExponentialRegressionColor(String value) { - this.exponentialRegressionColor = value; - } - - /** - * Gets the value of the maxRegression property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMaxRegression() { - return maxRegression; - } - - /** - * Sets the value of the maxRegression property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMaxRegression(String value) { - this.maxRegression = value; - } - - /** - * Gets the value of the rangeAxisUpperLimit property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRangeAxisUpperLimit() { - return rangeAxisUpperLimit; - } - - /** - * Sets the value of the rangeAxisUpperLimit property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRangeAxisUpperLimit(String value) { - this.rangeAxisUpperLimit = value; - } - - /** - * Gets the value of the rangeAxisLowerLimit property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRangeAxisLowerLimit() { - return rangeAxisLowerLimit; - } - - /** - * Sets the value of the rangeAxisLowerLimit property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRangeAxisLowerLimit(String value) { - this.rangeAxisLowerLimit = value; - } - - /** - * Gets the value of the overlayItemValueOnStackBar property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOverlayItemValueOnStackBar() { - return overlayItemValueOnStackBar; - } - - /** - * Sets the value of the overlayItemValueOnStackBar property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOverlayItemValueOnStackBar(String value) { - this.overlayItemValueOnStackBar = value; - } - - /** - * Gets the value of the animate property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isAnimate() { - return animate; - } - - /** - * Sets the value of the animate property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setAnimate(Boolean value) { - this.animate = value; - } - - /** - * Gets the value of the animateAnimatedChart property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isAnimateAnimatedChart() { - return animateAnimatedChart; - } - - /** - * Sets the value of the animateAnimatedChart property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setAnimateAnimatedChart(Boolean value) { - this.animateAnimatedChart = value; - } - - /** - * Gets the value of the keepDomainAxisValueAsString property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getKeepDomainAxisValueAsString() { - return keepDomainAxisValueAsString; - } - - /** - * Sets the value of the keepDomainAxisValueAsString property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setKeepDomainAxisValueAsString(String value) { - this.keepDomainAxisValueAsString = value; - } - - /** - * Gets the value of the stacked property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isStacked() { - return stacked; - } - - /** - * Sets the value of the stacked property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setStacked(Boolean value) { - this.stacked = value; - } - - /** - * Gets the value of the barControls property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isBarControls() { - return barControls; - } - - /** - * Sets the value of the barControls property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setBarControls(Boolean value) { - this.barControls = value; - } - - /** - * Gets the value of the xAxisDateType property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isXAxisDateType() { - return xAxisDateType; - } - - /** - * Sets the value of the xAxisDateType property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setXAxisDateType(Boolean value) { - this.xAxisDateType = value; - } - - /** - * Gets the value of the lessXaxisTickers property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isLessXaxisTickers() { - return lessXaxisTickers; - } - - /** - * Sets the value of the lessXaxisTickers property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setLessXaxisTickers(Boolean value) { - this.lessXaxisTickers = value; - } - - /** - * Gets the value of the timeAxis property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isTimeAxis() { - return timeAxis; - } - - /** - * Sets the value of the timeAxis property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setTimeAxis(Boolean value) { - this.timeAxis = value; - } - - /** - * Gets the value of the timeSeriesRender property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimeSeriesRender() { - return timeSeriesRender; - } - - /** - * Sets the value of the timeSeriesRender property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimeSeriesRender(String value) { - this.timeSeriesRender = value; - } - - /** - * Gets the value of the multiSeries property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isMultiSeries() { - return multiSeries; - } - - /** - * Sets the value of the multiSeries property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setMultiSeries(Boolean value) { - this.multiSeries = value; - } - - /** - * Gets the value of the showXAxisLabel property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isShowXAxisLabel() { - return showXAxisLabel; - } - - /** - * Sets the value of the showXAxisLabel property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setShowXAxisLabel(Boolean value) { - this.showXAxisLabel = value; - } - - /** - * Gets the value of the addXAxisTickers property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isAddXAxisTickers() { - return addXAxisTickers; - } - - /** - * Sets the value of the addXAxisTickers property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setAddXAxisTickers(Boolean value) { - this.addXAxisTickers = value; - } - - /** - * Gets the value of the zoomIn property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getZoomIn() { - return zoomIn; - } - - /** - * Sets the value of the zoomIn property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setZoomIn(Integer value) { - this.zoomIn = value; - } - - /** - * Gets the value of the timeAxisType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimeAxisType() { - return timeAxisType; - } - - /** - * Sets the value of the timeAxisType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimeAxisType(String value) { - this.timeAxisType = value; - } - - /** - * Gets the value of the logScale property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isLogScale() { - return logScale; - } - - /** - * Sets the value of the logScale property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setLogScale(Boolean value) { - this.logScale = value; - } - - /** - * Gets the value of the topMargin property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getTopMargin() { - return topMargin; - } - - /** - * Sets the value of the topMargin property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setTopMargin(Integer value) { - this.topMargin = value; - } - - /** - * Gets the value of the bottomMargin property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getBottomMargin() { - return bottomMargin; - } - - /** - * Sets the value of the bottomMargin property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setBottomMargin(Integer value) { - this.bottomMargin = value; - } - - /** - * Gets the value of the rightMargin property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getRightMargin() { - return rightMargin; - } - - /** - * Sets the value of the rightMargin property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setRightMargin(Integer value) { - this.rightMargin = value; - } - - /** - * Gets the value of the leftMargin property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getLeftMargin() { - return leftMargin; - } - - /** - * Sets the value of the leftMargin property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setLeftMargin(Integer value) { - this.leftMargin = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillFormfield.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillFormfield.java deleted file mode 100644 index ae750647..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillFormfield.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ChartDrillFormfield complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ChartDrillFormfield">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="formfield" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ChartDrillFormfield", propOrder = { - "formfield" -}) -public class ChartDrillFormfield { - - protected String formfield; - - /** - * Gets the value of the formfield property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFormfield() { - return formfield; - } - - /** - * Sets the value of the formfield property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFormfield(String value) { - this.formfield = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillOptions.java deleted file mode 100644 index e7ce059e..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ChartDrillOptions.java +++ /dev/null @@ -1,206 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ChartDrillOptions complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ChartDrillOptions">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="drill_reportId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drill_xAxis_FormField" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drill_yAxis_FormField" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drill_series_FormField" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="targetFormfield" type="{}ChartDrillFormfield" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ChartDrillOptions", propOrder = { - "drillReportId", - "drillXAxisFormField", - "drillYAxisFormField", - "drillSeriesFormField", - "targetFormfield" -}) -public class ChartDrillOptions { - - @XmlElement(name = "drill_reportId") - protected String drillReportId; - @XmlElement(name = "drill_xAxis_FormField") - protected String drillXAxisFormField; - @XmlElement(name = "drill_yAxis_FormField") - protected String drillYAxisFormField; - @XmlElement(name = "drill_series_FormField") - protected String drillSeriesFormField; - protected List targetFormfield; - - /** - * Gets the value of the drillReportId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillReportId() { - return drillReportId; - } - - /** - * Sets the value of the drillReportId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillReportId(String value) { - this.drillReportId = value; - } - - /** - * Gets the value of the drillXAxisFormField property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillXAxisFormField() { - return drillXAxisFormField; - } - - /** - * Sets the value of the drillXAxisFormField property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillXAxisFormField(String value) { - this.drillXAxisFormField = value; - } - - /** - * Gets the value of the drillYAxisFormField property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillYAxisFormField() { - return drillYAxisFormField; - } - - /** - * Sets the value of the drillYAxisFormField property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillYAxisFormField(String value) { - this.drillYAxisFormField = value; - } - - /** - * Gets the value of the drillSeriesFormField property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillSeriesFormField() { - return drillSeriesFormField; - } - - /** - * Sets the value of the drillSeriesFormField property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillSeriesFormField(String value) { - this.drillSeriesFormField = value; - } - - /** - * Gets the value of the targetFormfield property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the targetFormfield property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getTargetFormfield().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link ChartDrillFormfield } - * - * - */ - public List getTargetFormfield() { - if (targetFormfield == null) { - targetFormfield = new ArrayList(); - } - return this.targetFormfield; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterList.java deleted file mode 100644 index 5d17d38a..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ColFilterList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ColFilterList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="colFilter" type="{}ColFilterType" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ColFilterList", propOrder = { - "colFilter" -}) -public class ColFilterList { - - protected List colFilter; - - /** - * Gets the value of the colFilter property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the colFilter property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getColFilter().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link ColFilterType } - * - * - */ - public List getColFilter() { - if (colFilter == null) { - colFilter = new ArrayList(); - } - return this.colFilter; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterType.java deleted file mode 100644 index eb38fb86..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ColFilterType.java +++ /dev/null @@ -1,298 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ColFilterType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ColFilterType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="colId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="filterSeq" type="{http://www.w3.org/2001/XMLSchema}int"/>
- *         <element name="joinCondition" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="openBrackets" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="expression" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="argType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="argValue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="closeBrackets" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ColFilterType", propOrder = { - "colId", - "filterSeq", - "joinCondition", - "openBrackets", - "expression", - "argType", - "argValue", - "closeBrackets", - "comment" -}) -public class ColFilterType { - - @XmlElement(required = true) - protected String colId; - protected int filterSeq; - @XmlElement(required = true) - protected String joinCondition; - protected String openBrackets; - @XmlElement(required = true) - protected String expression; - protected String argType; - protected String argValue; - protected String closeBrackets; - protected String comment; - - /** - * Gets the value of the colId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColId() { - return colId; - } - - /** - * Sets the value of the colId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColId(String value) { - this.colId = value; - } - - /** - * Gets the value of the filterSeq property. - * - */ - public int getFilterSeq() { - return filterSeq; - } - - /** - * Sets the value of the filterSeq property. - * - */ - public void setFilterSeq(int value) { - this.filterSeq = value; - } - - /** - * Gets the value of the joinCondition property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getJoinCondition() { - return joinCondition; - } - - /** - * Sets the value of the joinCondition property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setJoinCondition(String value) { - this.joinCondition = value; - } - - /** - * Gets the value of the openBrackets property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOpenBrackets() { - return openBrackets; - } - - /** - * Sets the value of the openBrackets property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOpenBrackets(String value) { - this.openBrackets = value; - } - - /** - * Gets the value of the expression property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExpression() { - return expression; - } - - /** - * Sets the value of the expression property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExpression(String value) { - this.expression = value; - } - - /** - * Gets the value of the argType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArgType() { - return argType; - } - - /** - * Sets the value of the argType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArgType(String value) { - this.argType = value; - } - - /** - * Gets the value of the argValue property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getArgValue() { - return argValue; - } - - /** - * Sets the value of the argValue property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setArgValue(String value) { - this.argValue = value; - } - - /** - * Gets the value of the closeBrackets property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCloseBrackets() { - return closeBrackets; - } - - /** - * Sets the value of the closeBrackets property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCloseBrackets(String value) { - this.closeBrackets = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/CustomReportType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/CustomReportType.java deleted file mode 100644 index f86e1991..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/CustomReportType.java +++ /dev/null @@ -1,2011 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.datatype.XMLGregorianCalendar; - - -/** - *

Java class for CustomReportType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="CustomReportType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="reportName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="reportDescr" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="numDashCols" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dashboardLayoutHTML" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dbInfo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dbType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="chartTypeFixed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartMultiSeries" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartLeftAxisLabel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartRightAxisLabel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartWidth" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartHeight" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="showChartTitle" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="public" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="hideFormFieldAfterRun" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="createId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="createDate" type="{http://www.w3.org/2001/XMLSchema}date"/>
- *         <element name="reportSQL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="reportTitle" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="reportSubTitle" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="reportHeader" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="frozenColumns" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="pdfImgLogo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="emptyMessage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="widthNoColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dataGridAlign" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="reportFooter" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="numFormCols" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="displayOptions" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="jumpTo" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="searchPageSize" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="navPosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="toggleLayout" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="pageNav" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="showPageSize" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="showNavPos" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="showGotoOption" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="dataContainerHeight" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dataContainerWidth" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="allowSchedule" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="multiGroupColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="topDown" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="sizedByContent" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *         <element name="dataSourceList" type="{}DataSourceList" minOccurs="0"/>
- *         <element name="formFieldList" type="{}FormFieldList" minOccurs="0"/>
- *         <element name="javascriptList" type="{}JavascriptList" minOccurs="0"/>
- *         <element name="semaphoreList" type="{}SemaphoreList" minOccurs="0"/>
- *         <element name="dashboardOptions" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dashboardType" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="reportInNewWindow" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="displayFolderTree" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="maxRowsInExcelDownload" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="dashBoardReports" type="{}DashboardReports" minOccurs="0"/>
- *         <element name="dashBoardReportsNew" type="{}DashboardReportsNew" minOccurs="0"/>
- *         <element name="chartAdditionalOptions" type="{}ChartAdditionalOptions" minOccurs="0"/>
- *         <element name="pdfAdditionalOptions" type="{}PDFAdditionalOptions" minOccurs="0"/>
- *         <element name="chartDrillOptions" type="{}ChartDrillOptions" minOccurs="0"/>
- *         <element name="dataminingOptions" type="{}DataminingOptions" minOccurs="0"/>
- *         <element name="javascriptElement" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="folderId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drillURLInPoPUpPresent" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="isOneTimeScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isHourlyScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isDailyScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isDailyMFScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isWeeklyScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isMonthlyScheduleAllowed" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="reportMap" type="{}ReportMap" minOccurs="0"/>
- *       </sequence>
- *       <attribute name="pageSize" type="{http://www.w3.org/2001/XMLSchema}int" />
- *       <attribute name="reportType" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "CustomReportType", propOrder = { - "reportName", - "reportDescr", - "numDashCols", - "dashboardLayoutHTML", - "dbInfo", - "dbType", - "chartType", - "chartTypeFixed", - "chartMultiSeries", - "chartLeftAxisLabel", - "chartRightAxisLabel", - "chartWidth", - "chartHeight", - "showChartTitle", - "_public", - "hideFormFieldAfterRun", - "createId", - "createDate", - "reportSQL", - "reportTitle", - "reportSubTitle", - "reportHeader", - "frozenColumns", - "pdfImgLogo", - "emptyMessage", - "widthNoColumn", - "dataGridAlign", - "reportFooter", - "numFormCols", - "displayOptions", - "jumpTo", - "searchPageSize", - "navPosition", - "toggleLayout", - "pageNav", - "showPageSize", - "showNavPos", - "showGotoOption", - "dataContainerHeight", - "dataContainerWidth", - "allowSchedule", - "multiGroupColumn", - "topDown", - "sizedByContent", - "comment", - "dataSourceList", - "formFieldList", - "javascriptList", - "semaphoreList", - "dashboardOptions", - "dashboardType", - "reportInNewWindow", - "displayFolderTree", - "maxRowsInExcelDownload", - "dashBoardReports", - "dashBoardReportsNew", - "chartAdditionalOptions", - "pdfAdditionalOptions", - "chartDrillOptions", - "dataminingOptions", - "javascriptElement", - "folderId", - "drillURLInPoPUpPresent", - "isOneTimeScheduleAllowed", - "isHourlyScheduleAllowed", - "isDailyScheduleAllowed", - "isDailyMFScheduleAllowed", - "isWeeklyScheduleAllowed", - "isMonthlyScheduleAllowed", - "reportMap" -}) -public class CustomReportType { - - @XmlElement(required = true) - protected String reportName; - @XmlElement(required = true) - protected String reportDescr; - protected String numDashCols; - protected String dashboardLayoutHTML; - protected String dbInfo; - protected String dbType; - @XmlElement(required = true) - protected String chartType; - protected String chartTypeFixed; - protected String chartMultiSeries; - protected String chartLeftAxisLabel; - protected String chartRightAxisLabel; - protected String chartWidth; - protected String chartHeight; - @XmlElement(defaultValue = "false") - protected boolean showChartTitle; - @XmlElement(name = "public", defaultValue = "false") - protected boolean _public; - @XmlElement(defaultValue = "false") - protected Boolean hideFormFieldAfterRun; - @XmlElement(required = true) - protected String createId; - @XmlElement(required = true) - @XmlSchemaType(name = "date") - protected XMLGregorianCalendar createDate; - protected String reportSQL; - protected String reportTitle; - protected String reportSubTitle; - protected String reportHeader; - @XmlElement(defaultValue = "0") - protected Integer frozenColumns; - protected String pdfImgLogo; - protected String emptyMessage; - protected String widthNoColumn; - protected String dataGridAlign; - protected String reportFooter; - protected String numFormCols; - protected String displayOptions; - protected Integer jumpTo; - protected Integer searchPageSize; - protected String navPosition; - @XmlElement(defaultValue = "true") - protected Boolean toggleLayout; - @XmlElement(defaultValue = "true") - protected Boolean pageNav; - @XmlElement(defaultValue = "true") - protected Boolean showPageSize; - @XmlElement(defaultValue = "true") - protected Boolean showNavPos; - @XmlElement(defaultValue = "true") - protected Boolean showGotoOption; - protected String dataContainerHeight; - protected String dataContainerWidth; - protected String allowSchedule; - protected String multiGroupColumn; - protected String topDown; - protected String sizedByContent; - protected String comment; - protected DataSourceList dataSourceList; - protected FormFieldList formFieldList; - protected JavascriptList javascriptList; - protected SemaphoreList semaphoreList; - protected String dashboardOptions; - @XmlElement(defaultValue = "false") - protected Boolean dashboardType; - @XmlElement(defaultValue = "false") - protected Boolean reportInNewWindow; - @XmlElement(defaultValue = "false") - protected Boolean displayFolderTree; - protected Integer maxRowsInExcelDownload; - protected DashboardReports dashBoardReports; - protected DashboardReportsNew dashBoardReportsNew; - protected ChartAdditionalOptions chartAdditionalOptions; - protected PDFAdditionalOptions pdfAdditionalOptions; - protected ChartDrillOptions chartDrillOptions; - protected DataminingOptions dataminingOptions; - protected String javascriptElement; - @XmlElement(defaultValue = "0") - protected String folderId; - @XmlElement(defaultValue = "false") - protected Boolean drillURLInPoPUpPresent; - protected String isOneTimeScheduleAllowed; - protected String isHourlyScheduleAllowed; - protected String isDailyScheduleAllowed; - protected String isDailyMFScheduleAllowed; - protected String isWeeklyScheduleAllowed; - protected String isMonthlyScheduleAllowed; - protected ReportMap reportMap; - @XmlAttribute(name = "pageSize") - protected Integer pageSize; - @XmlAttribute(name = "reportType") - protected String reportType; - - /** - * Gets the value of the reportName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportName() { - return reportName; - } - - /** - * Sets the value of the reportName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportName(String value) { - this.reportName = value; - } - - /** - * Gets the value of the reportDescr property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportDescr() { - return reportDescr; - } - - /** - * Sets the value of the reportDescr property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportDescr(String value) { - this.reportDescr = value; - } - - /** - * Gets the value of the numDashCols property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getNumDashCols() { - return numDashCols; - } - - /** - * Sets the value of the numDashCols property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setNumDashCols(String value) { - this.numDashCols = value; - } - - /** - * Gets the value of the dashboardLayoutHTML property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDashboardLayoutHTML() { - return dashboardLayoutHTML; - } - - /** - * Sets the value of the dashboardLayoutHTML property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDashboardLayoutHTML(String value) { - this.dashboardLayoutHTML = value; - } - - /** - * Gets the value of the dbInfo property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDbInfo() { - return dbInfo; - } - - /** - * Sets the value of the dbInfo property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDbInfo(String value) { - this.dbInfo = value; - } - - /** - * Gets the value of the dbType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDbType() { - return dbType; - } - - /** - * Sets the value of the dbType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDbType(String value) { - this.dbType = value; - } - - /** - * Gets the value of the chartType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartType() { - return chartType; - } - - /** - * Sets the value of the chartType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartType(String value) { - this.chartType = value; - } - - /** - * Gets the value of the chartTypeFixed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartTypeFixed() { - return chartTypeFixed; - } - - /** - * Sets the value of the chartTypeFixed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartTypeFixed(String value) { - this.chartTypeFixed = value; - } - - /** - * Gets the value of the chartMultiSeries property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartMultiSeries() { - return chartMultiSeries; - } - - /** - * Sets the value of the chartMultiSeries property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartMultiSeries(String value) { - this.chartMultiSeries = value; - } - - /** - * Gets the value of the chartLeftAxisLabel property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartLeftAxisLabel() { - return chartLeftAxisLabel; - } - - /** - * Sets the value of the chartLeftAxisLabel property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartLeftAxisLabel(String value) { - this.chartLeftAxisLabel = value; - } - - /** - * Gets the value of the chartRightAxisLabel property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartRightAxisLabel() { - return chartRightAxisLabel; - } - - /** - * Sets the value of the chartRightAxisLabel property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartRightAxisLabel(String value) { - this.chartRightAxisLabel = value; - } - - /** - * Gets the value of the chartWidth property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartWidth() { - return chartWidth; - } - - /** - * Sets the value of the chartWidth property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartWidth(String value) { - this.chartWidth = value; - } - - /** - * Gets the value of the chartHeight property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartHeight() { - return chartHeight; - } - - /** - * Sets the value of the chartHeight property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartHeight(String value) { - this.chartHeight = value; - } - - /** - * Gets the value of the showChartTitle property. - * - */ - public boolean isShowChartTitle() { - return showChartTitle; - } - - /** - * Sets the value of the showChartTitle property. - * - */ - public void setShowChartTitle(boolean value) { - this.showChartTitle = value; - } - - /** - * Gets the value of the public property. - * - */ - public boolean isPublic() { - return _public; - } - - /** - * Sets the value of the public property. - * - */ - public void setPublic(boolean value) { - this._public = value; - } - - /** - * Gets the value of the hideFormFieldAfterRun property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isHideFormFieldAfterRun() { - return hideFormFieldAfterRun; - } - - /** - * Sets the value of the hideFormFieldAfterRun property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setHideFormFieldAfterRun(Boolean value) { - this.hideFormFieldAfterRun = value; - } - - /** - * Gets the value of the createId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCreateId() { - return createId; - } - - /** - * Sets the value of the createId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCreateId(String value) { - this.createId = value; - } - - /** - * Gets the value of the createDate property. - * - * @return - * possible object is - * {@link XMLGregorianCalendar } - * - */ - public XMLGregorianCalendar getCreateDate() { - return createDate; - } - - /** - * Sets the value of the createDate property. - * - * @param value - * allowed object is - * {@link XMLGregorianCalendar } - * - */ - public void setCreateDate(XMLGregorianCalendar value) { - this.createDate = value; - } - - /** - * Gets the value of the reportSQL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportSQL() { - return reportSQL; - } - - /** - * Sets the value of the reportSQL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportSQL(String value) { - this.reportSQL = value; - } - - /** - * Gets the value of the reportTitle property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportTitle() { - return reportTitle; - } - - /** - * Sets the value of the reportTitle property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportTitle(String value) { - this.reportTitle = value; - } - - /** - * Gets the value of the reportSubTitle property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportSubTitle() { - return reportSubTitle; - } - - /** - * Sets the value of the reportSubTitle property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportSubTitle(String value) { - this.reportSubTitle = value; - } - - /** - * Gets the value of the reportHeader property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportHeader() { - return reportHeader; - } - - /** - * Sets the value of the reportHeader property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportHeader(String value) { - this.reportHeader = value; - } - - /** - * Gets the value of the frozenColumns property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getFrozenColumns() { - return frozenColumns; - } - - /** - * Sets the value of the frozenColumns property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setFrozenColumns(Integer value) { - this.frozenColumns = value; - } - - /** - * Gets the value of the pdfImgLogo property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPdfImgLogo() { - return pdfImgLogo; - } - - /** - * Sets the value of the pdfImgLogo property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPdfImgLogo(String value) { - this.pdfImgLogo = value; - } - - /** - * Gets the value of the emptyMessage property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getEmptyMessage() { - return emptyMessage; - } - - /** - * Sets the value of the emptyMessage property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setEmptyMessage(String value) { - this.emptyMessage = value; - } - - /** - * Gets the value of the widthNoColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getWidthNoColumn() { - return widthNoColumn; - } - - /** - * Sets the value of the widthNoColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setWidthNoColumn(String value) { - this.widthNoColumn = value; - } - - /** - * Gets the value of the dataGridAlign property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataGridAlign() { - return dataGridAlign; - } - - /** - * Sets the value of the dataGridAlign property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataGridAlign(String value) { - this.dataGridAlign = value; - } - - /** - * Gets the value of the reportFooter property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportFooter() { - return reportFooter; - } - - /** - * Sets the value of the reportFooter property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportFooter(String value) { - this.reportFooter = value; - } - - /** - * Gets the value of the numFormCols property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getNumFormCols() { - return numFormCols; - } - - /** - * Sets the value of the numFormCols property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setNumFormCols(String value) { - this.numFormCols = value; - } - - /** - * Gets the value of the displayOptions property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayOptions() { - return displayOptions; - } - - /** - * Sets the value of the displayOptions property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayOptions(String value) { - this.displayOptions = value; - } - - /** - * Gets the value of the jumpTo property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getJumpTo() { - return jumpTo; - } - - /** - * Sets the value of the jumpTo property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setJumpTo(Integer value) { - this.jumpTo = value; - } - - /** - * Gets the value of the searchPageSize property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getSearchPageSize() { - return searchPageSize; - } - - /** - * Sets the value of the searchPageSize property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setSearchPageSize(Integer value) { - this.searchPageSize = value; - } - - /** - * Gets the value of the navPosition property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getNavPosition() { - return navPosition; - } - - /** - * Sets the value of the navPosition property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setNavPosition(String value) { - this.navPosition = value; - } - - /** - * Gets the value of the toggleLayout property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isToggleLayout() { - return toggleLayout; - } - - /** - * Sets the value of the toggleLayout property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setToggleLayout(Boolean value) { - this.toggleLayout = value; - } - - /** - * Gets the value of the pageNav property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isPageNav() { - return pageNav; - } - - /** - * Sets the value of the pageNav property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setPageNav(Boolean value) { - this.pageNav = value; - } - - /** - * Gets the value of the showPageSize property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isShowPageSize() { - return showPageSize; - } - - /** - * Sets the value of the showPageSize property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setShowPageSize(Boolean value) { - this.showPageSize = value; - } - - /** - * Gets the value of the showNavPos property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isShowNavPos() { - return showNavPos; - } - - /** - * Sets the value of the showNavPos property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setShowNavPos(Boolean value) { - this.showNavPos = value; - } - - /** - * Gets the value of the showGotoOption property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isShowGotoOption() { - return showGotoOption; - } - - /** - * Sets the value of the showGotoOption property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setShowGotoOption(Boolean value) { - this.showGotoOption = value; - } - - /** - * Gets the value of the dataContainerHeight property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataContainerHeight() { - return dataContainerHeight; - } - - /** - * Sets the value of the dataContainerHeight property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataContainerHeight(String value) { - this.dataContainerHeight = value; - } - - /** - * Gets the value of the dataContainerWidth property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataContainerWidth() { - return dataContainerWidth; - } - - /** - * Sets the value of the dataContainerWidth property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataContainerWidth(String value) { - this.dataContainerWidth = value; - } - - /** - * Gets the value of the allowSchedule property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAllowSchedule() { - return allowSchedule; - } - - /** - * Sets the value of the allowSchedule property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAllowSchedule(String value) { - this.allowSchedule = value; - } - - /** - * Gets the value of the multiGroupColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMultiGroupColumn() { - return multiGroupColumn; - } - - /** - * Sets the value of the multiGroupColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMultiGroupColumn(String value) { - this.multiGroupColumn = value; - } - - /** - * Gets the value of the topDown property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTopDown() { - return topDown; - } - - /** - * Sets the value of the topDown property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTopDown(String value) { - this.topDown = value; - } - - /** - * Gets the value of the sizedByContent property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSizedByContent() { - return sizedByContent; - } - - /** - * Sets the value of the sizedByContent property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSizedByContent(String value) { - this.sizedByContent = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the dataSourceList property. - * - * @return - * possible object is - * {@link DataSourceList } - * - */ - public DataSourceList getDataSourceList() { - return dataSourceList; - } - - /** - * Sets the value of the dataSourceList property. - * - * @param value - * allowed object is - * {@link DataSourceList } - * - */ - public void setDataSourceList(DataSourceList value) { - this.dataSourceList = value; - } - - /** - * Gets the value of the formFieldList property. - * - * @return - * possible object is - * {@link FormFieldList } - * - */ - public FormFieldList getFormFieldList() { - return formFieldList; - } - - /** - * Sets the value of the formFieldList property. - * - * @param value - * allowed object is - * {@link FormFieldList } - * - */ - public void setFormFieldList(FormFieldList value) { - this.formFieldList = value; - } - - /** - * Gets the value of the javascriptList property. - * - * @return - * possible object is - * {@link JavascriptList } - * - */ - public JavascriptList getJavascriptList() { - return javascriptList; - } - - /** - * Sets the value of the javascriptList property. - * - * @param value - * allowed object is - * {@link JavascriptList } - * - */ - public void setJavascriptList(JavascriptList value) { - this.javascriptList = value; - } - - /** - * Gets the value of the semaphoreList property. - * - * @return - * possible object is - * {@link SemaphoreList } - * - */ - public SemaphoreList getSemaphoreList() { - return semaphoreList; - } - - /** - * Sets the value of the semaphoreList property. - * - * @param value - * allowed object is - * {@link SemaphoreList } - * - */ - public void setSemaphoreList(SemaphoreList value) { - this.semaphoreList = value; - } - - /** - * Gets the value of the dashboardOptions property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDashboardOptions() { - return dashboardOptions; - } - - /** - * Sets the value of the dashboardOptions property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDashboardOptions(String value) { - this.dashboardOptions = value; - } - - /** - * Gets the value of the dashboardType property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isDashboardType() { - return dashboardType; - } - - /** - * Sets the value of the dashboardType property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setDashboardType(Boolean value) { - this.dashboardType = value; - } - - /** - * Gets the value of the reportInNewWindow property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isReportInNewWindow() { - return reportInNewWindow; - } - - /** - * Sets the value of the reportInNewWindow property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setReportInNewWindow(Boolean value) { - this.reportInNewWindow = value; - } - - /** - * Gets the value of the displayFolderTree property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isDisplayFolderTree() { - return displayFolderTree; - } - - /** - * Sets the value of the displayFolderTree property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setDisplayFolderTree(Boolean value) { - this.displayFolderTree = value; - } - - /** - * Gets the value of the maxRowsInExcelDownload property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getMaxRowsInExcelDownload() { - return maxRowsInExcelDownload; - } - - /** - * Sets the value of the maxRowsInExcelDownload property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setMaxRowsInExcelDownload(Integer value) { - this.maxRowsInExcelDownload = value; - } - - /** - * Gets the value of the dashBoardReports property. - * - * @return - * possible object is - * {@link DashboardReports } - * - */ - public DashboardReports getDashBoardReports() { - return dashBoardReports; - } - - /** - * Sets the value of the dashBoardReports property. - * - * @param value - * allowed object is - * {@link DashboardReports } - * - */ - public void setDashBoardReports(DashboardReports value) { - this.dashBoardReports = value; - } - - /** - * Gets the value of the dashBoardReportsNew property. - * - * @return - * possible object is - * {@link DashboardReportsNew } - * - */ - public DashboardReportsNew getDashBoardReportsNew() { - return dashBoardReportsNew; - } - - /** - * Sets the value of the dashBoardReportsNew property. - * - * @param value - * allowed object is - * {@link DashboardReportsNew } - * - */ - public void setDashBoardReportsNew(DashboardReportsNew value) { - this.dashBoardReportsNew = value; - } - - /** - * Gets the value of the chartAdditionalOptions property. - * - * @return - * possible object is - * {@link ChartAdditionalOptions } - * - */ - public ChartAdditionalOptions getChartAdditionalOptions() { - return chartAdditionalOptions; - } - - /** - * Sets the value of the chartAdditionalOptions property. - * - * @param value - * allowed object is - * {@link ChartAdditionalOptions } - * - */ - public void setChartAdditionalOptions(ChartAdditionalOptions value) { - this.chartAdditionalOptions = value; - } - - /** - * Gets the value of the pdfAdditionalOptions property. - * - * @return - * possible object is - * {@link PDFAdditionalOptions } - * - */ - public PDFAdditionalOptions getPdfAdditionalOptions() { - return pdfAdditionalOptions; - } - - /** - * Sets the value of the pdfAdditionalOptions property. - * - * @param value - * allowed object is - * {@link PDFAdditionalOptions } - * - */ - public void setPdfAdditionalOptions(PDFAdditionalOptions value) { - this.pdfAdditionalOptions = value; - } - - /** - * Gets the value of the chartDrillOptions property. - * - * @return - * possible object is - * {@link ChartDrillOptions } - * - */ - public ChartDrillOptions getChartDrillOptions() { - return chartDrillOptions; - } - - /** - * Sets the value of the chartDrillOptions property. - * - * @param value - * allowed object is - * {@link ChartDrillOptions } - * - */ - public void setChartDrillOptions(ChartDrillOptions value) { - this.chartDrillOptions = value; - } - - /** - * Gets the value of the dataminingOptions property. - * - * @return - * possible object is - * {@link DataminingOptions } - * - */ - public DataminingOptions getDataminingOptions() { - return dataminingOptions; - } - - /** - * Sets the value of the dataminingOptions property. - * - * @param value - * allowed object is - * {@link DataminingOptions } - * - */ - public void setDataminingOptions(DataminingOptions value) { - this.dataminingOptions = value; - } - - /** - * Gets the value of the javascriptElement property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getJavascriptElement() { - return javascriptElement; - } - - /** - * Sets the value of the javascriptElement property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setJavascriptElement(String value) { - this.javascriptElement = value; - } - - /** - * Gets the value of the folderId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFolderId() { - return folderId; - } - - /** - * Sets the value of the folderId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFolderId(String value) { - this.folderId = value; - } - - /** - * Gets the value of the drillURLInPoPUpPresent property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isDrillURLInPoPUpPresent() { - return drillURLInPoPUpPresent; - } - - /** - * Sets the value of the drillURLInPoPUpPresent property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setDrillURLInPoPUpPresent(Boolean value) { - this.drillURLInPoPUpPresent = value; - } - - /** - * Gets the value of the isOneTimeScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsOneTimeScheduleAllowed() { - return isOneTimeScheduleAllowed; - } - - /** - * Sets the value of the isOneTimeScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsOneTimeScheduleAllowed(String value) { - this.isOneTimeScheduleAllowed = value; - } - - /** - * Gets the value of the isHourlyScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsHourlyScheduleAllowed() { - return isHourlyScheduleAllowed; - } - - /** - * Sets the value of the isHourlyScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsHourlyScheduleAllowed(String value) { - this.isHourlyScheduleAllowed = value; - } - - /** - * Gets the value of the isDailyScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsDailyScheduleAllowed() { - return isDailyScheduleAllowed; - } - - /** - * Sets the value of the isDailyScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsDailyScheduleAllowed(String value) { - this.isDailyScheduleAllowed = value; - } - - /** - * Gets the value of the isDailyMFScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsDailyMFScheduleAllowed() { - return isDailyMFScheduleAllowed; - } - - /** - * Sets the value of the isDailyMFScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsDailyMFScheduleAllowed(String value) { - this.isDailyMFScheduleAllowed = value; - } - - /** - * Gets the value of the isWeeklyScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsWeeklyScheduleAllowed() { - return isWeeklyScheduleAllowed; - } - - /** - * Sets the value of the isWeeklyScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsWeeklyScheduleAllowed(String value) { - this.isWeeklyScheduleAllowed = value; - } - - /** - * Gets the value of the isMonthlyScheduleAllowed property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsMonthlyScheduleAllowed() { - return isMonthlyScheduleAllowed; - } - - /** - * Sets the value of the isMonthlyScheduleAllowed property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsMonthlyScheduleAllowed(String value) { - this.isMonthlyScheduleAllowed = value; - } - - /** - * Gets the value of the reportMap property. - * - * @return - * possible object is - * {@link ReportMap } - * - */ - public ReportMap getReportMap() { - return reportMap; - } - - /** - * Sets the value of the reportMap property. - * - * @param value - * allowed object is - * {@link ReportMap } - * - */ - public void setReportMap(ReportMap value) { - this.reportMap = value; - } - - /** - * Gets the value of the pageSize property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getPageSize() { - return pageSize; - } - - /** - * Sets the value of the pageSize property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setPageSize(Integer value) { - this.pageSize = value; - } - - /** - * Gets the value of the reportType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportType() { - return reportType; - } - - /** - * Sets the value of the reportType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportType(String value) { - this.reportType = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorList.java deleted file mode 100644 index d344845a..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DashboardEditorList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DashboardEditorList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="editorList" type="{}DashboardEditorReport" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DashboardEditorList", propOrder = { - "editorList" -}) -public class DashboardEditorList { - - protected List editorList; - - /** - * Gets the value of the editorList property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the editorList property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getEditorList().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link DashboardEditorReport } - * - * - */ - public List getEditorList() { - if (editorList == null) { - editorList = new ArrayList(); - } - return this.editorList; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorReport.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorReport.java deleted file mode 100644 index ad68a4bf..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardEditorReport.java +++ /dev/null @@ -1,172 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DashboardEditorReport complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DashboardEditorReport">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="reportId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="reportName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="dataType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="position" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DashboardEditorReport", propOrder = { - "reportId", - "reportName", - "dataType", - "position" -}) -public class DashboardEditorReport { - - @XmlElement(required = true) - protected String reportId; - @XmlElement(required = true) - protected String reportName; - @XmlElement(required = true) - protected String dataType; - @XmlElement(required = true) - protected String position; - - /** - * Gets the value of the reportId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportId() { - return reportId; - } - - /** - * Sets the value of the reportId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportId(String value) { - this.reportId = value; - } - - /** - * Gets the value of the reportName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportName() { - return reportName; - } - - /** - * Sets the value of the reportName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportName(String value) { - this.reportName = value; - } - - /** - * Gets the value of the dataType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataType() { - return dataType; - } - - /** - * Sets the value of the dataType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataType(String value) { - this.dataType = value; - } - - /** - * Gets the value of the position property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPosition() { - return position; - } - - /** - * Sets the value of the position property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPosition(String value) { - this.position = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReports.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReports.java deleted file mode 100644 index 99cb986d..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReports.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DashboardReports complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DashboardReports">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="reportsList" type="{}Reports" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DashboardReports", propOrder = { - "reportsList" -}) -public class DashboardReports { - - protected List reportsList; - - /** - * Gets the value of the reportsList property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the reportsList property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getReportsList().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link Reports } - * - * - */ - public List getReportsList() { - if (reportsList == null) { - reportsList = new ArrayList(); - } - return this.reportsList; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReportsNew.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReportsNew.java deleted file mode 100644 index 341eb434..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DashboardReportsNew.java +++ /dev/null @@ -1,147 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DashboardReportsNew complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DashboardReportsNew">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="reportsList" type="{}Reports" maxOccurs="unbounded" minOccurs="0"/>
- *         <element name="dashboardEditor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dashboardEditorList" type="{}DashboardEditorList" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DashboardReportsNew", propOrder = { - "reportsList", - "dashboardEditor", - "dashboardEditorList" -}) -public class DashboardReportsNew { - - protected List reportsList; - protected String dashboardEditor; - protected DashboardEditorList dashboardEditorList; - - /** - * Gets the value of the reportsList property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the reportsList property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getReportsList().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link Reports } - * - * - */ - public List getReportsList() { - if (reportsList == null) { - reportsList = new ArrayList(); - } - return this.reportsList; - } - - /** - * Gets the value of the dashboardEditor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDashboardEditor() { - return dashboardEditor; - } - - /** - * Sets the value of the dashboardEditor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDashboardEditor(String value) { - this.dashboardEditor = value; - } - - /** - * Gets the value of the dashboardEditorList property. - * - * @return - * possible object is - * {@link DashboardEditorList } - * - */ - public DashboardEditorList getDashboardEditorList() { - return dashboardEditorList; - } - - /** - * Sets the value of the dashboardEditorList property. - * - * @param value - * allowed object is - * {@link DashboardEditorList } - * - */ - public void setDashboardEditorList(DashboardEditorList value) { - this.dashboardEditorList = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnList.java deleted file mode 100644 index 7068a3ed..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnList.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DataColumnList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DataColumnList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="dataColumn" type="{}DataColumnType" maxOccurs="unbounded"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DataColumnList", propOrder = { - "dataColumn" -}) -public class DataColumnList { - - @XmlElement(required = true) - protected List dataColumn; - - /** - * Gets the value of the dataColumn property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the dataColumn property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getDataColumn().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link DataColumnType } - * - * - */ - public List getDataColumn() { - if (dataColumn == null) { - dataColumn = new ArrayList(); - } - return this.dataColumn; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnType.java deleted file mode 100644 index 66a32175..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataColumnType.java +++ /dev/null @@ -1,1455 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DataColumnType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DataColumnType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="tableId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="dbColName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="crossTabValue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="colName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="displayName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="displayWidth" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="displayWidthInPxls" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="pdfDisplayWidthInPxls" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="displayAlignment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="displayHeaderAlignment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="orderSeq" type="{http://www.w3.org/2001/XMLSchema}int"/>
- *         <element name="visible" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="calculated" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="colType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="hyperlinkURL" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="hyperlinkType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="actionImg" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="groupByPos" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="subTotalCustomText" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="hideRepeatedKey" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="colFormat" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="groupBreak" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="orderBySeq" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="orderByAscDesc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="displayTotal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="colOnChart" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartSeq" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="chartColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartLineType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartSeries" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="isRangeAxisFilled" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="isSortable" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="createInNewChart" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="drillDownType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drillinPoPUp" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="drillDownURL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="drillDownParams" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *         <element name="colFilterList" type="{}ColFilterList" minOccurs="0"/>
- *         <element name="semaphoreId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dbColType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="chartGroup" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="yAxis" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dependsOnFormField" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="nowrap" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="indentation" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="enhancedPagination" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="level" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="start" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="colspan" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="dataMiningCol" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *       <attribute name="colId" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DataColumnType", propOrder = { - "tableId", - "dbColName", - "crossTabValue", - "colName", - "displayName", - "displayWidth", - "displayWidthInPxls", - "pdfDisplayWidthInPxls", - "displayAlignment", - "displayHeaderAlignment", - "orderSeq", - "visible", - "calculated", - "colType", - "hyperlinkURL", - "hyperlinkType", - "actionImg", - "groupByPos", - "subTotalCustomText", - "hideRepeatedKey", - "colFormat", - "groupBreak", - "orderBySeq", - "orderByAscDesc", - "displayTotal", - "colOnChart", - "chartSeq", - "chartColor", - "chartLineType", - "chartSeries", - "isRangeAxisFilled", - "isSortable", - "createInNewChart", - "drillDownType", - "drillinPoPUp", - "drillDownURL", - "drillDownParams", - "comment", - "colFilterList", - "semaphoreId", - "dbColType", - "chartGroup", - "yAxis", - "dependsOnFormField", - "nowrap", - "indentation", - "enhancedPagination", - "level", - "start", - "colspan", - "dataMiningCol" -}) -public class DataColumnType { - - @XmlElement(required = true) - protected String tableId; - @XmlElement(required = true) - protected String dbColName; - protected String crossTabValue; - @XmlElement(required = true) - protected String colName; - @XmlElement(required = true) - protected String displayName; - protected Integer displayWidth; - protected String displayWidthInPxls; - protected String pdfDisplayWidthInPxls; - protected String displayAlignment; - protected String displayHeaderAlignment; - protected int orderSeq; - @XmlElement(defaultValue = "true") - protected boolean visible; - @XmlElement(defaultValue = "false") - protected boolean calculated; - @XmlElement(required = true) - protected String colType; - @XmlElement(required = true) - protected String hyperlinkURL; - @XmlElement(required = true) - protected String hyperlinkType; - @XmlElement(required = true) - protected String actionImg; - protected Integer groupByPos; - protected String subTotalCustomText; - @XmlElement(defaultValue = "false") - protected Boolean hideRepeatedKey; - protected String colFormat; - @XmlElement(defaultValue = "false") - protected boolean groupBreak; - protected Integer orderBySeq; - protected String orderByAscDesc; - protected String displayTotal; - protected String colOnChart; - protected Integer chartSeq; - protected String chartColor; - protected String chartLineType; - @XmlElement(defaultValue = "false") - protected Boolean chartSeries; - @XmlElement(defaultValue = "false") - protected Boolean isRangeAxisFilled; - @XmlElement(defaultValue = "false") - protected Boolean isSortable; - @XmlElement(defaultValue = "false") - protected Boolean createInNewChart; - protected String drillDownType; - @XmlElement(defaultValue = "false") - protected Boolean drillinPoPUp; - protected String drillDownURL; - protected String drillDownParams; - protected String comment; - protected ColFilterList colFilterList; - protected String semaphoreId; - protected String dbColType; - protected String chartGroup; - protected String yAxis; - protected String dependsOnFormField; - protected String nowrap; - @XmlElement(defaultValue = "0") - protected Integer indentation; - @XmlElement(defaultValue = "false") - protected Boolean enhancedPagination; - @XmlElement(defaultValue = "0") - protected Integer level; - @XmlElement(defaultValue = "0") - protected Integer start; - @XmlElement(defaultValue = "0") - protected Integer colspan; - protected String dataMiningCol; - @XmlAttribute(name = "colId") - protected String colId; - - /** - * Gets the value of the tableId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTableId() { - return tableId; - } - - /** - * Sets the value of the tableId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTableId(String value) { - this.tableId = value; - } - - /** - * Gets the value of the dbColName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDbColName() { - return dbColName; - } - - /** - * Sets the value of the dbColName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDbColName(String value) { - this.dbColName = value; - } - - /** - * Gets the value of the crossTabValue property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCrossTabValue() { - return crossTabValue; - } - - /** - * Sets the value of the crossTabValue property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCrossTabValue(String value) { - this.crossTabValue = value; - } - - /** - * Gets the value of the colName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColName() { - return colName; - } - - /** - * Sets the value of the colName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColName(String value) { - this.colName = value; - } - - /** - * Gets the value of the displayName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayName() { - return displayName; - } - - /** - * Sets the value of the displayName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayName(String value) { - this.displayName = value; - } - - /** - * Gets the value of the displayWidth property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getDisplayWidth() { - return displayWidth; - } - - /** - * Sets the value of the displayWidth property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setDisplayWidth(Integer value) { - this.displayWidth = value; - } - - /** - * Gets the value of the displayWidthInPxls property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayWidthInPxls() { - return displayWidthInPxls; - } - - /** - * Sets the value of the displayWidthInPxls property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayWidthInPxls(String value) { - this.displayWidthInPxls = value; - } - - /** - * Gets the value of the pdfDisplayWidthInPxls property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPdfDisplayWidthInPxls() { - return pdfDisplayWidthInPxls; - } - - /** - * Sets the value of the pdfDisplayWidthInPxls property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPdfDisplayWidthInPxls(String value) { - this.pdfDisplayWidthInPxls = value; - } - - /** - * Gets the value of the displayAlignment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayAlignment() { - return displayAlignment; - } - - /** - * Sets the value of the displayAlignment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayAlignment(String value) { - this.displayAlignment = value; - } - - /** - * Gets the value of the displayHeaderAlignment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayHeaderAlignment() { - return displayHeaderAlignment; - } - - /** - * Sets the value of the displayHeaderAlignment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayHeaderAlignment(String value) { - this.displayHeaderAlignment = value; - } - - /** - * Gets the value of the orderSeq property. - * - */ - public int getOrderSeq() { - return orderSeq; - } - - /** - * Sets the value of the orderSeq property. - * - */ - public void setOrderSeq(int value) { - this.orderSeq = value; - } - - /** - * Gets the value of the visible property. - * - */ - public boolean isVisible() { - return visible; - } - - /** - * Sets the value of the visible property. - * - */ - public void setVisible(boolean value) { - this.visible = value; - } - - /** - * Gets the value of the calculated property. - * - */ - public boolean isCalculated() { - return calculated; - } - - /** - * Sets the value of the calculated property. - * - */ - public void setCalculated(boolean value) { - this.calculated = value; - } - - /** - * Gets the value of the colType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColType() { - return colType; - } - - /** - * Sets the value of the colType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColType(String value) { - this.colType = value; - } - - /** - * Gets the value of the hyperlinkURL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHyperlinkURL() { - return hyperlinkURL; - } - - /** - * Sets the value of the hyperlinkURL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHyperlinkURL(String value) { - this.hyperlinkURL = value; - } - - /** - * Gets the value of the hyperlinkType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHyperlinkType() { - return hyperlinkType; - } - - /** - * Sets the value of the hyperlinkType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHyperlinkType(String value) { - this.hyperlinkType = value; - } - - /** - * Gets the value of the actionImg property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getActionImg() { - return actionImg; - } - - /** - * Sets the value of the actionImg property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setActionImg(String value) { - this.actionImg = value; - } - - /** - * Gets the value of the groupByPos property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getGroupByPos() { - return groupByPos; - } - - /** - * Sets the value of the groupByPos property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setGroupByPos(Integer value) { - this.groupByPos = value; - } - - /** - * Gets the value of the subTotalCustomText property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSubTotalCustomText() { - return subTotalCustomText; - } - - /** - * Sets the value of the subTotalCustomText property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSubTotalCustomText(String value) { - this.subTotalCustomText = value; - } - - /** - * Gets the value of the hideRepeatedKey property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isHideRepeatedKey() { - return hideRepeatedKey; - } - - /** - * Sets the value of the hideRepeatedKey property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setHideRepeatedKey(Boolean value) { - this.hideRepeatedKey = value; - } - - /** - * Gets the value of the colFormat property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColFormat() { - return colFormat; - } - - /** - * Sets the value of the colFormat property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColFormat(String value) { - this.colFormat = value; - } - - /** - * Gets the value of the groupBreak property. - * - */ - public boolean isGroupBreak() { - return groupBreak; - } - - /** - * Sets the value of the groupBreak property. - * - */ - public void setGroupBreak(boolean value) { - this.groupBreak = value; - } - - /** - * Gets the value of the orderBySeq property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getOrderBySeq() { - return orderBySeq; - } - - /** - * Sets the value of the orderBySeq property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setOrderBySeq(Integer value) { - this.orderBySeq = value; - } - - /** - * Gets the value of the orderByAscDesc property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getOrderByAscDesc() { - return orderByAscDesc; - } - - /** - * Sets the value of the orderByAscDesc property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setOrderByAscDesc(String value) { - this.orderByAscDesc = value; - } - - /** - * Gets the value of the displayTotal property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayTotal() { - return displayTotal; - } - - /** - * Sets the value of the displayTotal property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayTotal(String value) { - this.displayTotal = value; - } - - /** - * Gets the value of the colOnChart property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColOnChart() { - return colOnChart; - } - - /** - * Sets the value of the colOnChart property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColOnChart(String value) { - this.colOnChart = value; - } - - /** - * Gets the value of the chartSeq property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getChartSeq() { - return chartSeq; - } - - /** - * Sets the value of the chartSeq property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setChartSeq(Integer value) { - this.chartSeq = value; - } - - /** - * Gets the value of the chartColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartColor() { - return chartColor; - } - - /** - * Sets the value of the chartColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartColor(String value) { - this.chartColor = value; - } - - /** - * Gets the value of the chartLineType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartLineType() { - return chartLineType; - } - - /** - * Sets the value of the chartLineType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartLineType(String value) { - this.chartLineType = value; - } - - /** - * Gets the value of the chartSeries property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isChartSeries() { - return chartSeries; - } - - /** - * Sets the value of the chartSeries property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setChartSeries(Boolean value) { - this.chartSeries = value; - } - - /** - * Gets the value of the isRangeAxisFilled property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isIsRangeAxisFilled() { - return isRangeAxisFilled; - } - - /** - * Sets the value of the isRangeAxisFilled property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setIsRangeAxisFilled(Boolean value) { - this.isRangeAxisFilled = value; - } - - /** - * Gets the value of the isSortable property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isIsSortable() { - return isSortable; - } - - /** - * Sets the value of the isSortable property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setIsSortable(Boolean value) { - this.isSortable = value; - } - - /** - * Gets the value of the createInNewChart property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isCreateInNewChart() { - return createInNewChart; - } - - /** - * Sets the value of the createInNewChart property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setCreateInNewChart(Boolean value) { - this.createInNewChart = value; - } - - /** - * Gets the value of the drillDownType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillDownType() { - return drillDownType; - } - - /** - * Sets the value of the drillDownType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillDownType(String value) { - this.drillDownType = value; - } - - /** - * Gets the value of the drillinPoPUp property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isDrillinPoPUp() { - return drillinPoPUp; - } - - /** - * Sets the value of the drillinPoPUp property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setDrillinPoPUp(Boolean value) { - this.drillinPoPUp = value; - } - - /** - * Gets the value of the drillDownURL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillDownURL() { - return drillDownURL; - } - - /** - * Sets the value of the drillDownURL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillDownURL(String value) { - this.drillDownURL = value; - } - - /** - * Gets the value of the drillDownParams property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDrillDownParams() { - return drillDownParams; - } - - /** - * Sets the value of the drillDownParams property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDrillDownParams(String value) { - this.drillDownParams = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the colFilterList property. - * - * @return - * possible object is - * {@link ColFilterList } - * - */ - public ColFilterList getColFilterList() { - return colFilterList; - } - - /** - * Sets the value of the colFilterList property. - * - * @param value - * allowed object is - * {@link ColFilterList } - * - */ - public void setColFilterList(ColFilterList value) { - this.colFilterList = value; - } - - /** - * Gets the value of the semaphoreId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSemaphoreId() { - return semaphoreId; - } - - /** - * Sets the value of the semaphoreId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSemaphoreId(String value) { - this.semaphoreId = value; - } - - /** - * Gets the value of the dbColType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDbColType() { - return dbColType; - } - - /** - * Sets the value of the dbColType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDbColType(String value) { - this.dbColType = value; - } - - /** - * Gets the value of the chartGroup property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getChartGroup() { - return chartGroup; - } - - /** - * Sets the value of the chartGroup property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setChartGroup(String value) { - this.chartGroup = value; - } - - /** - * Gets the value of the yAxis property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getYAxis() { - return yAxis; - } - - /** - * Sets the value of the yAxis property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setYAxis(String value) { - this.yAxis = value; - } - - /** - * Gets the value of the dependsOnFormField property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDependsOnFormField() { - return dependsOnFormField; - } - - /** - * Sets the value of the dependsOnFormField property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDependsOnFormField(String value) { - this.dependsOnFormField = value; - } - - /** - * Gets the value of the nowrap property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getNowrap() { - return nowrap; - } - - /** - * Sets the value of the nowrap property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setNowrap(String value) { - this.nowrap = value; - } - - /** - * Gets the value of the indentation property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getIndentation() { - return indentation; - } - - /** - * Sets the value of the indentation property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setIndentation(Integer value) { - this.indentation = value; - } - - /** - * Gets the value of the enhancedPagination property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isEnhancedPagination() { - return enhancedPagination; - } - - /** - * Sets the value of the enhancedPagination property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setEnhancedPagination(Boolean value) { - this.enhancedPagination = value; - } - - /** - * Gets the value of the level property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getLevel() { - return level; - } - - /** - * Sets the value of the level property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setLevel(Integer value) { - this.level = value; - } - - /** - * Gets the value of the start property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getStart() { - return start; - } - - /** - * Sets the value of the start property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setStart(Integer value) { - this.start = value; - } - - /** - * Gets the value of the colspan property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getColspan() { - return colspan; - } - - /** - * Sets the value of the colspan property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setColspan(Integer value) { - this.colspan = value; - } - - /** - * Gets the value of the dataMiningCol property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataMiningCol() { - return dataMiningCol; - } - - /** - * Sets the value of the dataMiningCol property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataMiningCol(String value) { - this.dataMiningCol = value; - } - - /** - * Gets the value of the colId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColId() { - return colId; - } - - /** - * Sets the value of the colId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColId(String value) { - this.colId = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceList.java deleted file mode 100644 index 38e0103b..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DataSourceList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DataSourceList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="dataSource" type="{}DataSourceType" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DataSourceList", propOrder = { - "dataSource" -}) -public class DataSourceList { - - protected List dataSource; - - /** - * Gets the value of the dataSource property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the dataSource property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getDataSource().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link DataSourceType } - * - * - */ - public List getDataSource() { - if (dataSource == null) { - dataSource = new ArrayList(); - } - return this.dataSource; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceType.java deleted file mode 100644 index 3857a4f9..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataSourceType.java +++ /dev/null @@ -1,281 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DataSourceType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DataSourceType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="tableName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="tablePK" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="displayName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="refTableId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="refDefinition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *         <element name="dataColumnList" type="{}DataColumnList"/>
- *       </sequence>
- *       <attribute name="tableId" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DataSourceType", propOrder = { - "tableName", - "tablePK", - "displayName", - "refTableId", - "refDefinition", - "comment", - "dataColumnList" -}) -public class DataSourceType { - - @XmlElement(required = true) - protected String tableName; - @XmlElement(required = true) - protected String tablePK; - @XmlElement(required = true) - protected String displayName; - protected String refTableId; - protected String refDefinition; - protected String comment; - @XmlElement(required = true) - protected DataColumnList dataColumnList; - @XmlAttribute(name = "tableId") - protected String tableId; - - /** - * Gets the value of the tableName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTableName() { - return tableName; - } - - /** - * Sets the value of the tableName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTableName(String value) { - this.tableName = value; - } - - /** - * Gets the value of the tablePK property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTablePK() { - return tablePK; - } - - /** - * Sets the value of the tablePK property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTablePK(String value) { - this.tablePK = value; - } - - /** - * Gets the value of the displayName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDisplayName() { - return displayName; - } - - /** - * Sets the value of the displayName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDisplayName(String value) { - this.displayName = value; - } - - /** - * Gets the value of the refTableId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRefTableId() { - return refTableId; - } - - /** - * Sets the value of the refTableId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRefTableId(String value) { - this.refTableId = value; - } - - /** - * Gets the value of the refDefinition property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRefDefinition() { - return refDefinition; - } - - /** - * Sets the value of the refDefinition property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRefDefinition(String value) { - this.refDefinition = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the dataColumnList property. - * - * @return - * possible object is - * {@link DataColumnList } - * - */ - public DataColumnList getDataColumnList() { - return dataColumnList; - } - - /** - * Sets the value of the dataColumnList property. - * - * @param value - * allowed object is - * {@link DataColumnList } - * - */ - public void setDataColumnList(DataColumnList value) { - this.dataColumnList = value; - } - - /** - * Gets the value of the tableId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTableId() { - return tableId; - } - - /** - * Sets the value of the tableId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTableId(String value) { - this.tableId = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataminingOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataminingOptions.java deleted file mode 100644 index 3df9dc8b..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/DataminingOptions.java +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for DataminingOptions complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="DataminingOptions">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="classifier" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="timeAttribute" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="timeformat" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="forecastingUnits" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "DataminingOptions", propOrder = { - "classifier", - "timeAttribute", - "timeformat", - "forecastingUnits" -}) -public class DataminingOptions { - - protected String classifier; - protected String timeAttribute; - protected String timeformat; - protected String forecastingUnits; - - /** - * Gets the value of the classifier property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getClassifier() { - return classifier; - } - - /** - * Sets the value of the classifier property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setClassifier(String value) { - this.classifier = value; - } - - /** - * Gets the value of the timeAttribute property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimeAttribute() { - return timeAttribute; - } - - /** - * Sets the value of the timeAttribute property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimeAttribute(String value) { - this.timeAttribute = value; - } - - /** - * Gets the value of the timeformat property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTimeformat() { - return timeformat; - } - - /** - * Sets the value of the timeformat property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTimeformat(String value) { - this.timeformat = value; - } - - /** - * Gets the value of the forecastingUnits property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getForecastingUnits() { - return forecastingUnits; - } - - /** - * Sets the value of the forecastingUnits property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setForecastingUnits(String value) { - this.forecastingUnits = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldList.java deleted file mode 100644 index 373657cb..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldList.java +++ /dev/null @@ -1,120 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for FormFieldList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="FormFieldList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="formField" type="{}FormFieldType" maxOccurs="unbounded" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FormFieldList", propOrder = { - "formField", - "comment" -}) -public class FormFieldList { - - protected List formField; - protected String comment; - - /** - * Gets the value of the formField property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the formField property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getFormField().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link FormFieldType } - * - * - */ - public List getFormField() { - if (formField == null) { - formField = new ArrayList(); - } - return this.formField; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldType.java deleted file mode 100644 index d7be2206..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormFieldType.java +++ /dev/null @@ -1,610 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.datatype.XMLGregorianCalendar; - - -/** - *

Java class for FormFieldType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="FormFieldType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="colId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="fieldName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="fieldType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="visible" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="validationType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="mandatory" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="defaultValue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="orderBySeq" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="fieldSQL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="fieldDefaultSQL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="rangeStartDate" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
- *         <element name="rangeEndDate" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
- *         <element name="rangeStartDateSQL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="rangeEndDateSQL" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *         <element name="predefinedValueList" type="{}PredefinedValueList" minOccurs="0"/>
- *         <element name="dependsOn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="groupFormField" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="multiSelectListSize" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *       <attribute name="fieldId" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FormFieldType", propOrder = { - "colId", - "fieldName", - "fieldType", - "visible", - "validationType", - "mandatory", - "defaultValue", - "orderBySeq", - "fieldSQL", - "fieldDefaultSQL", - "rangeStartDate", - "rangeEndDate", - "rangeStartDateSQL", - "rangeEndDateSQL", - "comment", - "predefinedValueList", - "dependsOn", - "groupFormField", - "multiSelectListSize" -}) -public class FormFieldType { - - @XmlElement(required = true) - protected String colId; - @XmlElement(required = true) - protected String fieldName; - @XmlElement(required = true) - protected String fieldType; - protected String visible; - protected String validationType; - protected String mandatory; - protected String defaultValue; - protected Integer orderBySeq; - protected String fieldSQL; - protected String fieldDefaultSQL; - @XmlSchemaType(name = "date") - protected XMLGregorianCalendar rangeStartDate; - @XmlSchemaType(name = "date") - protected XMLGregorianCalendar rangeEndDate; - protected String rangeStartDateSQL; - protected String rangeEndDateSQL; - protected String comment; - protected PredefinedValueList predefinedValueList; - protected String dependsOn; - @XmlElement(defaultValue = "false") - protected Boolean groupFormField; - @XmlElement(defaultValue = "4") - protected String multiSelectListSize; - @XmlAttribute(name = "fieldId") - protected String fieldId; - - /** - * Gets the value of the colId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColId() { - return colId; - } - - /** - * Sets the value of the colId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColId(String value) { - this.colId = value; - } - - /** - * Gets the value of the fieldName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldName() { - return fieldName; - } - - /** - * Sets the value of the fieldName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldName(String value) { - this.fieldName = value; - } - - /** - * Gets the value of the fieldType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldType() { - return fieldType; - } - - /** - * Sets the value of the fieldType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldType(String value) { - this.fieldType = value; - } - - /** - * Gets the value of the visible property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVisible() { - return visible; - } - - /** - * Sets the value of the visible property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVisible(String value) { - this.visible = value; - } - - /** - * Gets the value of the validationType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getValidationType() { - return validationType; - } - - /** - * Sets the value of the validationType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setValidationType(String value) { - this.validationType = value; - } - - /** - * Gets the value of the mandatory property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMandatory() { - return mandatory; - } - - /** - * Sets the value of the mandatory property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMandatory(String value) { - this.mandatory = value; - } - - /** - * Gets the value of the defaultValue property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDefaultValue() { - return defaultValue; - } - - /** - * Sets the value of the defaultValue property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDefaultValue(String value) { - this.defaultValue = value; - } - - /** - * Gets the value of the orderBySeq property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getOrderBySeq() { - return orderBySeq; - } - - /** - * Sets the value of the orderBySeq property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setOrderBySeq(Integer value) { - this.orderBySeq = value; - } - - /** - * Gets the value of the fieldSQL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldSQL() { - return fieldSQL; - } - - /** - * Sets the value of the fieldSQL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldSQL(String value) { - this.fieldSQL = value; - } - - /** - * Gets the value of the fieldDefaultSQL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldDefaultSQL() { - return fieldDefaultSQL; - } - - /** - * Sets the value of the fieldDefaultSQL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldDefaultSQL(String value) { - this.fieldDefaultSQL = value; - } - - /** - * Gets the value of the rangeStartDate property. - * - * @return - * possible object is - * {@link XMLGregorianCalendar } - * - */ - public XMLGregorianCalendar getRangeStartDate() { - return rangeStartDate; - } - - /** - * Sets the value of the rangeStartDate property. - * - * @param value - * allowed object is - * {@link XMLGregorianCalendar } - * - */ - public void setRangeStartDate(XMLGregorianCalendar value) { - this.rangeStartDate = value; - } - - /** - * Gets the value of the rangeEndDate property. - * - * @return - * possible object is - * {@link XMLGregorianCalendar } - * - */ - public XMLGregorianCalendar getRangeEndDate() { - return rangeEndDate; - } - - /** - * Sets the value of the rangeEndDate property. - * - * @param value - * allowed object is - * {@link XMLGregorianCalendar } - * - */ - public void setRangeEndDate(XMLGregorianCalendar value) { - this.rangeEndDate = value; - } - - /** - * Gets the value of the rangeStartDateSQL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRangeStartDateSQL() { - return rangeStartDateSQL; - } - - /** - * Sets the value of the rangeStartDateSQL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRangeStartDateSQL(String value) { - this.rangeStartDateSQL = value; - } - - /** - * Gets the value of the rangeEndDateSQL property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getRangeEndDateSQL() { - return rangeEndDateSQL; - } - - /** - * Sets the value of the rangeEndDateSQL property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setRangeEndDateSQL(String value) { - this.rangeEndDateSQL = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the predefinedValueList property. - * - * @return - * possible object is - * {@link PredefinedValueList } - * - */ - public PredefinedValueList getPredefinedValueList() { - return predefinedValueList; - } - - /** - * Sets the value of the predefinedValueList property. - * - * @param value - * allowed object is - * {@link PredefinedValueList } - * - */ - public void setPredefinedValueList(PredefinedValueList value) { - this.predefinedValueList = value; - } - - /** - * Gets the value of the dependsOn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDependsOn() { - return dependsOn; - } - - /** - * Sets the value of the dependsOn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDependsOn(String value) { - this.dependsOn = value; - } - - /** - * Gets the value of the groupFormField property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isGroupFormField() { - return groupFormField; - } - - /** - * Sets the value of the groupFormField property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setGroupFormField(Boolean value) { - this.groupFormField = value; - } - - /** - * Gets the value of the multiSelectListSize property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMultiSelectListSize() { - return multiSelectListSize; - } - - /** - * Sets the value of the multiSelectListSize property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMultiSelectListSize(String value) { - this.multiSelectListSize = value; - } - - /** - * Gets the value of the fieldId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldId() { - return fieldId; - } - - /** - * Sets the value of the fieldId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldId(String value) { - this.fieldId = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatList.java deleted file mode 100644 index f97ff50e..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatList.java +++ /dev/null @@ -1,95 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for FormatList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="FormatList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="format" type="{}FormatType" maxOccurs="unbounded"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FormatList", propOrder = { - "format" -}) -public class FormatList { - - @XmlElement(required = true) - protected List format; - - /** - * Gets the value of the format property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the format property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getFormat().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link FormatType } - * - * - */ - public List getFormat() { - if (format == null) { - format = new ArrayList(); - } - return this.format; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatType.java deleted file mode 100644 index 4388b869..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/FormatType.java +++ /dev/null @@ -1,366 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for FormatType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="FormatType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="lessThanValue" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="expression" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="bold" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="italic" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="underline" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- *         <element name="bgColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="fontColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="fontFace" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="fontSize" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="alignment" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *       </sequence>
- *       <attribute name="formatId" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FormatType", propOrder = { - "lessThanValue", - "expression", - "bold", - "italic", - "underline", - "bgColor", - "fontColor", - "fontFace", - "fontSize", - "alignment", - "comment" -}) -public class FormatType { - - @XmlElement(required = true) - protected String lessThanValue; - @XmlElement(required = true) - protected String expression; - @XmlElement(defaultValue = "false") - protected boolean bold; - @XmlElement(defaultValue = "false") - protected boolean italic; - @XmlElement(defaultValue = "false") - protected boolean underline; - protected String bgColor; - protected String fontColor; - protected String fontFace; - protected String fontSize; - protected String alignment; - protected String comment; - @XmlAttribute(name = "formatId") - protected String formatId; - - /** - * Gets the value of the lessThanValue property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLessThanValue() { - return lessThanValue; - } - - /** - * Sets the value of the lessThanValue property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLessThanValue(String value) { - this.lessThanValue = value; - } - - /** - * Gets the value of the expression property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getExpression() { - return expression; - } - - /** - * Sets the value of the expression property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setExpression(String value) { - this.expression = value; - } - - /** - * Gets the value of the bold property. - * - */ - public boolean isBold() { - return bold; - } - - /** - * Sets the value of the bold property. - * - */ - public void setBold(boolean value) { - this.bold = value; - } - - /** - * Gets the value of the italic property. - * - */ - public boolean isItalic() { - return italic; - } - - /** - * Sets the value of the italic property. - * - */ - public void setItalic(boolean value) { - this.italic = value; - } - - /** - * Gets the value of the underline property. - * - */ - public boolean isUnderline() { - return underline; - } - - /** - * Sets the value of the underline property. - * - */ - public void setUnderline(boolean value) { - this.underline = value; - } - - /** - * Gets the value of the bgColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getBgColor() { - return bgColor; - } - - /** - * Sets the value of the bgColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setBgColor(String value) { - this.bgColor = value; - } - - /** - * Gets the value of the fontColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFontColor() { - return fontColor; - } - - /** - * Sets the value of the fontColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFontColor(String value) { - this.fontColor = value; - } - - /** - * Gets the value of the fontFace property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFontFace() { - return fontFace; - } - - /** - * Sets the value of the fontFace property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFontFace(String value) { - this.fontFace = value; - } - - /** - * Gets the value of the fontSize property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFontSize() { - return fontSize; - } - - /** - * Sets the value of the fontSize property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFontSize(String value) { - this.fontSize = value; - } - - /** - * Gets the value of the alignment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAlignment() { - return alignment; - } - - /** - * Sets the value of the alignment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAlignment(String value) { - this.alignment = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the formatId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFormatId() { - return formatId; - } - - /** - * Sets the value of the formatId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFormatId(String value) { - this.formatId = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptItemType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptItemType.java deleted file mode 100644 index 7d52a9b6..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptItemType.java +++ /dev/null @@ -1,144 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for JavascriptItemType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="JavascriptItemType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="fieldId" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="callText" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "JavascriptItemType", propOrder = { - "id", - "fieldId", - "callText" -}) -public class JavascriptItemType { - - @XmlElement(required = true) - protected String id; - @XmlElement(required = true) - protected String fieldId; - @XmlElement(required = true) - protected String callText; - - /** - * Gets the value of the id property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getId() { - return id; - } - - /** - * Sets the value of the id property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setId(String value) { - this.id = value; - } - - /** - * Gets the value of the fieldId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getFieldId() { - return fieldId; - } - - /** - * Sets the value of the fieldId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setFieldId(String value) { - this.fieldId = value; - } - - /** - * Gets the value of the callText property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCallText() { - return callText; - } - - /** - * Sets the value of the callText property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCallText(String value) { - this.callText = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptList.java deleted file mode 100644 index 3bf8d8aa..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/JavascriptList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for JavascriptList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="JavascriptList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="javascriptItem" type="{}JavascriptItemType" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "JavascriptList", propOrder = { - "javascriptItem" -}) -public class JavascriptList { - - protected List javascriptItem; - - /** - * Gets the value of the javascriptItem property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the javascriptItem property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getJavascriptItem().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link JavascriptItemType } - * - * - */ - public List getJavascriptItem() { - if (javascriptItem == null) { - javascriptItem = new ArrayList(); - } - return this.javascriptItem; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Marker.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Marker.java deleted file mode 100644 index e57824d7..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Marker.java +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for Marker complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Marker">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="markerColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dataHeader" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="addressColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dataColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Marker", propOrder = { - "markerColor", - "dataHeader", - "addressColumn", - "dataColumn" -}) -public class Marker { - - protected String markerColor; - protected String dataHeader; - protected String addressColumn; - protected String dataColumn; - - /** - * Gets the value of the markerColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMarkerColor() { - return markerColor; - } - - /** - * Sets the value of the markerColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMarkerColor(String value) { - this.markerColor = value; - } - - /** - * Gets the value of the dataHeader property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataHeader() { - return dataHeader; - } - - /** - * Sets the value of the dataHeader property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataHeader(String value) { - this.dataHeader = value; - } - - /** - * Gets the value of the addressColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAddressColumn() { - return addressColumn; - } - - /** - * Sets the value of the addressColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAddressColumn(String value) { - this.addressColumn = value; - } - - /** - * Gets the value of the dataColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataColumn() { - return dataColumn; - } - - /** - * Sets the value of the dataColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataColumn(String value) { - this.dataColumn = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ObjectFactory.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ObjectFactory.java deleted file mode 100644 index 35cbe8c8..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ObjectFactory.java +++ /dev/null @@ -1,305 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.namespace.QName; - - -/** - * This object contains factory methods for each - * Java content interface and Java element interface - * generated in the org.openecomp.portalsdk.analytics.xmlobj package. - *

An ObjectFactory allows you to programatically - * construct new instances of the Java representation - * for XML content. The Java representation of XML - * content can consist of schema derived interfaces - * and classes representing the binding of schema - * type definitions, element declarations and model - * groups. Factory methods for each of these are - * provided in this class. - * - */ -@XmlRegistry -public class ObjectFactory { - - private final static QName _CustomReport_QNAME = new QName("", "customReport"); - private final static QName _Comment_QNAME = new QName("", "comment"); - - /** - * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.openecomp.portalsdk.analytics.xmlobj - * - */ - public ObjectFactory() { - } - - /** - * Create an instance of {@link CustomReportType } - * - */ - public CustomReportType createCustomReportType() { - return new CustomReportType(); - } - - /** - * Create an instance of {@link ChartAdditionalOptions } - * - */ - public ChartAdditionalOptions createChartAdditionalOptions() { - return new ChartAdditionalOptions(); - } - - /** - * Create an instance of {@link DataminingOptions } - * - */ - public DataminingOptions createDataminingOptions() { - return new DataminingOptions(); - } - - /** - * Create an instance of {@link FormFieldType } - * - */ - public FormFieldType createFormFieldType() { - return new FormFieldType(); - } - - /** - * Create an instance of {@link PredefinedValueList } - * - */ - public PredefinedValueList createPredefinedValueList() { - return new PredefinedValueList(); - } - - /** - * Create an instance of {@link DashboardEditorReport } - * - */ - public DashboardEditorReport createDashboardEditorReport() { - return new DashboardEditorReport(); - } - - /** - * Create an instance of {@link DataSourceList } - * - */ - public DataSourceList createDataSourceList() { - return new DataSourceList(); - } - - /** - * Create an instance of {@link DashboardReports } - * - */ - public DashboardReports createDashboardReports() { - return new DashboardReports(); - } - - /** - * Create an instance of {@link ReportMap } - * - */ - public ReportMap createReportMap() { - return new ReportMap(); - } - - /** - * Create an instance of {@link FormatList } - * - */ - public FormatList createFormatList() { - return new FormatList(); - } - - /** - * Create an instance of {@link JavascriptList } - * - */ - public JavascriptList createJavascriptList() { - return new JavascriptList(); - } - - /** - * Create an instance of {@link JavascriptItemType } - * - */ - public JavascriptItemType createJavascriptItemType() { - return new JavascriptItemType(); - } - - /** - * Create an instance of {@link DataColumnType } - * - */ - public DataColumnType createDataColumnType() { - return new DataColumnType(); - } - - /** - * Create an instance of {@link DataSourceType } - * - */ - public DataSourceType createDataSourceType() { - return new DataSourceType(); - } - - /** - * Create an instance of {@link DashboardEditorList } - * - */ - public DashboardEditorList createDashboardEditorList() { - return new DashboardEditorList(); - } - - /** - * Create an instance of {@link SemaphoreList } - * - */ - public SemaphoreList createSemaphoreList() { - return new SemaphoreList(); - } - - /** - * Create an instance of {@link ColFilterType } - * - */ - public ColFilterType createColFilterType() { - return new ColFilterType(); - } - - /** - * Create an instance of {@link ChartDrillOptions } - * - */ - public ChartDrillOptions createChartDrillOptions() { - return new ChartDrillOptions(); - } - - /** - * Create an instance of {@link DashboardReportsNew } - * - */ - public DashboardReportsNew createDashboardReportsNew() { - return new DashboardReportsNew(); - } - - /** - * Create an instance of {@link ChartDrillFormfield } - * - */ - public ChartDrillFormfield createChartDrillFormfield() { - return new ChartDrillFormfield(); - } - - /** - * Create an instance of {@link PDFAdditionalOptions } - * - */ - public PDFAdditionalOptions createPDFAdditionalOptions() { - return new PDFAdditionalOptions(); - } - - /** - * Create an instance of {@link Reports } - * - */ - public Reports createReports() { - return new Reports(); - } - - /** - * Create an instance of {@link Marker } - * - */ - public Marker createMarker() { - return new Marker(); - } - - /** - * Create an instance of {@link FormatType } - * - */ - public FormatType createFormatType() { - return new FormatType(); - } - - /** - * Create an instance of {@link DataColumnList } - * - */ - public DataColumnList createDataColumnList() { - return new DataColumnList(); - } - - /** - * Create an instance of {@link FormFieldList } - * - */ - public FormFieldList createFormFieldList() { - return new FormFieldList(); - } - - /** - * Create an instance of {@link SemaphoreType } - * - */ - public SemaphoreType createSemaphoreType() { - return new SemaphoreType(); - } - - /** - * Create an instance of {@link ColFilterList } - * - */ - public ColFilterList createColFilterList() { - return new ColFilterList(); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link CustomReportType }{@code >}} - * - */ - @XmlElementDecl(namespace = "", name = "customReport") - public JAXBElement createCustomReport(CustomReportType value) { - return new JAXBElement(_CustomReport_QNAME, CustomReportType.class, null, value); - } - - /** - * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}} - * - */ - @XmlElementDecl(namespace = "", name = "comment") - public JAXBElement createComment(String value) { - return new JAXBElement(_Comment_QNAME, String.class, null, value); - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PDFAdditionalOptions.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PDFAdditionalOptions.java deleted file mode 100644 index 36fce125..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PDFAdditionalOptions.java +++ /dev/null @@ -1,340 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for PDFAdditionalOptions complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="PDFAdditionalOptions">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="PDF_font" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="PDF_fontSize" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="PDF_orientation" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="PDF_logo1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="PDF_logo2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="PDF_logo1Size" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="PDF_logo2Size" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
- *         <element name="PDF_coverPage" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
- *         <element name="PDF_footer1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="PDF_footer2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "PDFAdditionalOptions", propOrder = { - "pdfFont", - "pdfFontSize", - "pdfOrientation", - "pdfLogo1", - "pdfLogo2", - "pdfLogo1Size", - "pdfLogo2Size", - "pdfCoverPage", - "pdfFooter1", - "pdfFooter2" -}) -public class PDFAdditionalOptions { - - @XmlElement(name = "PDF_font") - protected String pdfFont; - @XmlElement(name = "PDF_fontSize") - protected Integer pdfFontSize; - @XmlElement(name = "PDF_orientation") - protected String pdfOrientation; - @XmlElement(name = "PDF_logo1") - protected String pdfLogo1; - @XmlElement(name = "PDF_logo2") - protected String pdfLogo2; - @XmlElement(name = "PDF_logo1Size") - protected Integer pdfLogo1Size; - @XmlElement(name = "PDF_logo2Size") - protected Integer pdfLogo2Size; - @XmlElement(name = "PDF_coverPage", defaultValue = "false") - protected Boolean pdfCoverPage; - @XmlElement(name = "PDF_footer1") - protected String pdfFooter1; - @XmlElement(name = "PDF_footer2") - protected String pdfFooter2; - - /** - * Gets the value of the pdfFont property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFFont() { - return pdfFont; - } - - /** - * Sets the value of the pdfFont property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFFont(String value) { - this.pdfFont = value; - } - - /** - * Gets the value of the pdfFontSize property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getPDFFontSize() { - return pdfFontSize; - } - - /** - * Sets the value of the pdfFontSize property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setPDFFontSize(Integer value) { - this.pdfFontSize = value; - } - - /** - * Gets the value of the pdfOrientation property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFOrientation() { - return pdfOrientation; - } - - /** - * Sets the value of the pdfOrientation property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFOrientation(String value) { - this.pdfOrientation = value; - } - - /** - * Gets the value of the pdfLogo1 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFLogo1() { - return pdfLogo1; - } - - /** - * Sets the value of the pdfLogo1 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFLogo1(String value) { - this.pdfLogo1 = value; - } - - /** - * Gets the value of the pdfLogo2 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFLogo2() { - return pdfLogo2; - } - - /** - * Sets the value of the pdfLogo2 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFLogo2(String value) { - this.pdfLogo2 = value; - } - - /** - * Gets the value of the pdfLogo1Size property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getPDFLogo1Size() { - return pdfLogo1Size; - } - - /** - * Sets the value of the pdfLogo1Size property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setPDFLogo1Size(Integer value) { - this.pdfLogo1Size = value; - } - - /** - * Gets the value of the pdfLogo2Size property. - * - * @return - * possible object is - * {@link Integer } - * - */ - public Integer getPDFLogo2Size() { - return pdfLogo2Size; - } - - /** - * Sets the value of the pdfLogo2Size property. - * - * @param value - * allowed object is - * {@link Integer } - * - */ - public void setPDFLogo2Size(Integer value) { - this.pdfLogo2Size = value; - } - - /** - * Gets the value of the pdfCoverPage property. - * - * @return - * possible object is - * {@link Boolean } - * - */ - public Boolean isPDFCoverPage() { - return pdfCoverPage; - } - - /** - * Sets the value of the pdfCoverPage property. - * - * @param value - * allowed object is - * {@link Boolean } - * - */ - public void setPDFCoverPage(Boolean value) { - this.pdfCoverPage = value; - } - - /** - * Gets the value of the pdfFooter1 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFFooter1() { - return pdfFooter1; - } - - /** - * Sets the value of the pdfFooter1 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFFooter1(String value) { - this.pdfFooter1 = value; - } - - /** - * Gets the value of the pdfFooter2 property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getPDFFooter2() { - return pdfFooter2; - } - - /** - * Sets the value of the pdfFooter2 property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setPDFFooter2(String value) { - this.pdfFooter2 = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PredefinedValueList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PredefinedValueList.java deleted file mode 100644 index 2f656d02..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/PredefinedValueList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for PredefinedValueList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="PredefinedValueList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="predefinedValue" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "PredefinedValueList", propOrder = { - "predefinedValue" -}) -public class PredefinedValueList { - - protected List predefinedValue; - - /** - * Gets the value of the predefinedValue property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the predefinedValue property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getPredefinedValue().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link String } - * - * - */ - public List getPredefinedValue() { - if (predefinedValue == null) { - predefinedValue = new ArrayList(); - } - return this.predefinedValue; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ReportMap.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ReportMap.java deleted file mode 100644 index b1ac30d4..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/ReportMap.java +++ /dev/null @@ -1,444 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for ReportMap complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="ReportMap">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="markerColor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="useDefaultSize" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="height" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="width" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="isMapAllowedYN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="addAddressInDataYN" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="addressColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="dataColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="defaultMapType" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="latColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="longColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="colorColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="legendColumn" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="markers" type="{}Marker" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "ReportMap", propOrder = { - "markerColor", - "useDefaultSize", - "height", - "width", - "isMapAllowedYN", - "addAddressInDataYN", - "addressColumn", - "dataColumn", - "defaultMapType", - "latColumn", - "longColumn", - "colorColumn", - "legendColumn", - "markers" -}) -public class ReportMap { - - protected String markerColor; - protected String useDefaultSize; - protected String height; - protected String width; - protected String isMapAllowedYN; - protected String addAddressInDataYN; - protected String addressColumn; - protected String dataColumn; - protected String defaultMapType; - protected String latColumn; - protected String longColumn; - protected String colorColumn; - protected String legendColumn; - protected List markers; - - /** - * Gets the value of the markerColor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getMarkerColor() { - return markerColor; - } - - /** - * Sets the value of the markerColor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setMarkerColor(String value) { - this.markerColor = value; - } - - /** - * Gets the value of the useDefaultSize property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getUseDefaultSize() { - return useDefaultSize; - } - - /** - * Sets the value of the useDefaultSize property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setUseDefaultSize(String value) { - this.useDefaultSize = value; - } - - /** - * Gets the value of the height property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getHeight() { - return height; - } - - /** - * Sets the value of the height property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setHeight(String value) { - this.height = value; - } - - /** - * Gets the value of the width property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getWidth() { - return width; - } - - /** - * Sets the value of the width property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setWidth(String value) { - this.width = value; - } - - /** - * Gets the value of the isMapAllowedYN property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getIsMapAllowedYN() { - return isMapAllowedYN; - } - - /** - * Sets the value of the isMapAllowedYN property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setIsMapAllowedYN(String value) { - this.isMapAllowedYN = value; - } - - /** - * Gets the value of the addAddressInDataYN property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAddAddressInDataYN() { - return addAddressInDataYN; - } - - /** - * Sets the value of the addAddressInDataYN property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAddAddressInDataYN(String value) { - this.addAddressInDataYN = value; - } - - /** - * Gets the value of the addressColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getAddressColumn() { - return addressColumn; - } - - /** - * Sets the value of the addressColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setAddressColumn(String value) { - this.addressColumn = value; - } - - /** - * Gets the value of the dataColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDataColumn() { - return dataColumn; - } - - /** - * Sets the value of the dataColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDataColumn(String value) { - this.dataColumn = value; - } - - /** - * Gets the value of the defaultMapType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getDefaultMapType() { - return defaultMapType; - } - - /** - * Sets the value of the defaultMapType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setDefaultMapType(String value) { - this.defaultMapType = value; - } - - /** - * Gets the value of the latColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLatColumn() { - return latColumn; - } - - /** - * Sets the value of the latColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLatColumn(String value) { - this.latColumn = value; - } - - /** - * Gets the value of the longColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLongColumn() { - return longColumn; - } - - /** - * Sets the value of the longColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLongColumn(String value) { - this.longColumn = value; - } - - /** - * Gets the value of the colorColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getColorColumn() { - return colorColumn; - } - - /** - * Sets the value of the colorColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setColorColumn(String value) { - this.colorColumn = value; - } - - /** - * Gets the value of the legendColumn property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getLegendColumn() { - return legendColumn; - } - - /** - * Sets the value of the legendColumn property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setLegendColumn(String value) { - this.legendColumn = value; - } - - /** - * Gets the value of the markers property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the markers property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getMarkers().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link Marker } - * - * - */ - public List getMarkers() { - if (markers == null) { - markers = new ArrayList(); - } - return this.markers; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Reports.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Reports.java deleted file mode 100644 index be1bc395..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/Reports.java +++ /dev/null @@ -1,113 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for Reports complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="Reports">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="reportId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *         <element name="bgcolor" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "Reports", propOrder = { - "reportId", - "bgcolor" -}) -public class Reports { - - protected String reportId; - protected String bgcolor; - - /** - * Gets the value of the reportId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getReportId() { - return reportId; - } - - /** - * Sets the value of the reportId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setReportId(String value) { - this.reportId = value; - } - - /** - * Gets the value of the bgcolor property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getBgcolor() { - return bgcolor; - } - - /** - * Sets the value of the bgcolor property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setBgcolor(String value) { - this.bgcolor = value; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreList.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreList.java deleted file mode 100644 index 54ffa7ac..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreList.java +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for SemaphoreList complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="SemaphoreList">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="semaphore" type="{}SemaphoreType" maxOccurs="unbounded" minOccurs="0"/>
- *       </sequence>
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "SemaphoreList", propOrder = { - "semaphore" -}) -public class SemaphoreList { - - protected List semaphore; - - /** - * Gets the value of the semaphore property. - * - *

- * This accessor method returns a reference to the live list, - * not a snapshot. Therefore any modification you make to the - * returned list will be present inside the JAXB object. - * This is why there is not a set method for the semaphore property. - * - *

- * For example, to add a new item, do as follows: - *

-     *    getSemaphore().add(newItem);
-     * 
- * - * - *

- * Objects of the following type(s) are allowed in the list - * {@link SemaphoreType } - * - * - */ - public List getSemaphore() { - if (semaphore == null) { - semaphore = new ArrayList(); - } - return this.semaphore; - } - -} diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreType.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreType.java deleted file mode 100644 index ec371a51..00000000 --- a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/xmlobj/SemaphoreType.java +++ /dev/null @@ -1,227 +0,0 @@ -/*- - * ================================================================================ - * ECOMP Portal SDK - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ================================================================================ - */ -// -// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 -// See http://java.sun.com/xml/jaxb -// Any modifications to this file will be lost upon recompilation of the source schema. -// Generated on: 2016.06.07 at 02:07:29 PM EDT -// - - -package org.openecomp.portalsdk.analytics.xmlobj; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; - - -/** - *

Java class for SemaphoreType complex type. - * - *

The following schema fragment specifies the expected content contained within this class. - * - *

- * <complexType name="SemaphoreType">
- *   <complexContent>
- *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- *       <sequence>
- *         <element name="semaphoreName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="semaphoreType" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element ref="{}comment" minOccurs="0"/>
- *         <element name="target" type="{http://www.w3.org/2001/XMLSchema}string"/>
- *         <element name="formatList" type="{}FormatList"/>
- *       </sequence>
- *       <attribute name="semaphoreId" type="{http://www.w3.org/2001/XMLSchema}string" />
- *     </restriction>
- *   </complexContent>
- * </complexType>
- * 
- * - * - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "SemaphoreType", propOrder = { - "semaphoreName", - "semaphoreType", - "comment", - "target", - "formatList" -}) -public class SemaphoreType { - - @XmlElement(required = true) - protected String semaphoreName; - @XmlElement(required = true) - protected String semaphoreType; - protected String comment; - @XmlElement(required = true) - protected String target; - @XmlElement(required = true) - protected FormatList formatList; - @XmlAttribute(name = "semaphoreId") - protected String semaphoreId; - - /** - * Gets the value of the semaphoreName property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSemaphoreName() { - return semaphoreName; - } - - /** - * Sets the value of the semaphoreName property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSemaphoreName(String value) { - this.semaphoreName = value; - } - - /** - * Gets the value of the semaphoreType property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSemaphoreType() { - return semaphoreType; - } - - /** - * Sets the value of the semaphoreType property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSemaphoreType(String value) { - this.semaphoreType = value; - } - - /** - * Gets the value of the comment property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getComment() { - return comment; - } - - /** - * Sets the value of the comment property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setComment(String value) { - this.comment = value; - } - - /** - * Gets the value of the target property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getTarget() { - return target; - } - - /** - * Sets the value of the target property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setTarget(String value) { - this.target = value; - } - - /** - * Gets the value of the formatList property. - * - * @return - * possible object is - * {@link FormatList } - * - */ - public FormatList getFormatList() { - return formatList; - } - - /** - * Sets the value of the formatList property. - * - * @param value - * allowed object is - * {@link FormatList } - * - */ - public void setFormatList(FormatList value) { - this.formatList = value; - } - - /** - * Gets the value of the semaphoreId property. - * - * @return - * possible object is - * {@link String } - * - */ - public String getSemaphoreId() { - return semaphoreId; - } - - /** - * Sets the value of the semaphoreId property. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setSemaphoreId(String value) { - this.semaphoreId = value; - } - -} -- cgit 1.2.3-korg