diff options
Diffstat (limited to 'ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model')
58 files changed, 0 insertions, 38301 deletions
diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/DataCache.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/DataCache.java deleted file mode 100644 index 5bf4e003..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/DataCache.java +++ /dev/null @@ -1,524 +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; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Vector; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.definition.DBColumnInfo; -import org.openecomp.portalsdk.analytics.model.definition.TableJoin; -import org.openecomp.portalsdk.analytics.model.definition.TableSource; -import org.openecomp.portalsdk.analytics.model.runtime.LookupDBInfo; -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; - -public class DataCache extends org.openecomp.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_<framework>.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportHandler.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportHandler.java deleted file mode 100644 index c663e69c..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportHandler.java +++ /dev/null @@ -1,6605 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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);<UL><LI> request Object is passed to prevent caching user/roles - Datamining/Hosting. </LI></UL> - * 14-Jul-2009 : Version 8.4 (Sundar); <UL><LI> Signature for generating excel method has been changed to add the report name as sheet name. </LI> - * <LI> Dashboard reports can be downloaded with each report as a separate sheet. </LI> - * </UL> - * 08-Jun-2009 : Version 8.3 (Sundar); <UL><LI> Short datatype is replaced with default integer datatype to create - * row as short is not expoting more than 32768 rows. </LI></UL> - * - */ -package org.openecomp.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.openecomp.portalsdk.analytics.controller.ErrorHandler; -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.definition.ReportDefinition; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -import org.openecomp.portalsdk.analytics.system.ExecuteQuery; -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.ExcelColorDef; -import org.openecomp.portalsdk.analytics.util.HtmlStripper; -import org.openecomp.portalsdk.analytics.util.Log; -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.DataRow; -import org.openecomp.portalsdk.analytics.view.DataValue; -import org.openecomp.portalsdk.analytics.view.HtmlFormatter; -import org.openecomp.portalsdk.analytics.view.ReportData; -import org.openecomp.portalsdk.analytics.view.RowHeader; -import org.openecomp.portalsdk.analytics.view.RowHeaderCol; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.DataSourceType; -import org.openecomp.portalsdk.analytics.xmlobj.FormatList; -import org.openecomp.portalsdk.analytics.xmlobj.FormatType; -import org.openecomp.portalsdk.analytics.xmlobj.Reports; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreList; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreType; -import org.openecomp.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.openecomp.portalsdk.analytics.RaptorObject { - - 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, "<BR/>", " "); - header = Utils.replaceInString(header, "<br/>", " "); - header = Utils.replaceInString(header, "<br>", " "); - header = strip.stripHtml(nvl(header).trim()); - subtitle = Utils.replaceInString(subtitle, "<BR/>", " "); - subtitle = Utils.replaceInString(subtitle, "<br/>", " "); - subtitle = Utils.replaceInString(subtitle, "<br>", " "); - 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()); -// <td align="center"<%= ch.getColumnWidthHtml() %><%= ch.getColSpanHtml() %><%= ch.getRowSpanHtml() %>> -// <b class=rtableheader><%= ch.getColumnTitleHtml() %></b> -// </td> - } // 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<dataTypeMap.size(); tmp++){ - String dataTypeStr = (String)(dataTypeMap.get(tmp)); - if(dataTypeStr.equals("NUMBER")){ - cell.setCellStyle(styleNumber); - }else if (dataTypeStr.equals("VARCHAR2")){ - cell.setCellStyle(styleDefault); - - }else if (dataTypeStr.equals("DATE")){ - cell.setCellStyle(styleDate); - }else{ - - } - - }*/ - 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 - - // 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; - } - } - } - - /* - if (rr.getReportType().equals(AppConstants.RT_LINEAR) && rd.reportTotalRowHeaderCols!=null) { - - for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();) { - rowCount++; - - - DataRow dr = rd.reportDataTotalRow.getNext(); - row = sheet.createRow(rowNum); - cellNum = -1; - int j = 0; - cellNum += 1; - cell = row.createCell((short) cellNum); - cell.setCellValue("Total"); - cell.setCellStyle(styleTotal); - - for (dr.resetNext(); dr.hasNext();j++) { - DataValue dv = dr.getNext(); - if(j==0 || !dv.isVisible()) continue; - cellNum += 1; - styleCell = null; - boolean bold = true; - String value = nvl(dv.getDisplayValue()); - //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(styleTotal!=null) { - styleTotal.setDataFormat((short) 8);//HSSFDataFormat.getBuiltinFormat("($#,##0.00_);[Red]($#,##0.00)")); - cell.setCellStyle(styleTotal); - } else - cell.setCellStyle(styleCurrencyDecimalNumberTotal); - cell.setCellValue(tempDoubleDollar); - } catch (NumberFormatException ne) { - if(styleTotal!=null) { - styleTotal.setWrapText(true); - cell.setCellStyle(styleTotal); - } 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(styleTotal!=null) { - styleTotal.setDataFormat((short)0x28 );//HSSFDataFormat.getBuiltinFormat("(#,##0.00_);[Red](#,##0.00)")); - cell.setCellStyle(styleTotal); - } else - cell.setCellStyle(styleDecimalNumberTotal); - cell.setCellValue(tempDouble); - } catch (NumberFormatException ne) { - if(styleTotal!=null) { - styleTotal.setWrapText(true); - cell.setCellStyle(styleTotal); - } 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(styleTotal!=null) { - styleTotal.setDataFormat((short) 6);//HSSFDataFormat.getBuiltinFormat("($#,##0_);[Red]($#,##0)")); - cell.setCellStyle(styleTotal); - } else - cell.setCellStyle(styleCurrencyNumberTotal); - cell.setCellValue(tempIntDollar); - } catch (NumberFormatException ne) { - if(styleTotal!=null) { - styleTotal.setWrapText(true); - cell.setCellStyle(styleTotal); - } 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(styleTotal!=null) { - styleTotal.setDataFormat((short) 0x26);//HSSFDataFormat.getBuiltinFormat("(#,##0_);[Red](#,##0)")); - cell.setCellStyle(styleTotal); - } else - cell.setCellStyle(styleNumber); - cell.setCellValue(temp); - } catch (NumberFormatException ne) { - if(styleTotal!=null) { - styleTotal.setWrapText(true); - cell.setCellStyle(styleTotal); - } 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(styleTotal!=null) { - styleTotal.setWrapText(true); - cell.setCellStyle(styleTotal); - } else - cell.setCellStyle(styleDefault); - } - } - } - - - - - } - } - } - */ - - - - } else if (rr.getReportType().equals(AppConstants.RT_CROSSTAB)) { // Linear - int rowCount = 0; - List l = rd.getReportDataList(); - boolean first = true; - for (int dataRow = 0; dataRow < l.size(); dataRow++) { - - - DataRow dr = (DataRow) l.get(dataRow); - row = sheet.createRow(rowNum); - - cellNum = -1; - first = true; - Vector<DataValue> rowNames = dr.getRowValues(); - for(dr.resetNext(); dr.hasNext(); rowCount++ ) { - if(first) { - if(rowNames!=null) { - for(int i=0; i<rowNames.size(); i++) { - DataValue dv = rowNames.get(i); - cellNum += 1; - row.createCell((short) cellNum).setCellValue(strip.stripHtml(dv.getDisplayValue())); - row.getCell((short) cellNum).setCellStyle(styleDefault); - } - } - } - first = false; - - DataValue dv = dr.getNext(); - if(dv.isVisible()) { - String value = dv.getDisplayValue(); - if(value.indexOf("|#")!=-1) - value = value.substring(0,value.indexOf("|")); - - if(dr.isRowFormat() || nvl(dv.getFormatId()).length()>0) { - 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, "<BR/>", " "); - footer = Utils.replaceInString(footer, "<br/>", " "); - footer = Utils.replaceInString(footer, "<br>", " "); - 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(); - 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 { - returnValue = paintExcelData(wb, rowNum, col, rd, styles,rr, sheet, rr.getWholeSQL(), 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<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>(); - 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.openecomp.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.openecomp.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 = ""; - 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<ZipEntry> en = (Enumeration<ZipEntry>) 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); - 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("<?xml version=\"1.0\" encoding=\""+XML_ENCODING+"\"?>" + - "<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">" ); - _out.write("<sheetData>\n"); - } - - public void endSheet() throws IOException { - _out.write("</sheetData>"); - _out.write("</worksheet>"); - } - - /** - * Insert a new row - * - * @param rownum 0-based row number - */ - public void insertRow(int rownum) throws IOException { - _out.write("<row r=\""+(rownum+1)+"\">\n"); - this._rownum = rownum; - } - - /** - * Insert row end marker - */ - public void endRow() throws IOException { - _out.write("</row>\n"); - } - - public void createCell(int columnIndex, String value, int styleIndex) throws IOException { - String ref = new CellReference(_rownum, columnIndex).formatAsString(); - _out.write("<c r=\""+ref+"\" t=\"inlineStr\""); - if(styleIndex != -1) _out.write(" s=\""+styleIndex+"\""); - _out.write(">"); - _out.write("<is><t>"+value+"</t></is>"); - _out.write("</c>"); - } - - 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("<c r=\""+ref+"\" t=\"n\""); - if(styleIndex != -1) _out.write(" s=\""+styleIndex+"\""); - _out.write(">"); - _out.write("<v>"+value+"</v>"); - _out.write("</c>"); - } - - 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<String, XSSFCellStyle> loadXSSFStyles(ReportRuntime rr, XSSFWorkbook wb, Map<String, XSSFCellStyle> 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<String, XSSFCellStyle> hashMapStyles = new HashMap<String, XSSFCellStyle>();; - Map<String, XSSFFont> hashMapFonts = new HashMap<String, XSSFFont>(); - 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<String, XSSFCellStyle> 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, "<BR/>", " "); - header = Utils.replaceInString(header, "<br/>", " "); - header = Utils.replaceInString(header, "<br>", " "); - header = strip.stripHtml(nvl(header).trim()); - subtitle = Utils.replaceInString(subtitle, "<BR/>", " "); - subtitle = Utils.replaceInString(subtitle, "<br/>", " "); - subtitle = Utils.replaceInString(subtitle, "<br>", " "); - 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<String, Short> dateFormatMap = new HashMap<String, Short>(); - - 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.getColumnName(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, "<BR/>", " "); - footer = Utils.replaceInString(footer, "<br/>", " "); - footer = Utils.replaceInString(footer, "<br>", " "); - 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.openecomp.portalsdk.analytics.system.Globals.getFooterFirstLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); - sw.endRow(); - rowNum += 1; - sw.insertRow(rowNum); - cellNum = 0; - sw.createCell(cellNum, org.openecomp.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; tmp<dataTypeMap.size(); tmp++){ - String dataTypeStr = (String)(dataTypeMap.get(tmp)); - if(dataTypeStr.equals("NUMBER")){ - cell.setCellStyle(styleNumber); - }else if (dataTypeStr.equals("VARCHAR2")){ - cell.setCellStyle(styleDefault); - - }else if (dataTypeStr.equals("DATE")){ - cell.setCellStyle(styleDate); - }else{ - - } - - }*/ - rowNum += 1; - sw.endRow(); - } // for - - if (rr.getReportType().equals(AppConstants.RT_LINEAR) && rd.reportTotalRowHeaderCols!=null) { - - for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();) { - rowCount++; - sw.insertRow(rowNum); - cellNum = -1; - 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()); - - DataRow drTotal = rd.reportDataTotalRow.getNext(); - if(drTotal!=null) { - drTotal.resetNext(); drTotal.getNext(); - for (; drTotal.hasNext();) { - cellNum += 1; - styleCell = null; - DataValue dv = drTotal.getNext(); - String value = dv.getDisplayValue(); - sw.createCell(cellNum,value,styles.get(nvl(/*dv.getFormatId(),*/"","default")).getIndex()); - } - } - - rowNum += 1; - sw.endRow(); - } - - - String footer = (String) session.getAttribute("FOOTER_"+index); - if(nvl(footer).length()>0) { - footer = Utils.replaceInString(footer, "<BR/>", " "); - footer = Utils.replaceInString(footer, "<br/>", " "); - footer = Utils.replaceInString(footer, "<br>", " "); - 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.openecomp.portalsdk.analytics.system.Globals.getFooterFirstLine().replaceAll("&", "&"), styleDefaultCell.getIndex()); - sw.endRow(); - rowNum += 1; - sw.insertRow(rowNum); - cellNum = 0; - sw.createCell(cellNum, org.openecomp.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("<HTML>\n" + - "<HEAD><TITLE>" + rr.getReportName() + "</TITLE></HEAD>\n" + - "<BODY>\n" ); - System.out.println("HTML-Excel Generation Triggered: " + new java.util.Date()); - csvOut.print("<TABLE>"); - 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("<TR><TD COLSPAN=\"2\">" + "Run-time Parameters" + "</TD></TR>"); - //strBuf.append("Run-time Parameters\n"); - } - csvOut.println("<TR><TD>" + value.getId() +"</TD>"); - csvOut.println("<TD>" + value.getName().replaceAll("~",",")+ "</TD>"); - csvOut.println("</TR>"); - - //strBuf.append(value.getId()+": "+ value.getName()+"\n"); - } - } //for - csvOut.println("<TR><TD COLSPAN=\"2\"> </TD></TR>"); - csvOut.println("<TR><TD COLSPAN=\"2\"> </TD></TR>"); - 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<ResultSet> callable = new ExecuteQuery(st, sql_whole, downloadLimit); - ExecutorService executor = new ScheduledThreadPoolExecutor(5); - System.out.println("Time Started" + new java.util.Date()); - Future<ResultSet> 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("<TR>"); - for (chr.resetNext(); chr.hasNext();) { - ColumnHeader ch = chr.getNext(); - if(ch.isVisible()) { - csvOut.print("<TD bgColor=\"8F9381\">" + ch.getColumnTitle() + "</TD>"); - //for (int i = 1; i < ch.getColSpan(); i++) - // csvOut.print(","); - - } - } // for - csvOut.println("</TR>"); - } // for - - - while(rs.next()) { - csvOut.println("<TR>"); -/* 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("<TD>" + strip.stripCSVHtml(nvl((String)colHash.get(ch.getLinkColId().toUpperCase()))) + "</TD>"); - } - - } - csvOut.println("</TR>"); - } - System.out.println("Downloaded Rows in HTML-Excel " + rowCount + " : "+ new java.util.Date()); - if(rowCount == 0) { - csvOut.print("<TR><TD COLSPAN=\""+ numberOfColumns + "\">No Data Found</TD></TR>"); - } else { - } - } else { - csvOut.println("<TR><TD COLSPAN=\""+ numberOfColumns + "\">No Data Found</TD></TR>"); - } - csvOut.println("</TABLE></BODY>\n</HTML>"); - - } 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("<TR>"); - for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { - RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); - - if (firstPass) { - numberOfColumns++; - csvOut.print("<TD bgColor=\"8F9381\">" + rhc.getColumnTitle() + "</TD>"); - } - //csvOut.print(","); - } // for - - - for (chr.resetNext(); chr.hasNext();) { - ColumnHeader ch = chr.getNext(); - if(ch.isVisible()) { - if(firstPass) numberOfColumns++; - csvOut.print("<TD bgColor=\"8F9381\">" + ch.getColumnTitle() + "</TD>"); - //for (int i = 1; i < ch.getColSpan(); i++) - //csvOut.print(","); - } - } // for - firstPass = false; - csvOut.println("</TR>"); - } // for - - firstPass = true; - for (rd.reportDataRows.resetNext(); rd.reportDataRows.hasNext();) { - DataRow dr = rd.reportDataRows.getNext(); - csvOut.println("<TR>"); - for (rd.reportRowHeaderCols.resetNext(1); rd.reportRowHeaderCols.hasNext();) { - RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); - if (firstPass) - rhc.resetNext(); - RowHeader rh = rhc.getNext(); - - csvOut.print("<TD bgColor=\"8F9381\">" + strip.stripCSVHtml(rh.getRowTitle()) + "</TD>"); - } // for - firstPass = false; - - for (dr.resetNext(); dr.hasNext();) { - DataValue dv = dr.getNext(); - if(dv.isVisible()) - csvOut.print("<TD bgColor=\"8F9381\">" + strip.stripCSVHtml(dv.getDisplayValue()) + "</TD>"); - } // for - - csvOut.println("</TR>"); - - } // for - //csvOut.flush(); - } else { - csvOut.println("<TR><TD COLSPAN=\""+ numberOfColumns + "\">No Data Found</TD></TR>"); - } - } - csvOut.println("</TABLE></BODY>\n</HTML>"); - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportLoader.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportLoader.java deleted file mode 100644 index 2197de66..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/ReportLoader.java +++ /dev/null @@ -1,1061 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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);<UL><LI> isDashboardType is made to return false, as any report can be added to Dashboard. </LI></UL> - * 18-Aug-2009 : Version 8.5.1 (Sundar);<UL><LI> request Object is passed to prevent caching user/roles - Datamining/Hosting. </LI></UL> - * 27-Jul-2009 : Version 8.4 (Sundar);<UL><LI>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. </LI></UL> - * - */ -package org.openecomp.portalsdk.analytics.model; - -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.HashMap; -import java.util.Iterator; -import java.util.Vector; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.base.ReportWrapper; -import org.openecomp.portalsdk.analytics.model.definition.ReportLogEntry; -import org.openecomp.portalsdk.analytics.model.search.ReportSearchResult; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.DbUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.system.fusion.domain.QuickLink; -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 ReportLoader extends org.openecomp.portalsdk.analytics.RaptorObject { - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ReportLoader.class); - - - //private static Properties sqlProperty; - - 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 = Globals.getDBUpdateReportXml(); - 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() || Globals.isMySQL()) { - 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 { - /*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"); - - 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.getOracleTimeFormat()]", Globals.getOracleTimeFormat()); - 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") - + "', '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>', " - + 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.getOracleTimeFormat()]", Globals.getOracleTimeFormat()); - 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("<a href=\"" + AppUtils.getReportExecuteActionURL() + ds.getString(i, 0)); - if(b) link.append("&PAGE_ID="+menuId+"&refresh=Y"); - link.append("\">" +ds.getString(i, 1) + "</a>" + (Globals.getShowDescrAtRuntime() ? " - " + ds.getString(i, 2) : "") ); - quickLinks.add(link.toString()); - } - - return quickLinks; - } // loadQuickLinks - - public static ArrayList<QuickLink> 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<QuickLink> quickLinksArray = new ArrayList<QuickLink>(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 = "'<a class=\"hyperref1\" href=''#'' onClick=''document."+HTML_FORM+"."+AppConstants.RI_ACTION+".value=\"report.run\";"+ - "document."+HTML_FORM+".c_master.value=\"'|| cr.rep_id||'\";document."+HTML_FORM+".submit()''>'"; - String PRIVATE_ICON = "<img border=0 src=" - + AppUtils.getImgFolderURL() - + "accessicon.gif alt=Private width=16 height=12> "; - - 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||'</a>' 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||'</a>' 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("<a href=\"" + AppUtils.getReportExecuteActionURL() + ds.getString(i, 0)); - if(b) link.append("&PAGE_ID="+menuId+"&refresh=Y"); - link.append("\">" +ds.getString(i, 2) + "</a>" + (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("<a href=\"" + AppUtils.getRaptorActionURL()+"download.data.file&filename=" - + ds.getString(i, 0)+"\">" + ds.getString(i, 1)+ "</a>" + " "+ 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("<a href=\"" + AppUtils.getRaptorActionURL()+"report.run.container&display_content=Y&fromReportLog=Y&refresh=Y&c_master="+ds.getString(i, 0)+ds.getString(i, 3)+"\">" + ds.getString(i, 1)+ "</a>"); - } - 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(" '<a href=\"" + AppUtils.getRaptorActionURL() +"report.run.container&c_master='||x.rep_id||'&'||x.form_fields||'&fromReportLog=Y&display_content=Y&noFormFields=Y&refresh=Y\">'||x.action||'</a>'"); - 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 '<a href=\"" + AppUtils.getRaptorActionURL() +"report.run.container&c_master='||x.rep_id||'&'||x.form_fields||'&fromReportLog=Y&display_content=Y&noFormFields=Y&refresh=Y\"><img src=\""+AppUtils.getImgFolderURL()+ "test_run.gif\" width=\"12\" height=\"12\" border=0 alt=\"Run report\"/></a>' 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/SearchHandler.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/SearchHandler.java deleted file mode 100644 index 428bc90a..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/SearchHandler.java +++ /dev/null @@ -1,490 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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);<UL><LI> request Object is passed to prevent caching user/roles - Datamining/Hosting. </LI></UL> - * 13-Aug-2009 : Version 8.5 (Sundar);<UL><LI>Refresh is added while running report.</LI> - * </UL> - * 27-Jul-2009 : Version 8.4 (Sundar);<UL><LI> A new sort order PUBLIC is added.</LI> - * <LI> 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".</LI> - * </UL> - * - */ -package org.openecomp.portalsdk.analytics.model; - -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.Writer; -import java.util.Iterator; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.controller.ErrorHandler; -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.search.ReportSearchResult; -import org.openecomp.portalsdk.analytics.model.search.ReportSearchResultJSON; -import org.openecomp.portalsdk.analytics.model.search.SearchResultColumn; -import org.openecomp.portalsdk.analytics.model.search.SearchResultField; -import org.openecomp.portalsdk.analytics.model.search.SearchResultRow; -import org.openecomp.portalsdk.analytics.system.AppUtils; -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.HtmlStripper; - -public class SearchHandler extends org.openecomp.portalsdk.analytics.RaptorObject { - private static final String HTML_FORM = "forma"; - private final static String PRIVATE_ICON = "<img border=0 src=" - + AppUtils.getImgFolderURL() - + "accessicon.gif alt=Private width=16 height=12> "; - - 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 = "'<a class=\"hyperref1\" href=''#'' onClick=''document."+HTML_FORM+"."+AppConstants.RI_ACTION+".value=\"report.run\";"+ - "document."+HTML_FORM+".c_master.value=\"'|| cr.rep_id||'\";document."+HTML_FORM+".refresh.value=\"Y\";document."+HTML_FORM+".submit();return false;''>'"; - for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) - roleList.append("," + ((String) iter.next())); - //<a href="#" alt="Run report" onClick="document.forma.r_action.value='report.run'; document.forma.c_master.value='1073';"> - /*String sql = "SELECT cr.rep_id, " - + "cr.rep_id report_id, " - + rep_title_sql+ - "||DECODE(cr.public_yn, 'Y', '', '" - + PRIVATE_ICON - + "')||cr.title||'</a>' 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 '%<allowSchedule>N</allowSchedule>%' " - + "then 'N' " - + "when report_xml like '%<allowSchedule>Y</allowSchedule>%' " - + "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 = " AND FORMAT(cr.rep_id, 0) like coalesce('%%', FORMAT(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 = " AND FORMAT(cr.rep_id, 0) like coalesce('%%', FORMAT(cr.rep_id, 0)) "; - break; - } - } else { - rep_id_sql = " AND cr.rep_id = "+ rep_id+" "; - } - } else { - rep_id_sql = " AND FORMAT(cr.rep_id, 0) like coalesce('%%', FORMAT(cr.rep_id, 0)) "; //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 = "'<a class=\"hyperref1\" href=''#'' onClick=''document."+HTML_FORM+"."+AppConstants.RI_ACTION+".value=\"report.run\";"+ - "document."+HTML_FORM+".c_master.value=\"'|| cr.rep_id||'\";document."+HTML_FORM+".submit();return false;''>'"; - for (Iterator iter = AppUtils.getUserRoles(request).iterator(); iter.hasNext();) - roleList.append("," + ((String) iter.next())); - //<a href="#" alt="Run report" onClick="document.forma.r_action.value='report.run'; document.forma.c_master.value='1073';"> - /*String sql = "SELECT cr.rep_id, " - + "cr.rep_id report_id, " - + rep_title_sql+ - "||DECODE(cr.public_yn, 'Y', '', '" - + PRIVATE_ICON - + "')||cr.title||'</a>' 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ChartSeqComparator.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ChartSeqComparator.java deleted file mode 100644 index 7b15db55..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ChartSeqComparator.java +++ /dev/null @@ -1,49 +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.base; - -import java.util.Comparator; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameColLookup.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameColLookup.java deleted file mode 100644 index d7fdc33a..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameColLookup.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.model.base; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameList.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameList.java deleted file mode 100644 index dba3db03..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameList.java +++ /dev/null @@ -1,183 +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.base; - -import java.util.Vector; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.Globals; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameLookup.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameLookup.java deleted file mode 100644 index e4424f62..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameLookup.java +++ /dev/null @@ -1,198 +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.base; - -import org.openecomp.portalsdk.analytics.error.RaptorException; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameSql.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameSql.java deleted file mode 100644 index 9928ad80..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameSql.java +++ /dev/null @@ -1,400 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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.openecomp.portalsdk.analytics.model.base; - -import java.util.HashMap; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -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 IdNameSql extends IdNameList { - - 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.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 (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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameValue.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameValue.java deleted file mode 100644 index 5ac81f7b..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/IdNameValue.java +++ /dev/null @@ -1,100 +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.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 visibility the visibility to set - */ - public void setReadOnly(boolean readOnly) { - this.readOnly = readOnly; - } - - -} // IdNameValue diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/NameComparator.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/NameComparator.java deleted file mode 100644 index 8a6f2a9e..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/NameComparator.java +++ /dev/null @@ -1,32 +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.base; - -import java.util.Comparator; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderBySeqComparator.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderBySeqComparator.java deleted file mode 100644 index 930f508c..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderBySeqComparator.java +++ /dev/null @@ -1,37 +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.base; - -import java.util.Comparator; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderSeqComparator.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderSeqComparator.java deleted file mode 100644 index e6c013dc..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/OrderSeqComparator.java +++ /dev/null @@ -1,37 +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.base; - -import java.util.Comparator; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportSecurity.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportSecurity.java deleted file mode 100644 index f281ac4d..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportSecurity.java +++ /dev/null @@ -1,407 +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.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.UserAccessException; -import org.openecomp.portalsdk.analytics.model.definition.SecurityEntry; -import org.openecomp.portalsdk.analytics.system.AppUtils; -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.core.logging.logic.EELFLoggerDelegate; - -public class ReportSecurity extends org.openecomp.portalsdk.analytics.RaptorObject { - - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportWrapper.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportWrapper.java deleted file mode 100644 index f856318d..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/base/ReportWrapper.java +++ /dev/null @@ -1,5719 +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.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.RaptorRuntimeException; -import org.openecomp.portalsdk.analytics.error.UserDefinedException; -import org.openecomp.portalsdk.analytics.model.DataCache; -import org.openecomp.portalsdk.analytics.model.ReportLoader; -import org.openecomp.portalsdk.analytics.model.definition.TableSource; -import org.openecomp.portalsdk.analytics.model.runtime.FormField; -import org.openecomp.portalsdk.analytics.model.runtime.ReportParamValues; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -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.SQLCorrector; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.analytics.xmlobj.ChartAdditionalOptions; -import org.openecomp.portalsdk.analytics.xmlobj.ChartDrillFormfield; -import org.openecomp.portalsdk.analytics.xmlobj.ChartDrillOptions; -import org.openecomp.portalsdk.analytics.xmlobj.ColFilterList; -import org.openecomp.portalsdk.analytics.xmlobj.ColFilterType; -import org.openecomp.portalsdk.analytics.xmlobj.CustomReportType; -import org.openecomp.portalsdk.analytics.xmlobj.DashboardEditorList; -import org.openecomp.portalsdk.analytics.xmlobj.DashboardReports; -import org.openecomp.portalsdk.analytics.xmlobj.DashboardReportsNew; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnList; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.DataSourceList; -import org.openecomp.portalsdk.analytics.xmlobj.DataSourceType; -import org.openecomp.portalsdk.analytics.xmlobj.DataminingOptions; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldList; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; -import org.openecomp.portalsdk.analytics.xmlobj.FormatList; -import org.openecomp.portalsdk.analytics.xmlobj.FormatType; -import org.openecomp.portalsdk.analytics.xmlobj.JavascriptItemType; -import org.openecomp.portalsdk.analytics.xmlobj.JavascriptList; -import org.openecomp.portalsdk.analytics.xmlobj.Marker; -import org.openecomp.portalsdk.analytics.xmlobj.ObjectFactory; -import org.openecomp.portalsdk.analytics.xmlobj.PDFAdditionalOptions; -import org.openecomp.portalsdk.analytics.xmlobj.PredefinedValueList; -import org.openecomp.portalsdk.analytics.xmlobj.ReportMap; -import org.openecomp.portalsdk.analytics.xmlobj.Reports; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreList; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -/**<HR/> - * This class is part of <B><I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I></B><BR/> - * <HR/> - * - * --------------------------------------------------------------------------------------------------<BR/> - * <B>ReportWrapper.java</B> - This is the base class for the RAPTOR. This involves in creating,<BR/> - * modifying, running RAPTOR reports.<BR/> - * --------------------------------------------------------------------------------------------------<BR/> - * - * - * <U>Change Log</U><BR/><BR/> - * - * 31-Aug-2009 : Version 8.5.1 (Sundar);<UL><LI> All the elements in the meta xml is copied to the target reports. </LI></UL> - * 18-Aug-2009 : Version 8.5.1 (Sundar);<UL><LI> request Object is passed to prevent caching user/roles - Datamining/Hosting. </LI></UL> - * 27-Jul-2009 : Version 8.4 (Sundar); <UL><LI> verifySQLBasedReportAccess method checks for Admin user instead of super user. </LI></UL> - * 09-Jul-2009 : Version 8.4 (Sundar); <UL><LI> Bug due to parsing and removing formfields from "and" is bulletproofed to the right "and" to which the formfield is associated. </LI></UL> - * 08-Jul-2009 : Version 8.4 (Sundar); <UL><LI> Bug due to parsing and removing formfields when there is no parameter for Daytona specific database is resolved. </LI></UL> - * 29-Jun-2009 : Version 8.4 (Sundar); <UL><LI> isLastSeriesALineChart() and setLastSeriesALineChart(String value) method have been added for the Bar Chart enhancements. </LI></UL> - * 23-Jun-2009 : Version 8.4 (Sundar); <UL><LI> check for cr.getChartAdditionalOptions() for null value is added.</LI></UL> - * 22-Jun-2009 : Version 8.4 (Sundar); <UL><LI> 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.</LI></UL> - * - */ - -public class ReportWrapper extends org.openecomp.portalsdk.analytics.RaptorObject { - - 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.getOracleTimeFormat()]", Globals.getOracleTimeFormat()); - 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.openecomp.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.openecomp.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<Item> getChartValueColumnsListModelList( int filter, HashMap formValues) { / *filter; all=0;create without new chart =1; createNewChart=2 * / - List reportCols = getAllColumns(); - - ArrayList chartValueCols = new ArrayList(); - ListModelList<Item> chartValueListModelList = new ListModelList<Item>(); - 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<DataColumnType> 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.openecomp.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.openecomp.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.openecomp.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.openecomp.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<ds.getColumnCount(); k++) { - if(dct.getColId().toUpperCase().trim().equals(ds.getColumnName(k).trim())) { - reportCols.add(dct); - continue outer; - } - } - } - - if (getFormFieldList() != null) { - String paramValue = ""; - for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - if(fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue()) { - paramValue = Utils.oracleSafe(nvl(paramValues - .getParamValue(fft.getFieldId()))); - outer: - for (Iterator iter1 = reportCols1.iterator(); iter1.hasNext();) { - DataColumnType dct = (DataColumnType) iter1.next(); - if(("["+fft.getFieldName()+ "]").equals(dct.getColName().trim())) { - dct.setDisplayName(paramValue); - continue outer; - } - } - - - } - } - } - - } - - 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) - 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 = "LIMIT "+ String.valueOf(startRow)+" , "+ String.valueOf(getPageSize()); - } 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(getPageSize()))); - } else if(getDBType().equals(AppConstants.POSTGRESQL)) { - partSql = "LIMIT "+ String.valueOf(getPageSize())+" , "+ 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.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 (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.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 (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.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 (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.openecomp.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.openecomp.portalsdk.analytics.xmlobj"); - Unmarshaller u = jc.createUnmarshaller(); - javax.xml.bind.JAXBElement<CustomReportType> doc = (javax.xml.bind.JAXBElement<CustomReportType>) 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.openecomp.portalsdk.analytics.xmlobj.ChartDrillFormfield cdf = (org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DBColumnInfo.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DBColumnInfo.java deleted file mode 100644 index 4496fdca..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DBColumnInfo.java +++ /dev/null @@ -1,76 +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.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DrillDownParamDef.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DrillDownParamDef.java deleted file mode 100644 index 8972e54a..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/DrillDownParamDef.java +++ /dev/null @@ -1,111 +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.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/Marker.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/Marker.java deleted file mode 100644 index a9d9be85..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/Marker.java +++ /dev/null @@ -1,79 +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.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportDefinition.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportDefinition.java deleted file mode 100644 index 71ec9f87..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportDefinition.java +++ /dev/null @@ -1,1465 +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.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.openecomp.portalsdk.analytics.controller.WizardSequence; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceCrossTab; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceDashboard; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceLinear; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceSQLBasedCrossTab; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceSQLBasedHive; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceSQLBasedLinear; -import org.openecomp.portalsdk.analytics.controller.WizardSequenceSQLBasedLinearDatamining; -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.DataCache; -import org.openecomp.portalsdk.analytics.model.ReportLoader; -import org.openecomp.portalsdk.analytics.model.base.OrderBySeqComparator; -import org.openecomp.portalsdk.analytics.model.base.OrderSeqComparator; -import org.openecomp.portalsdk.analytics.model.base.ReportWrapper; -import org.openecomp.portalsdk.analytics.model.runtime.FormField; -import org.openecomp.portalsdk.analytics.system.AppUtils; -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.xmlobj.ChartAdditionalOptions; -import org.openecomp.portalsdk.analytics.xmlobj.ChartDrillOptions; -import org.openecomp.portalsdk.analytics.xmlobj.ColFilterType; -import org.openecomp.portalsdk.analytics.xmlobj.CustomReportType; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnList; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.DataSourceType; -import org.openecomp.portalsdk.analytics.xmlobj.DataminingOptions; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldList; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; -import org.openecomp.portalsdk.analytics.xmlobj.FormatList; -import org.openecomp.portalsdk.analytics.xmlobj.FormatType; -import org.openecomp.portalsdk.analytics.xmlobj.JavascriptItemType; -import org.openecomp.portalsdk.analytics.xmlobj.ObjectFactory; -import org.openecomp.portalsdk.analytics.xmlobj.PredefinedValueList; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreType; -import org.openecomp.portalsdk.core.controller.FavoritesController; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -/**<HR/> - * This class is part of <B><I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I></B><BR/> - * <HR/> - * - * --------------------------------------------------------------------------------------------------<BR/> - * <B>ReportDefinition.java</B> - This involves in creating and modifying RAPTOR reports. - * --------------------------------------------------------------------------------------------------<BR/> - * - * - * <U>Change Log</U><BR/><BR/> - * - * 18-Aug-2009 : Version 8.5.1 (Sundar);<UL><LI> request Object is passed to prevent caching user/roles - Datamining/Hosting. </LI></UL> - * 27-Jul-2009 : Version 8.4 (Sundar); <UL><LI>userIsAuthorizedToSeeLog is checked for Admin User instead of Super User.</LI></UL> - * 22-Jun-2009 : Version 8.4 (Sundar); <UL><LI>A new type ChartAdditionalOptions is introduced in RAPTOR XSD. - * For this type a create procedure is added to this class.</LI></UL> - * - */ - -public class ReportDefinition extends ReportWrapper implements Serializable { - - static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FavoritesController.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() { - 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 - - 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()) - return; - - Connection connection = null; - try { - String userID = AppUtils.getUserID(request); - String reportXML = marshal(); - logger.debug(EELFLoggerDelegate.debugLogger, ("Ocurring during Schedule ")); - 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.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); // ??? - 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.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) { - 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 { - 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.openecomp.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.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportLogEntry.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportLogEntry.java deleted file mode 100644 index db69e9d8..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportLogEntry.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.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportMap.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportMap.java deleted file mode 100644 index 450349c7..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportMap.java +++ /dev/null @@ -1,82 +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.definition; - -import java.util.ArrayList; -import java.util.List; - -import org.openecomp.portalsdk.analytics.RaptorObject; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportSchedule.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportSchedule.java deleted file mode 100644 index d95c91b5..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/ReportSchedule.java +++ /dev/null @@ -1,1407 +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.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.openecomp.portalsdk.analytics.RaptorObject; -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.error.UserDefinedException; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.base.NameComparator; -import org.openecomp.portalsdk.analytics.model.runtime.FormField; -import org.openecomp.portalsdk.analytics.model.runtime.ReportParamValues; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -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.xmlobj.FormFieldType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class ReportSchedule extends RaptorObject { - - 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<IdNameValue> 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<IdNameValue> 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.openecomp.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/SecurityEntry.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/SecurityEntry.java deleted file mode 100644 index 4feddd6e..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/SecurityEntry.java +++ /dev/null @@ -1,44 +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.definition; - -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableJoin.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableJoin.java deleted file mode 100644 index 6022d5a1..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableJoin.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.model.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableSource.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableSource.java deleted file mode 100644 index dc5b385a..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/definition/TableSource.java +++ /dev/null @@ -1,101 +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.definition; - -import org.openecomp.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.java deleted file mode 100644 index 34e38062..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PageEvent.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.pdf; - -import java.awt.Color; -import java.io.File; -import java.io.IOException; -import java.net.MalformedURLException; - -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.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("<no logo>")) - howManyLogos ++; - - if(AppUtils.isNotEmpty(pb.getLogo2Url()) && !pb.getLogo2Url().equalsIgnoreCase("<no logo>")) - 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("<no logo>")) - 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("<no logo>")) - 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.getAttProprieraryFontSize()); - - if (isEmpty(pb.getLeftFooter())) - table.addCell(new Paragraph(" " + Globals.getAttProprietary(), font1)); - else - table.addCell(new Paragraph(pb.getLeftFooter(), font)); - } - - private void addHeaderDummy(PdfPTable table, Font font) { - Font font1 = new Font(font); - font1.setSize(Globals.getAttProprieraryFontSize()); - - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfBean.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfBean.java deleted file mode 100644 index 31b26435..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfBean.java +++ /dev/null @@ -1,242 +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.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfReportHandler.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfReportHandler.java deleted file mode 100644 index deac806d..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/pdf/PdfReportHandler.java +++ /dev/null @@ -1,1890 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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); <UL> - * <LI> Dashboard reports can be downloaded with each report occupying separate page including its charts. </LI> - * </UL> - * - */ -package org.openecomp.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.error.ReportSQLException; -import org.openecomp.portalsdk.analytics.model.ReportHandler; -import org.openecomp.portalsdk.analytics.model.ReportLoader; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.model.definition.ReportDefinition; -import org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime; -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.HtmlStripper; -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.DataRow; -import org.openecomp.portalsdk.analytics.view.DataValue; -import org.openecomp.portalsdk.analytics.view.HtmlFormatter; -import org.openecomp.portalsdk.analytics.view.ReportData; -import org.openecomp.portalsdk.analytics.view.RowHeader; -import org.openecomp.portalsdk.analytics.view.RowHeaderCol; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.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; - - -public class PdfReportHandler extends org.openecomp.portalsdk.analytics.RaptorObject{ - - /** - * - */ - private PdfBean pb; - private HtmlStripper strip = new HtmlStripper(); - private static final int RetryCreateNewImage = 3; - private int retryCreateNewImageCount=0; - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PdfReportHandler.class); - - 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())); - } 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 ; i<paraList.size(); i++) { - reportDescrBuf.append(paraList.get(i)); - } - - } - add2Cells(table,"Description : ",reportDescrBuf.toString()); - 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 : ",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; i<rows; i++) - for(int j=0;j<table.getAbsoluteWidths().length;j++) - table.addCell(new Paragraph(" ")); - - } - - private void add2Cells(PdfPTable table, String key, String value) { - - PdfPCell cell; - cell = new PdfPCell(new Paragraph(key)); - cell.setHorizontalAlignment(Rectangle.ALIGN_RIGHT); - cell.setBorderWidth(0f); - table.addCell(cell); - - cell = new PdfPCell(new Paragraph(value)); - cell.setHorizontalAlignment(Rectangle.ALIGN_LEFT); - cell.setBorderWidth(0f); - table.addCell(cell); - } - - private void paintPdfImage(HttpServletRequest request, Document document, String fileName, ReportRuntime rr) - throws DocumentException - { - - ArrayList images = getImage(request, fileName,pb.isAttachmentOfEmail()?true:false, rr); - //Image image = getImage(request, fileName,pb.isAttachmentOfEmail()?true:false); - PdfPTable table = null; - PdfPCell cellValue = null; - if(images!=null) { - - for (int i = 0; i < images.size(); i++) { - table = new PdfPTable(1); - cellValue = new PdfPCell(); - cellValue.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - Image image = (Image) images.get(i); - image.setAlignment(Image.ALIGN_CENTER); - //System.out.println("Document 3 " + document + " i-" + i); - if(i%2 ==0) - document.newPage(); - //System.out.println("Document 31 " + document); - cellValue.setImage(image); - //table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - table.addCell(cellValue); - //System.out.println("Document 32 " + document + "table " + table); - document.add(table); - //System.out.println("Document 33 " + document); - } - } - } - - private ArrayList getImage(HttpServletRequest request, String fileName, boolean isGenerateNewImage, ReportRuntime rr) { - ArrayList images = new ArrayList(); - if(!isGenerateNewImage) { - try { - Image image = Image.getInstance(fileName); - images.add(image); - return images; - } - catch (MalformedURLException e) { - isGenerateNewImage = true; - //e.printStackTrace(); - } - catch (BadElementException e) { - isGenerateNewImage = true; - //e.printStackTrace(); - - } catch (FileNotFoundException e) { - isGenerateNewImage = true; - //e.printStackTrace(); - } catch (IOException e) { - isGenerateNewImage = true; - //e.printStackTrace(); - } - } - - if(isGenerateNewImage && retryCreateNewImageCount<RetryCreateNewImage){ - retryCreateNewImageCount++; - return generateNewImage(request, rr); - //return getImage(request,fileName, false); - } - - return null; - - } - - private ArrayList generateNewImage(HttpServletRequest request, ReportRuntime rr) { - ArrayList images = new ArrayList(); - try { - //ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME); - DataSet ds = null; - if(request.getSession().getAttribute(AppConstants.RI_CHART_DATA)!=null) { - ds = (DataSet) request.getSession().getAttribute(AppConstants.RI_CHART_DATA); - } else { - ds = rr.loadChartData(pb.getUserId(),request); - } - String downloadFileName = ""; - HashMap additionalChartOptionsMap = new HashMap(); - String chartType = nvl(rr.getChartType()); - if(chartType.equals(AppConstants.GT_PIE_MULTIPLE)) { - additionalChartOptionsMap.put("multiplePieOrderRow", new Boolean((AppUtils.getRequestNvlValue(request, "multiplePieOrder").length()>0?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; i<rr.getChartValueColumnAxisList(AppConstants.CHART_ALL_COLUMNS, formValues).size();i++) { - String chartTitle = Globals.getDisplayChartTitle()? rr.getReportName():""; - chartTitle = rr.getFormFieldFilled(chartTitle); - downloadFileName = AppUtils.getTempFolderPath()+"cr_"+pb.getUserId()+"_"+request.getSession().getId()+"_"+rr.getReportID()+"_"+i+".png"; - filename = null;/*(String) ChartGen.generateChart( chartType, - request.getSession(), - ds, - legendColumnName, - chartLeftAxisLabel, - chartRightAxisLabel, - rr.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues).subList(i, i+1), - rr.getChartColumnColorsList(AppConstants.CHART_ALL_COLUMNS, formValues).subList(i, i+1), - rr.getChartValueColumnAxisList(AppConstants.CHART_ALL_COLUMNS, formValues).subList(i, i+1), - "", - chartTitle, - null, - rr.getChartWidthAsInt(), - rr.getChartHeightAsInt(), - rr.getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, formValues).subList(i,i+1), - 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(); - } - } - - } else { /** first check the columns to be opened in new charts and loop around in ChartGen generate chart function - sundar**/ - String tempChartGroupPrev = ""; - String tempChartGroupCurrent = ""; - for (int i=0; i<lGroups.size();i++) { - String chartGroupOrg = (String) lGroups.get(i); - String chartYAxis = (String) mapYAxis.get(chartGroupOrg); - //System.out.println("chartGroupOrg " + chartGroupOrg); - if(nvl(chartGroupOrg).length()>0) - 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<rr.getChartValueColumnAxisList(AppConstants.CHART_NEWCHART_COLUMNS, formValues).size();i++) { - //System.out.println(" rr.getChartDisplayNamesList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i, i+1) " + rr.getChartDisplayNamesList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i, i+1)); - //System.out.println(" rr.getChartValueColumnAxisList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i, i+1) " + rr.getChartValueColumnAxisList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i, i+1)); - //System.out.println(" rr.getChartValueColumnsList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i,i+1) " + rr.getChartValueColumnsList(AppConstants.CHART_NEWCHART_COLUMNS).subList(i,i+1)); - - downloadFileName = AppUtils.getTempFolderPath()+"cr_"+ pb.getUserId()+"_"+request.getSession().getId()+"_"+rr.getReportID()+"_"+i+".png"; - String chartTitle = Globals.getDisplayChartTitle()? rr.getReportName():""; - chartTitle = rr.getFormFieldFilled(chartTitle); - - filename = null;/* (String) ChartGen.generateChart( chartType, - request.getSession(), - ds, - legendColumnName, - chartLeftAxisLabel, - chartRightAxisLabel, - (chartType.equals(AppConstants.GT_PIE_MULTIPLE))?rr.getChartDisplayNamesList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartDisplayNamesList(AppConstants.CHART_NEWCHART_COLUMNS, formValues).subList(i, i+1), - (chartType.equals(AppConstants.GT_PIE_MULTIPLE))?rr.getChartColumnColorsList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartColumnColorsList(AppConstants.CHART_NEWCHART_COLUMNS, formValues).subList(i, i+1), - (chartType.equals(AppConstants.GT_PIE_MULTIPLE))?rr.getChartValueColumnAxisList(AppConstants.CHART_ALL_COLUMNS, formValues):rr.getChartValueColumnAxisList(AppConstants.CHART_NEWCHART_COLUMNS, formValues).subList(i, i+1), - "", - chartTitle, - null, - rr.getChartWidthAsInt(), - rr.getChartHeightAsInt(), - rr.getChartValueColumnsList(AppConstants.CHART_NEWCHART_COLUMNS, formValues).subList(i,i+1), - 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(); - } - } - } - /** second rest of the columns are merged to one single chart - sundar**/ - // System.out.println(" rr.getChartDisplayNamesList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS) " + rr.getChartDisplayNamesList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS)); - // System.out.println(" rr.getChartValueColumnAxisList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS) " + rr.getChartValueColumnAxisList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS)); - // System.out.println(" rr.getChartValueColumnsList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS) " + rr.getChartValueColumnsList(AppConstants.CHART_WITHOUT_NEWCHART_COLUMNS)); - - if((!(lGroups!=null && lGroups.size() > 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.getColumnName(i), rs.getString(i)); - } - rd.reportDataRows.resetNext(); - - dr = rd.reportDataRows.getNext(); - - j = 0; - /*if(rd.reportTotalRowHeaderCols!=null) { - - HtmlFormatter rfmt = dr.getRowFormatter(); - - Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(), - Globals.getDataFontSize(), - Font.NORMAL, Color.BLACK); - if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - - String cellValue = new Integer(rowCount).toString(); - PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont)); - - //row background color can be overwritten by cell background color - cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - if(rfmt != null) { - formatterCell(rfmt,cell); - } - table.addCell(cell); - }*/ - - for (dr.resetNext(); dr.hasNext();j++) { - DataValue dv = dr.getNext(); - /*if(j == 0) { - HtmlFormatter cfmt = dv.getCellFormatter(); - HtmlFormatter rfmt = dv.getRowFormatter(); - - Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(), - Globals.getDataFontSize(), - Font.NORMAL, Color.BLACK); - if(cfmt!= null) { - cellFormatterFont(cfmt,cellFont); - } - else if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - else { - if(dv.isBold()) { - cellFont.setStyle(Font.BOLD); - } - } - - //String cellValue = strip.stripHtml(value.trim()); - PdfPCell cell = new PdfPCell(new Paragraph(rowCount+"",cellFont)); - - //row background color can be overwritten by cell background color - cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - if(nvl(dv.getAlignment()).trim().length()>0) - cell.setHorizontalAlignment(ElementTags.alignmentValue(dv.getAlignment())); - else - cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - if(cfmt!= null) { - formatterCell(cfmt,cell); - } - else if(rfmt != null) { - formatterCell(rfmt,cell); - } - table.addCell(cell); - }*/ - - //for (chr.resetNext(); chr.hasNext();) { - //ColumnHeader ch = chr.getNext(); - String value = nvl((String)colHash.get(dv.getColId().toUpperCase())); - if(dv.isVisible()) { - - HtmlFormatter cfmt = dv.getCellFormatter(); - HtmlFormatter rfmt = dv.getRowFormatter(); - - Font cellFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - if(cfmt!= null) { - cellFormatterFont(cfmt,cellFont); - } - else if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - else { - if(dv.isBold()) { - cellFont.setStyle(Font.BOLD); - } - } - - String cellValue = strip.stripHtml(value.trim()); - PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont)); - - //row background color can be overwritten by cell background color - cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - if(nvl(dv.getAlignment()).trim().length()>0) - cell.setHorizontalAlignment(ElementTags.alignmentValue(dv.getAlignment())); - else - cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - if(cfmt!= null) { - formatterCell(cfmt,cell); - } - else if(rfmt != null) { - formatterCell(rfmt,cell); - } - - - - table.addCell(cell); - - }//if isVisible() - - - } - - } - if(rd.reportDataTotalRow!=null) { - for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();idx++) { - dr = rd.reportDataTotalRow.getNext(); - table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - rowHeaderFont.setStyle(Font.BOLD); - rowHeaderFont.setSize(FONT_SIZE+1f); - table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx)); - table.addCell(new Paragraph("Total",rowHeaderFont)); - - - addTotalRowColumns(table,dr,idx); - if (idx % fragmentsize == fragmentsize - 1) { - document.add(table); - table.deleteBodyRows(); - table.setSkipFirstHeader(true); - } - - } - } - } catch (SQLException ex) { - throw new RaptorException(ex); - } catch (ReportSQLException ex) { - throw new RaptorException(ex); - } catch (Exception ex) { - if(!(ex.getCause() instanceof java.net.SocketException) ) - throw new RaptorException (ex); - } finally { - try { - if(conn!=null) - conn.close(); - if(st!=null) - st.close(); - if(rs!=null) - rs.close(); - } catch (SQLException ex) { - throw new RaptorException(ex); - } - } - - -// if (idx % fragmentsize == fragmentsize - 1) { -// document.add(table); -// table.deleteBodyRows(); -// table.setSkipFirstHeader(true); -// } - - //document.add(table); - } else { - if(rr.getReportType().equals(AppConstants.RT_LINEAR)) { - int rowCount = 0; - for(rd.reportDataRows.resetNext();rd.reportDataRows.hasNext();idx++) - { - rowCount++; - - /*if(rd.reportTotalRowHeaderCols!=null) { - HtmlFormatter rfmt = dr.getRowFormatter(); - - Font cellFont = FontFactory.getFont(Globals.getDataFontFamily(), - Globals.getDataFontSize(), - Font.NORMAL, Color.BLACK); - if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - - //String cellValue = new Integer(rowCount).toString(); - //PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont)); - - //row background color can be overwritten by cell background color - //cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - //cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - //if(rfmt != null) { - //formatterCell(rfmt,cell); - //} - //table.addCell(cell); - }*/ - - - - if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) { - returnValue = 1; - } - - dr = rd.reportDataRows.getNext(); - - addRowHeader(table,dr,idx,rd); - - addRowColumns(table,dr,idx); - - if (idx % fragmentsize == fragmentsize - 1) { - document.add(table); - table.deleteBodyRows(); - table.setSkipFirstHeader(true); - } - } - - if(rd.reportDataTotalRow!=null) { - for (rd.reportDataTotalRow.resetNext(); rd.reportDataTotalRow.hasNext();idx++) { - dr = rd.reportDataTotalRow.getNext(); - table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - rowHeaderFont.setStyle(Font.BOLD); - rowHeaderFont.setSize(FONT_SIZE+1f); - table.getDefaultCell().setBackgroundColor(getRowBackgroundColor(dr, idx)); - table.addCell(new Paragraph("Total",rowHeaderFont)); - - - addTotalRowColumns(table,dr,idx); - if (idx % fragmentsize == fragmentsize - 1) { - document.add(table); - table.deleteBodyRows(); - table.setSkipFirstHeader(true); - } - - } - } - - } else if (rr.getReportType().equals(AppConstants.RT_CROSSTAB)) { - int rowCount = 0; - List l = rd.getReportDataList(); - boolean first = true; - for (int dataRow = 0; dataRow < l.size(); dataRow++) { - first = true; - rowCount++; - dr = (DataRow) l.get(dataRow); - Vector<DataValue> rowNames = dr.getRowValues(); - for(dr.resetNext(); dr.hasNext(); ) { - - if(first) { - HtmlFormatter rfmt = dr.getRowFormatter(); - - Font cellFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - String cellValue = ""; - PdfPCell cell = null; - //String cellValue = new Integer(rowCount).toString(); - //PdfPCell cell = new PdfPCell(new Paragraph(cellValue,cellFont)); - //row background color can be overwritten by cell background color - //cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - //cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - //if(rfmt != null) { - //formatterCell(rfmt,cell); - // } - //table.addCell(cell); - if(rowNames!=null) { - for(int i=0; i<rowNames.size(); i++) { - DataValue dv = rowNames.get(i); - rfmt = dr.getRowFormatter(); - - cellFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - if(rfmt != null) { - cellFormatterFont(rfmt,cellFont); - } - cellValue = dv.getDisplayValue(); - if(cellValue.indexOf("|#")!=-1) - cellValue = cellValue.substring(0,cellValue.indexOf("|")); - - cell = new PdfPCell(new Paragraph(cellValue,cellFont)); - //row background color can be overwritten by cell background color - cell.setBackgroundColor(getRowBackgroundColor(dr, idx)); - - cell.setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - if(rfmt != null) { - formatterCell(rfmt,cell); - } - table.addCell(cell); - } - } - } - first = false; - - if(runtime.freeMemory()/mb <= ((runtime.maxMemory()/mb)*Globals.getMemoryThreshold()/100) ) { - returnValue = 1; - } - - //addRowHeader(table,dr,idx,rd); - - addRowColumns(table,dr,idx); - - if (idx % fragmentsize == fragmentsize - 1) { - document.add(table); - table.deleteBodyRows(); - table.setSkipFirstHeader(true); - } - } - - } - } - - //document.add(table); - - } - - document.add(table); - paintPdfReportFooter(request, document, rr, f); - - return returnValue; - } - - private void addRowHeader(PdfPTable table, DataRow dr, int idx, ReportData rd) { - - table.getDefaultCell().setHorizontalAlignment(Rectangle.ALIGN_CENTER); - - for(rd.reportRowHeaderCols.resetNext();rd.reportRowHeaderCols.hasNext();) { - RowHeaderCol rhc = rd.reportRowHeaderCols.getNext(); - if(idx==0) - rhc.resetNext(); - RowHeader rh = rhc.getNext(); - //System.out.println(" =============== RowHeader\n "+rh); - - Font rowHeaderFont = FontFactory.getFont(FONT_FAMILY, - FONT_SIZE, - Font.NORMAL, Color.BLACK); - if(rh.isBold()) { - rowHeaderFont.setStyle(Font.BOLD); - rowHeaderFont.setSize(FONT_SIZE+1f); - } - - if(rh.getColSpan()>0) { - 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; i<relativeWidths.length; i++) - relativeWidths[i] = 10f; - - int index=0; - boolean firstPass = true; - - for (rd.reportColumnHeaderRows.resetNext(); rd.reportColumnHeaderRows.hasNext();) - { - if(firstPass) { - /*if(rd.reportTotalRowHeaderCols!=null) { - String columnWidth = "5"; - - if(columnWidth != null && columnWidth.trim().endsWith("%")) - relativeWidths[index] = Float.parseFloat(removeLastCharacter(columnWidth)); - - index++; - }*/ - - for(rd.reportRowHeaderCols.resetNext();rd.reportRowHeaderCols.hasNext();) { - String columnWidth = rd.reportRowHeaderCols.getNext().getColumnWidth(); - - if(columnWidth != null && columnWidth.trim().endsWith("%")) - relativeWidths[index] = Float.parseFloat(removeLastCharacter(columnWidth)); - - index++; - } - firstPass = false; - } - - ColumnHeaderRow chr = rd.reportColumnHeaderRows.getNext(); - for (chr.resetNext(); chr.hasNext();) { - - ColumnHeader ch = chr.getNext(); - - if(ch.isVisible()) { - - String columnWidth = ch.getColumnWidth(); - - if(ch.getColSpan() <= 1){ - if(columnWidth != null && columnWidth.trim().endsWith("%")) - relativeWidths[index] = Float.parseFloat(removeLastCharacter(columnWidth)); - } - else { - for(int i=0; i<ch.getColSpan(); i++) { - index += i; - if(columnWidth != null && columnWidth.trim().endsWith("%")) - relativeWidths[index] = - (Float.parseFloat(removeLastCharacter(columnWidth)))/ch.getColSpan(); - } - } - - index++; - } - } - } - - return relativeWidths; - } - - public static String removeLastCharacter(String str) { - return str.substring(0, str.length()-1); - } - - private PdfPTable paintPdfReportHeader(HttpServletRequest request, Document document, PdfPTable table, 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("TITLE_"+index); - String subtitle = (String) session.getAttribute("SUBTITLE_"+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-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, "<BR/>", " "); - title = Utils.replaceInString(title, "<br/>", " "); - title = Utils.replaceInString(title, "<br>", " "); - title = strip.stripHtml(nvl(title).trim()); - //subtitle = Utils.replaceInString(subtitle, "<BR/>", " "); - //subtitle = Utils.replaceInString(subtitle, "<br/>", " "); - //subtitle = Utils.replaceInString(subtitle, "<br>", " "); - //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, "<BR/>", " "); - title = Utils.replaceInString(title, "<br/>", " "); - title = Utils.replaceInString(title, "<br>", " "); - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/BarChartOptions.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/BarChartOptions.java deleted file mode 100644 index 7e99dc6e..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/BarChartOptions.java +++ /dev/null @@ -1,75 +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 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CategoryAxisJSON.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CategoryAxisJSON.java deleted file mode 100644 index 93fab6e9..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CategoryAxisJSON.java +++ /dev/null @@ -1,24 +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 CategoryAxisJSON extends IndexValueJSON { - -} diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartD3Helper.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartD3Helper.java deleted file mode 100644 index c46f48ac..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartD3Helper.java +++ /dev/null @@ -1,4064 +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.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.ReportHandler; -import org.openecomp.portalsdk.analytics.model.base.ChartSeqComparator; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.HtmlStripper; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.analytics.view.ReportData; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.portalsdk.core.web.support.UserUtils; - -public class ChartD3Helper { - - 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<String, String> chartOptionsMap = new HashMap<String, String>(); - 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<String,String> chartOptionsMap = new HashMap<String, String>(); - 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<String,String> 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 - - 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); - - 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<String> ts1 = new HashSet(); - ArrayList<String> ts1 = new ArrayList(); - HashMap<String, String> 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("<!DOCTYPE html>\n"); - wholeScript.append("<html>\n"); - wholeScript.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF8\">\n"); - wholeScript.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n"); - wholeScript.append("<link href=\""+ AppUtils.getBaseFolderURL() +"d3/css/nv.d3.css\" rel=\"stylesheet\" type=\"text/css\">\n"); - //wholeScript.append("") - wholeScript.append("<style>\n " + - " body { \n" + - " overflow-y:scroll; \n" + - " } \n" + - " text { \n" + - " font: 12px sans-serif; \n" + - " } \n" + - " svg { \n" + - " display: block;\n" + - " } \n" + - " #chart"+reportRuntime.getReportID()+" svg { \n" + - " height: "+ (nvl(height).length()>0?(height.endsWith("px")?height:height+"px"):"420px") + "; \n" + - " width: "+ (nvl(width).length()>0?(width.endsWith("px")?width:width+"px"):"700px") + "; \n" + - " min-width: 100px; \n" + - " min-height: 100px; \n" + - " } \n" + - " tr.z-row-over > td.z-row-inner, tr.z-row-over > .z-cell {" + - " background-color: rgb(255, 255, 255); "+ - "} \n"); - - wholeScript.append(".nodatadiv {\n"); - wholeScript.append(" display: table-cell;\n"); - wholeScript.append(" width: 700px;\n"); - wholeScript.append(" height:370px;\n"); - wholeScript.append(" text-align:center;\n"); - wholeScript.append(" vertical-align: middle;\n"); - wholeScript.append("}\n"); - wholeScript.append(".nodatainner {\n"); - wholeScript.append(" padding: 10px;\n"); - wholeScript.append("}\n"); - - wholeScript.append(" </style> \n" ); - wholeScript.append("<body> \n"); - if(showTitle) - wholeScript.append("<div align=\"center\"><H3>" + title +"</H3></div>"); - - wholeScript.append("<div id=\"chart"+reportRuntime.getReportID()+"\"> <svg></svg> </div> \n"); - //js files - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/d3.v3.min.js\"></script>"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/nv.d3.min.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/tooltip.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/utils.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/axis.min.js\"></script> \n"); - //wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/discreteBar.js\"></script> \n"); - //wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/discreteBarChart.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/multiChart.js\"></script> \n"); - //json - wholeScript.append("<script> \n"); - wholeScript.append("historicalBarChart = [ \n"); - //wholeScript.append("{ \n"); - // data - ArrayList dataSeries = new ArrayList(); - - String uniqueElement = ""; - for (int i = 0; i < uniqueElements.length; i++) { - uniqueElement = (String)uniqueElements[i]; - if(multipleSeries && (nvl(chartRightAxisLabel).length() > 0)) - dataSeries.add(new StringBuffer(" { \"type\":\"bar\", \"key\": \""+ (hasCustomizedChartColor?(uniqueElement.indexOf("|")!=-1?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement):uniqueElement) +"\", \"yAxis\": \""+(i+1)+"\", "+ (hasCustomizedChartColor?("\"color\": \""+uniqueElement.substring(uniqueElement.indexOf("|")+1) + "\","):"")+"\"values\": [")); - else - dataSeries.add(new StringBuffer(" { \"type\":\"bar\", \"key\": \""+ (hasCustomizedChartColor?(uniqueElement.indexOf("|")!=-1?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement):uniqueElement) +"\", \"yAxis\": \""+(1)+"\", "+ (hasCustomizedChartColor?("\"color\": \""+uniqueElement.substring(uniqueElement.indexOf("|")+1) + "\","):"")+"\"values\": [")); - } - - // added to load all date elements - HashMap<String, HashMap<String, String>> dataSeriesMap = new HashMap<String, HashMap<String, String>>(); - - for (int i = 0; i < uniqueElements.length; i++) { - if(multipleSeries && (nvl(chartRightAxisLabel).length() > 0)) - dataSeriesMap.put((String) uniqueElements[i], new HashMap<String, String>()); - //dataSeries.add(new StringBuffer(" { \"type\":\"bar\", \"key\": \""+ uniqueElements[i] +"\", \"yAxis\": \""+(i+1)+"\", \"values\": [")); - else - dataSeriesMap.put((String) uniqueElements[i], new HashMap<String, String>()); - - //dataSeries.add(new StringBuffer(" { \"type\":\"bar\", \"key\": \""+ uniqueElements[i] +"\", \"yAxis\": \""+(1)+"\", \"values\": [")); - } - - 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<String> dateStrList = new TreeSet<String>(); - // added to store all date elements - SortedSet<String> sortSet = new TreeSet<String>(); - int count = 0; - if(flag!= 1) { - HashMap dataSeriesStrMap = new HashMap(); - HashMap dataSeriesOverAllMap = new HashMap(); - String valueDataSeries = ""; - - for (int j = 0; j < uniqueElements.length; j++) { - dataSeriesStrMap = new HashMap(); - for (int i = 0; i < ds.getRowCount(); i++) { - flagNoDate = 0; - YAXISNUM = 0; - YAXISDOUBLENUM = 0.0; - flagNull= 0; - dateStr = ds.getString(i, 1); - if(timeAxis) { - date = getDateFromDateStr(dateStr); - formatFlag = getFlagFromDateStr(dateStr); - } - uniqueElement = (String)uniqueElements[j]; - if(date==null) { - //continue; - flagNoDate = 1; - int pos = 0; - //if(!((String)uniqueElementsList.get(i)).equals(dateStr)) { - for (int f=0 ; f< uniqueXAxisElements.length; f++) { - if(uniqueXAxisElements[f].equals(dateStr)){ - pos = f ; - break; - } - } - /*for(int f=0; f<uniqueElementsList.size() && f < pos; f++) - { - StringBuffer strBuf = ((StringBuffer)dataSeries.get(j)); - if(strBuf.indexOf((String)uniqueElementsList.get(f)) < 0 ) { - dataSeriesStrMap.put((String)uniqueElementsList.get(f), value); - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + (String)uniqueElementsList.get(f) + "\" , \"y\": null },"); - } - }*/ - //} - - dateStrList.add("'"+dateStr+"'"); - //uniqueElement = (String)uniqueElements[j]; - try { - YAXISNUM = Integer.parseInt(ds.getString(i, columnMap.get((hasCustomizedChartColor?(uniqueElement.indexOf("|")!=-1?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement):uniqueElement)))); - //if(MAXNUM < YAXISNUM) MAXNUM = YAXISNUM; - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, columnMap.get((hasCustomizedChartColor?(uniqueElement.indexOf("|")!=-1?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement):uniqueElement)))); - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } catch (NumberFormatException ex1) { - flagNull = 1; - } - //flagNull = 1; - } - /* For Non-date type value enclose with double quotes */ - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - if(logScale) { - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():(YAXISNUM>0?new Double(Math.log10(new Integer(YAXISNUM).doubleValue())).toString():null)):null) +"}, "); - valueDataSeries = "{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - } else { - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - valueDataSeries = "{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - - } - - dataSeriesOverAllMap.put(uniqueElements[j], dataSeriesStrMap); - - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":\"" + ds.getString(i, columnMap.get((String)uniqueElements[j])) +"\"}, "); - } else { - - if(!barRealTimeAxis) { // true - non-time - if(!dateStrList.contains(new Long(date.getTime()).toString())) { - dateStrList.add(new Long(date.getTime()).toString()); - for (int k = 0; k < uniqueElements.length; k++) { - //((StringBuffer) dataSeries.get(k)).append ("{ \"x\":" + date.getTime() + " , \"y\":null}, "); - HashMap<String, String> dataMap = dataSeriesMap.get((String) uniqueElements[k]); - dataMap.put(date.getTime()+"", "null"); - - } - } - } - //if(ds.getString(i, 2).equals(uniqueElements[j])) { - /*if(!dateStrList.contains(new Long(date.getTime()).toString())) { - for (int k = 0; k < uniqueElements.length; k++) { - ((StringBuffer) dataSeries.get(k)).append ("{ \"x\":" + date.getTime() + " , \"y\":null}, "); - } - }*/ - //dateStrList.add(new Long(date.getTime()).toString()); - try { - YAXISNUM = Integer.parseInt(ds.getString(i, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - dateStrList.add(new Long(date.getTime()).toString()); - //if(MAXNUM < YAXISNUM) MAXNUM = YAXISNUM; - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } catch (NumberFormatException ex1) { - flagNull = 1; - } - - //flagNull = 1; - } - HashMap<String, String> dataMap = dataSeriesMap.get((String) uniqueElements[j]); - if(logScale) { - dataMap.put(date.getTime()+"", (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():(YAXISNUM>0?new Double(Math.log10(new Integer(YAXISNUM).doubleValue())).toString():null)): "null")); - } else { - dataMap.put(date.getTime()+"", (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(YAXISDOUBLENUM).toString():new Integer(YAXISNUM).toString()): "null")); - } - - - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + ds.getString(i, columnMap.get((String)uniqueElements[j])) +"}, "); - } - //} - } - } - for(int kI = 0; kI < uniqueElements.length; kI++) { - HashMap dataSeriesStrMap1 = (HashMap) dataSeriesOverAllMap.get(uniqueElements[kI]); - for (int kL = 0; kL < uniqueXAxisElements.length; kL++) { - if(dataSeriesStrMap1.containsKey(uniqueXAxisElements[kL])) { - ((StringBuffer) dataSeries.get(kI)).append ((String)dataSeriesStrMap1.get(uniqueXAxisElements[kL])); - } else { - ((StringBuffer) dataSeries.get(kI)).append ("{ \"x\":\"" + uniqueXAxisElements[kL] + "\" , \"y\": null }, "); - } - } - } - - } else { - HashMap dataSeriesStrMap = new HashMap(); - HashMap dataSeriesOverAllMap = new HashMap(); - String valueDataSeries = ""; - for (int j = 0; j < uniqueElements.length; j++) { - dataSeriesStrMap = new HashMap(); - - for (int i = 0; i < ds.getRowCount(); i++) { - flagNoDate = 0; - YAXISNUM = 0; - YAXISDOUBLENUM = 0.0; - flagNull= 0; - //flagSecondNull = 0; - dateStr = ds.getString(i, 1); - if(timeAxis) { - date = getDateFromDateStr(dateStr); - formatFlag = getFlagFromDateStr(dateStr); - } - uniqueElement = (String)uniqueElements[j]; - if(date==null) { - //continue; - flagNoDate = 1; - int pos = 0; - //if(!((String)uniqueElementsList.get(i)).equals(dateStr)) { - for (int f=0 ; f< uniqueXAxisElements.length; f++) { - if(uniqueXAxisElements[f].equals(dateStr)){ - pos = f ; - break; - } - } - /*for(int f=0; f<uniqueElementsList.size() && f < pos; f++) - { - StringBuffer strBuf = ((StringBuffer)dataSeries.get(j)); - if(strBuf.indexOf((String)uniqueElementsList.get(f)) < 0 ) { - dataSeriesStrMap.put((String)uniqueElementsList.get(f), value); - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + (String)uniqueElementsList.get(f) + "\" , \"y\": null },"); - } - }*/ - //} - - if(ds.getString(i, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement))) { - dateStrList.add("'"+dateStr+"'"); - try { - YAXISNUM = Integer.parseInt(ds.getString(i, 3)); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, 3)); - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } catch (NumberFormatException ex1) { - flagNull = 1; - } - - //flagNull = 1; - } - - if(logScale) { - if(timeAxis) { - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + dateStr + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): null) +"}, "); - valueDataSeries = "{ \"x\":" + dateStr + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - } else { - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): null) +"}, "); - valueDataSeries = "{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - } - } else { - if(timeAxis) { - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + dateStr + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "); - valueDataSeries = "{ \"x\":" + dateStr + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - - } else { - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "); - valueDataSeries = "{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "; - dataSeriesStrMap.put(dateStr, valueDataSeries); - - } - } - - /*if(ds.getString(i, 2).equals(uniqueElements[j])) { - dateStrList.add("'"+dateStr+"'"); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":\"" + ds.getString(i, 3) +"\"}, "); - */ - } - dataSeriesOverAllMap.put(uniqueElements[j], dataSeriesStrMap); - } else { - //date = MMDDYYYYFormat.parse(ds.getString(i, 1), new ParsePosition(0)); - if(!barRealTimeAxis) { // true - non-time - if(!dateStrList.contains(new Long(date.getTime()).toString())) { - dateStrList.add(new Long(date.getTime()).toString()); - for (int k = 0; k < uniqueElements.length; k++) { - //((StringBuffer) dataSeries.get(k)).append ("{ \"x\":" + date.getTime() + " , \"y\":null}, "); - HashMap<String, String> dataMap = dataSeriesMap.get((String) uniqueElements[k]); - dataMap.put(date.getTime()+"", "null"); - - } - } - } - if(ds.getString(i, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement))) { - dateStrList.add(new Long(date.getTime()).toString()); - try { - YAXISNUM = Integer.parseInt(ds.getString(i, 3)); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, 3)); - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } catch (NumberFormatException ex1) { - flagNull = 1; - } - - //flagNull = 1; - } - - //if(ds.getString(i, 2).equals(uniqueElements[j])) { - // dateStrList.add("'"+dateStr+"'"); - HashMap<String, String> dataMap = dataSeriesMap.get((String) uniqueElements[j]); - if(logScale) { - dataMap.put(date.getTime()+"", (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(Math.log10(YAXISDOUBLENUM)).toString():new Double(Math.log10(new Double(YAXISNUM>0?YAXISNUM:1).doubleValue())).toString()): "null")); - } else { - if(dataMap.containsKey(new String(""+date.getTime())) && dataMap.get(new String(""+date.getTime())).equals("null")) { - dataMap.remove(date.getTime()); - } - dataMap.put(date.getTime()+"", (flagNull == 0 ? (YAXISDOUBLENUM>0?new Double(YAXISDOUBLENUM).toString():new Integer(YAXISNUM).toString()): "null")); - //System.out - // .println(dataMap + " " + dataSeriesMap); - //} - } - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "); - - - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + ds.getString(i, 3) +"}, "); - } else if (AppUtils.nvl(ds.getString(i, 2)).length()<=0) { - dateStrList.add(new Long(date.getTime()).toString()); - HashMap<String, String> dataMap1 = null; - String uniqueElement1 = ""; - for (int j1 = 0; j1 < uniqueElements.length; j1++) { - uniqueElement1 = (String)uniqueElements[j]; - if(ds.getString(i, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement1.lastIndexOf("|") != -1) ?uniqueElement1.substring(0, uniqueElement1.lastIndexOf("|")):uniqueElement1))) { - dataMap1 = dataSeriesMap.get((String) uniqueElements[j1]); - if(!dataMap1.containsKey(new String(""+date.getTime()))) - dataMap1.put(date.getTime()+"", "null"); - } - } - } - } - // dataSeriesOverAllMap.put(uniqueElements[j], dataSeriesMap); - } - - } - for(int kI = 0; kI < uniqueElements.length; kI++) { - HashMap dataSeriesStrMap1 = (HashMap) dataSeriesOverAllMap.get(uniqueElements[kI]); - for (int kL = 0; kL < uniqueXAxisElements.length; kL++) { - if(dataSeriesStrMap1.containsKey(uniqueXAxisElements[kL])) { - ((StringBuffer) dataSeries.get(kI)).append ((String)dataSeriesStrMap1.get(uniqueXAxisElements[kL])); - } else { - ((StringBuffer) dataSeries.get(kI)).append ("{ \"x\":\"" + uniqueXAxisElements[kL] + "\" , \"y\": null }, "); - } - } - } - } - - StringBuffer dateStrBuf = new StringBuffer(""); - /*if(count == 1) { - Long initialDate = Long.parseLong((String)ds.getString(0, 0)); - Long endDate = Long.parseLong((String) ds.getString(ds.getRowCount(), 0)); - java.util.Date date1 = null; - - while ( initialDate <= endDate) { - //System.out.println("********** " + df.format(initialDate)); - date1 = new java.util.Date(initialDate.longValue() * 1000); - initialDate = initialDate + HOUR; - - dateStrBuf.append(initialDate+","); - sortSet.add(""+initialDate); - //DateUtils.addHours(date1, 1); - } - }*/ - - if(dateStrList.size()>0) { - SortedSet<String> s = Collections.synchronizedSortedSet(dateStrList); - Object[] dateElements = (Object[]) s.toArray(); - - String element = ""; - /* if not date value */ - if(!timeAxis) { - for (int i = 0; i < dateElements.length; i++) { - dateStrBuf.append(dateElements[i]+","); - } - } else { - if(!barRealTimeAxis || (flagNoDate == 1)) { // non-time - for (int i = 0; i < dateElements.length; i++) { - dateStrBuf.append(dateElements[i]+","); - } - } else { - Long initialDate = Long.parseLong((String)dateElements[0]); - Long endDate = Long.parseLong((String) dateElements[dateElements.length-1]); - java.util.Date date1 = null; - //first value - date1 = new java.util.Date(initialDate.longValue()); - /* DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss Z"); - System.out.println(formatter.format(new java.util.Date(initialDate.longValue()))); - */ //initialDate = initialDate + HOUR; - - dateStrBuf.append(initialDate+","); - sortSet.add(""+initialDate); - - // DateUtils. - - while ( initialDate <= endDate) { - //System.out.println("********** " + df.format(initialDate)); - //date1 = new java.util.Date(initialDate.longValue() * 1000); - date1 = new java.util.Date(initialDate.longValue()); - if(formatFlag==HOURFLAG) - date1 = DateUtils.addHours(date1, 1); - else if (formatFlag == DAYFLAG) - date1 = DateUtils.addDays(date1, 1); - else if (formatFlag == MONTHFLAG) - date1 = DateUtils.addMonths(date1, 1); - else if (formatFlag == YEARFLAG) - date1 = DateUtils.addMonths(date1, 1); - initialDate = date1.getTime(); - - if(initialDate <= endDate) { - dateStrBuf.append(initialDate+","); - sortSet.add(""+initialDate); - } - //DateUtils.addHours(date1, 1); - } - //DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); - //df.setTimeZone(TimeZone.getTimeZone("UTC")); - //java.util.Date date1 = new java.util.Date(initialDate.longValue() * 1000); - //java.util.Date d = df. - //for () - } - } - dateStrBuf.deleteCharAt(dateStrBuf.length()-1); - } - - if(timeAxis) { - //if(!barRealTimeAxis) { // false - non-time - Object[] dateAllElements = (Object[]) sortSet.toArray(); - - for (int i = 0; i < uniqueElements.length; i++) { - HashMap<String, String> dataMap = dataSeriesMap.get((String)uniqueElements[i]); - for (int j=0; j<dateAllElements.length;j++) { - //if(strBuf.toString().indexOf((String) dateAllElements[j]) == -1) { - if(!dataMap.containsKey((String) dateAllElements[j])) { - dataMap.put((String) dateAllElements[j], "null"); - //((StringBuffer) dataSeries.get(i)).append ("{ \"x\":" + dateAllElements[j] + " , \"y\":null}, "); - } - } - } - //} - } - String valueStr = ""; - for (int i = 0; i < uniqueElements.length; i++) { - HashMap<String, String> dataMap = dataSeriesMap.get((String)uniqueElements[i]); - Set<String> keySet = dataMap.keySet(); - ArrayList<String> keySortedList = new ArrayList<String>(new TreeSet<String>(keySet)); - - for (int k=0; k < keySortedList.size(); k++) { - valueStr = dataSeriesMap.get((String)uniqueElements[i]).get(keySortedList.get(k)); - if(valueStr.equals("null")) - valueStr = null; - else { - //if(logScale) - //valueStr = new Double(Math.log10(new Double(valueStr).doubleValue())).toString(); - } - ((StringBuffer) dataSeries.get(i)).append ("{ \"x\":" + keySortedList.get(k) + " , \"y\":" + valueStr +"}, "); - // ((StringBuffer) dataSeries.get(i)).append ("{ \"x\":" + keySortedList.get(k) + " , \"y\":" + valueStr +"}, "); - } - - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + (flagNull == 0 ? (YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM): null) +"}, "); - } - - for (int i = 0; i < uniqueElements.length; i++) { - StringBuffer strBuf = ((StringBuffer) dataSeries.get(i)); - ((StringBuffer) dataSeries.get(i)).deleteCharAt(((StringBuffer) dataSeries.get(i)).lastIndexOf(",")); - if(i < (uniqueElements.length -1) ) { - ((StringBuffer) dataSeries.get(i)).append("] } , \n"); - } - else { - ((StringBuffer) dataSeries.get(i)).append("] } \n"); - } - } - if(ds.getRowCount() > 0) { - for (int i = 0; i < uniqueElements.length; i++) { - wholeScript.append((StringBuffer)dataSeries.get(i)); - } - } - - - wholeScript.append("]; \n"); - - //add global variable - wholeScript.append("var chart; \n"); - //javascript to create Bar Chart - wholeScript.append("nv.addGraph(function() { \n"); - if(horizontalBar /*&& flagNoDate == 1*/) - wholeScript.append(" chart = nv.models.multiBarHorizontalChart() \n"); - else /*if (flagNoDate == 1)*/ - wholeScript.append(" chart = nv.models.multiBarChart() \n"); - /*else - wholeScript.append(" var chart = nv.models.multiBarTimeSeriesChart() \n");*/ - - wholeScript.append(" .margin({top: "+ topMargin +", right: "+ rightMargin +", bottom: "+ bottomMargin +", left: " + leftMargin +"}) \n"); - if(showLegend) { - wholeScript.append(" .showLegend(true) \n "); - } else { - wholeScript.append(" .showLegend(false) \n "); - } - if(!horizontalBar && barReduceXAxisLabels) - wholeScript.append(" .reduceXTicks(true) \n "); - else if (!horizontalBar) { - wholeScript.append(" .reduceXTicks(false) \n "); - //wholeScript.append(" chart.lines1.forceY(["+(nvl(reportRuntime.getRangeAxisLowerLimit()).length()<=0?"0":reportRuntime.getRangeAxisLowerLimit()) +", "+ (nvl(reportRuntime.getRangeAxisUpperLimit()).length()<=0?UPPER_RANGE:reportRuntime.getRangeAxisUpperLimit()) + "]); \n" + - double UPPER_RANGE = 0; - if(Math.ceil((MAXDOUBLENUM+(MAXDOUBLENUM*25/100))/100) * 100 >= 1) { - UPPER_RANGE = Math.ceil(MAXDOUBLENUM+(MAXDOUBLENUM*25/100)); - } else UPPER_RANGE = 1; - wholeScript.append(" .forceY(["+(nvl(reportRuntime.getRangeAxisLowerLimit()).length()<=0?"0":reportRuntime.getRangeAxisLowerLimit()) +", "+ (nvl(reportRuntime.getRangeAxisUpperLimit()).length()<=0?UPPER_RANGE:reportRuntime.getRangeAxisUpperLimit()) + "])\n"); - } - if(!animation) { - wholeScript.append(" .delay(0) \n "); - } - if(showControls) { - wholeScript.append(" .showControls(true) \n "); - } else if (!showControls){ - wholeScript.append(" .showControls(false) \n "); - } - if(stacked && !logScale) - wholeScript.append(" .stacked(true)\n "); - else if(!stacked || logScale) - wholeScript.append(" .stacked(false)\n "); - if(logScale) { - wholeScript.append(" .logScale(true)\n "); - } else { - wholeScript.append(" .logScale(false)\n "); - } - - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { - wholeScript.append(" .legendPos('right')\n" ); - } else { - wholeScript.append(" .legendPos('top')\n" ); - } - if(uniqueElements.length <= 10) { - wholeScript.append(" .color(d3.scale.category10().range()); \n" + - " chart.xAxis\n"); - } else if (uniqueElements.length <= 20) { - wholeScript.append(" .color(d3.scale.category50().range()); \n" + - " chart.xAxis\n"); - } else { - wholeScript.append(" .color(d3.scale.category50().range()); \n" + - " chart.xAxis\n"); - - } - - if(flagNoDate == 0) - wholeScript.append(" .tickValues(["+ dateStrBuf.toString() + "])\n "); - else { - wholeScript.append(" .tickValues(["+ dateStrBuf.toString() + "])\n "); - } - if(staggerLabels) { - wholeScript.append(" .staggerLabels(true) \n"); - } else { - wholeScript.append(" .staggerLabels(false) \n"); - } - if(!horizontalBar) { - if(showMaxMin) { - wholeScript.append(" .showMaxMin(true) \n "); - } else { - wholeScript.append(" .showMaxMin(false) \n "); - } - } - if(nvl(rotateLabels).length()>0) { - wholeScript.append(" .rotateLabels("+ rotateLabels+ ") \n "); - } else { - wholeScript.append(" .rotateLabels(\"0\") \n "); - } - //wholeScript.append(" .axisLabel('" + legendColumnName + "')"); - if(flagNoDate == 1 || !timeAxis) { - wholeScript.append(";\n"); - } else { - wholeScript.append("\n .tickFormat(function(d) { \n"); - if(timeAxis) { - if(formatFlag==HOURFLAG) - wholeScript.append(" return d3.time.format('%x %H')(new Date(d)) }); \n"); - else if(formatFlag==MINFLAG) - wholeScript.append(" return d3.time.format('%x %H:%M')(new Date(d)) }); \n"); - else if(formatFlag==SECFLAG) - wholeScript.append(" return d3.time.format('%X')(new Date(d)) }); \n"); - else if(formatFlag==MONTHFLAG) - wholeScript.append(" return d3.time.format('%b %y')(new Date(d)) }); \n"); - else - wholeScript.append(" return d3.time.format('%x')(new Date(d)) }); \n"); - - } else { - wholeScript.append(" return d; }); \n"); - } - } - - if(nvl(chartRightAxisLabel).length() > 0) { - //if(flagNoDate == 1) - wholeScript.append(" chart.yAxis\n"); - //else - // wholeScript.append(" chart.yAxis1\n"); - if(logScale) { - wholeScript.append(" .logScale(true)\n "); - } else { - wholeScript.append(" .logScale(false)\n "); - } - - wholeScript.append(" .axisLabel('" + chartLeftAxisLabel + "') \n" + - " .tickFormat(d3.format(',.0f')); \n"); - /*" chart.yAxis2\n " + - " .axisLabel('" + chartRightAxisLabel + "') \n" + - " .tickFormat(d3.format(',.0f')); \n");*/ - - - } else { - //if(flagNoDate == 1) - wholeScript.append(" chart.yAxis\n"); - //else - // wholeScript.append(" chart.yAxis1\n"); - if(logScale) { - wholeScript.append(" .logScale(true)\n "); - } else { - wholeScript.append(" .logScale(false)\n "); - } - wholeScript.append(" .axisLabel('" + chartLeftAxisLabel + "') \n"); - - if(MAXDOUBLENUM <=5 && MAXNUMDECIMALPLACES == 0 ) MAXNUMDECIMALPLACES = 2; - if( MAXNUMDECIMALPLACES >=3 ) MAXNUMDECIMALPLACES = 2; - if(!logScale) - wholeScript.append(" .tickFormat(d3.format(',."+MAXNUMDECIMALPLACES+"f')); \n"); - else - wholeScript.append(" .tickFormat(d3.format(',." + precision + "f')); \n"); - //" .tickFormat(d3.format(',.0f')); \n"); - } - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n" + - " .datum(historicalBarChart) \n" ); - if(animation) - wholeScript.append(" .transition().duration(1000) \n" ); - else - wholeScript.append(" .transition().duration(0) \n" ); - wholeScript.append(" .call(chart); \n" + - "nv.utils.windowResize(chart.update); \n" + - "return chart; \n" + - "}); \n"); - wholeScript.append("function redraw() { \n"); - //wholeScript.append(" nv.utils.windowResize(chart.update); \n"); - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n") ; - wholeScript.append(" .datum(historicalBarChart) \n"); - wholeScript.append(" .transition().duration(500) \n"); - wholeScript.append(" .call(chart); \n"); - wholeScript.append("} \n"); - wholeScript.append("\n"); - wholeScript.append(" setInterval(function () { \n"); - wholeScript.append(" redraw(); \n"); - wholeScript.append(" }, 1500) \n"); - - wholeScript.append("if(historicalBarChart.length <= 0 ) {\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").innerHTML = \"<div id='noData'><b>No Data Available</b></div>\";\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").className=\"nodatadiv\";\n"); - wholeScript.append(" document.getElementById(\"nodata\").className=\"nodatainner\";\n"); - wholeScript.append("}\n"); - wholeScript.append("</script> </body></html> \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<String>(); - HashMap<String, String> 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<String> 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<String> colorList = new TreeSet<String>(); - 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<String> 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("<!DOCTYPE html>\n"); - wholeScript.append("<html>\n"); - wholeScript.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF8\">\n"); - wholeScript.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n"); - wholeScript.append("<link href=\""+ AppUtils.getBaseFolderURL() +"d3/css/nv.d3.css\" rel=\"stylesheet\" type=\"text/css\">\n"); - wholeScript.append("<style>\n " + - " body { \n" + - " overflow-y:scroll; \n" + - " } \n" + - " text { \n" + - " font: 12px sans-serif; \n" + - " } \n" + - " svg { \n" + - " display: block;\n" + - " } \n" + - " #chart"+reportRuntime.getReportID()+" svg { \n" + - " height: "+ (nvl(height).length()>0?(height.endsWith("px")?height:height+"px"):"420px") + "; \n" + - " width: "+ (nvl(width).length()>0?(width.endsWith("px")?width:width+"px"):"700px") + "; \n" + - " min-width: 100px; \n" + - " min-height: 100px; \n" + - " } \n" + - " tr.z-row-over > td.z-row-inner, tr.z-row-over > .z-cell {" + - " background-color: rgb(255, 255, 255); "+ - "}\n"); - wholeScript.append(".nodatadiv {\n"); - wholeScript.append(" display: table-cell;\n"); - wholeScript.append(" width: 700px;\n"); - wholeScript.append(" height:370px;\n"); - wholeScript.append(" text-align:center;\n"); - wholeScript.append(" vertical-align: middle;\n"); - wholeScript.append("}\n"); - wholeScript.append(".nodatainner {\n"); - wholeScript.append(" padding: 10px;\n"); - wholeScript.append("}\n"); - - wholeScript.append(" </style> \n" ); - - wholeScript.append("<body> \n"); - - if(showTitle) - wholeScript.append("<div align=\"center\"><H3>" + title +"</H3></div>"); - - - wholeScript.append("<div id=\"chart"+reportRuntime.getReportID()+"\"> <svg></svg> </div> \n"); - //js files - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/d3.v3.min.js\"></script>\n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/nv.d3.min.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/axis.min.js\"></script> \n"); - //wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/cumulativeLineChart.js\"></script> \n"); - //if(multipleSeries) - //wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/multiChart.js\"></script> \n"); - - //json - wholeScript.append("<script> \n"); - - wholeScript.append("historicalBarChart = [ \n"); - //wholeScript.append("{ \n"); - ArrayList dataSeries = new ArrayList(); - String uniqueElement = ""; - - String [] uniqueRevElements = null; - //Added to make sure order appears same as legend - /*if(nvl(subType).length() > 0 && subType.equals("area")) { - uniqueRevElements = reverse((String[])uniqueElements); - } else {*/ - uniqueRevElements = (String[])uniqueElements; - //} - - int RIGHTAXISSERIES = 0; - for (int i = 0; i < uniqueRevElements.length; i++) { - //element.substring(element.indexOf("|")+1) - uniqueElement = (String)uniqueRevElements[i]; - if(multipleSeries && (nvl(chartRightAxisLabel).length() > 0)) { - if(nvl(subType).length() > 0 && subType.equals("area")) { - if(nvl(uniqueElement).indexOf("|R") !=-1) - dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((uniqueElement.indexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement) +"\", \"yAxis\": \""+(2)+"\", "+ (hasCustomizedChartColor && (uniqueElement.lastIndexOf("|") != -1) ?("\"color\": \""+uniqueElement.substring(uniqueElement.lastIndexOf("|")+1) + "\","):"")+" \"values\": [")); - else - dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((uniqueElement.indexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement) +"\", \"yAxis\": \""+(1)+"\", "+ (hasCustomizedChartColor && (uniqueElement.lastIndexOf("|") != -1) ?("\"color\": \""+uniqueElement.substring(uniqueElement.lastIndexOf("|")+1) + "\","):"")+" \"values\": [")); - } else { - if(nvl(uniqueElement).indexOf("|R") !=-1) - dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((uniqueElement.indexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement) +"\", \"yAxis\": \""+(2)+"\","+ (hasCustomizedChartColor && (uniqueElement.lastIndexOf("|") != -1) ?("\"color\": \""+uniqueElement.substring(uniqueElement.lastIndexOf("|")+1) + "\","):"")+" \"values\": [")); - else - dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((uniqueElement.indexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement) +"\", \"yAxis\": \""+(1)+"\","+ (hasCustomizedChartColor && (uniqueElement.lastIndexOf("|") != -1) ?("\"color\": \""+uniqueElement.substring(uniqueElement.lastIndexOf("|")+1) + "\","):"")+" \"values\": [")); - } - RIGHTAXISSERIES = dataSeries.size()-1; - //dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((DataColumnType)columnMap.get(i)).getDisplayName() +"\", \"yAxis\": \""+(i+1)+"\", \"values\": [")); - } - else { - dataSeries.add(new StringBuffer(" { \"type\":\"line\", \"key\": \""+ ((uniqueElement.indexOf("|")!= -1)?uniqueElement.substring(0, uniqueElement.indexOf("|")):uniqueElement) +"\", \"yAxis\": \""+(1)+"\","+ (hasCustomizedChartColor && (uniqueElement.lastIndexOf("|") != -1)?("\"color\": \""+uniqueElement.substring(uniqueElement.lastIndexOf("|")+1) + "\","):"")+"\"values\": [")); - } - - } - /*StringBuffer dataSeries1 = new StringBuffer(""); - dataSeries1.append(" { key: \"Series1\",values: ["); - StringBuffer dataSeries2 = new StringBuffer(""); - dataSeries2.append(" { key: \"Series2\", values: ["); - StringBuffer dataSeries3 = new StringBuffer(""); - dataSeries3.append(" { key: \"Series3\", values: ["); - */ - - - //long minTime = 1000000000000000L; - int MAXNUM = 0; - double MAXDOUBLENUM = 0.0; - int YAXISNUM = 0; - double YAXISDOUBLENUM = 0.0; - int MAXNUMDECIMALPLACES = 0; - int flagNull = 0; - int flagSecondNull = 0; - TreeSet dateList = new TreeSet(); - int formatFlag = 0; - if(flag!= 1) { - for (int j = 0; j < uniqueRevElements.length; j++) { - for (int i = 0; i < ds.getRowCount(); i++) { - flagNull = 0; - flagSecondNull=0; - YAXISNUM = 0; - YAXISDOUBLENUM = 0.0; - dateStr = ""; - date = null; - dateStr = ds.getString(i, 1); - if(timeAxis) { - date = getDateFromDateStr(dateStr); - formatFlag = getFlagFromDateStr(dateStr); - } - if(date==null && timeAxis) continue; - - - //if(ds.getString(i, 2).equals(uniqueElements[j])) { - //if(minTime > date.getTime()) - // minTime = date.getTime(); - uniqueElement = (String)uniqueRevElements[j]; - try { - YAXISNUM = Integer.parseInt(ds.getString(i, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - if(RIGHTAXISSERIES!=j) { - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } - } catch (NumberFormatException ex1) { - flagNull = 1; - } - } - - if(date==null) { - dateList.add(dateStr); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - } else { - dateList.add(new Long(date.getTime()).toString()); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + (flagNull==0?(YAXISDOUBLENUM>0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - } - - - - if(nvl(subType).length() > 0 && subType.equals("area")) { - - if(flagNull!=1) { - if(i<ds.getRowCount()-1) { - try { - YAXISNUM = Integer.parseInt(ds.getString(i+1, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1)?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i+1, columnMap.get(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement)))); - if(RIGHTAXISSERIES!=j) { - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } - } catch (NumberFormatException ex1) { - flagSecondNull = 1; - } - } - - if(flagSecondNull==1 && date == null) { - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + null +"}, "); - } else if( flagSecondNull == 1){ - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - } - } - } else { - if(i<ds.getRowCount()-1) { - dateStr = ds.getString(i+1, 1); - - if(!timeAxis) { - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":\"" + dateStr + "\" , \"y\":" + null +"}, "); - } else { - date = getDateFromDateStr(dateStr); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - } - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - } - } - - } - - - //} - } - //((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + minTime + " , \"y\":" + 0 +"}, "); - } - - } else { - for (int j = 0; j < uniqueRevElements.length; j++) { - for (int i = 0; i < ds.getRowCount(); i++) { - YAXISNUM = 0; - YAXISDOUBLENUM = 0.0; - flagNull= 0; - flagSecondNull = 0; - dateStr = ds.getString(i, 1); - if(timeAxis) { - date = getDateFromDateStr(dateStr); - formatFlag = getFlagFromDateStr(dateStr); - } - - if(date==null && timeAxis) continue; - - uniqueElement = (String)uniqueRevElements[j]; - //date = MMDDYYYYFormat.parse(ds.getString(i, 1), new ParsePosition(0)); - if(ds.getString(i, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement))) { - //if(minTime > date.getTime()) - // minTime = date.getTime(); - try { - YAXISNUM = Integer.parseInt(ds.getString(i, 3)); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(i, 3)); - if(RIGHTAXISSERIES!=j) { - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - - } - } catch (NumberFormatException ex1) { - flagNull = 1; - } - } - - if(date==null) { - dateList.add(dateStr); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + dateStr + " , \"y\":" + (flagNull==0?(YAXISDOUBLENUM!=0.0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - } else { - dateList.add(new Long(date.getTime()).toString()); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + (flagNull==0?(YAXISDOUBLENUM!=0.0?YAXISDOUBLENUM:YAXISNUM):null) +"}, "); - } - - - if(nvl(subType).length() > 0 && subType.equals("area")) { - - if(flagNull!=1) { - if(i<ds.getRowCount()-1) { - for (int k = i+1; k < ds.getRowCount(); k++) { - if (ds.getString(k, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement))) { - try { - YAXISNUM = Integer.parseInt(ds.getString(k, 3)); - if(MAXDOUBLENUM < YAXISNUM) MAXDOUBLENUM = YAXISNUM; - } catch (NumberFormatException ex) { - try { - YAXISDOUBLENUM = Double.parseDouble(ds.getString(k, 3)); - if(RIGHTAXISSERIES!=j) { - MAXNUMDECIMALPLACES = getNumberOfDecimalPlaces(YAXISDOUBLENUM); - if(MAXDOUBLENUM < YAXISDOUBLENUM) MAXDOUBLENUM = YAXISDOUBLENUM; - } - } catch (NumberFormatException ex1) { - flagSecondNull = 1; - } - } - break; - } - } - - if(date==null && flagSecondNull==1){ - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + dateStr + " , \"y\":" + null +"}, "); - } else if(flagSecondNull == 1){ - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - } - //} - } - } else { - if(i<ds.getRowCount()-1) { - for (int k = i+1; k < ds.getRowCount(); k++) { - if (ds.getString(k, 2).equals(((hasCustomizedChartColor||nvl(chartRightAxisLabel).length()>0) && (uniqueElement.lastIndexOf("|") != -1) ?uniqueElement.substring(0, uniqueElement.lastIndexOf("|")):uniqueElement))) { - dateStr = ds.getString(k, 1); - if(!timeAxis) { - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - break; - } else { - date = getDateFromDateStr(dateStr); - ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + date.getTime() + " , \"y\":" + null +"}, "); - break; - } - } - } - } - } - } - - } - } - // ((StringBuffer) dataSeries.get(j)).append ("{ \"x\":" + minTime + " , \"y\":" + 0 +"}, "); - - } -/* if(ds.getString(i, 2).equals("Series1")) { - dataSeries1.append("[ " + date.getTime() + " , " + ds.getString(i, 3) +"], "); - } else if (ds.getString(i, 2).equals("Series2")) { - dataSeries2.append("[ " + date.getTime() + " , " + ds.getString(i, 3) +"], "); - } else if (ds.getString(i, 2).equals("Series3")) { - dataSeries3.append("[ " + date.getTime() + " , " + ds.getString(i, 3) +"], "); - } -*/ } - - for (int i = 0; i < uniqueRevElements.length; i++) { - StringBuffer strBuf = ((StringBuffer) dataSeries.get(i)); - ((StringBuffer) dataSeries.get(i)).deleteCharAt(((StringBuffer) dataSeries.get(i)).lastIndexOf(",")); - if(i < (uniqueRevElements.length -1) ) { - ((StringBuffer) dataSeries.get(i)).append("] } , \n"); - } - else { - ((StringBuffer) dataSeries.get(i)).append("] } \n"); - } - } - - for (int i = 0; i < uniqueRevElements.length; i++) { - wholeScript.append((StringBuffer)dataSeries.get(i)); - } -/* wholeScript.append(dataSeries1); - wholeScript.append(dataSeries2); - wholeScript.append(dataSeries3); -*/ wholeScript.append("];\n"); - - /* Sorting is commented out.*/ - StringBuffer dateStrBuf = new StringBuffer(""); - if(dateList.size()>0) { - //SortedSet<String> s = Collections.synchronizedSortedSet(dateList); - Object[] dateElements = (Object[]) dateList.toArray(); - - String element = ""; - - for (int i = 0; i < dateElements.length; i++) { - dateStrBuf.append(dateElements[i]+","); - } - dateStrBuf.deleteCharAt(dateStrBuf.length()-1); - } - - wholeScript.append(" var chart;\n"); - wholeScript.append("nv.addGraph(function() { \n"); - //" var chart = nv.models.cumulativeLineChart() \n" + nv.models.lineWithFocusChart() -// " chart = nv.models.lineChart() \n" + - if(nvl(subType).length() > 0 && subType.equals("area")) { - wholeScript.append(" chart = nv.models.stackedAreaChart() \n"); - if(showControls) { - wholeScript.append(" .showControls(true) \n "); - } else { - wholeScript.append(" .showControls(false) \n "); - } - } else { - wholeScript.append(" chart = nv.models.multiChart() \n"); - if(nvl(chartRightAxisLabel).length() > 0) { - wholeScript.append(" .dualaxis(true) \n "); - } else { - wholeScript.append(" .dualaxis(false) \n "); - } - - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { - wholeScript.append(" .legendPos('right')\n" ); - } else { - wholeScript.append(" .legendPos('top')\n" ); - } - - - } - - wholeScript.append(" .margin({top: "+ topMargin +", right: "+ rightMargin +", bottom: "+ bottomMargin +", left: " + leftMargin +"}) \n"); - if(showLegend) { - wholeScript.append(" .showLegend(true) \n "); - } else { - wholeScript.append(" .showLegend(false) \n "); - } - - if(nvl(subType).length() > 0 && subType.equals("area")) { - if( MAXNUMDECIMALPLACES >=3 ) { - wholeScript.append(" .yAxisTooltipFormat(d3.format(',.3f')) \n"); - } else { - wholeScript.append(" .yAxisTooltipFormat(d3.format(',."+MAXNUMDECIMALPLACES+ "f')) \n"); - } - - wholeScript.append(".x (function(d) {return d.x;}) \n" + - ".y (function(d) {return d.y;}) \n"); - } - - //" .x(function(d) { return d[0] }) \n" + - //" .y(function(d) { return d[1] }) \n" + - //" .forceY("+(nvl(reportRuntime.getRangeAxisLowerLimit()).length()<=0?"0":reportRuntime.getRangeAxisLowerLimit()) +", "+ Math.ceil((MAXNUM+(MAXNUM*25/100))/100) * 100 + ") \n" + // reportRuntime.getRangeAxisUpperLimit()+") \n" + - wholeScript.append(" .color(d3.scale.category10().range()); \n"); - if(!(nvl(subType).length() > 0 && subType.equals("area"))) { - double UPPER_RANGE = 0; - if(Math.ceil((MAXDOUBLENUM+(MAXDOUBLENUM*25/100))/100) * 100 >= 1) { - UPPER_RANGE = Math.ceil(MAXDOUBLENUM+(MAXDOUBLENUM*25/100)); - } else UPPER_RANGE = 1; - - wholeScript.append(" chart.lines1.forceY(["+(nvl(reportRuntime.getRangeAxisLowerLimit()).length()<=0?"0":reportRuntime.getRangeAxisLowerLimit()) +", "+ (nvl(reportRuntime.getRangeAxisUpperLimit()).length()<=0?UPPER_RANGE:reportRuntime.getRangeAxisUpperLimit()) + "]); \n" + - " chart.lines2.forceY([0,1]); \n"); - } - wholeScript.append(" chart.xAxis\n"); - if(reportRuntime.isShowXaxisLabel()) { - // X axis label is commented for time-being. This should be derived from request parameter. - //" .axisLabel('" + legendColumnName + "') \n" + - wholeScript.append(" .axisLabel('" + legendColumnName + "') \n"); - } else { - wholeScript.append(" .axisLabel('') \n"); - } - if(reportRuntime.isAddXAxisTickers()) { - wholeScript.append(" .tickValues(["+ dateStrBuf.toString()+ "])\n "); - } else { - //wholeScript.append(" .tickValues([])\n "); - } - if(staggerLabels) { - wholeScript.append(" .staggerLabels(true) \n"); - } else { - wholeScript.append(" .staggerLabels(false) \n"); - } - if(showMaxMin) { - wholeScript.append(" .showMaxMin(true) \n "); - } else { - wholeScript.append(" .showMaxMin(false) \n "); - } - - if(nvl(rotateLabels).length()>0) { - wholeScript.append(" .rotateLabels("+ rotateLabels+ ") \n "); - } else { - wholeScript.append(" .rotateLabels(\"0\") \n "); - } - - wholeScript.append(" .tickFormat(function(d) { \n"); - if(formatFlag==HOURFLAG) - wholeScript.append(" return d3.time.format('%x %H')(new Date(d)) }); \n"); - else if(formatFlag==MINFLAG) - wholeScript.append(" return d3.time.format('%x %H:%M')(new Date(d)) }); \n"); - else if(formatFlag==SECFLAG) - wholeScript.append(" return d3.time.format('%x %X')(new Date(d)) }); \n"); - else if(formatFlag==MONTHFLAG) - wholeScript.append(" return d3.time.format('%b %y')(new Date(d)) }); \n"); - - else if(timeAxis) - wholeScript.append(" return d3.time.format('%x')(new Date(d)) }); \n"); - else - wholeScript.append(" return d; }); \n"); - if(nvl(chartRightAxisLabel).length() > 0) { - if(nvl(subType).length() > 0 && subType.equals("area")) { - wholeScript.append(" chart.yAxis\n"); - } else { - wholeScript.append(" chart.yAxis1\n"); - } - wholeScript.append(" .axisLabel('" + chartLeftAxisLabel + "') \n"); - //if(nvl(subType).length() > 0 && subType.equals("area")) { - if(MAXDOUBLENUM <=5 && MAXNUMDECIMALPLACES == 0 ) MAXNUMDECIMALPLACES = 2; - if( MAXNUMDECIMALPLACES >=3 ) MAXNUMDECIMALPLACES = 2; - wholeScript.append(" .tickFormat(d3.format(',."+MAXNUMDECIMALPLACES+"f')); \n"); - /*} else { - wholeScript.append(" .tickFormat(d3.format(',.2f')); \n"); - }*/ - // " .tickFormat(function (d) {return d;} ); \n"); - //" .tickFormat(function(d) {if (d >= 1000) return Math.round(d/1000)+\"K\"; else return d;}); \n"); - if(!(nvl(subType).length() > 0 && subType.equals("area"))) { - wholeScript.append(" chart.yAxis2\n " + - " .axisLabel('" + chartRightAxisLabel + "') \n" + - " .tickFormat(d3.format(',.02f')); \n"); - //" .tickFormat(function(d) {if (d >= 1000) return Math.round(d/1000)+\"K\"; else return d;}); \n"); - //" .tickFormat(function(d) {if( d <= 1) return Math.round(d*100)+\"%\"; else return d;}); \n"); - // " .tickFormat(function(d) { return d;}); \n"); - } - - - } else { - if(nvl(subType).length() > 0 && subType.equals("area")) { - wholeScript.append(" chart.yAxis\n"); - } else { - wholeScript.append(" chart.yAxis1\n"); - } - wholeScript.append(" .axisLabel('" + chartLeftAxisLabel + "') \n"); - //if(nvl(subType).length() > 0 && subType.equals("area")) { - if(MAXDOUBLENUM <=5 && MAXNUMDECIMALPLACES == 0 ) MAXNUMDECIMALPLACES = 2; - if( MAXNUMDECIMALPLACES >=3 ) { - MAXNUMDECIMALPLACES = 2; - } - wholeScript.append(" .tickFormat(d3.format(',."+MAXNUMDECIMALPLACES+"f')); \n"); - /*} else { - wholeScript.append(" .tickFormat(d3.format(',.2f')); \n"); - }*/ - //" .tickFormat(function(d) {if (d >= 1000) return Math.round(d/1000)+\"K\"; else return d;}); \n"); - } - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n" + - " .datum(historicalBarChart) \n" ); - if(animation) - wholeScript.append(" .transition().duration(1000) \n" ); - wholeScript.append(" .call(chart); \n" + - "nv.utils.windowResize(chart.update); \n" + - "return chart; \n" + - "}); \n"); - - wholeScript.append("function redraw() { \n"); - //wholeScript.append(" nv.utils.windowResize(chart.update); \n"); - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n") ; - wholeScript.append(" .datum(historicalBarChart) \n"); - wholeScript.append(" .transition().duration(500) \n"); - wholeScript.append(" .call(chart); \n"); - wholeScript.append("} \n"); - wholeScript.append("\n"); - wholeScript.append(" setInterval(function () { \n"); - wholeScript.append(" redraw(); \n"); - wholeScript.append(" }, 1500) \n"); - - wholeScript.append("if(historicalBarChart.length <= 0 ) {\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").innerHTML = \"<div id='noData'><b>No Data Available</b></div>\";\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").className=\"nodatadiv\";\n"); - wholeScript.append(" document.getElementById(\"nodata\").className=\"nodatainner\";\n"); - wholeScript.append("}\n"); - - wholeScript.append("</script> </body> </html> \n"); - - } else if (chartType.equals(AppConstants.GT_PIE) || chartType.equals(AppConstants.GT_PIE_3D)) { - wholeScript.append("<!DOCTYPE html>\n"); - wholeScript.append("<html>\n"); - wholeScript.append("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF8\">\n"); - wholeScript.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n"); - wholeScript.append("<link href=\""+ AppUtils.getBaseFolderURL() +"d3/css/nv.d3.css\" rel=\"stylesheet\" type=\"text/css\">\n"); - wholeScript.append("<style>\n " + - " body { \n" + - " overflow-y:scroll; \n" + - " } \n" + - " text { \n" + - " font: 12px sans-serif; \n" + - " } \n" + - " tr.z-row-over > td.z-row-inner, tr.z-row-over > .z-cell {" + - " background-color: rgb(255, 255, 255); "+ - "} "+ - " svg { display: block; } " + - " #chart"+reportRuntime.getReportID()+" svg { \n" + - " height: "+ (nvl(height).length()>0?(height.endsWith("px")?height:height+"px"):"420px") + "; \n" + - " width: "+ (nvl(width).length()>0?(width.endsWith("px")?width:width+"px"):"700px") + "; \n" + - " min-width: 100px; \n" + - " min-height: 100px; \n" + - " } \n" + - " </style> \n" ); - wholeScript.append("<body> \n"); - - if(showTitle) - wholeScript.append("<div align=\"center\"><H3>" + title +"</H3></div>"); - - wholeScript.append("<div id=\"chart"+reportRuntime.getReportID()+"\"><svg></svg></div>"); - //"<svg id=\"test2\"></svg>\n"); - //js files - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/d3.v3.min.js\"></script>\n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/nv.d3.min.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/legend.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/pie.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/pieChart.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/utils.js\"></script> \n"); - wholeScript.append("<script> \n"); - - wholeScript.append("historicalBarChart = [ \n"); - double TOTAL = 0; - double VALUE = 0; - int flagNull = 0; - String KEY = ""; - String COLOR = ""; - TreeSet<String> colorList = new TreeSet<String>(); - for (int i = 0; i < ds.getRowCount(); i++) { - VALUE = 0; - try { - VALUE = Double.parseDouble(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<String> 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.lastIndexOf("|")+1)+"',"); - } - color.deleteCharAt(color.length()-1); - } - - wholeScript.append("];\n"); - - - wholeScript.append("var chart; \n"); - wholeScript.append("nv.addGraph(function() { \n" + - " var width1= 700, height1=720; \n" + - " chart = nv.models.pieChart() \n" + - " .margin({top: "+ topMargin +", right: "+ rightMargin +", bottom: "+ bottomMargin +", left: " + leftMargin +"}) \n" + - - //" .x(function(d) { return d.key +\" \"+ Math.round(d.y/"+TOTAL+" *100) + \"%\" }) \n" + - " .x(function(d) { return d.key }) \n" + - " .y(function(d) { return d.y }) \n"); - if(colorList.size()>0) { - wholeScript.append(" .color(["+ color.toString() + "] ) \n"); - } - //wholeScript.append(" .values(function(d) { return d }) \n"); - //" .color(d3.scale.category10().range()); \n" + - if(showLegend) { - wholeScript.append(" chart.showLegend(true);\n "); - } else { - wholeScript.append(" chart.showLegend(false);\n "); - } - - //wholeScript.append("chart.showLegend(false);\n" + - //" .width(width1) \n" + - //" .height(height1); \n" + - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n" + - " .datum(historicalBarChart) \n"); - if(animation) - wholeScript.append(" .transition().duration(1200) \n" ); -/* " .attr(\"width\", width1) \n" + - " .attr(\"height\", height1) \n" + -*/ wholeScript.append(" .call(chart); \n" + - " nv.utils.windowResize(chart.update);\n"+ - "return chart; \n" + - "}); \n"); - - wholeScript.append("function redraw() { \n"); - //wholeScript.append(" nv.utils.windowResize(chart.update); \n"); - wholeScript.append(" d3.select('#chart"+reportRuntime.getReportID()+" svg') \n") ; - wholeScript.append(" .datum(historicalBarChart) \n"); - wholeScript.append(" .transition().duration(500) \n"); - wholeScript.append(" .call(chart); \n"); - wholeScript.append("} \n"); - wholeScript.append("\n"); - wholeScript.append(" setInterval(function () { \n"); - wholeScript.append(" redraw(); \n"); - wholeScript.append(" }, 1500) \n"); - - - - wholeScript.append("if(historicalBarChart.length <= 0 ) {\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").innerHTML = \"<div id='noData'><b>No Data Available</b></div>\";\n"); - wholeScript.append(" document.getElementById(\"chart"+reportRuntime.getReportID()+"\").className=\"nodatadiv\";\n"); - wholeScript.append(" document.getElementById(\"nodata\").className=\"nodatainner\";\n"); - wholeScript.append("}\n"); - - wholeScript.append("</script> </body> </html> \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<String> dateStrList = new TreeSet<String>(); - // added to store all date elements - SortedSet<String> sortSet = new TreeSet<String>(); - 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<ds.getColumnCount();columnIndex++) { - columnName = ds.getColumnName(columnIndex); - if(!timeCharts && !columnName.toLowerCase().equals("anomaly_text")) { - columnNames.add(columnName); - columnValues.add(AppUtils.nvls(ds.getString(i, columnIndex), "null")); - } else if (timeCharts) { - columnNames.add(columnName); - columnValues.add(AppUtils.nvls(ds.getString(i, columnIndex), "null")); - } - } -/* actual = ds.getString(i, "actual"); - //forecast = ds.getString(i, "forecast"); - upperBound = ds.getString(i, "upperBound"); - lowerBound = ds.getString(i, "lowerBound"); - -*/ if(!timeCharts) - anomalyText = ds.getString(i, "anomaly_text"); - //dataStrBuf.append(" [new Date(moment(\""+dateStr+"\")),"+ actual /*+","+ forecast*/+","+ lowerBound +","+ upperBound +"],\n"); - dataStrBuf.append(" [new Date(moment(\""+dateStr+"\"))"); - for(int c=0; c< columnNames.size(); c++ ) { - columnName = (String) columnNames.get(c); - columnValue = (String) columnValues.get(c); - for (Iterator iter1 = l.iterator(); iter1.hasNext();) { - dct = (DataColumnType) iter1.next(); - if((dct.getChartSeq()!=null && dct.getChartSeq() >=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("<!DOCTYPE html>\n"); - wholeScript.append("<html>\n"); - wholeScript.append(" <head>\n"); - //wholeScript.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7; IE=EmulateIE9\">\n"); - wholeScript.append("<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n"); - wholeScript.append("<script type=\"text/javascript\" src=\""+ AppUtils.getBaseFolderURL() +"dy3/js/dygraph-combined.js\"></script>\n"); - wholeScript.append("<script type=\"text/javascript\" src=\""+ AppUtils.getBaseFolderURL() +"dy3/js/moment.min.js\"></script>\n"); - wholeScript.append("<script type=\"text/javascript\" src=\""+ AppUtils.getBaseFolderURL() +"dy3/js/interaction.min.js\"></script>\n"); - - wholeScript.append("<script type=\"text/javascript\">\n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("30min")) { - wholeScript.append("var click=2;\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) { - wholeScript.append("var click=3;\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("daily")) { - wholeScript.append("var click=3;\n"); - } else - wholeScript.append("var click=3;\n"); - //wholeScript.append(" var click=0;\n"); - wholeScript.append(" function downV3(event, g, context) { \n"); - wholeScript.append(" context.initializeMouseDown(event, g, context); \n"); - wholeScript.append(" if (event.altKey || event.shiftKey) { \n"); - wholeScript.append(" var minDate = g.xAxisRange()[0]; \n"); - wholeScript.append(" var maxDate = g.xAxisRange()[1]; \n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("daily")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*24)) > 6) \n"); - wholeScript.append(" Dygraph.startZoom(event, g, context); \n"); - } else if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) > 6) \n"); - wholeScript.append(" Dygraph.startZoom(event, g, context); \n"); - } else if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("30min")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*2)) > 6) \n"); - wholeScript.append(" Dygraph.startZoom(event, g, context); \n"); - - } else { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) > 6) \n"); - wholeScript.append(" Dygraph.startZoom(event, g, context); \n"); - } - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("30min")) { - wholeScript.append(" click=2;\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) { - wholeScript.append(" click=3;\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("daily")) { - wholeScript.append(" click=3;\n"); - } else - wholeScript.append(" click=3;\n"); - wholeScript.append(" } else if (event.ctrlKey) {\n"); - - - wholeScript.append(" click++;\n"); - wholeScript.append(" if(click == 1)\n"); - wholeScript.append(" zoom_custom(3600);\n"); - wholeScript.append(" else if(click == 2)\n"); - wholeScript.append(" zoom_custom(12*3600);\n"); - wholeScript.append(" else if(click == 3)\n"); - wholeScript.append(" zoom_custom(86400);\n"); - wholeScript.append(" else if (click == 4)\n"); - wholeScript.append(" zoom_custom(7*86400);\n"); - wholeScript.append(" else if (click == 5)\n"); - wholeScript.append(" zoom_custom(30*86400);\n"); - wholeScript.append(" else if (click == 6)\n"); - wholeScript.append(" zoom_custom(90*86400);\n"); - wholeScript.append(" else if (click == 7)\n"); - wholeScript.append(" zoom_custom(180*86400);\n"); - wholeScript.append(" else if (click == 8)\n"); - wholeScript.append(" zoom_custom(365*86400);\n"); - wholeScript.append(" else if (click == 10)\n"); - wholeScript.append(" zoom_custom(5*365*86400);\n"); - wholeScript.append(" else { \n"); - wholeScript.append(" reset();\n"); - wholeScript.append(" }\n"); - //wholeScript.append(" \n"); - wholeScript.append(" } else {\n"); - wholeScript.append(" Dygraph.startPan(event, g, context); \n"); - wholeScript.append(" } \n"); - wholeScript.append(" } \n"); - wholeScript.append("</script>\n "); - wholeScript.append("<style type=\"text/css\">\n"); - wholeScript.append(".annotation {\n"); - wholeScript.append("}"); - wholeScript.append(".dygraph-title {\n"); - wholeScript.append("color: black;\n"); - wholeScript.append("font-weight:bold; \n"); - wholeScript.append("}\n"); - wholeScript.append(".dygraph-axis-label-x { "); - wholeScript.append("-webkit-transform:rotate(-0deg);"); - wholeScript.append("display:block;"); - /*position:absolute; - right:-5px; - top:15px;*/ - wholeScript.append("}\n"); - - int widthInt = 0; - if(nvl(width).length() > 0) { - try { - widthInt = new Integer(width).intValue(); - } catch(Exception ex) { - if(width.endsWith("px")) { - try { - widthInt = new Integer(width.substring(0, width.indexOf("px"))); - } catch (Exception ex1) { - widthInt = 700; - } - } else { - widthInt = 700; - } - } - } else widthInt = 700; - - wholeScript.append(".dygraph-legend {\n"); - wholeScript.append(" left: "+(widthInt-200)+"px !important;\n"); - wholeScript.append(" top: 5px !important;\n"); - wholeScript.append("}\n"); - - wholeScript.append(".nodatadiv {\n"); - wholeScript.append(" display: table-cell;\n"); - wholeScript.append(" width: 700px;\n"); - wholeScript.append(" height:370px;\n"); - wholeScript.append(" text-align:center;\n"); - wholeScript.append(" vertical-align: middle;\n"); - wholeScript.append("}\n"); - wholeScript.append(".nodatainner {\n"); - wholeScript.append(" padding: 10px;\n"); - wholeScript.append("}\n"); - - wholeScript.append("canvas {\n"); - wholeScript.append(" -webkit-touch-callout: none; \n"); - wholeScript.append(" -webkit-user-select: none;\n"); - wholeScript.append(" -khtml-user-select: none;\n"); - wholeScript.append(" -moz-user-select: none;\n"); - wholeScript.append(" user-select: none;\n"); - wholeScript.append(" user-select: none;\n"); - wholeScript.append(" outline: none;\n"); - wholeScript.append(" -webkit-tap-highlight-color: rgba(255, 255, 255, 0); /* mobile webkit */\n"); - wholeScript.append("}\n"); - wholeScript.append("</style>\n"); - wholeScript.append("</head>\n"); - wholeScript.append("<body> \n"); - -/* if(showTitle) - wholeScript.append(" <p align=\"center\"><b> " + (AppUtils.nvl(reportRuntime.getReportTitle()).length()>0?reportRuntime.getReportTitle():reportRuntime.getReportName()) + "</b></p>\n"); -*/ - wholeScript.append(" <table>\n"); - if(showTitle) { - wholeScript.append(" <tr> \n "); - wholeScript.append(" <td> \n "); - wholeScript.append(" <div class=\"dygraph-label dygraph-title\" align=\"center\">"+title+"</div> \n"); - wholeScript.append(" </td> \n "); - } - - wholeScript.append(" </tr> \n "); - - wholeScript.append(" <tr> \n "); - wholeScript.append(" <td> \n "); - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()<=0 || reportRuntime.getLegendPosition().equals("top")) { - wholeScript.append(" <div id=\"labelDiv"+reportRuntime.getReportID()+"\"></div>\n"); - } - wholeScript.append(" <div id=\"message"+reportRuntime.getReportID()+"\"></div> \n"); - wholeScript.append(" </td> \n "); - - wholeScript.append(" </tr> \n "); - wholeScript.append(" <tr>\n"); - wholeScript.append(" <td>\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(" <div id=\"div_g"+reportRuntime.getReportID()+"\" style=\"width:"+ (widthInt-250)+ "px; \n" ); - } else { - wholeScript.append(" <div id=\"div_g"+reportRuntime.getReportID()+"\" style=\"width:"+ (widthInt)+ "px; \n" ); - } - wholeScript.append(" height:"+ heightInt +"px;\"></div> \n"); - wholeScript.append(" </td>\n"); - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { - wholeScript.append(" <td valign=\"top\">\n"); - wholeScript.append(" <div id=\"labelDiv3716\" valign=\"top\" style=\"width:250px;height:"+ heightInt +"px;\"></div>\n"); - wholeScript.append(" </td>\n"); - } - wholeScript.append(" </tr>\n"); - if(anomalyRec > 0) { - wholeScript.append(" <tr>\n"); - wholeScript.append(" <td>\n"); - wholeScript.append(" <table>\n"); - wholeScript.append(" <tr>\n"); - wholeScript.append(" <td align=\"center\"><font size=\"2px\"><B><align=\"center\">Anomaly Description</align></B></font></td>\n"); - wholeScript.append(" </tr>\n"); - wholeScript.append(" <tr>\n"); - wholeScript.append(" <td><div id=\"list"+reportRuntime.getReportID()+"\" style=\"width:" + widthInt + "px; height:50px;\"></div></td>\n" ); - wholeScript.append(" </tr>\n"); - wholeScript.append(" </table>\n"); - wholeScript.append(" </td>\n"); - wholeScript.append(" </tr>\n"); - } - wholeScript.append(" </table>\n"); - - wholeScript.append(" <script type=\"text/javascript\">\n"); - wholeScript.append(" Dygraph.addEvent(document, \"mousewheel\", function() { lastClickedGraph = null; });\n"); - wholeScript.append(" Dygraph.addEvent(document, \"click\", function() { lastClickedGraph = null; });\n"); - wholeScript.append(" var data = []; \n"); - wholeScript.append(" data = [\n "); - wholeScript.append( dataStrBuf.toString()); - wholeScript.append(" ];\n"); - wholeScript.append(" if(data.length > 0 ) { \n"); - wholeScript.append(" var orig_range = [ data[0][0].valueOf(), data[data.length - 1][0].valueOf() ];\n"); - if(!timeCharts) { - wholeScript.append(" function nameAnnotation(ann) { \n"); - wholeScript.append(" return ann.shortText; \n"); - //wholeScript.append(" var m = moment(ann.x);\n"); - //wholeScript.append(" return \"(\" + ann.series + \", \" + m.format(\"YYYY-MM-DD HH\"); + \")\"; \n"); - wholeScript.append(" }\n"); - wholeScript.append(" anns = [];\n"); - } - wholeScript.append(" var graph_initialized = false;\n"); - wholeScript.append(" if(navigator.platform == 'iPad') { "); - wholeScript.append(" g = new Dygraph(\n"); - wholeScript.append(" document.getElementById(\"div_g"+reportRuntime.getReportID()+"\"),\n"); - //data here - /*wholeScript.append(" [\n"); - wholeScript.append(dataStrBuf.toString()); - wholeScript.append(" ],\n");*/ - wholeScript.append(" data , \n"); - wholeScript.append(" {\n"); - - //Labels here - - dct = null; - StringBuffer labelStrBuf = new StringBuffer(""); - StringBuffer colorsStrBuf = new StringBuffer(""); - StringBuffer visibilityStrBuf = new StringBuffer(""); - int countChartValues = 0; - 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().equals("anomaly_text")) { - countChartValues++; - labelStrBuf.append("'"+ dct.getDisplayName()+"',"); - if(!AppUtils.nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)) - colorsStrBuf.append("'"+ AppUtils.nvl(dct.getChartColor())+"',"); - visibilityStrBuf.append("true,"); - } - } - } - if(labelStrBuf.indexOf(",")!=-1) { - labelStrBuf.deleteCharAt(labelStrBuf.lastIndexOf(",")); - visibilityStrBuf.deleteCharAt(visibilityStrBuf.lastIndexOf(",")); - } - if(colorsStrBuf.indexOf(",")!=-1) - colorsStrBuf.deleteCharAt(colorsStrBuf.lastIndexOf(",")); - //if(showTitle) - //wholeScript.append("title: '" + (AppUtils.nvl(reportRuntime.getReportTitle()).length()>0?reportRuntime.getReportTitle():reportRuntime.getReportName()) + "',\n"); - wholeScript.append("maxNumberWidth:6,\n"); - wholeScript.append("xAxisHeight: 70,\n"); - wholeScript.append("yAxisLabelWidth: 70,\n"); - wholeScript.append("xAxisLabelWidth: 45,\n"); - wholeScript.append("axes: {\n"); - wholeScript.append("x: {\n"); - wholeScript.append(" axisLabelFormatter: function(d, gran) {\n"); - wholeScript.append(" var month = d.getMonth()+1;\n"); - wholeScript.append(" var day = d.getDate();\n"); - wholeScript.append(" var year = d.getFullYear();\n"); - wholeScript.append(" var hour = d.getHours();\n"); - wholeScript.append(" var minutes = d.getMinutes();\n"); - wholeScript.append(" var seconds = d.getSeconds();\n"); - wholeScript.append(" var wholeString = Dygraph.zeropad(month)+'/'+Dygraph.zeropad(day);\n"); - // wholeScript.append(" if(hour >= 0 && minutes > 0 && seconds > 0) {\n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes)+':'+Dygraph.zeropad(seconds);\n"); - //wholeScript.append(" } else if (hour >= 0 && minutes > 0 && seconds == 0) {\n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).length()==0 || AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) - wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes);\n"); - //wholeScript.append(" } else if (hour >= 0 && (minutes >= 0 && seconds > 0)) {\n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes)+':'+Dygraph.zeropad(seconds);\n"); - //wholeScript.append(" } else if (hour >= 0) { \n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour); \n"); - //wholeScript.append(" } \n"); - wholeScript.append(" return wholeString; \n"); - wholeScript.append(" },\n"); - wholeScript.append(" ticker: function (a, b, pixels, opts, dygraph, vals) { \n "); - wholeScript.append(" if(((b-a)/(1000*60*60)) <= 6) { \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.THIRTY_MINUTELY, opts, dygraph); \n"); - wholeScript.append(" } else if(((b-a)/(1000*60*60)) <= 12) { \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.HOURLY, opts, dygraph); \n"); - wholeScript.append(" } else if (((b-a)/(1000*60*60)) <= 25) \n "); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.TWO_HOURLY, opts, dygraph); \n "); - wholeScript.append(" else if(((b-a)/(1000*60*60)) <= 78) \n "); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.SIX_HOURLY, opts, dygraph); \n "); - wholeScript.append(" else if(((b-a)/(1000*60*60*24)) <= 12)\n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.DAILY, opts, dygraph); \n"); - wholeScript.append(" else if(((b-a)/(1000*60*60*24)) <= 90) \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.WEEKLY, opts, dygraph); \n"); - wholeScript.append(" else \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.MONTHLY, opts, dygraph); \n"); - wholeScript.append(" }, \n"); - wholeScript.append(" valueFormatter: function(ms) { \n"); - wholeScript.append(" return new Date(ms).strftime(\"%m/%d/%Y %H:%M\"); \n"); - wholeScript.append( " }\n" ); - wholeScript.append(" }\n"); - wholeScript.append("},\n"); - wholeScript.append(" interactionModel : { \n"); - wholeScript.append(" 'mousedown' : downV4,\n"); - wholeScript.append(" touchstart : newDygraphTouchstart,\n"); - wholeScript.append(" touchend : Dygraph.defaultInteractionModel.touchend,\n"); - wholeScript.append(" touchmove : Dygraph.defaultInteractionModel.touchmove\n"); - //wholeScript.append(" 'dblclick' : dblClickV3,\n"); - //wholeScript.append(" 'mousewheel' : scrollV3\n"); - - /*wholeScript.append(" 'mousedown' : downV3,\n"); - wholeScript.append(" 'mousemove' : moveV3,\n"); - wholeScript.append(" 'mouseup' : upV3,\n"); - wholeScript.append(" 'click' : clickV3,\n"); - wholeScript.append(" 'dblclick' : dblClickV3,\n"); - wholeScript.append(" 'mousewheel' : scrollV3\n");*/ - wholeScript.append("},\n"); - /*wholeScript.append(" zoomCallback: function(minDate, maxDate, yRanges) { \n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("daily")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*24)) < 6) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(6*24*60);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) <= 6) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(360);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("30min")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) <= 3) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(180);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("weekly")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*24)) < 7) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(7*24*60);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } - wholeScript.append(" } else {\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel : {\n"); - wholeScript.append(" 'mousedown' : downV3,\n"); - wholeScript.append(" 'mousemove' : moveV3,\n"); - wholeScript.append(" 'mouseup' : upV3,\n"); - wholeScript.append(" 'click' : clickV3,\n"); - wholeScript.append(" 'dblclick' : dblClickV3,\n"); - wholeScript.append(" 'mousewheel' : scrollV3\n"); - wholeScript.append(" }\n"); - wholeScript.append(" });\n"); - wholeScript.append(" } \n"); - wholeScript.append(" } ,\n");*/ - wholeScript.append("dateWindow: ["+minDate+", "+maxDate+"],\n"); - wholeScript.append("labels: ["+ labelStrBuf +"],\n"); - wholeScript.append("labelsDiv: \"labelDiv"+reportRuntime.getReportID()+"\",\n"); - wholeScript.append("labelsShowZeroValues: true,\n"); - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { - wholeScript.append("labelsSeparateLines: true,\n"); - } - wholeScript.append("labelsDivWidth: 200,\n"); - - wholeScript.append("animatedZooms: true,\n"); - wholeScript.append("strokeWidth: 3.0,\n"); - wholeScript.append("strokeBorderWidth: 2.0,\n"); - /*wholeScript.append(" labelsDivStyles: { \n"); - wholeScript.append(" 'backgroundColor': 'rgba(200, 200, 255, 0.75)',\n"); - wholeScript.append(" 'padding': '4px',\n"); - wholeScript.append(" 'border': '1px solid black',\n"); - wholeScript.append(" 'borderRadius': '10px',\n"); - wholeScript.append(" 'boxShadow': '4px 4px 4px #888',\n"); - wholeScript.append(" 'width': '50px'\n"); - wholeScript.append("}, \n"); - */ - wholeScript.append("visibility: ["+ visibilityStrBuf +"],\n"); - if(colorsStrBuf.length() > 0 && colorsStrBuf.length()>=(countChartValues*3+5)) - wholeScript.append("colors: ["+ colorsStrBuf +"],\n"); - - wholeScript.append(" legend: 'always', \n"); - //Yaxis label here - wholeScript.append(" ylabel: '"+ chartLeftAxisLabel +"' , \n"); - - //Xaxis label here - wholeScript.append(" xlabel: '"+ xAxisLabel +"' , \n"); - - //draw points - wholeScript.append(" drawPoints: true, \n"); - - //stacked graph - wholeScript.append(" stackedGraph: false, \n"); - - dct = null; - for (Iterator iter = l.iterator(); iter.hasNext();) { - dct = (DataColumnType) iter.next(); - if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { - if(!AppUtils.nvl(dct.getDisplayName()).toLowerCase().equals("anomaly_text")) { - if(dct.getChartSeq()!=null && dct.getChartSeq() >=0) { - wholeScript.append(" '"+ dct.getDisplayName() + "': {\n"); - if(AppUtils.nvl(dct.getChartLineType()).length()>0) - wholeScript.append(" strokePattern: Dygraph.DASHED_LINE,\n"); - if(dct.isIsRangeAxisFilled()!=null && dct.isIsRangeAxisFilled().booleanValue()) { - wholeScript.append(" fillGraph: true\n"); - } - wholeScript.append(" },\n"); - } - } - } - } - -/* //each labels - wholeScript.append(" 'Forecast': {\n"); - - //if dashed line - wholeScript.append(" strokePattern: Dygraph.DASHED_LINE,\n"); - - //if fillable - wholeScript.append(" fillGraph: true\n"); - - // close each labels - wholeScript.append(" }\n"); -*/ - // callback method - if(anomalyRec > 0) { - wholeScript.append(" drawCallback: function(g, is_initial) { \n"); - wholeScript.append(" if (is_initial) { \n"); - wholeScript.append(" graph_initialized = true; \n"); - wholeScript.append(" if (anns.length > 0) { \n"); - wholeScript.append(" g.setAnnotations(anns); \n"); - wholeScript.append(" }\n"); - wholeScript.append(" }\n"); - - wholeScript.append(" var anns1 = g.annotations();\n"); - //wholeScript.append(" var html = \"\";\n"); - wholeScript.append(" var html = \"<select id='x' size='1' style='width: "+ widthInt +"px; font-family : courier; font-size:8pt; font-weight:bold;'>\";\n"); - wholeScript.append(" for (var i = anns1.length-1; i >= 0 ; i--) {\n"); - wholeScript.append(" var name = nameAnnotation(anns1[i]);\n"); - //wholeScript.append(" html += \"<span id='\" + name + \"'>\"\n"); - wholeScript.append(" if(i==anns1.length-1)\n"); - wholeScript.append(" html += \"<option value='\" + name + \"' selected ><font size=1>\" \n"); - wholeScript.append(" else \n"); - wholeScript.append(" html += \"<option value='\" + name + \"'><font size=1>\" \n"); - wholeScript.append(" html += name \n"); - //wholeScript.append(" html += name + \": \" + (anns1[i].shortText || '(icon)')\n"); - //wholeScript.append(" html += \" -> \" + anns1[i].text + \"</span><br/>\";\n"); - wholeScript.append(" html += \" : \" + anns1[i].text + \"</font></option>\";\n"); - wholeScript.append(" }\n"); - wholeScript.append(" html += \"</select>\" \n"); - wholeScript.append(" document.getElementById(\"list"+reportRuntime.getReportID()+"\").innerHTML = html;\n"); - wholeScript.append(" }\n"); - - - wholeScript.append(" }\n"); - wholeScript.append(" )\n"); - - //push annotations - wholeScript.append(annotationsStrBuf.toString()); - - wholeScript.append(" if (graph_initialized) {\n"); - wholeScript.append(" g.setAnnotations(anns);\n"); - wholeScript.append(" } \n"); - //upate handler script - - wholeScript.append(" var saveBg = '';\n"); - wholeScript.append(" var num = 0;\n"); - wholeScript.append(" g.updateOptions( {\n"); - wholeScript.append(" annotationMouseOverHandler: function(ann) { \n"); - //wholeScript.append(" document.getElementById(nameAnnotation(ann)).style.fontWeight = 'bold';\n"); - //wholeScript.append(" saveBg = ann.div.style.backgroundColor;\n"); - //wholeScript.append(" ann.div.style.backgroundColor = '#ddd';\n"); - wholeScript.append(" var selectobject = document.getElementById(\"x\");\n"); - wholeScript.append(" for(var i=0; i<selectobject.length;i++) {\n "); - wholeScript.append(" if(selectobject.options[i].value == nameAnnotation(ann)) {\n "); - wholeScript.append(" selectobject.options[i].selected = true; \n "); - wholeScript.append(" } "); - wholeScript.append(" } "); - - wholeScript.append(" },\n"); - wholeScript.append(" annotationMouseOutHandler: function(ann) {\n"); - wholeScript.append(" document.getElementById(nameAnnotation(ann)).style.fontWeight = 'normal';\n"); - wholeScript.append(" ann.div.style.backgroundColor = saveBg;\n"); - //wholeScript.append(" var selectobject = document.getElementById(\"x\");\n"); - //wholeScript.append(" for(var i=0; i<selectobject.length;i++) {\n "); - //wholeScript.append(" if(selectobject.options[i].value == nameAnnotation(ann)) {\n "); - //wholeScript.append(" selectobject.options[i].selected = false; \n "); - //wholeScript.append(" } "); - //wholeScript.append(" } "); - - wholeScript.append(" }\n"); - } - wholeScript.append(" });\n"); - - //Other devices - wholeScript.append("} else { \n"); - - wholeScript.append(" g = new Dygraph(\n"); - wholeScript.append(" document.getElementById(\"div_g"+reportRuntime.getReportID()+"\"),\n"); - //data here - /*wholeScript.append(" [\n"); - wholeScript.append(dataStrBuf.toString()); - wholeScript.append(" ],\n");*/ - wholeScript.append(" data , \n"); - wholeScript.append(" {\n"); - - //Labels here - - dct = null; - labelStrBuf = new StringBuffer(""); - colorsStrBuf = new StringBuffer(""); - visibilityStrBuf = new StringBuffer(""); - countChartValues = 0; - 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().equals("anomaly_text")) { - countChartValues++; - labelStrBuf.append("'"+ dct.getDisplayName()+"',"); - if(!AppUtils.nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND)) - colorsStrBuf.append("'"+ AppUtils.nvl(dct.getChartColor())+"',"); - visibilityStrBuf.append("true,"); - } - } - } - if(labelStrBuf.indexOf(",")!=-1) { - labelStrBuf.deleteCharAt(labelStrBuf.lastIndexOf(",")); - visibilityStrBuf.deleteCharAt(visibilityStrBuf.lastIndexOf(",")); - } - if(colorsStrBuf.indexOf(",")!=-1) - colorsStrBuf.deleteCharAt(colorsStrBuf.lastIndexOf(",")); - //if(showTitle) - //wholeScript.append("title: '" + (AppUtils.nvl(reportRuntime.getReportTitle()).length()>0?reportRuntime.getReportTitle():reportRuntime.getReportName()) + "',\n"); - wholeScript.append("maxNumberWidth:6,\n"); - wholeScript.append("xAxisHeight: 70,\n"); - wholeScript.append("yAxisLabelWidth: 70,\n"); - wholeScript.append("xAxisLabelWidth: 45,\n"); - wholeScript.append("axes: {\n"); - wholeScript.append("x: {\n"); - wholeScript.append(" axisLabelFormatter: function(d, gran) {\n"); - wholeScript.append(" var month = d.getMonth()+1;\n"); - wholeScript.append(" var day = d.getDate();\n"); - wholeScript.append(" var year = d.getFullYear();\n"); - wholeScript.append(" var hour = d.getHours();\n"); - wholeScript.append(" var minutes = d.getMinutes();\n"); - wholeScript.append(" var seconds = d.getSeconds();\n"); - wholeScript.append(" var wholeString = Dygraph.zeropad(month)+'/'+Dygraph.zeropad(day);\n"); - // wholeScript.append(" if(hour >= 0 && minutes > 0 && seconds > 0) {\n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes)+':'+Dygraph.zeropad(seconds);\n"); - //wholeScript.append(" } else if (hour >= 0 && minutes > 0 && seconds == 0) {\n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).length()==0 || AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) - wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes);\n"); - //wholeScript.append(" } else if (hour >= 0 && (minutes >= 0 && seconds > 0)) {\n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour) + ':'+Dygraph.zeropad(minutes)+':'+Dygraph.zeropad(seconds);\n"); - //wholeScript.append(" } else if (hour >= 0) { \n"); - //wholeScript.append(" wholeString += ' ' + Dygraph.zeropad(hour); \n"); - //wholeScript.append(" } \n"); - wholeScript.append(" return wholeString; \n"); - wholeScript.append(" },\n"); - wholeScript.append(" ticker: function (a, b, pixels, opts, dygraph, vals) { \n "); - wholeScript.append(" if(((b-a)/(1000*60*60)) <= 6) { \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.THIRTY_MINUTELY, opts, dygraph); \n"); - wholeScript.append(" } else if(((b-a)/(1000*60*60)) <= 12) { \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.HOURLY, opts, dygraph); \n"); - wholeScript.append(" } else if (((b-a)/(1000*60*60)) <= 25) \n "); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.TWO_HOURLY, opts, dygraph); \n "); - wholeScript.append(" else if(((b-a)/(1000*60*60)) <= 78) \n "); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.SIX_HOURLY, opts, dygraph); \n "); - wholeScript.append(" else if(((b-a)/(1000*60*60*24)) <= 12)\n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.DAILY, opts, dygraph); \n"); - wholeScript.append(" else if(((b-a)/(1000*60*60*24)) <= 90) \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.WEEKLY, opts, dygraph); \n"); - wholeScript.append(" else \n"); - wholeScript.append(" return Dygraph.getDateAxis(a, b, Dygraph.MONTHLY, opts, dygraph); \n"); - wholeScript.append(" }, \n"); - wholeScript.append(" valueFormatter: function(ms) { \n"); - wholeScript.append(" return new Date(ms).strftime(\"%m/%d/%Y %H:%M\"); \n"); - wholeScript.append( " }\n" ); - wholeScript.append(" }\n"); - wholeScript.append("},\n"); - wholeScript.append(" interactionModel : { \n"); - - wholeScript.append(" 'mousedown' : downV3,\n"); - wholeScript.append(" 'mousemove' : moveV3,\n"); - wholeScript.append(" 'mouseup' : upV3,\n"); - wholeScript.append(" 'click' : clickV3,\n"); - wholeScript.append(" 'dblclick' : dblClickV3,\n"); - wholeScript.append(" 'mousewheel' : scrollV3\n"); - wholeScript.append("},\n"); - wholeScript.append(" zoomCallback: function(minDate, maxDate, yRanges) { \n"); - if(AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("daily")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*24)) < 6) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(6*24*60);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("hourly")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) <= 6) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(360);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("30min")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60)) <= 3) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(180);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } else if (AppUtils.nvl(reportRuntime.getTimeAxisType()).equals("weekly")) { - wholeScript.append(" if(((maxDate-minDate)/(1000*60*60*24)) < 7) { \n"); - wholeScript.append(" maxDate = new Date(minDate).setMinutes(7*24*60);\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel: {},\n"); - wholeScript.append(" dateWindow: [minDate, maxDate]\n"); - wholeScript.append(" });\n"); - } - wholeScript.append(" } else {\n"); - wholeScript.append(" g.updateOptions({\n"); - wholeScript.append(" interactionModel : {\n"); - wholeScript.append(" 'mousedown' : downV3,\n"); - wholeScript.append(" 'mousemove' : moveV3,\n"); - wholeScript.append(" 'mouseup' : upV3,\n"); - wholeScript.append(" 'click' : clickV3,\n"); - wholeScript.append(" 'dblclick' : dblClickV3,\n"); - wholeScript.append(" 'mousewheel' : scrollV3\n"); - wholeScript.append(" }\n"); - wholeScript.append(" });\n"); - wholeScript.append(" } \n"); - wholeScript.append(" } ,\n"); - wholeScript.append("dateWindow: ["+minDate+", "+maxDate+"],\n"); - wholeScript.append("labels: ["+ labelStrBuf +"],\n"); - wholeScript.append("labelsDiv: \"labelDiv"+reportRuntime.getReportID()+"\",\n"); - wholeScript.append("labelsShowZeroValues: true,\n"); - if(AppUtils.nvl(reportRuntime.getLegendPosition()).length()>=0 && reportRuntime.getLegendPosition().equals("right")) { - wholeScript.append("labelsSeparateLines: true,\n"); - } - wholeScript.append("labelsDivWidth: 200,\n"); - - - wholeScript.append("animatedZooms: true,\n"); - wholeScript.append("strokeWidth: 3.0,\n"); - wholeScript.append("strokeBorderWidth: 2.0,\n"); - - /*wholeScript.append(" labelsDivStyles: { \n"); - wholeScript.append(" 'backgroundColor': 'rgba(200, 200, 255, 0.75)',\n"); - wholeScript.append(" 'padding': '4px',\n"); - wholeScript.append(" 'border': '1px solid black',\n"); - wholeScript.append(" 'borderRadius': '10px',\n"); - wholeScript.append(" 'boxShadow': '4px 4px 4px #888',\n"); - wholeScript.append(" 'width': '50px'\n"); - wholeScript.append("}, \n"); - */ - wholeScript.append("visibility: ["+ visibilityStrBuf +"],\n"); - if(colorsStrBuf.length() > 0 && colorsStrBuf.length()>=(countChartValues*3+5)) - wholeScript.append("colors: ["+ colorsStrBuf +"],\n"); - - wholeScript.append(" legend: 'always', \n"); - //Yaxis label here - wholeScript.append(" ylabel: '"+ chartLeftAxisLabel +"' , \n"); - - //Xaxis label here - wholeScript.append(" xlabel: '"+ xAxisLabel +"' , \n"); - - - //draw points - wholeScript.append(" drawPoints: true, \n"); - - //stacked graph - wholeScript.append(" stackedGraph: false, \n"); - - dct = null; - for (Iterator iter = l.iterator(); iter.hasNext();) { - dct = (DataColumnType) iter.next(); - if(!(nvl(dct.getColOnChart()).equals(AppConstants.GC_LEGEND))) { - if(!AppUtils.nvl(dct.getDisplayName()).toLowerCase().equals("anomaly_text")) { - if(dct.getChartSeq()!=null && dct.getChartSeq() >=0) { - wholeScript.append(" '"+ dct.getDisplayName() + "': {\n"); - if(AppUtils.nvl(dct.getChartLineType()).length()>0) - wholeScript.append(" strokePattern: Dygraph.DASHED_LINE,\n"); - if(dct.isIsRangeAxisFilled()!=null && dct.isIsRangeAxisFilled().booleanValue()) { - wholeScript.append(" fillGraph: true\n"); - } - wholeScript.append(" },\n"); - } - } - } - } - -/* //each labels - wholeScript.append(" 'Forecast': {\n"); - - //if dashed line - wholeScript.append(" strokePattern: Dygraph.DASHED_LINE,\n"); - - //if fillable - wholeScript.append(" fillGraph: true\n"); - - // close each labels - wholeScript.append(" }\n"); -*/ - // callback method - if(anomalyRec > 0) { - wholeScript.append(" drawCallback: function(g, is_initial) { \n"); - wholeScript.append(" if (is_initial) { \n"); - wholeScript.append(" graph_initialized = true; \n"); - wholeScript.append(" if (anns.length > 0) { \n"); - wholeScript.append(" g.setAnnotations(anns); \n"); - wholeScript.append(" }\n"); - wholeScript.append(" }\n"); - - wholeScript.append(" var anns1 = g.annotations();\n"); - //wholeScript.append(" var html = \"\";\n"); - wholeScript.append(" var html = \"<select id='x' size='1' style='width: "+ widthInt +"px; font-family : courier; font-size:8pt; font-weight:bold;'>\";\n"); - wholeScript.append(" for (var i = anns1.length-1; i >= 0 ; i--) {\n"); - wholeScript.append(" var name = nameAnnotation(anns1[i]);\n"); - //wholeScript.append(" html += \"<span id='\" + name + \"'>\"\n"); - wholeScript.append(" if(i==anns1.length-1)\n"); - wholeScript.append(" html += \"<option value='\" + name + \"' selected ><font size=1>\" \n"); - wholeScript.append(" else \n"); - wholeScript.append(" html += \"<option value='\" + name + \"'><font size=1>\" \n"); - wholeScript.append(" html += name \n"); - //wholeScript.append(" html += name + \": \" + (anns1[i].shortText || '(icon)')\n"); - //wholeScript.append(" html += \" -> \" + anns1[i].text + \"</span><br/>\";\n"); - wholeScript.append(" html += \" : \" + anns1[i].text + \"</font></option>\";\n"); - wholeScript.append(" }\n"); - wholeScript.append(" html += \"</select>\" \n"); - wholeScript.append(" document.getElementById(\"list"+reportRuntime.getReportID()+"\").innerHTML = html;\n"); - wholeScript.append(" }\n"); - - - wholeScript.append(" }\n"); - wholeScript.append(" )\n"); - - //push annotations - wholeScript.append(annotationsStrBuf.toString()); - - wholeScript.append(" if (graph_initialized) {\n"); - wholeScript.append(" g.setAnnotations(anns);\n"); - wholeScript.append(" } \n"); - //upate handler script - - wholeScript.append(" var saveBg = '';\n"); - wholeScript.append(" var num = 0;\n"); - wholeScript.append(" g.updateOptions( {\n"); - wholeScript.append(" annotationMouseOverHandler: function(ann) { \n"); - //wholeScript.append(" document.getElementById(nameAnnotation(ann)).style.fontWeight = 'bold';\n"); - //wholeScript.append(" saveBg = ann.div.style.backgroundColor;\n"); - //wholeScript.append(" ann.div.style.backgroundColor = '#ddd';\n"); - wholeScript.append(" var selectobject = document.getElementById(\"x\");\n"); - wholeScript.append(" for(var i=0; i<selectobject.length;i++) {\n "); - wholeScript.append(" if(selectobject.options[i].value == nameAnnotation(ann)) {\n "); - wholeScript.append(" selectobject.options[i].selected = true; \n "); - wholeScript.append(" } "); - wholeScript.append(" } "); - - wholeScript.append(" },\n"); - wholeScript.append(" annotationMouseOutHandler: function(ann) {\n"); - //wholeScript.append(" document.getElementById(nameAnnotation(ann)).style.fontWeight = 'normal';\n"); - wholeScript.append(" ann.div.style.backgroundColor = saveBg;\n"); - //wholeScript.append(" var selectobject = document.getElementById(\"x\");\n"); - //wholeScript.append(" for(var i=0; i<selectobject.length;i++) {\n "); - //wholeScript.append(" if(selectobject.options[i].value == nameAnnotation(ann)) {\n "); - //wholeScript.append(" selectobject.options[i].selected = false; \n "); - //wholeScript.append(" } "); - //wholeScript.append(" } "); - - wholeScript.append(" }\n"); - } - wholeScript.append(" });\n"); - - - wholeScript.append("} \n"); - //} - wholeScript.append("} else {\n"); - wholeScript.append("document.getElementById(\"message"+ reportRuntime.getReportID()+"\").display = \"none\";\n"); - wholeScript.append("document.getElementById(\"labelDiv"+ reportRuntime.getReportID()+"\").display=\"none\";\n"); - wholeScript.append("document.getElementById(\"div_g"+reportRuntime.getReportID()+"\").display=\"none\";\n"); - - wholeScript.append("document.getElementById(\"div_g"+reportRuntime.getReportID()+"\").innerHTML = \"<div id='noData'><b>No Data Available</b></div>\";\n"); - wholeScript.append("document.getElementById(\"div_g"+reportRuntime.getReportID()+"\").className=\"nodatadiv\";\n"); - wholeScript.append("document.getElementById(\"nodata\").className=\"nodatainner\";\n"); - if(!timeCharts) - wholeScript.append("document.getElementById(\"list"+reportRuntime.getReportID()+"\").display=\"none\";\n"); - wholeScript.append("}\n"); - wholeScript.append(" </script>\n"); - wholeScript.append(" </body>\n"); - wholeScript.append("</html>"); - - - } else if (chartType.equals(AppConstants.GT_SCATTER)) { - - wholeScript.append("<link href=\""+ AppUtils.getBaseFolderURL() +"d3/css/nv.d3.css\" rel=\"stylesheet\" type=\"text/css\">\n"); - wholeScript.append("<style>\n " + - " body { \n" + - " overflow-y:scroll; \n" + - " } \n" + - " text { \n" + - " font: 12px sans-serif; \n" + - " } \n" + - " tr.z-row-over > td.z-row-inner, tr.z-row-over > .z-cell {" + - " background-color: rgb(255, 255, 255); "+ - "} "+ - " svg { display: block; } " + - " #chart1 svg { \n" + - " height: 420px; \n" + - " width: 800px; \n" + - " min-width: 100px; \n" + - " min-height: 100px; \n" + - " } \n" + - - " </style> \n" ); - wholeScript.append("<body> \n"); - wholeScript.append("<div id=\"chart1\"><svg></svg></div>"); - //js files - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/d3.v2.js\"></script>\n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/nv.d3.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/tooltip.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/utils.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/legend.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/axis.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/distribution.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/scatter.js\"></script> \n"); - wholeScript.append("<script src=\""+ AppUtils.getBaseFolderURL() +"d3/js/models/scatterChart.js\"></script> \n"); - wholeScript.append("<script> \n"); - wholeScript.append("nv.addGraph(function() { \n" + - " var width1=900, height1=220; \n" + - " var chart = nv.models.scatterChart() \n" + - " .showDistX(true) \n" + - " .showDistY(true) \n" + - " .useVoronoi(true) \n" + - " .color(d3.scale.category10().range()); \n" + -/* " .width(width1) \n" + - " .height(height1); \n" + -*/ " chart.xAxis\n" + - " .axisLabel('" +legendColumnName + "')\n" + - " .tickFormat(d3.format('.02f'));\n" + - " chart.yAxis\n" + - " .axisLabel('" + chartLeftAxisLabel + "')\n" + - " .tickFormat(d3.format('.02f'));\n" + - " d3.select('#chart1 svg') \n" + - " .datum(getData()) \n" ); - if(animation) - wholeScript.append(" .transition().duration(1200) \n" ); -/* " .attr(\"width\", width1) \n" + - " .attr(\"height\", height1) \n" + -*/ wholeScript.append(" .call(chart); \n" + - " nv.utils.windowResize(chart.update);\n"+ - "return chart; \n" + - "}); \n"); - - String dateStr = ""; - Object uniqueElements [] = null; - TreeSet ts = new TreeSet(); - for (int i = 0; i < ds.getRowCount(); i++) { - dateStr = ds.getString(i, 2); - if(dateStr.length()>0) - ts.add(dateStr); - } - SortedSet s = Collections.synchronizedSortedSet(ts); - uniqueElements = s.toArray(); - - wholeScript.append(" function getData() { \n " + - " var data = [];\n "); - for (int i = 0; i < uniqueElements.length; i++) { - wholeScript.append(" data.push( {key:'"+ uniqueElements[i]+ "', values:[]})\n"); - } - - - for (int i = 0; i < ds.getRowCount(); i++) { - for (int k = 0; k < uniqueElements.length; k++) { - if(ds.getString(i, 2).equals(uniqueElements[k])) { - wholeScript.append("data["+k+"].values.push({x:"+ ds.getString(i, 1) +",y:"+ds.getString(i, 3) + ", size: Math.random() });\n"); - } - } - } - - wholeScript.append("return data; } </script></body>\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)<Integer.parseInt(level)) - dataStr.append("},\n"); - dataStr.append("\""+ mid +"\": { \n"); - } - - mid_old = mid; - level_old = level; - } - if(dataStr.toString().endsWith(",")) - dataStr.deleteCharAt(dataStr.lastIndexOf(",")); - dataStr.append("}\n"); - dataStr.append("}\n"); - try { - String formattedReportName = new HtmlStripper().stripSpecialCharacters(reportRuntime.getReportName()); - String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new java.util.Date()); - String filename=formattedReportName+formattedDate+user_id+".json"; - String filenamepath = AppUtils.getExcelTemplatePath()+"../../json/"+filename; - System.out.println("filenamepath " + filenamepath); - BufferedWriter out = new BufferedWriter(new FileWriter(filenamepath)); - out.write(dataStr.toString()); - out.close(); - request.getSession().setAttribute("jsonFileName", filename); - } catch (IOException e) { - e.printStackTrace(); - System.out.println("Exception "); - } - } else if (chartType.equals(AppConstants.GT_HIERARCHICAL)) { - - StringBuffer dataStr = new StringBuffer(""); - StringBuffer groupBuffer = new StringBuffer(""); - StringBuffer s = new StringBuffer(""); - dataStr.append("{"); - dataStr.append(" \"groups\":["); - - for (int i = 0; i < ds.getRowCount(); i++) { - if(ds.getString(i,"group_ind").equals("Y")) { - groupBuffer.append(" { \"name\": \""+ ds.getString(i,"ei1") +"\" },\n"); - } - - } - groupBuffer.deleteCharAt(groupBuffer.lastIndexOf(",")); - dataStr.append(groupBuffer.toString()); - dataStr.append("],"); - dataStr.append("\"nodes\":["); - int rowCount = ds.getRowCount(); - for (int i = 0; i < ds.getRowCount(); i++) { - s.append("{ \"name\": \""+ ds.getString(i,"ei1") +"\" , \"group\":"+ ds.getString(i,"groups") +", \"level\":2 }"); - if (i < (rowCount-1)) s.append(","); - dataStr.append(s); - s = new StringBuffer(""); - } - - dataStr.append("],"); - dataStr.append("\"links\":["); - for (int i = 0; i < ds.getRowCount(); i++) { - s.append("{ \"source\": "+ ds.getString(i,"source") +" , \"target\":"+ ds.getString(i,"target") +", \"value\":2 }"); - if (i < (rowCount-1)) s.append(","); - dataStr.append(s); - s = new StringBuffer(""); - } - dataStr.append("]}"); - try { - String formattedReportName = new HtmlStripper().stripSpecialCharacters(reportRuntime.getReportName()); - String formattedDate = new SimpleDateFormat("MMddyyyyHHmm").format(new java.util.Date()); - String filename=formattedReportName+formattedDate+user_id+".json"; - String filenamepath = AppUtils.getExcelTemplatePath()+"../../json/"+filename; - System.out.println("filenamepath " + filenamepath); - BufferedWriter out = new BufferedWriter(new FileWriter(filenamepath)); - out.write(dataStr.toString()); - out.close(); - request.getSession().setAttribute("jsonFileName", filename); - } catch (IOException e) { - e.printStackTrace(); - System.out.println("Exception "); - } - } - - } - } - try { - BufferedWriter out = new BufferedWriter(new FileWriter("test.txt")); - out.write(wholeScript.toString()); - out.close(); - } catch (IOException e) { - e.printStackTrace(); - System.out.println("Exception "); - } - return wholeScript.toString(); - } - - public String nvl(String s) { - return (s == null) ? "" : s; - } - - public String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - public static String nvls(String s) { - return (s == null) ? "" : s; - } - - public static String nvls(String s, String sDefault) { - return nvls(s).equals("") ? sDefault : s; - } - - public boolean getFlagInBoolean(String s) { - return nvl(s).toUpperCase().startsWith("Y") || nvl(s).toLowerCase().equals("true"); - } - - public DataSet loadChartData(String userId, HttpServletRequest request) throws RaptorException { - if (nvl(getChartType()).length() == 0) - return null; - //TODO: display chart function to be added. - //if (!getDisplayChart()) - // return null; - - String sql = null; - sql = generateChartSQL(userId, request); - logger.debug(EELFLoggerDelegate.debugLogger, ("SQL generated " + sql)); - String dbInfo = reportRuntime.getDBInfo(); - DataSet ds = ConnectionUtils.getDataSet(sql, dbInfo); - if(ds.getRowCount()<=0) { - logger.debug(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); - logger.debug(EELFLoggerDelegate.debugLogger, (getChartType().toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " DATA IS EMPTY" )); - logger.debug(EELFLoggerDelegate.debugLogger, ("QUERY - " + sql)); - logger.debug(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); - } - - return ds; - } // loadChartData - - public String generateChartSQL(String userId, HttpServletRequest request ) throws RaptorException { - List reportCols = reportRuntime.getAllColumns(); - List chartValueCols = getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, null); // parameter is 0 has this requires all columns. - String reportSQL = reportRuntime.getWholeSQL(); - - //Add order by clause - Pattern re1 = Pattern.compile("(^[\r\n]*|([\\s]))[Oo][Rr][Dd][Ee][Rr](.*?[^\r\n]*)[Bb][Yy]",Pattern.DOTALL); - //Pattern re1 = Pattern.compile("order(.*?[^\r\n]*)by", Pattern.DOTALL); - Matcher matcher = re1.matcher(reportSQL); - //Pattern re1 = Pattern.compile("(^[\r\n]*|([\\s]))[Oo][Rr][Dd][Ee][Rr][Tt](.*?[^\r\n]*)[Bb][Yy]",Pattern.DOTALL); - //int startPoint = sql.length()-30; - - reportSQL = reportSQL + " "; - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" SELECT "); - //reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ff][Rr][Oo][Mm]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" FROM "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" WHERE "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Nn]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" WHEN "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" AND "); - - if(!reportRuntime.getReportType().equals(AppConstants.RT_HIVE)) { - int startPoint = reportSQL.lastIndexOf(" FROM "); - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf(" from "); - } - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf("from "); - } - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf("FROM "); - } - - if (!matcher.find(startPoint)) { - reportSQL = reportSQL + " ORDER BY 1" ; - } - } - reportRuntime.setWholeSQL(reportSQL); - - logger.debug(EELFLoggerDelegate.debugLogger, (" *************************************************************************************** ")); - logger.debug(EELFLoggerDelegate.debugLogger, ("WHOLE_SQL" + reportSQL)); - logger.debug(EELFLoggerDelegate.debugLogger, (" *************************************************************************************** ")); - - 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); - String paramValue = nvl(formfield_value); - if(paramValue.length()>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<String,String>) 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<String> 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<String> enum1 = session.getAttributeNames(); - String attributeName = ""; - while(enum1.hasMoreElements()) { - attributeName = enum1.nextElement(); - if(attributeName.startsWith("parent_")) { - session.removeAttribute(attributeName); - } - } - session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); - session.removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID); - session.removeAttribute(AppConstants.SI_COLUMN_LOOKUP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REP_ID); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP); - session.removeAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP); - session.removeAttribute(AppConstants.SI_MAP); - session.removeAttribute(AppConstants.SI_MAP_OBJECT); - session.removeAttribute(AppConstants.SI_REPORT_DEFINITION); - session.removeAttribute(AppConstants.SI_REPORT_RUNTIME); - session.removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP); - session.removeAttribute(AppConstants.SI_REPORT_SCHEDULE); - session.removeAttribute(AppConstants.RI_REPORT_DATA); - session.removeAttribute(AppConstants.RI_CHART_DATA); - session.removeAttribute(AppConstants.SI_FORMFIELD_INFO); - session.removeAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO); - - } // clearReportRuntimeBackup - - - public 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartGen.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartGen.java deleted file mode 100644 index c395000e..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartGen.java +++ /dev/null @@ -1,73 +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.PrintWriter; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.List; - -import javax.servlet.http.HttpSession; - -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.DataSet; -import org.openecomp.portalsdk.analytics.util.Log; - -public class ChartGen extends org.openecomp.portalsdk.analytics.RaptorObject { - - public static String generateChart(String chartType, HttpSession session, DataSet ds, - String xText, String yLabelLeftAxis, String yLabelRightAxis, List yTextSeries, - List yTextColor, List yTextSeriesAxis, String groupText, String chartTitle, - PrintWriter pw,List columnValuesList, boolean hasCategoryAxis, boolean isMultiSeries, - List allColumnsList, String downloadFileName, boolean totalOnlyChart, int deviceType, HashMap additionalChartOptionsMap) { - return generateChart(chartType, session, ds, xText, yLabelLeftAxis, yLabelRightAxis, - yTextSeries, yTextColor, yTextSeriesAxis, groupText, chartTitle, pw, Globals - .getDefaultChartWidth(), Globals.getDefaultChartHeight(), columnValuesList, hasCategoryAxis, isMultiSeries, allColumnsList, downloadFileName,totalOnlyChart, deviceType, additionalChartOptionsMap); - } // generateChart - - public static String generateChart(String chartType, HttpSession session, DataSet ds, - String xText, String yLabelLeftAxis, String yLabelRightAxis, List yTextSeries, - List yTextColor, List yTextSeriesAxis, String groupText, String chartTitle, - PrintWriter pw, int width, int height, List columnValuesList, boolean hasCategoryAxis, boolean isMultiSeries, - List allColumnsList, String downloadFileName,boolean totalOnlyChart, int deviceType, HashMap additionalChartOptionsMap) { - try { - Class chartGenClass = null; - - - Class[] argumentTypes = { String.class, HttpSession.class, DataSet.class, - String.class, String.class, String.class, List.class, List.class, - List.class, String.class, String.class, PrintWriter.class, int.class, - int.class, List.class, boolean.class, boolean.class, List.class, - String.class, boolean.class, int.class, HashMap.class }; - - Method method = chartGenClass.getMethod("generateChart", argumentTypes); - Object[] arguments = { chartType, session, ds, xText, yLabelLeftAxis, - yLabelRightAxis, yTextSeries, yTextColor, yTextSeriesAxis, groupText, - chartTitle, pw, new Integer(width), new Integer(height), columnValuesList, new Boolean(hasCategoryAxis), new Boolean(isMultiSeries), allColumnsList, downloadFileName, new Boolean(totalOnlyChart), new Integer(deviceType), additionalChartOptionsMap }; - - return (String) method.invoke(chartGenClass, arguments); - } catch (Exception e) { - e.printStackTrace(); - Log.write("ERROR [ChartGen.generateChart] " + e.getMessage()); - return null; - } - } // generateChart - -} // ChartGen diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSON.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSON.java deleted file mode 100644 index 85f8dc8a..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSON.java +++ /dev/null @@ -1,448 +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; - -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 <FormFieldJSON> formFieldList; - private ArrayList <ChartColumnJSON> 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 <RangeAxisJSON> rangeAxisList; - private ArrayList <ArrayList<Row>> 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<FormFieldJSON> getFormFieldList() { - return formFieldList; - } - public void setFormFieldList(ArrayList<FormFieldJSON> 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<RangeAxisJSON> getRangeAxisList() { - return rangeAxisList; - } - public void setRangeAxisList(ArrayList<RangeAxisJSON> 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<Row> getRowList() { - return rowList; - } - public void setRowList(ArrayList<Row> rowList) { - this.rowList = rowList; - }*/ - - public ArrayList<ArrayList<Row>> getWholeList() { - return wholeList; - } - public void setWholeList(ArrayList<ArrayList<Row>> wholeList) { - this.wholeList = wholeList; - } - //private ArrayList<ColumnHeader> reportDataColumns; - //private ArrayList<Map<String,Object>> reportDataRows; - public ArrayList<ChartColumnJSON> getChartColumnJSONList() { - return chartColumnJSONList; - } - public void setChartColumnJSONList(ArrayList<ChartColumnJSON> 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 ""; - } - -} diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSONHelper.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSONHelper.java deleted file mode 100644 index d08626c1..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartJSONHelper.java +++ /dev/null @@ -1,1550 +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.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.ReportHandler; -import org.openecomp.portalsdk.analytics.model.base.ChartSeqComparator; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.ConnectionUtils; -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.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; -import org.openecomp.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 { - - 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<String, String> chartOptionsMap = new HashMap<String, String>(); - 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<String,String> chartOptionsMap = new HashMap<String, String>(); - 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<String,String> 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<DataColumnType> dcList = reportRuntime.getOnlyVisibleColumns(); - int countIndex = 0; - ArrayList<ChartColumnJSON> chartColumnJSONList = new ArrayList<ChartColumnJSON>(); - 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<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); - if(reportRuntime.getReportFormFields()!=null) { - formFieldJSONList = new ArrayList<FormFieldJSON>(reportRuntime.getReportFormFields().size()); - for (Iterator iter = reportRuntime.getReportFormFields().iterator(); iter.hasNext();) { - formFieldValues = new ArrayList<IdNameValue>(); - 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<DataColumnType> reportCols = reportRuntime.getAllColumns(); - boolean hasSeriesColumn = false; - //ArrayList<Item> - for (Iterator<DataColumnType> 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<DataColumnType> 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<RangeAxisJSON> rangeAxisJSONList = new ArrayList<RangeAxisJSON>(); - 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<ArrayList<Row>> wholeList = new ArrayList<ArrayList<Row>>(); - - ArrayList<Row> rowList = new ArrayList<Row>(); - if(showData) { - for (int i = 0; i < ds.getRowCount(); i++) { - rowList = new ArrayList<Row>(); - for (int j = 0; j<ds.getColumnCount(); j++) { - Row row = new Row(); - row.setColId(ds.getColumnName(j)); - row.setDisplayValue(ds.getString(i, j)); - row.setDataType(ds.getColumnType(j)); - rowList.add(row); - } - wholeList.add(rowList); - - } - - chartJSON.setWholeList(wholeList); - } - } - - - - - - } - } else { - // chart is not visible - chartJSON.setReportID(reportRuntime.getReportID()); - chartJSON.setReportName(reportRuntime.getReportName()); - chartJSON.setReportDescr(reportRuntime.getReportDescr()); - chartJSON.setReportTitle(reportRuntime.getReportTitle()); - chartJSON.setReportSubTitle(reportRuntime.getReportSubTitle()); - chartJSON.setChartAvailable(displayChart); - ChartTypeJSON chartTypeJSON = new ChartTypeJSON(); - chartTypeJSON.setIndex(0); - chartTypeJSON.setTitle(""); - chartTypeJSON.setValue(chartType); - chartJSON.setChartTypeJSON(chartTypeJSON); - } - //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(chartJSON); - } catch (Exception ex) { - ex.printStackTrace(); - - } - - return jsonInString; - } - - public String nvl(String s) { - return (s == null) ? "" : s; - } - - public String nvl(String s, String sDefault) { - return nvl(s).equals("") ? sDefault : s; - } - - public static String nvls(String s) { - return (s == null) ? "" : s; - } - - public static String nvls(String s, String sDefault) { - return nvls(s).equals("") ? sDefault : s; - } - - public boolean getFlagInBoolean(String s) { - return nvl(s).toUpperCase().startsWith("Y") || nvl(s).toLowerCase().equals("true"); - } - - public DataSet loadChartData(String userId, HttpServletRequest request) throws RaptorException { - if (nvl(getChartType()).length() == 0) - return null; - //TODO: display chart function to be added. - //if (!getDisplayChart()) - // return null; - - String sql = null; - sql = generateChartSQL(userId, request); - logger.debug(EELFLoggerDelegate.debugLogger, ("SQL generated " + sql)); - String dbInfo = reportRuntime.getDBInfo(); - DataSet ds = ConnectionUtils.getDataSet(sql, dbInfo); - if(ds.getRowCount()<=0) { - logger.info(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); - logger.info(EELFLoggerDelegate.debugLogger, (getChartType().toUpperCase()+" - " + "Report ID : " + reportRuntime.getReportID() + " DATA IS EMPTY")); - logger.info(EELFLoggerDelegate.debugLogger, ("QUERY - " + sql)); - logger.info(EELFLoggerDelegate.debugLogger, ("********************************************************************************")); - } - - return ds; - } // loadChartData - - public String generateChartSQL(String userId, HttpServletRequest request ) throws RaptorException { - List reportCols = reportRuntime.getAllColumns(); - List chartValueCols = getChartValueColumnsList(AppConstants.CHART_ALL_COLUMNS, null); // parameter is 0 has this requires all columns. - String reportSQL = reportRuntime.getWholeSQL(); - - //Add order by clause - Pattern re1 = Pattern.compile("(^[\r\n]*|([\\s]))[Oo][Rr][Dd][Ee][Rr](.*?[^\r\n]*)[Bb][Yy]",Pattern.DOTALL); - //Pattern re1 = Pattern.compile("order(.*?[^\r\n]*)by", Pattern.DOTALL); - Matcher matcher = re1.matcher(reportSQL); - //Pattern re1 = Pattern.compile("(^[\r\n]*|([\\s]))[Oo][Rr][Dd][Ee][Rr][Tt](.*?[^\r\n]*)[Bb][Yy]",Pattern.DOTALL); - //int startPoint = sql.length()-30; - - reportSQL = reportSQL + " "; - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ss][Ee][Ll][Ee][Cc][Tt]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" SELECT "); - //reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ff][Rr][Oo][Mm]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" FROM "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Rr][Ee]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" WHERE "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Ww][Hh][Ee][Nn]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" WHEN "); - reportSQL = Pattern.compile("(^[\r\n]*|([\\s]))[Aa][Nn][Dd]([\r\n]*|[\\s]*)",Pattern.DOTALL).matcher(reportSQL).replaceAll(" AND "); - - if(!reportRuntime.getReportType().equals(AppConstants.RT_HIVE)) { - int startPoint = reportSQL.lastIndexOf(" FROM "); - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf(" from "); - } - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf("from "); - } - if(startPoint <= 0) { - startPoint = reportSQL.lastIndexOf("FROM "); - } - - if (!matcher.find(startPoint)) { - reportSQL = reportSQL + " ORDER BY 1" ; - } - } - reportRuntime.setWholeSQL(reportSQL); - - logger.debug(EELFLoggerDelegate.debugLogger, (" *************************************************************************************** ")); - logger.debug(EELFLoggerDelegate.debugLogger, ("WHOLE_SQL" + reportSQL)); - logger.debug(EELFLoggerDelegate.debugLogger, (" *************************************************************************************** ")); - - 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); - String paramValue = nvl(formfield_value); - if(paramValue.length()>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 "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<String,String>) 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<String> 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<String> enum1 = session.getAttributeNames(); - String attributeName = ""; - while(enum1.hasMoreElements()) { - attributeName = enum1.nextElement(); - if(attributeName.startsWith("parent_")) { - session.removeAttribute(attributeName); - } - } - session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); - session.removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID); - session.removeAttribute(AppConstants.SI_COLUMN_LOOKUP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REP_ID); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP); - session.removeAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP); - session.removeAttribute(AppConstants.SI_MAP); - session.removeAttribute(AppConstants.SI_MAP_OBJECT); - session.removeAttribute(AppConstants.SI_REPORT_DEFINITION); - session.removeAttribute(AppConstants.SI_REPORT_RUNTIME); - session.removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP); - session.removeAttribute(AppConstants.SI_REPORT_SCHEDULE); - session.removeAttribute(AppConstants.RI_REPORT_DATA); - session.removeAttribute(AppConstants.RI_CHART_DATA); - session.removeAttribute(AppConstants.SI_FORMFIELD_INFO); - session.removeAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO); - - } // clearReportRuntimeBackup - - - public 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartWebRuntime.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartWebRuntime.java deleted file mode 100644 index 3fb24402..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ChartWebRuntime.java +++ /dev/null @@ -1,420 +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.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.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.ReportHandler; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.view.ReportData; -import org.openecomp.portalsdk.core.web.support.UserUtils; - - -public class ChartWebRuntime implements Serializable { - - - // Not used - planned to use if Hibernate used as data access layer - private String runningDataQuery = ""; - private String runningCountQuery = ""; - //CONSTANTS FOR QUERY - public final String QRY_COUNT_REPORT = ""; - public final String QRY_DATA_REPORT = ""; - - // Not used planning to use when filter is used - private 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<String, Object> params = new HashMap<String, Object>(); - - //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<String, Object> params = new HashMap<String, Object>(); - params.put("user_id", user_id); - params.put("role_list", roleList); - //params.put("public_yn", "Y"); - - //String action = request.getParameter(AppConstants.RI_ACTION); - String reportID = AppUtils.getRequestValue(request, AppConstants.RI_REPORT_ID); - - ReportHandler rh = new ReportHandler(); - ReportRuntime rr = null; - try { - if(reportID !=null) - rr = rh.loadReportRuntime(request, reportID, true, 1); - if(rr.getReportType().equals(AppConstants.RT_HIVE)) { - String sql = rr.getReportSQL(); - rr.setWholeSQL(sql); - //if(genReportData) - //reportData = rr.loadHiveLinearReportData(rr.getWholeSQL(),user_id.toString(), 10000,request); - } else { - //if(genReportData) - //reportData = rr.loadReportData(0, user_id.toString(), 10000,request, false /*download*/); - } - } catch (RaptorException ex) { - ex.printStackTrace(); - } - setReportRuntime(rr); - setReportData( reportData); - - reportRuntime = getReportRuntime(); - reportData = getReportData(); - - - HashMap<String, String> chartOptionsMap = new HashMap<String, String>(); - - 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<String> enum1 = session.getAttributeNames(); - String attributeName = ""; - while(enum1.hasMoreElements()) { - attributeName = enum1.nextElement(); - if(attributeName.startsWith("parent_")) { - session.removeAttribute(attributeName); - } - } - session.removeAttribute(AppConstants.DRILLDOWN_REPORTS_LIST); - session.removeAttribute(AppConstants.SI_BACKUP_FOR_REP_ID); - session.removeAttribute(AppConstants.SI_COLUMN_LOOKUP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REP_ID); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME); - session.removeAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_CHARTDATA_MAP); - session.removeAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP); - session.removeAttribute(AppConstants.SI_DATA_SIZE_FOR_TEXTFIELD_POPUP); - session.removeAttribute(AppConstants.SI_MAP); - session.removeAttribute(AppConstants.SI_MAP_OBJECT); - session.removeAttribute(AppConstants.SI_REPORT_DEFINITION); - session.removeAttribute(AppConstants.SI_REPORT_RUNTIME); - session.removeAttribute(AppConstants.SI_REPORT_RUN_BACKUP); - session.removeAttribute(AppConstants.SI_REPORT_SCHEDULE); - session.removeAttribute(AppConstants.RI_REPORT_DATA); - session.removeAttribute(AppConstants.RI_CHART_DATA); - session.removeAttribute(AppConstants.SI_FORMFIELD_INFO); - session.removeAttribute(AppConstants.SI_FORMFIELD_DOWNLOAD_INFO); - } // clearReportRuntimeBackup - - - public String getTotalSql() { - return totalSql; - } - - public void setTotalSql(String totalSql) { - this.totalSql = totalSql; - } - - - - /* public void drawD3Charts(HashMap<String,String> chartOptionsMap) { - drawD3Charts(chartOptionsMap); - - } - */ - - public String drawD3Charts(HashMap<String,String> 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<String,String> chartOptionsMap, HttpServletRequest request, boolean showData) { - - ChartJSONHelper chartJSONHelper = new ChartJSONHelper(reportRuntime); - chartJSONHelper.setChartType(reportRuntime.getChartType()); - try { - return chartJSONHelper.generateJSON(reportRuntime, chartOptionsMap, request, showData); - } catch(RaptorException ex) { - ex.printStackTrace(); - } - return ""; - - } - - } - diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CommonChartOptions.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CommonChartOptions.java deleted file mode 100644 index e8ba2ee5..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/CommonChartOptions.java +++ /dev/null @@ -1,81 +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 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; - } -} diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java deleted file mode 100644 index d619c4e0..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ErrorJSONRuntime.java +++ /dev/null @@ -1,43 +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 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java deleted file mode 100644 index 3b3060bb..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FlexTimeSeriesChartOptions.java +++ /dev/null @@ -1,38 +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 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormField.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormField.java deleted file mode 100644 index ea215679..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormField.java +++ /dev/null @@ -1,2111 +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 <I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I> - * 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.openecomp.portalsdk.analytics.model.runtime; - -import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -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 org.openecomp.portalsdk.analytics.error.RaptorRuntimeException; -import org.openecomp.portalsdk.analytics.error.UserDefinedException; -import org.openecomp.portalsdk.analytics.model.base.IdNameList; -import org.openecomp.portalsdk.analytics.model.base.IdNameLookup; -import org.openecomp.portalsdk.analytics.model.base.IdNameSql; -import org.openecomp.portalsdk.analytics.model.base.IdNameValue; -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.DataSet; -import org.openecomp.portalsdk.analytics.util.Utils; -import org.openecomp.portalsdk.analytics.xmlobj.JavascriptItemType; - -public class FormField extends org.openecomp.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 "<a title=\"" + helpText + "\">" + fieldDisplayName + "</a>"; - 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 "<a href=\"#\" onclick=\"javascript:ShowContent('" + fieldName + "_div')\"><img src=\""+AppUtils.getBaseFolderURL()+"images/quickhelp_dk.gif\" width=\"12\" height=\"12\" alt=\"\" border=\"0\" class=\"qh-element\" /></a>"; - return ((getHelpText()!=null && getHelpText().length()>0)? "tooltipText=\""+ getHelpText()+"\">": ">"); - //return ((getHelpText()!=null && getHelpText().length()>0)? "<img src=\"static/fusion/raptor/images/quickhelp_lt.gif\" tooltipText=\""+ getHelpText() + "\"/>": ""); - } - - - 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 "<input type=text class=\"text\" size=30 maxlength=50 id=\"" + fieldName +"\" name=\"" + fieldName + "\" value=\"" - + nvl(fieldDefValue) + "\">\n" + "<a href=\"javascript:showArgPopupNew('" - + fieldName + "', 'document.formd." + fieldName - + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL() - + "shareicon.gif\" " + getHelpLink(fieldName); - */ - return "obj.value=\""+Utils.singleQuoteEncode(nvl(fieldDefValue))+"\";"; - - } else - return ""; - } else if (fieldType.equals(FFT_HIDDEN) || fieldType.equals(FFT_TEXT) || fieldType.equals(FFT_TEXTAREA) ) { - StringBuffer sb = new StringBuffer(); - String oldSQL = ""; - try { - IdNameList lookup = getLookupList(); - //if(dependsOn != null && dependsOn != "") { - //if(dependsOn != null && dependsOn != "" ) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - //System.out.println("SQL HIDDEN 1 " + SQL); - 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.trim().length()<=0) { - value = "NULL"; - } - if(inSchedule) { - try { - value = java.net.URLDecoder.decode(value, "UTF-8"); - } catch (UnsupportedEncodingException ex) { - - } - } - //System.out.println("HIDDEN " + "["+entry.getKey()+"]" + "-" + value); - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } - - lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); - } - //System.out.println("SQL HIDDEN 2 " + SQL); - //} - lookupList = lookup; - //} - if(nvl(fieldValue).length()>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 "<input type=text class=\"text\" size=30 maxlength=50 id=\"" + fieldName +"\" name=\"" + fieldName + "\" value=\"" - + nvl(fieldDefValue) + "\">\n" + "<a href=\"javascript:showArgPopupNew('" - + fieldName + "', 'document.formd." + fieldName - + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL() - + "shareicon.gif\" " + getHelpLink(fieldName); - */ - String progress = "<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div> "; - - return progress+"<input type=\"text\" class=\"text\" name=\""+getFieldName()+"_display\" readonly=true value=\""+ fieldDefDisplay +"\""+ getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName) + " \n " - +"<input type=\"hidden\" name=\""+getFieldName()+"\" value=\""+nvl(fieldDefValue)+"\"/> \n \n" - + "<a href=\"javascript:showArgPopupNew('" - + fieldName + "', 'document.formd." + fieldName - + "')\"><img border=0 src=\"" + AppUtils.getImgFolderURL() - + "shareicon.gif\" " + getHelpLink(fieldName); - - } else - return ""; - } else if (fieldType.equals(FFT_TEXT)) { - IdNameValue value = null; - String strValue = ""; - boolean avail_ReadOnly = false; - try { - IdNameList lookup = getLookupList(); - IdNameSql lu = null; - String valueSQL = ""; - String oldSQL = ""; - if(lookup instanceof IdNameSql) { - lu = (IdNameSql) lookup; - if(lu.getSql().length() > 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 = "<input type=text class=\"text\" size="+(validationType.equals(VT_DATE)?"10":"30") +" maxlength=50 id=\"" + fieldName +"\" name=\"" - + fieldName + "\" id='"+ fieldName + "' " - + (((validationType.equals(VT_DATE)||validationType.equals(VT_TIMESTAMP_HR) ||validationType.equals(VT_TIMESTAMP_MIN) ||validationType.equals(VT_TIMESTAMP_SEC))&& !inSchedule) ? "" : "") - + getCallableJavascript(getFieldName(), rr) + " " + (readOnly?" readonly ":" ") + " value=\""; - - - /*if(getFieldDefaultSQL()!=null) - returnString += nvl(value.getId()); - else - returnString += fieldValue; - */ - if(fieldValue!=null && fieldValue.length()>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<a href=\"#\" onClick=\"window.dateField=document." - + HTML_FORM - + "." - + fieldName - + ";calendar=window.open('" - + AppUtils.getRaptorActionURL() - + "popup.calendar','cal','WIDTH=200,HEIGHT=250');return false;\">" - + "\n\t\t\t\t<img src=\"" - + AppUtils.getImgFolderURL() - + "calender_icon.gif\" align=absmiddle border=0 width=20 height=20></a>" - : ""); */ - - 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<img src='" + AppUtils.getImgFolderURL()+ "calender_icon.gif' align=absmiddle border=0 width='20' height='20' onClick=" + calendarOnClickMethodCall + " style='cursor:hand'>" - : ""); - if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC) ) { - //Add Hours/Minutes and Seconds. - timeStampStr = " <font class=rtabletext>Hour </font><select id = \""+ fieldName+ "_Hr\" name=\""+ fieldName+ "_Hr\" "+ (readOnly?"disabled":"")+" >"; - int hour = 0; - int t_hr = 0; - try { - hour = Integer.parseInt(nvl(rr.getParamValue(fieldName+"_Hr"),"0")); - if(hour == 0) { - if(inSchedule) hour = Integer.parseInt(nvl(((String)formValues.get(fieldName+"_Hr")),"0")); - } -// System.out.println("Hour =" + hour); - } catch (NumberFormatException ex) { hour = 0; } - try { - t_hr = Integer.parseInt(timestamphr); -// System.out.println("THR =" + t_hr); - } catch (NumberFormatException ex) { t_hr = 0;} - - if(hour <= 0) hour = t_hr; - // System.out.println("Form Values 887 " + formValues); - /*if (formValues.containsKey(fieldDisplayName+"_Hr")){ - formValues.remove(fieldDisplayName+"_Hr"); - formValues.put(fieldDisplayName+"_Hr", hour); - } else - formValues.put(fieldDisplayName+"_Hr", hour); - System.out.println("Form Values 887 " + formValues); - */ - - //int t_min = Integer.parseInt(timestampmin); - //int t_sec = Integer.parseInt(timestampsec); - for (int i = 0; i < 24; i++) { - if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">00</option>"; - else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">" + "0"+i + "</option>"; - else timeStampStr += "<option value=\"" + i + "\""+ ((hour==i)?" selected":"") +">" + i + "</option>"; - - } - timeStampStr += "</select>"; - } - //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 += " <font class=rtabletext>Min </font><select id = \""+ fieldName+ "_Min\" name=\""+ fieldName+ "_Min\" "+ (readOnly?"disabled":"")+" >"; - for (int i = 0; i < 60; i++) { - if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">00</option>"; - else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">" + "0"+i + "</option>"; - else timeStampStr += "<option value=\"" + i + "\""+ ((minutes==i)?" selected":"") +">" + i + "</option>"; - } - timeStampStr += "</select>"; - } - //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 += " <font class=rtabletext>Sec </font><select id = \""+ fieldName+ "_Sec\" name=\""+ fieldName+ "_Sec\" "+ (readOnly?"disabled":"")+" >"; - for (int i = 0; i < 60; i++) { - if(i==0) timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">00</option>"; - else if(i<10) timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">" + "0"+i + "</option>"; - else timeStampStr += "<option value=\"" + i + "\""+ ((seconds==i)?" selected":"") +">" + i + "</option>"; - } - timeStampStr += "</select>"; - } - - 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 +" "+ */ "<input type=\"checkbox\" name=\""+getFieldName()+"_auto\" value=\"_auto\" checked/>"; - } else { - checkboxStr = /*checkboxStr +" "+ */"<input type=\"hidden\" name=\""+getFieldName()+"_auto\" value=\"_auto\"/>"; - } - /*if(validationType.equals(VT_TIMESTAMP_HR) || validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) { - checkboxStr = checkboxStr +" "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Hr_auto\" value=\"_auto\"/>"; - } - if(validationType.equals(VT_TIMESTAMP_MIN) || validationType.equals(VT_TIMESTAMP_SEC)) { - checkboxStr = checkboxStr +" "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Min_auto\" value=\"_auto\"/>"; - } - if(validationType.equals(VT_TIMESTAMP_SEC)) { - checkboxStr = checkboxStr +" "+ "<input type=\"hidden\" name=\""+getFieldName()+"_Sec_auto\" value=\"_auto\"/>"; - }*/ - } - 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 "<textarea rows=4 cols=30 id=\"" + fieldName +"\" name=\"" + fieldName + "\""+ getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName) + nvl(fieldValue) - + "</textarea>"; - 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("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>"); - sb.append("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=1 " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - if (!required) - sb.append("<option value=\"\">-->select value<--"); - - 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("<option value=\""); - sb.append(value.getId()); - - if (nvl(fieldValue).length()>0) { - if (fieldValue.equals(value.getId())) { // || (value.isDefaultValue())) - sb.append("\" selected>"); - selectedValue = value.getId(); - } - else - sb.append("\">"); - } else { - if(value!=null && value.isDefaultValue()) { - sb.append("\" selected>"); - selectedValue = value.getId(); - } else { - sb.append("\">"); - } - } - - sb.append(value.getName()); - sb.append("</option>\n"); - } - } // 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(sb.length()<=0) { - sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>"); - sb.append("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=1 " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - } - - sb.append("</select>"); - 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("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=4 " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - if (!required) - sb.append("<option value=\"\">-->select value<--"); - - for (lookup.resetNext(); lookup.hasNext(); iCnt++) { - IdNameValue value = lookup.getNext(); - sb.append("<option value=\""); - sb.append((value!=null)?value.getId():""); - if (nvl(fieldValue).length()>0) { - if (fieldValue.equals((value!=null)?value.getId():"") || (fieldValue.equals("") && required && iCnt == 0)) { - sb.append("\" selected>"); - selectedValue = value.getId(); - } else { - sb.append("\">"); - } - } else { - if(value!=null && value.isDefaultValue()) { - sb.append("\" selected>"); - selectedValue = value.getId(); - } else { - sb.append("\">"); - } - } - if (formValues.containsKey(fieldDisplayName)){ - formValues.remove(fieldDisplayName); - } - formValues.put(fieldDisplayName, selectedValue); - - sb.append((value!=null)?value.getName():""); - sb.append("</option>\n"); - } // for - - // lookup.clearData(); - } catch (Exception e) { - //throw new RaptorRuntimeException(e); - } - - if(sb.length()<=0) { - sb.append("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=4 " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - } - - sb.append("</select>"); - - 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 = "<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div> "; - sb.append(progress); - sb.append("<input id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" type=\"hidden\""); - IdNameList lookup = null; - - try { - lookup = getLookupList(); - if(lookup != null) { - //if(dependsOn != null && dependsOn != "") { - //if(dependsOn != null && dependsOn != "" ) { - IdNameSql lu = (IdNameSql) lookup; - String SQL = lu.getSql(); - //System.out.println("SQL HIDDEN 1 " + SQL); - 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(); - //System.out.println("HIDDEN " + "["+entry.getKey()+"]" + "-" + value); - SQL = Utils.replaceInString(SQL, "["+entry.getKey()+"]", value); - } - - lookup = new IdNameSql(-1,SQL,lu.getDefaultSQL()); - } - //System.out.println("SQL HIDDEN 2 " + SQL); - //} - lookupList = lookup; - //} - if(nvl(fieldValue).length()>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("<input id=\"" + fieldName +"\" type=radio name=\""); - sb.append(fieldName); - sb.append("\" value=\"\""); - if (fieldValue.length() == 0) - sb.append(" checked"); - //sb.append( getCallableJavascript(getFieldName(), rr) ); - sb.append(getHelpLink(fieldName)+ " Any<br>\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("<input id=\"" + fieldName +"\" type=radio name=\""); - sb.append(fieldName); - sb.append("\" value=\""); - sb.append((value!=null)?value.getId():""); - if (nvl(fieldValue).length()>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("<br>\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("<input id=\"" + fieldName +"\" type=checkbox name=\""); - sb.append(fieldName); - sb.append("\" value=\""); - sb.append((value!=null)?value.getId():""); - - if (!fieldValue.equals("||")) { - if (fieldValue.indexOf('|' + ((value!=null)?value.getId():"") + '|') >= 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("<br>\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("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>"); - sb.append("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=\""+ multiSelectListSize +"\" multiple " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - - for (lookup.resetNext(); lookup.hasNext();) { - IdNameValue value = lookup.getNext(); - sb.append("<option value=\""); - sb.append((value!=null)?value.getId():""); - if (!fieldValue.equals("||")) { - if (fieldValue.indexOf('|' + ((value!=null)?value.getId():"") + '|') >= 0) // || (value.isDefaultValue())) - sb.append("\" selected>"); - else - sb.append("\">"); - } else { - if(value!=null && value.isDefaultValue()) { - sb.append("\" selected>"); - } else { - sb.append("\">"); - } - } - sb.append((value!=null)?value.getName():""); - sb.append("</option>\n"); - } // for - - // lookup.clearData(); - } catch (Exception e) { - //throw new RaptorRuntimeException(e); - } - if(!hasPredefinedList) { - if(oldSQL != null && !oldSQL.equals("")) { - ((IdNameSql)lookup).setSQL(oldSQL); - } - } - if(sb.length()<=0) { - sb.append("<div id=\""+fieldName+"_content\" style=\"display:none;width:100%;height:100%;align:center;\"> <img src=\""+AppUtils.getImgFolderURL()+"progress.gif\" border=\"0\" alt=\"Loading, please wait...\" /></div>"); - sb.append("<select id=\"" + fieldName +"\" name=\""); - sb.append(fieldName); - sb.append("\" "+ (readOnly?"disabled":"")+" size=\""+ multiSelectListSize +"\" multiple " + getCallableJavascript(getFieldName(), rr) + getHelpLink(fieldName)); - } - sb.append("</select>"); - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java deleted file mode 100644 index 57fec736..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/FormatProcessor.java +++ /dev/null @@ -1,375 +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.HashMap; -import java.util.Iterator; - -import org.openecomp.portalsdk.analytics.RaptorObject; -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.view.DataRow; -import org.openecomp.portalsdk.analytics.view.DataValue; -import org.openecomp.portalsdk.analytics.view.HtmlFormatter; -import org.openecomp.portalsdk.analytics.xmlobj.FormatType; -import org.openecomp.portalsdk.analytics.xmlobj.SemaphoreType; - -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)<Double.parseDouble(value2); - } // if - - return (value1.compareTo(value2) < 0); - } // isEqual - - public void setHtmlFormatters(DataValue dv, DataRow dr, boolean formatModified) { - - if (semaphore == null) - return; - - HtmlFormatter formatter = defaultFormatter; - HtmlFormatter anyFormatter = null; - String sValue = convertValue(dv.getDisplayValue()); - - String compareColId = semaphore.getComment(); // When Column Id compare is different from formatting. - - String targetColId = null; - if(semaphore.getTarget()!=null) - targetColId = semaphore.getTarget(); - - DataValue targetDataValue = null; - /* compare the column id which is in comment and assign to sValue */ - if(nvl(compareColId).length()>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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/Item.java deleted file mode 100644 index 1bc3bbba..00000000 --- a/ecomp-sdk/sdk-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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/LookupDBInfo.java deleted file mode 100644 index 118356a7..00000000 --- a/ecomp-sdk/sdk-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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/RangeAxisJSON.java deleted file mode 100644 index d9e93f55..00000000 --- a/ecomp-sdk/sdk-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 ""; - } - -} diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.java deleted file mode 100644 index 7e185618..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportFormFields.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. - * ================================================================================ - */ -package org.openecomp.portalsdk.analytics.model.runtime; - -import java.util.Calendar; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.model.DataCache; -import org.openecomp.portalsdk.analytics.model.base.ReportWrapper; -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.analytics.xmlobj.ColFilterType; -import org.openecomp.portalsdk.analytics.xmlobj.DataColumnType; -import org.openecomp.portalsdk.analytics.xmlobj.FormFieldType; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java deleted file mode 100644 index 7556a310..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportJSONRuntime.java +++ /dev/null @@ -1,694 +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 org.openecomp.portalsdk.analytics.model.base.IdNameValue; -import org.openecomp.portalsdk.analytics.view.ColumnHeader; - -/*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<IdNameValue> 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<IdNameValue> getFormFieldValues() { - return formFieldValues; - } - public void setFormFieldValues(ArrayList<IdNameValue> 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 <FormFieldJSON> formFieldList; - private String formfield_comments; - private ArrayList<ColumnHeader> reportDataColumns; - private ArrayList<Map<String,Object>> 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; - - - public boolean isChartAvailable() { - return chartAvailable; - } - public void setChartAvailable(boolean chartAvailable) { - this.chartAvailable = chartAvailable; - } - public ArrayList<Map<String,Object>> getReportDataRows() { - return reportDataRows; - } - public void setReportDataRows(ArrayList<Map<String,Object>> 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<ColumnHeader> getReportDataColumns() { - return reportDataColumns; - } - public void setReportDataColumns(ArrayList<ColumnHeader> 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; - } - - - - -} diff --git a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java deleted file mode 100644 index e3bbe4d0..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java +++ /dev/null @@ -1,194 +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.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.GregorianCalendar; - -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.Utils; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java deleted file mode 100644 index 66b5f517..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValues.java +++ /dev/null @@ -1,370 +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.controller.FavoritesController; -import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate; - -public class ReportParamValues extends Hashtable { - EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FavoritesController.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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamValuesForPDFExcel.java deleted file mode 100644 index f4bb9800..00000000 --- a/ecomp-sdk/sdk-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<ds.getRowCount()-1) - multiValue.append("|"); - //else multiValue.append(")"); - - } - } - put(ff.getFieldName(), nvl(multiValue.toString())); - } else { - 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); - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java deleted file mode 100644 index fd8fadcb..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportRuntime.java +++ /dev/null @@ -1,3618 +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; - - -/**<HR/> - * This class is part of <B><I>RAPTOR (Rapid Application Programming Tool for OLAP Reporting)</I></B><BR/> - * <HR/> - * - * --------------------------------------------------------------------------------------------------<BR/> - * <B>ReportRuntime.java</B> - This class involves in running, downloading RAPTOR reports. - * --------------------------------------------------------------------------------------------------<BR/> - * - * - * <U>Change Log</U><BR/><BR/> - * - * 27-Aug-2009 : Version 8.5 (Sundar); <UL><LI>Order by logic is restored for DAYTONA.</LI></UL> - * 13-Aug-2009 : Version 8.5 (Sundar); <UL><LI>Removing order by logic is rollbacked.</LI></UL> - * 22-Jun-2009 : Version 8.4 (Sundar); <UL><LI>Bug while parsing SQL for text download is fixed.</LI></UL> - * - */ - -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("<b>Date/Time Report Run:</b>"+ idNameValue.getName() +"<br></br>"); - } - - 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 = generateSQL(reportParamValues, userId, request); - 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 (pageNo > 0) - //pageNo = 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); - //if(getReportDefType().equals(AppConstants.RD_SQL_BASED)) - // reportSQL = new SQLCorrector().fixCrosstabSQL(new StringBuffer(reportSQL)); - cachedSQL = reportSQL; - wholeSQL = reportSQL; - //if (crossTabOrderManager == null - ///*&& (!getReportDefType().equals(AppConstants.RD_SQL_BASED))*/) - //crossTabOrderManager = new CrossTabOrderManager(this, userId,request); -/* boolean isGoBackAction = AppUtils.getRequestFlag(request, AppConstants.RI_GO_BACK); - if(isGoBackAction) { - crossTabOrderManager = null; - crossTabOrderManager = new CrossTabOrderManager(this, userId,request); - } -*/ - 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); - // if ( (remDbInfo!=null) && (!remDbInfo.equals(AppConstants.DB_LOCAL))) - // ds = RemDbUtils.executeQuery(reportSQL); - // else - // ds = DbUtils.executeQuery(reportSQL); - /* - * } catch(SQLException e) { throw new - * ReportSQLException("[ReportRuntime.loadCrossTabReportData] - * "+e.getMessage(), reportSQL); } - */ - - 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<ds.getColumnCount(); k++) { - if(dct.getColId().toUpperCase().trim().equals(ds.getColumnName(k).trim())) { - reportCols.add(dct); - continue outer; - } - } - } - - if (getFormFieldList() != null) { - String paramValue = ""; - for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - if(fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue()) { - paramValue = Utils.oracleSafe(nvl(reportParamValues - .getParamValue(fft.getFieldId()))); - outer: - for (Iterator iter1 = reportCols1.iterator(); iter1.hasNext();) { - DataColumnType dct = (DataColumnType) iter1.next(); - if(("["+fft.getFieldName()+ "]").equals(dct.getColName().trim())) { - dct.setDisplayName(paramValue); - continue outer; - } - } - - - } - } - } - } - - int dataColumnIdx = (rd.reportRowHeaderCols.size() + rd.reportColumnHeaderRows.size())-1; - DataColumnType dataColumn = getCrossTabValueColumn(); - - String columnValue = ""; - - - for (Iterator iter = reportCols.iterator(); iter.hasNext();) { - DataColumnType dct = (DataColumnType) iter.next(); - - if (nvl(dct.getDrillDownURL()).length() > 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<DataValue> v1= null, v2 = null; - ArrayList<String> temp = new ArrayList<String>(); - if (Globals.getMergeCrosstabRowHeadings()) { - for (int i = 0; i < dataList.size(); i++) { - drInFor1 = (DataRow)dataList.get(i); - drInFor1.setRowNum(i+1); - v1 = drInFor1.getRowValues(); - if(i<dataList.size()-1) { - v2 = ((DataRow)dataList.get(i+1)).getRowValues(); - } /*else { - v2 = ((DataRow)dataList.get(i-1)).getRowValues(); - }*/ - for (int j = 0; j < v1.size(); j++) { - if(j==0) { - if(v1.get(j).getDisplayValue().length()>0) { // 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<ds.getColumnCount(); k++) { - if(dct.getColId().toUpperCase().trim().equals(ds.getColumnName(k).trim())) { - reportCols.add(dct); - continue outer; - } - } - } - - if (getFormFieldList() != null) { - String paramValue = ""; - for (Iterator iter = getFormFieldList().getFormField().iterator(); iter.hasNext();) { - FormFieldType fft = (FormFieldType) iter.next(); - if(fft.isGroupFormField()!=null && fft.isGroupFormField().booleanValue()) { - paramValue = Utils.oracleSafe(nvl(reportParamValues - .getParamValue(fft.getFieldId()))); - outer: - for (Iterator iter1 = reportCols1.iterator(); iter1.hasNext();) { - DataColumnType dct = (DataColumnType) iter1.next(); - if(("["+fft.getFieldName()+ "]").equals(dct.getColName().trim())) { - dct.setDisplayName(paramValue); - continue outer; - } - } - - - } - } - } - } - - - // if ( (remDbInfo!=null) && (!remDbInfo.equals(AppConstants.DB_LOCAL))) - // { - // Globals.getRDbUtils().setDBPrefix(remDbInfo); - // ds = RemDbUtils.executeQuery(pagedSQL); - // } - // else - // ds = DbUtils.executeQuery(pagedSQL); - /* - * } catch(SQLException e) { throw new - * ReportSQLException("[ReportRuntime.loadLinearReportData] - * "+e.getMessage(), pagedSQL); } - */ - - if (getReportDataSize() < 0) - if (pageNo < 0) - setReportDataSize(ds.getRowCount()); - else if (ds.getRowCount() <= getPageSize()) - setReportDataSize(ds.getRowCount()); - else { - - /*Pattern re1 = Pattern.compile("[Oo][Rr][Dd][Ee][Rr](.*?[^\r\n]*)[Bb][Yy]", Pattern.DOTALL); - Pattern re2 = Pattern.compile("[Oo][Rr][Dd][Ee][Rr](.*?[^\r\n]*)[Bb][Yy]((.*?[^\r\n]*)|[\\s]|[^0-9a-zA-Z])\\)", Pattern.DOTALL); - Matcher matcher = re1.matcher(reportSQL); - Matcher matcher2 = null; - int startPoint = reportSQL.length()-30; - String startReportSQL = ""; - String endReportSQL = ""; - while(reportSQL.indexOf("xid", startPoint)!=-1)startPoint++; - if (matcher.find(startPoint)) { - startReportSQL = reportSQL.substring(0, reportSQL.indexOf(matcher.group())); - endReportSQL = reportSQL.substring(reportSQL.indexOf(matcher.group())); - matcher2 = re2.matcher(endReportSQL); - if(matcher2.find()) - endReportSQL = endReportSQL.substring(matcher.group().length()-1); - else - endReportSQL = ""; - reportSQL = startReportSQL + endReportSQL; - }*/ - String countSQL = "SELECT count(*) FROM (" + reportSQL + ")"+ (Globals.isPostgreSQL() || Globals.isMySQL()?" AS ":"") +" x "; - 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); - if (dbType.equals("DAYTONA") && reportSQL.trim().toUpperCase().startsWith("SELECT")) { - Pattern re1 = Pattern.compile("order(.*?[^\r\n]*)by", Pattern.DOTALL); - Matcher matcher = re1.matcher(reportSQL); - int startPoint = reportSQL.length()-30; - while(reportSQL.indexOf("xid", startPoint)!=-1)startPoint++; - if (matcher.find(startPoint)) { - reportSQL = reportSQL.substring(0, reportSQL.indexOf(matcher.group())); - } - countSQL = "SELECT count(*) FROM (" + reportSQL + ")"+ (Globals.isPostgreSQL() || Globals.isMySQL()?" AS ":"") +" x"; - countSQL = countSQL + " ("+ colNames+ ")"; - } else if (dbType.equals("DAYTONA")) { - setReportDataSize(50); - } - } catch (Exception ex) { - throw new RaptorException(ex); - } - } - - DataSet ds2 = null; - // try { - if(reportSQL.trim().toUpperCase().startsWith("SELECT")) { - ds2 = ConnectionUtils.getDataSet(countSQL, dbInfo); - if (ds2.getRowCount() > 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(), - 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 - - 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 += "<br><font size=1>(for all pages)</font>"; - - 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(), 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 - - 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 += "<br><font size=1>(for all pages)</font>"; - - 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 + "<br/>" + 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 static void main (String args[])throws Exception { -// ReportRuntime rr = new ReportRuntime(); -// String sql= " SELECT NULL TOTAL_AC20, NULL TOTAL_AC21, NULL TOTAL_AC22, NULL TOTAL_CO1, NULL TOTAL_BR2, NULL TOTAL_CO3, NULL TOTAL_CO4, NULL TOTAL_HO20, NULL TOTAL_DU9, NULL TOTAL_HO19, NULL TOTAL_CU10, NULL TOTAL_AC11,TO_CHAR (SUM(TO_NUMBER (SE29,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_SE29,TO_CHAR (SUM(TO_NUMBER (BR6,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_BR6,TO_CHAR (SUM(TO_NUMBER (TR7,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_TR7,TO_CHAR (SUM(TO_NUMBER (FE8,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_FE8,TO_CHAR (SUM(TO_NUMBER (TA12,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_TA12,TO_CHAR (SUM(TO_NUMBER (UN13,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_UN13,TO_CHAR (SUM(TO_NUMBER (TA27,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_TA27,TO_CHAR (SUM(TO_NUMBER (TA28,'$9,999,999,990.99')),'$9,999,999,990.99') TOTAL_TA28, NULL TOTAL_CU20, NULL TOTAL_MG23, NULL TOTAL_CU27, NULL TOTAL_CU24, NULL TOTAL_CU28, NULL TOTAL_AC24, NULL TOTAL_CU21, NULL TOTAL_RE25, NULL TOTAL_BI29 FROM (SELECT substr(ACCT_ID,1,3) ac20, substr(ACCT_ID,5,5) ac21, substr(ACCT_ID,11,25) ac22, ci1.CONF_ID co1, ci1.BRIDGE_ID br2, ci1.CONF_RESERVE_DATE co3, ci1.CONF_RESERVE_TIME co4, ci1.HOST_PARTICIPANT_NUMBER ho20, to_number(duration_in_minutes) du9, ci1.HOST_PARTICIPANT_NAME ho19, ci1.CUSTOMER_CONF_ID cu10, ci1.ACCESS_METHOD ac11, TO_CHAR(ci1.SETUP_CHARGES,'$9,999,999,990.99') se29, TO_CHAR(ci1.BRIDGE_CHARGES,'$9,999,999,990.99') br6, TO_CHAR(ci1.TRANSPORT_CHARGES,'$9,999,999,990.99') tr7, TO_CHAR(ci1.FEATURES_CHARGES,'$9,999,999,990.99') fe8, TO_CHAR(ci1.TAXES,'$9,999,999,990.99') ta12, TO_CHAR(Univ_connect_charges+admin_exp_fee+nvl(property_tax_allotment,0)+nvl(federal_regulatory_fee,0),'$9,999,999,990.99') un13, TO_CHAR(setup_charges+Bridge_charges + transport_charges + features_charges-discount,'$9,999,999,990.99') ta27, TO_CHAR(setup_charges + bridge_charges + transport_charges + features_charges + taxes + univ_connect_charges+admin_exp_fee+nvl(property_tax_allotment,0)+nvl(federal_regulatory_fee,0)-discount,'$9,999,999,990.99') ta28, ci1.CUST_ID cu20, ci2.MGD_SVC_FEE mg23, NULL cu27, to_char( DURATION_IN_MINUTES * mgd_svc_fee ,'$9,990.99') cu24, NULL cu28, ci2.ACCESS_DESCRIPTION ac24, decode ( cust_id , '0011681500002' , '00002' , decode ( cust_id , '0011681500092' , '00092' , decode ( cust_id , '0011681500093' , '00093' , substr(cust_id,9,5) ))) cu21, ci1.RECORD_TYPE re25, ci1.BILL_MONTH bi29 FROM CIS_AUDIO ci1, CIS_MGD_SVC_FEE ci2 WHERE ci2.ACCESS_METHOD (+)=ci1.ACCESS_METHOD AND substr(ACCT_ID,1,3) = '215' AND decode ( cust_id , '0011681500002' , '00002' , decode ( cust_id , '0011681500092' , '00092' , decode ( cust_id , '0011681500093' , '00093' , substr(cust_id,9,5) ))) IN ('00002') AND ci1.BILL_MONTH = 'NOV 2006' ORDER BY ci1.ACCESS_METHOD ASC) totalSQL"; -// rr.parseReportSQL(sql); -// } - - 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."); - } - } - - /* private Vector addForecastData(String sql) throws Exception { - InstanceQuery instTrainQuery = new InstanceQuery(); - //instTrainQuery.setDatabaseURL("jdbc:idb:=experiments.prp"); - instTrainQuery.setUsername("fusionapp"); - instTrainQuery.setPassword("i64eq4aunp"); - Instances data = instTrainQuery.retrieveInstances(sql); - - ArrayList<String> forecastArray = new ArrayList<String>(); - - List reportCols = getAllColumns(); - DataColumnType dct = null; - Iterator iter = null; - - String dateAttribute = ""; - - for(iter=reportCols.iterator(); iter.hasNext(); ) { - dct = (DataColumnType) iter.next(); - if(nvl(dct.getDataMiningCol()).equals(AppConstants.DM_FORECASTING_ATTR)) - forecastArray.add(dct.getColId().toUpperCase()); - } - - for(iter=reportCols.iterator(); iter.hasNext(); ) { - dct = (DataColumnType) iter.next(); - if(nvl(dct.getDataMiningCol()).equals(AppConstants.DM_DATE_ATTR)) - dateAttribute = dct.getColId().toUpperCase(); - } - - - int forecastUnits = getForecastingPeriod(); - // new forecaster - WekaForecaster forecaster = new WekaForecaster(); - - // set the targets we want to forecast. This method calls - // setFieldsToLag() on the lag maker object for us - StringBuffer forecastAttribute = new StringBuffer(""); - for (int i=0; i < forecastArray.size(); i++) { - forecastAttribute.append(forecastArray.get(i)); - if(i<forecastArray.size()-1) forecastAttribute.append(","); - } - forecaster.setFieldsToForecast(forecastAttribute.toString()); - - // default underlying classifier is SMOreg (SVM) - we'll use - // gaussian processes for regression instead - if(getClassifier().equals(AppConstants.DM_GAUSSIAN_CLASSIFIER)) - forecaster.setBaseForecaster(new GaussianProcesses()); - else if (getClassifier().equals(AppConstants.DM_SVM_CLASSIFIER)) - forecaster.setBaseForecaster(new weka.classifiers.functions.SMOreg()); - - forecaster.getTSLagMaker().setTimeStampField(dateAttribute); // date time stamp - forecaster.getTSLagMaker().setMinLag(1); - forecaster.getTSLagMaker().setMaxLag(12); // monthly data - - // add a month of the year indicator field - forecaster.getTSLagMaker().setAddMonthOfYear(true); - - // add a quarter of the year indicator field - forecaster.getTSLagMaker().setAddQuarterOfYear(true); - - // build the model - forecaster.buildForecaster(data, System.out); - - // prime the forecaster with enough recent historical data - // to cover up to the maximum lag. In our case, we could just supply - // the 12 most recent historical instances, as this covers our maximum - // lag period - forecaster.primeForecaster(data); - - // forecast for 12 units (months) beyond the end of the - // training data - List<List<NumericPrediction>> forecast = forecaster.forecast(getForecastingPeriod(), System.out); - - String dateFormat = ""; - if(nvl(getForecastingTimeFormat()).length()>0) - dateFormat = getForecastingTimeFormat(); - java.text.SimpleDateFormat sdf = null; - java.text.SimpleDateFormat sdf1 = null; - java.text.SimpleDateFormat sdf2 = null; - if(dateFormat.equals("Default")) { - sdf = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss"); - sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - } else { - sdf = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss"); - sdf1 = new SimpleDateFormat(dateFormat); - sdf2 = new SimpleDateFormat("MM/yyyy"); - } - // output the predictions. Outer list is over the steps; inner list is over - // the targets - int k = 0; - int flag = 0; - Enumeration<Attribute> enum1 = data.lastInstance().enumerateAttributes(); - Attribute attrib = null; - - HashMap<String, Object> predictedHashMap = new HashMap<String, Object>(); - - while(enum1.hasMoreElements()) { - attrib = enum1.nextElement(); - System.out.println(attrib.name() + " " + attrib.index()); - } - Vector<Vector> forecastedDataSet = new Vector<Vector>(); - Vector forecastedData = new Vector(); - Date d = null; - Date forecastedDate = null; - Calendar c1 = Calendar.getInstance(); - for (int i = 0; i < forecastUnits; i++) { - TSLagMaker ts = forecaster.getTSLagMaker(); - //java.sql.Timestamp ts1 = new java.sql.Timestamp(new Long(ts.getCurrentTimeStampValue()).longValue()); - //System.out.println(data.lastInstance().dataset().attribute(0).getDateFormat());//parseDate("yyyy-MM-dd\'T\'HH:mm:ss") - //System.out.println(data.lastInstance().dataset().lastInstance().stringValue(0) + " " + sdf.parse(data.lastInstance().dataset().lastInstance().stringValue(0))); - d = sdf.parse(data.lastInstance().dataset().lastInstance().stringValue(0)); - c1.setTime(d); - c1.add(Calendar.MONTH, i+1); - forecastedDate = c1.getTime(); - List<NumericPrediction> predsAtStep = forecast.get(i); - predictedHashMap.put(dateAttribute, sdf1.format(forecastedDate)); - predictedHashMap.put(dateAttribute+"_FORMAT", sdf2.format(forecastedDate)); - - for (int j = 0; j < forecastArray.size(); j++) { - NumericPrediction predForTarget = predsAtStep.get(j); - predictedHashMap.put(forecastArray.get(j), new Integer(new Double(predForTarget.predicted()).intValue()).toString()); - //System.out.print(forecastArray.get(j)+" " + predForTarget.predicted()); - } - - enum1 = data.lastInstance().enumerateAttributes(); - while(enum1.hasMoreElements()) { - attrib = enum1.nextElement(); - if((!attrib.name().equals(dateAttribute)) && (!attrib.name().equals(dateAttribute+"_FORMAT"))){ - for (int h=0; h < forecastArray.size(); h++) { - if(attrib.name().equals(forecastArray.get(h))) { - forecastedData.add(predictedHashMap.get(attrib.name())); - flag = 1; - } - - } - } else if(attrib.name().equals(dateAttribute+"_FORMAT")) { - forecastedData.add(predictedHashMap.get(dateAttribute+"_FORMAT")); - flag = 1; - } else if(attrib.name().equals(dateAttribute)) { - forecastedData.add(predictedHashMap.get(dateAttribute)); - flag = 1; - } - if(flag == 0) { - forecastedData.add(""); - } / *else { - forecastedData.add(predictedHashMap.get(dateAttribute)); - forecastedData.add(predictedHashMap.get(dateAttribute+"_format")); - }* / - //System.out.println(attrib.name() + " " + attrib.index()); - - - - - - flag = 0; - - } - forecastedDataSet.add(forecastedData); - predictedHashMap = new HashMap<String, Object>(); - forecastedData = new Vector(); - enum1 = data.lastInstance().enumerateAttributes(); - } - setReportDataSize(getReportDataSize()+getForecastingPeriod()); - return forecastedDataSet; - } */ - - public VisualManager getVisualManager() { - return visualManager; - } - - public String getReportSQLWithRowNum(String _orderBy, boolean asc) { - String sql = getWholeSQL(); - int closeBracketPos = 0; - /*if (nvl(_orderBy).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(_orderBy+"_sort"); - if(dct!=null && dct.getColName().length()>0) { - _orderBy = _orderBy+"_sort"; - } - if (idxOrderBy < 0) - sql += " ORDER BY " + _orderBy + " " + (asc ? "ASC" : "DESC"); - 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 " + _orderBy + " " - + (asc ? "ASC" : "DESC") + sql.substring(idxOrderByClauseEnd); - } // else - } // if*/ - - // 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; - try { - if( AppUtils.isAdminUser(request) || AppUtils.isSuperUser(request) ) { - allowEdit = true; - } - } 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.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.setDisplayExcel(!isDisplayOptionHideExcelIcons()); - reportJSONRuntime.setDisplayPDF(!isDisplayOptionHidePDFIcons()); - ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); - if(getReportFormFields()!=null) { - formFieldJSONList = new ArrayList<FormFieldJSON>(getReportFormFields().size()); - for (Iterator iter = getReportFormFields().iterator(); iter.hasNext();) { - formFieldValues = new ArrayList<IdNameValue>(); - 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<String,Object> dvJSON = null; - if(rd!=null) { - count = 0; - reportJSONRuntime.setTotalRows(getReportDataSize()); - ArrayList<ColumnHeader> colList = new ArrayList<ColumnHeader>(); - ArrayList<Map<String,Object>> reportDataRows = new ArrayList<Map<String,Object>>(); - 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<String,Object>(); - 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<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); - if(reportFormFields!=null) { - formFieldJSONList = new ArrayList<FormFieldJSON>(reportFormFields.size()); - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList<IdNameValue>(); - 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<IdNameValue>(); - 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<String> requestValueList = new ArrayList<String>(); - 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<FormFieldJSON> formFieldJSONList) { - ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - String selectedValue = ""; - String displayName = ""; - for (Iterator iter1 = formFieldJSONList.iterator(); iter1.hasNext();) { - FormFieldJSON ffJSON = (FormFieldJSON) iter1.next(); - displayName = ffJSON.getFieldDisplayName(); - ArrayList<IdNameValue> 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<FormFieldJSON> formFieldJSONList) { - ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - //ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); - List<String> 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<IdNameValue>(); - 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<String>(); - } - - - 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<String> requestValueList, ArrayList<FormFieldJSON> formFieldJSONList) { - ArrayList<IdNameValue> formFieldValues = new ArrayList<IdNameValue>(); - //ArrayList<FormFieldJSON> formFieldJSONList = new ArrayList<FormFieldJSON>(); - for (Iterator iter = reportFormFields.iterator(); iter.hasNext();) { - formFieldValues = new ArrayList<IdNameValue>(); - 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<String> selectedItems = new ArrayList<String>(); - //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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/TimeSeriesChartOptions.java deleted file mode 100644 index 9e6f657f..00000000 --- a/ecomp-sdk/sdk-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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java deleted file mode 100644 index 9587de53..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/VisualManager.java +++ /dev/null @@ -1,68 +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.HashMap; - -import org.openecomp.portalsdk.analytics.RaptorObject; -import org.openecomp.portalsdk.analytics.util.AppConstants; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java deleted file mode 100644 index ec7999e0..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResult.java +++ /dev/null @@ -1,84 +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.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java deleted file mode 100644 index fda50d54..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/ReportSearchResultJSON.java +++ /dev/null @@ -1,251 +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.ArrayList; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.AppConstants; -import org.openecomp.portalsdk.analytics.util.DataSet; - -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<ArrayList<SearchResultColumn>> columns = new ArrayList<ArrayList<SearchResultColumn>>(); - private ArrayList<ArrayList<SearchResultRow>> rows = new ArrayList<ArrayList<SearchResultRow>>(); - public ArrayList<ArrayList<SearchResultColumn>> getColumns() { - return columns; - } - public void setColumns(ArrayList<ArrayList<SearchResultColumn>> columns) { - this.columns = columns; - } - public ArrayList<ArrayList<SearchResultRow>> getRows() { - return rows; - } - public void setRows(ArrayList<ArrayList<SearchResultRow>> rows) { - this.rows = rows; - } - -} - -public class ReportSearchResultJSON extends SearchResultJSON { - private static final String HTML_FORM = "forma"; - private String JSONString= ""; - private SearchReport searchReport; - //private ArrayList<ArrayList<SearchResultColumn>> columns = new ArrayList<ArrayList<SearchResultColumn>>(); - //private ArrayList<ArrayList<SearchResultRow>> rows = new ArrayList<ArrayList<SearchResultRow>>(); - - - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java deleted file mode 100644 index 5ab75590..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResult.java +++ /dev/null @@ -1,213 +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.ArrayList; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.analytics.error.RaptorException; -import org.openecomp.portalsdk.analytics.system.AppUtils; -import org.openecomp.portalsdk.analytics.system.Globals; -import org.openecomp.portalsdk.analytics.util.DataSet; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java deleted file mode 100644 index bca1f4cf..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultColumn.java +++ /dev/null @@ -1,254 +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; - -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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.java deleted file mode 100644 index a0621553..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultField.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 org.openecomp.portalsdk.analytics.util.AppConstants; - -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); - setDrillDownImage(column.getLinkImg()); - setConfirmationText(null); - } else if(column.getColumnId().equals("copy")) { - setDrillDownLink("report_wizard.htm?action=report.copy&c_master="+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("<a href=\""); - sb.append(column.getLinkURL()); - sb.append(nvl(linkIdValue)); - if (column.getLinkConfirmMsg() != null) { - sb.append(" onClick=\"return confirm('"); - sb.append(column.getLinkConfirmMsg()); - sb.append("');\""); - } - sb.append("\">"); - if (column.getLinkImg() != null) { - sb.append("<img src=\""); - sb.append(column.getLinkImg()); - sb.append("\""); - sb.append(column.getLinkImgSizeHtml()); - sb.append(" border=\"0\""); - sb.append(column.getLinkTitle() != null ? " alt=\"" - + column.getLinkTitle()/* - * +(column.isDeleteLink()?" - * "+linkIdValue:"") - */ - + "\"" : ""); - sb.append(">"); - } else - sb.append(column.getLinkTitle()); - sb.append("</a>"); - } else { - sb.append("<input type=\""); - if (column.getLinkImg() != null) { - sb.append("image\" src=\""); - sb.append(column.getLinkImg()); - sb.append("\""); - sb.append(column.getLinkImgSizeHtml()); - sb.append(" border=\"0\""); - sb.append(column.getLinkTitle() != null ? " alt=\"" - + column.getLinkTitle()/* - * +(column.isDeleteLink()?" - * "+linkIdValue:"") - */ - + "\"" : ""); - } else { - sb.append("submit\" value=\""); - sb.append(column.getLinkTitle()); - sb.append("\""); - } - sb.append(" onClick=\""); - if (column.getLinkConfirmMsg() != null) { - sb.append("if(! confirm('"); - sb.append(column.getLinkConfirmMsg()); - sb.append("')) return false; "); - } - sb.append(column.getLinkURL()); - sb.append(" document."); - sb.append(column.getLinkForm()); - sb.append("."); - sb.append(AppConstants.RI_REPORT_ID); - sb.append(".value='"); - sb.append(nvl(linkIdValue)); - sb.append("';"); - sb.append(" document."); - sb.append(column.getLinkForm()); - sb.append("."); - sb.append("refresh"); - sb.append(".value='"); - sb.append("Y"); - 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java deleted file mode 100644 index 00e18f12..00000000 --- a/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultJSON.java +++ /dev/null @@ -1,80 +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.ArrayList; - -public class SearchResultJSON{ - - public ArrayList<SearchResultColumn> searchResultColumns = new ArrayList<SearchResultColumn>(); - - public ArrayList<SearchResultRow> searchResultRows = new ArrayList<SearchResultRow>(); - - - - - - - public ArrayList<SearchResultColumn> getSearchResultColumns() { - return searchResultColumns; - } - - public void setSearchResultColumns(ArrayList<SearchResultColumn> searchResultColumns) { - this.searchResultColumns = searchResultColumns; - } - - public ArrayList<SearchResultRow> getSearchResultRows() { - return searchResultRows; - } - - public void setSearchResultRows(ArrayList<SearchResultRow> 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/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java b/ecomp-sdk/sdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/search/SearchResultRow.java deleted file mode 100644 index 21fb0254..00000000 --- a/ecomp-sdk/sdk-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.ArrayList; - -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 |