List of usage examples for org.hibernate.mapping Table getName
public String getName()
From source file:com.krawler.esp.hibernate.impl.reportMethods.java
License:Open Source License
public String loadData(HttpServletRequest request) throws ServiceException { String result = "{data:[],count : 0}"; try {//from w ww .j a v a2s . c o m String reportid = request.getParameter("reportid"); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery += ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filterQry = ""; if (Boolean.parseBoolean(request.getParameter("isFilter"))) { // filterQry = " "+reportTName+"."+request.getParameter("filterfield").split(PropsValues.REPORT_HARDCODE_STR)[1]+" = '"+request.getParameter("filtervalue")+"'"; filterQry = request.getParameter("filterfield").replaceAll(PropsValues.REPORT_HARDCODE_STR, ".") + " = '" + request.getParameter("filtervalue") + "'"; } if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = " where " + filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments SELECT_QUERY = "select mb_moduleConfigMap.configid.configid from com.krawler.esp.hibernate.impl.mb_moduleConfigMap " + "as mb_moduleConfigMap where mb_moduleConfigMap.moduleid = ? "; List configlist = find(SELECT_QUERY, new Object[] { report }); ite = configlist.iterator(); boolean commentFlag = false; boolean docFlag = false; while (ite.hasNext()) { int configid = (Integer) ite.next(); if (configid == 1) { // Comments commentFlag = true; } else if (configid == 2) { // Documents docFlag = true; } } JSONObject jobj = new JSONObject(); int count = 0; String searchFilter = ""; if (request.getParameter("filterJson") != null && !request.getParameter("filterJson").equals("")) { JSONArray filterJsonObj = new JSONArray(request.getParameter("filterJson")); JSONObject ObjJSONObject = null; String substr = ""; String reportClassName = ""; for (int i = 0; i < filterJsonObj.length(); i++) { ObjJSONObject = (JSONObject) filterJsonObj.get(i); reportClassName = ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[0]; if (ObjJSONObject.getString("xtype").equals("Date")) { String[] splitString = ObjJSONObject.getString("searchText").split(","); String fromDate = splitString[0]; String toDate = splitString[1]; substr = " >= '" + fromDate + " 00:00:00" + "'" + " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + " <= '" + toDate + " 00:00:00" + "'"; } else if (ObjJSONObject.getString("xtype").equals("Number(Integer)") || ObjJSONObject.getString("xtype").equals("Number(Float)")) { substr = " = " + ObjJSONObject.getString("searchText"); } else if (ObjJSONObject.getString("xtype").equals("radio") || ObjJSONObject.getString("xtype").equalsIgnoreCase("checkbox")) { substr = " = " + Boolean.parseBoolean(ObjJSONObject.getString("searchText")); } else if (ObjJSONObject.getString("xtype").equals("Combobox")) { substr = " = '" + ObjJSONObject.getString("searchText") + "'"; if (!ObjJSONObject.getString("combogridconfig").equals("-1")) { searchFilter += " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + substr; } else { if (reportTName.equals("")) { searchFilter += " and " + reportClassName + ".id" + substr; } else { searchFilter += " and " + reportClassName + "id" + substr; } } } else { substr = " like '%" + ObjJSONObject.getString("searchText") + "%'"; } if (!ObjJSONObject.getString("xtype").equals("Combobox")) { searchFilter += " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + substr; } } } //Generate rules filter query for report grid String ruleFilterQuery = ""; // ArrayList permArray = AuthHandler.getRealRoleids(request); // for(int i = 0; i < permArray.size(); i++) { // int roleid = Integer.parseInt(permArray.get(i).toString()); // String res = ModuleBuilderController.checkFilterRulesQuery(session, report, roleid, 0, ""); // if(!StringUtil.isNullOrEmpty(res)) { // res = "("+res +")"; // if(!StringUtil.isNullOrEmpty(ruleFilterQuery)) // ruleFilterQuery = res + " or " + ruleFilterQuery; // else // ruleFilterQuery = res; // } // } if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; String sortQuery = ""; if (request.getParameter("sort") != null && !request.getParameter("sort").equals("")) { String sortColumnName = request.getParameter("sort").replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); sortQuery = " Order by " + sortColumnName + " " + request.getParameter("dir"); } Object[] paramArray = null; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); ; } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class, Boolean.class, Object[].class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridLoadData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, searchFilter, ruleFilterQuery, sortQuery, reportTName, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj, true, paramArray }; Object result11 = objMethod1.invoke(invoker1, obj1); } if (jobj.has("data")) { jobj.put("count", count); result = jobj.toString(); } else { result = "{data:[],count : 0}"; } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (ServiceException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return result; } }
From source file:com.krawler.esp.hibernate.impl.reportMethods.java
License:Open Source License
public JSONObject getModuleData(HttpServletRequest request) { String result = "{data:[],count : 0}"; JSONObject jobj = new JSONObject(); try {//from w w w. j a v a 2 s.c o m String reportid = request.getParameter("moduleid"); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery += ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable, mb_gridconfig.displayfield from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); ArrayList<String> displayFieldArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String displayField = row[5].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); displayFieldArray.add(displayField); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filterQry = ""; if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = " where " + filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments boolean commentFlag = false; boolean docFlag = false; String ruleFilterQuery = ""; if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridExportData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, ruleFilterQuery, reportTName, displayFieldArray, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj }; Object result11 = objMethod1.invoke(invoker1, obj1); } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return jobj; } }
From source file:com.krawler.workflow.module.dao.ModuleBuilderDaoImpl.java
License:Open Source License
public String getGridData(HttpServletRequest request, Hashtable coldata, Object id, String pTable) { String result = "{data:[],count : 0}"; try {// ww w . ja v a2 s . co m // int start = Integer.parseInt(request.getParameter("start")); // int limit = Integer.parseInt(request.getParameter("limit")); String tName = coldata.get("reftable").toString(); String reportid = reportDao.getReportIdFromTable(tName); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery = ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filtertablename = PropsValues.PACKAGE_PATH + "." + pTable; Class modcl = Class.forName(filtertablename); Object modObj = get(modcl, id.toString()); String filterQry = " where " + tName + "." + pTable + "id=?"; if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments SELECT_QUERY = "select mb_moduleConfigMap.configid.configid from com.krawler.esp.hibernate.impl.mb_moduleConfigMap " + "as mb_moduleConfigMap where mb_moduleConfigMap.moduleid = ? "; List configlist = find(SELECT_QUERY, new Object[] { report }); ite = configlist.iterator(); boolean commentFlag = false; boolean docFlag = false; while (ite.hasNext()) { int configid = (Integer) ite.next(); if (configid == 1) { // Comments commentFlag = true; } if (configid == 2) { // Documents commentFlag = true; } } //Generate rules filter query for report grid String ruleFilterQuery = ""; // ArrayList permArray = AuthHandler.getRealRoleids(request); // for(int i = 0; i < permArray.size(); i++) { // int roleid = Integer.parseInt(permArray.get(i).toString()); // String res = ModuleBuilderController.checkFilterRulesQuery(session, report, roleid, 0, ""); // if(!StringUtil.isNullOrEmpty(res)) { // res = "("+res +")"; // if(!StringUtil.isNullOrEmpty(ruleFilterQuery)) // ruleFilterQuery = res + " or " + ruleFilterQuery; // else // ruleFilterQuery = res; // } // } if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; String searchFilter = ""; String sortQuery = ""; JSONObject jobj = new JSONObject(); Object[] paramArray = new Object[] { modObj }; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class, Boolean.class, Object[].class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridLoadData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, searchFilter, ruleFilterQuery, sortQuery, reportTName, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj, false, paramArray }; Object result11 = objMethod1.invoke(invoker1, obj1); } if (jobj.has("data")) { // jobj.put("count", count); result = jobj.toString(); } else { result = "{data:[]}"; } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[]}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[]}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return result; } }
From source file:com.netspective.medigy.util.HibernateDiagramReferenceTableNodeGenerator.java
License:Open Source License
public GraphvizDiagramNode generateTableNode(final HibernateDiagramGenerator generator, final HibernateDiagramGeneratorFilter filter, final PersistentClass pclass) { final Class refEntityCacheEnum = filter.getReferenceCachedItems(generator, pclass); final Table table = pclass.getTable(); final StringBuffer dataRowsHtml = new StringBuffer(); int colSpan = 0; Object[] dataRows = refEntityCacheEnum.getEnumConstants(); if (dataRows != null && dataRows.length > 0) { int count = dataRows.length > maxRowsToShow ? maxRowsToShow : dataRows.length; for (int i = 0; i < count; i++) { final CachedReferenceEntity row = (CachedReferenceEntity) dataRows[i]; dataRowsHtml.append("<TR>"); colSpan = 2;//ww w .jav a 2s .c o m dataRowsHtml.append("<TD ALIGN=\"LEFT\">"); dataRowsHtml.append(row.getId()); dataRowsHtml.append("</TD>"); dataRowsHtml.append("<TD ALIGN=\"LEFT\">"); dataRowsHtml.append(row.getLabel()); dataRowsHtml.append("</TD>"); dataRowsHtml.append("</TR>\n"); } if (count < dataRows.length) dataRowsHtml.append(" <TR><TD COLSPAN=\"" + colSpan + "\">(Only " + count + " of " + dataRows.length + " shown)</TD></TR>\n"); } StringBuffer tableNodeLabel = new StringBuffer("<<TABLE " + entityTableAttrs + ">\n"); tableNodeLabel.append(" <TR><TD COLSPAN=\"" + colSpan + "\" BGCOLOR=\"" + tableNameBgColor + "\">" + table.getName() + "</TD></TR>\n"); if (dataRowsHtml.length() > 0) tableNodeLabel.append(dataRowsHtml); tableNodeLabel.append(" </TABLE>>"); GraphvizDiagramNode result = new GraphvizDiagramNode(generator.getGraphvizDiagramGenerator(), table.getName()); result.setLabel(tableNodeLabel.toString()); result.setShape("plaintext"); result.setFontName("Helvetica"); return result; }
From source file:com.netspective.tool.hibernate.document.diagram.HibernateDiagramTableNameNodeGenerator.java
License:Open Source License
public GraphvizDiagramNode generateTableNode(final HibernateDiagramGenerator generator, final HibernateDiagramGeneratorFilter filter, final PersistentClass pclass) { final Table table = pclass.getTable(); StringBuffer tableNodeLabel = new StringBuffer( "<<TABLE " + filter.getEntityTableHtmlAttributes(generator, pclass) + ">\n"); tableNodeLabel.append(" <TR><TD " + filter.getTableNameCellHtmlAttributes(generator, pclass) + ">" + table.getName() + "</TD></TR>\n"); tableNodeLabel.append(" </TABLE>>"); final GraphvizDiagramNode result = new GraphvizDiagramNode(generator.getGraphvizDiagramGenerator(), table.getName());/* w ww . jav a 2s . c om*/ result.setLabel(tableNodeLabel.toString()); result.setShape("plaintext"); result.setFontName("Helvetica"); return result; }
From source file:com.netspective.tool.hibernate.document.diagram.HibernateDiagramTableStructureNodeGenerator.java
License:Open Source License
public GraphvizDiagramNode generateTableNode(final HibernateDiagramGenerator generator, final HibernateDiagramGeneratorFilter filter, final PersistentClass pclass) { final Table table = pclass.getTable(); final StringBuffer primaryKeyRows = new StringBuffer(); final StringBuffer childKeyRows = new StringBuffer(); final StringBuffer columnRows = new StringBuffer(); final PrimaryKey primaryKeyColumns = table.getPrimaryKey(); final String indent = " "; int hidden = 0; for (final Iterator columns = table.getColumnIterator(); columns.hasNext();) { final Column column = (Column) columns.next(); if (filter.includeColumnInDiagram(generator, column)) { try { ForeignKey partOfForeignKey = null; for (Iterator fkIterator = table.getForeignKeyIterator(); fkIterator.hasNext();) { final ForeignKey fKey = (ForeignKey) fkIterator.next(); if (fKey.containsColumn(column)) { partOfForeignKey = fKey; break; }/*www. j a v a2 s. co m*/ } if (primaryKeyColumns.containsColumn(column)) primaryKeyRows.append(filter.getColumnDefinitionHtml(generator, column, primaryKeyColumns, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); else if (partOfForeignKey != null && generator.isParentRelationship(partOfForeignKey)) childKeyRows.append(filter.getColumnDefinitionHtml(generator, column, null, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); else columnRows.append(filter.getColumnDefinitionHtml(generator, column, null, partOfForeignKey, showDataTypes, showConstraints, indent) + "\n"); } catch (SQLException e) { throw new HibernateDiagramGeneratorException(e); } catch (NamingException e) { throw new HibernateDiagramGeneratorException(e); } } else hidden++; } int colSpan = 1; if (showDataTypes) colSpan++; if (showConstraints) colSpan++; StringBuffer tableNodeLabel = new StringBuffer( "<<TABLE " + filter.getEntityTableHtmlAttributes(generator, pclass) + ">\n"); tableNodeLabel.append(" <TR><TD COLSPAN=\"" + colSpan + "\" " + filter.getTableNameCellHtmlAttributes(generator, pclass) + ">" + table.getName() + "</TD></TR>\n"); if (primaryKeyRows.length() > 0) tableNodeLabel.append(primaryKeyRows); if (childKeyRows.length() > 0) tableNodeLabel.append(childKeyRows); tableNodeLabel.append(columnRows); if (hidden > 0) tableNodeLabel.append( " <TR><TD COLSPAN=\"" + colSpan + "\">(" + hidden + " columns not shown)</TD></TR>\n"); tableNodeLabel.append(" </TABLE>>"); GraphvizDiagramNode result = new GraphvizDiagramNode(generator.getGraphvizDiagramGenerator(), table.getName()); result.setLabel(tableNodeLabel.toString()); result.setShape("plaintext"); result.setFontName("Helvetica"); return result; }
From source file:com.opengamma.util.db.management.AbstractDbManagement.java
License:Open Source License
@Override public void clearTables(String catalog, String schema, Collection<String> ignoredTables) { LinkedList<String> script = new LinkedList<String>(); Connection conn = null;/*from w w w .j a va2 s. c o m*/ try { if (!getCatalogCreationStrategy().catalogExists(catalog)) { return; // nothing to clear } conn = connect(catalog); setActiveSchema(conn, schema); Statement statement = conn.createStatement(); // Clear tables SQL List<String> tablesToClear = new ArrayList<String>(); for (String name : getAllTables(catalog, schema, statement)) { if (!ignoredTables.contains(name.toLowerCase())) { tablesToClear.add(name); } } List<String> clearTablesCommands = getClearTablesCommand(schema, tablesToClear); script.addAll(clearTablesCommands); for (String name : tablesToClear) { Table table = new Table(name); if (matches(table.getName().toLowerCase(), Pattern.compile(".*?hibernate_sequence"))) { // if it's a sequence table, reset it script.add("INSERT INTO " + table.getQualifiedName(getHibernateDialect(), null, schema) + " values ( 1 )"); } } // Now execute it all. Constraints are taken into account by retrying the failed statement after all // dependent tables have been cleared first. int i = 0; int maxAttempts = script.size() * 3; // make sure the loop eventually terminates. Important if there's a cycle in the table dependency graph SQLException latestException = null; while (i < maxAttempts && !script.isEmpty()) { String sql = script.remove(); try { statement.executeUpdate(sql); } catch (SQLException e) { // assume it failed because of a constraint violation // try deleting other tables first - make this the new last statement latestException = e; script.add(sql); } i++; } statement.close(); if (i == maxAttempts && !script.isEmpty()) { throw new OpenGammaRuntimeException( "Failed to clear tables - is there a cycle in the table dependency graph?", latestException); } } catch (SQLException e) { throw new OpenGammaRuntimeException("Failed to clear tables", e); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { } } }
From source file:com.siemens.scr.avt.ad.query.common.DicomMappingDictionaryLoadingStrategy.java
License:Open Source License
private void loadPersistentClass(DicomMappingDictionary dict, PersistentClass pc) { Table table = pc.getTable(); Iterator<Property> it = pc.getPropertyIterator(); while (it.hasNext()) { Property prop = it.next();/*from w w w. j av a2 s. c o m*/ loadProperty(dict, prop, table, pc.getClassName()); } String tableName = table.getSchema() + "." + table.getName(); String key = pc.getClassName(); dict.put(key, new WildcardEntry(tableName)); }
From source file:com.siemens.scr.avt.ad.query.common.DicomMappingDictionaryLoadingStrategy.java
License:Open Source License
private void loadProperty(DicomMappingDictionary dict, Property prop, Table table, String classPrefix) { String key = classPrefix + "." + prop.getName(); Type type = prop.getType();// w w w . j a v a 2 s.co m String tableName = table.getSchema() + "." + table.getName(); if (type.isAssociationType() || type.isCollectionType()) { // do nothing } else if (type.isComponentType()) { Component component = (Component) prop.getValue(); Iterator<Property> it = component.getPropertyIterator(); while (it.hasNext()) { Property subProp = it.next(); loadProperty(dict, subProp, table, component.getRoleName()); } } else { int sqltype = sqlTypes(type); assert prop.getColumnSpan() == 1; Iterator<Column> it = prop.getColumnIterator(); String column = it.next().getName(); dict.addMappingEntry(key, tableName, column, sqltype); loadTag(dict, prop, key); loadDicomHeaderMetadata(dict, tableName, column, prop); } }
From source file:com.siemens.scr.avt.ad.query.common.HibernateLoadingStrategy.java
License:Open Source License
protected static String tableNameFromTable(Table table) { return table.getSchema() + "." + table.getName(); }