Example usage for org.hibernate.mapping Column getName

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

Introduction

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

Prototype

public String getName() 

Source Link

Usage

From source file:com.github.shyiko.rook.target.hibernate4.fulltextindex.SynchronizationContext.java

License:Apache License

@SuppressWarnings("unchecked")
private PrimaryKey resolveForeignPrimaryKey(org.hibernate.mapping.Collection collection,
        Map<String, IndexingDirective> directivesByEntityNameMap) {
    Table collectionTable = collection.getCollectionTable();
    ToOne element = (ToOne) collection.getElement();
    IndexingDirective indexingDirective = directivesByEntityNameMap.get(element.getReferencedEntityName());
    if (indexingDirective == null) {
        return null;
    }//from   www. j av a 2 s .c o m
    Collection<String> targetPrimaryKeyColumnNames = new HashSet<String>();
    for (Iterator<Column> columnIterator = element.getColumnIterator(); columnIterator.hasNext();) {
        Column column = columnIterator.next();
        targetPrimaryKeyColumnNames.add(column.getName());
    }
    Map<String, Integer> columnIndexByNameMap = new HashMap<String, Integer>();
    int index = 0;
    for (Iterator<Column> columnIterator = collectionTable.getColumnIterator(); columnIterator.hasNext();) {
        Column column = columnIterator.next();
        if (targetPrimaryKeyColumnNames.contains(column.getName())) {
            columnIndexByNameMap.put(column.getName(), index);
        }
        index++;
    }
    return new PrimaryKey(indexingDirective.getPrimaryKey(), columnIndexByNameMap);
}

From source file:com.krawler.esp.hibernate.impl.HibernateUtil.java

License:Open Source License

