Example usage for org.hibernate.mapping Table getName

List of usage examples for org.hibernate.mapping Table getName

Introduction

In this page you can find the example usage for org.hibernate.mapping Table getName.

Prototype

public String getName() 

Source Link

Usage

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();
}