public static String getPrimaryColName(Table table) throws ServiceException {
    String colName = "";
    try {//  w w  w.j a  v  a 2 s . com
        PrimaryKey pk = table.getPrimaryKey();
        List lst = pk.getColumns();
        Column col = (Column) lst.get(0);
        colName = col.getName();
    } catch (Exception e) {
        throw ServiceException.FAILURE("HibernateUtil.getPrimaryColName", e);
    }
    return colName;
}

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 {// www.  j a  v a 2 s  .c om
        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 {//w  ww.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 {//  www  .j a  v  a2s . com
        //            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.manydesigns.portofino.persistence.hibernate.HibernateConfig.java

License:Open Source License

private DependantValue createFKComposite(Mappings mappings,
        com.manydesigns.portofino.model.database.ForeignKey relationship,
        com.manydesigns.portofino.model.database.Table manyMDTable, PersistentClass clazzOne,
        PersistentClass clazzMany, Bag set, Table tableMany, Table tableOne, List<Column> oneColumns,
        List<Column> manyColumns) {
    DependantValue dv;/* ww w .  ja v  a 2 s .c  o  m*/
    Component component = new Component(mappings, set);
    component.setDynamic(manyMDTable.getActualJavaClass() == null);
    component.setEmbedded(true);
    dv = new DependantValue(mappings, clazzMany.getTable(), component);
    dv.setNullable(true);
    dv.setUpdateable(true);

    for (Reference ref : relationship.getReferences()) {
        String colToName = ref.getToColumn();
        String colToPropertyName = ref.getActualToColumn().getActualPropertyName();
        String colFromName = ref.getFromColumn();
        Iterator it = tableMany.getColumnIterator();
        while (it.hasNext()) {
            Column col = (Column) it.next();
            if (col.getName().equals(colFromName)) {
                dv.addColumn(col);
                manyColumns.add(col);
                break;
            }
        }

        Iterator it2 = tableOne.getColumnIterator();
        while (it2.hasNext()) {
            Column col = (Column) it2.next();
            if (col.getName().equals(colToName)) {
                oneColumns.add(col);
                break;
            }
        }
        Property refProp;
        refProp = getRefProperty(clazzOne, colToPropertyName);
        component.addProperty(refProp);
    }
    return dv;
}

From source file:com.manydesigns.portofino.persistence.hibernate.HibernateConfig.java

License:Open Source License

private DependantValue createFKSingle(Mappings mappings, PersistentClass clazzOne, PersistentClass clazzMany,
        Table tableOne, List<Column> oneColumns, List<Column> manyColumns, List<Reference> refs) {
    DependantValue dv;/*from w  ww  . j  a v a 2 s.c o  m*/
    Property refProp;

    Reference reference = refs.get(0);
    String colFromName = reference.getFromColumn();
    String colToName = reference.getToColumn();
    String colToPropertyName = reference.getActualToColumn().getActualPropertyName();
    refProp = getRefProperty(clazzOne, colToPropertyName);
    dv = new DependantValue(mappings, clazzMany.getTable(), refProp.getPersistentClass().getKey());
    dv.setNullable(true);
    dv.setUpdateable(true);

    Iterator it = clazzMany.getTable().getColumnIterator();
    while (it.hasNext()) {
        Column col = (Column) it.next();
        if (col.getName().equals(colFromName)) {
            dv.addColumn(col);
            manyColumns.add(col);
            break;
        }
    }

    Iterator it2 = tableOne.getColumnIterator();
    while (it2.hasNext()) {
        Column col = (Column) it2.next();
        if (col.getName().equals(colToName)) {
            oneColumns.add(col);
            break;
        }
    }
    return dv;
}

From source file:com.oy.shared.lm.ext.HBMCtoGRAPH.java

License:Open Source License

private Attribute addSimpleProp(SimpleValue val, String name) {
    if (!val.isSimpleValue()) {
        throw new RuntimeException("Expected SimpleValue.");
    }/*  ww  w.ja v  a 2 s . co m*/

    Attribute attr = new Attribute();
    attr.name = name;
    if (attr.name == null) {
        Iterator iter = val.getColumnIterator();
        while (iter.hasNext()) {
            Column col = (Column) iter.next();
            attr.name = col.getName();
            break;
        }
    }
    if (val instanceof Component) {
        attr.type = ((Component) val).getComponentClassName();
    } else {
        attr.type = val.getType().getName();
    }

    return attr;
}

From source file:com.tomitribe.reveng.codegen.FreemarkerObject.java

License:Apache License

public String generateManyToOneAnnotation(final BasicPOJOClass pojo, final Property p, String table) {

    // @ForeignKey(name="FK_recipe_tree_node")
    final Value value = p.getValue();
    final int span;
    final Iterator columnIterator;
    if (value != null && value instanceof Collection) {
        final Collection collection = (Collection) value;
        span = collection.getKey().getColumnSpan();
        columnIterator = collection.getKey().getColumnIterator();
    } else {/*from  w  w w. ja  va2  s. c o  m*/
        span = p.getColumnSpan();
        columnIterator = p.getColumnIterator();
    }
    final Selectable selectable = (Selectable) columnIterator.next();
    final Column column = (Column) selectable;
    table += "_" + column.getName(); // id_tree_node
    table = "FK_" + table.replace("_id_", "_");

    String s = EntityPOJOClass.class.cast(pojo).generateManyToOneAnnotation(p);
    s += "\n@ForeignKey(name=\"" + table + "\")";

    // log.info(s);

    return s;
}

From source file:com.tomitribe.reveng.codegen.FreemarkerObject.java

License:Apache License

public String annotate(final BasicPOJOClass pojo, final Object pObj, final Object rootObj,
        final Object toolObj) {
    // public String annotate(final Object pojo, final Property p, final
    // RootClass root, final Cfg2HbmTool tool) {

    if (BasicPOJOClass.class.isInstance(pojo)) {

    } else {//from w  w  w.  j a va  2  s . c o  m
        // System.out.println(ob.class.getName());
    }

    RootClass root = null;
    try {
        root = (RootClass) rootObj;
    } catch (final Exception e) {
        // TODO Auto-generated catch block
        // e.printStackTrace();
        return "";
    }

    final Property p = (Property) pObj;
    final Cfg2HbmTool tool = (Cfg2HbmTool) toolObj;

    final Table table = root.getTable();

    Iterator it = table.getColumnIterator();

    Column column = null;
    Column c;
    String name;
    while (it.hasNext()) {
        c = (Column) it.next();

        name = c.getName().replace("_", "").toLowerCase();

        if (name.equals(p.getName().toLowerCase())) {
            column = c;
            break;
        }
    }

    if (null != column) {

        System.out.print("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - ");

        it = table.getIndexIterator();

        org.hibernate.mapping.Index index;
        while (it.hasNext()) {

            final Object next = it.next();

            if (org.hibernate.mapping.Index.class.isInstance(next)) {

                index = org.hibernate.mapping.Index.class.cast(next);

                if (index.containsColumn(column)) {
                    System.out.print(index.getName());

                    return String.format("\n@Index(name = \"%1$s\", columnNames = {\"%2$s\"})",
                            index.getName().toLowerCase(), column.getName());
                }
            }
        }

        System.out.println();
    } else {
        System.out.println("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - "
                + p.getNodeName() + " - " + p.getPropertyAccessorName());
    }

    return "";
}