transaction.script.ClearQuestTrScript.java Source code

Java tutorial

Introduction

Here is the source code for transaction.script.ClearQuestTrScript.java

Source

/*
* $Id
*
* (C) Copyright 1997 i-Teco, CJSK. All Rights reserved.
* i-Teco PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
* ?  1997 i-Teco, ?.
*  ?    ???   
*   ?  i-Teco.          
*/
package transaction.script;

import factory.JdbcTemplateFactory;
import org.apache.log4j.Logger;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import util.Checker;
import util.querytemplate.QueryTemplate;

import java.sql.SQLException;
import java.util.HashMap;

import static util.querytemplate.QueryTemplate.queryTemplate;

/**
 * $Id
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Author: g.alexeev (g.alexeev@i-teco.ru)</p>
 * <p>Date: 07.05.13</p>
 *
 * @version 1.0
 */
public class ClearQuestTrScript {
    private static final Logger logger = Logger.getRootLogger();
    public final String HEADLINE = "headline";
    public final String DCNUMBER = "dcnumber";

    private static QueryTemplate dcQueryTemplate = queryTemplate("select dcnumber, headline from dc where dbid in "
            + "(select child_dbid from parent_child_links where child_entitydef_id in "
            + "(select id from entitydef where name = 'DC') "
            + "and parent_dbid in (select first_value(bb.dbid) over (order by bb.id desc) from build bb where bb.id is not null "
            + "and bb.project in (select dbid from project where name = '${project}'))) "
            + "and (headline like '%dql%' or headline like '%sql%') " + "order by dbid asc", false);

    /**
     *
     * @param projectName
     * @return
     * @throws SQLException
     */
    public HashMap<String, String> getLastBuildSQLDefChanges(String projectName) throws SQLException {
        Checker.checkStringForEmpty("project name", projectName, false);

        String query = dcQueryTemplate.substitute("project", projectName);

        JdbcTemplate cqTemplate = JdbcTemplateFactory.getClearQuestDBTemplate();
        HashMap<String, String> sqlMap = new HashMap<String, String>();

        SqlRowSet set = cqTemplate.queryForRowSet(query);
        while (set.next()) {
            String dcHeadline = set.getString(HEADLINE);
            if (dcHeadline.contains("sql")) {
                sqlMap.put(set.getString(DCNUMBER), dcHeadline);
            }
        }

        return sqlMap;
    }

    /**
     *
     * @param projectName
     * @return
     * @throws SQLException
     */
    public HashMap<String, String> getLastBuildDQLDefChanges(String projectName) throws SQLException {
        Checker.checkStringForEmpty("project name", projectName, false);

        String query = dcQueryTemplate.substitute("project", projectName);

        JdbcTemplate cqTemplate = JdbcTemplateFactory.getClearQuestDBTemplate();
        HashMap<String, String> dqlmap = new HashMap<String, String>();

        SqlRowSet set = cqTemplate.queryForRowSet(query);
        while (set.next()) {
            String dcHeadline = set.getString(HEADLINE);
            if (dcHeadline.contains("dql")) {
                dqlmap.put(set.getString(DCNUMBER), dcHeadline);
            }
        }

        return dqlmap;
    }

    /**
     * TODO: ?   DC
     * @param projectName
     * @return
     * @throws SQLException
     */
    public HashMap<String, String> getAllBuildDefChanges(String projectName) throws SQLException {
        Checker.checkStringForEmpty("project name", projectName, false);

        String query = dcQueryTemplate.substitute("project", projectName);

        JdbcTemplate template = JdbcTemplateFactory.getClearQuestDBTemplate();

        HashMap<String, String> dcMap = new HashMap<String, String>();

        logger.info("query \n" + query);

        SqlRowSet set = template.queryForRowSet(query);
        logger.info("resultset rows count " + set.getRow());

        while (set.next()) {
            logger.info("resultset rows count " + set.getRow());

            dcMap.put(set.getString(DCNUMBER), set.getString(HEADLINE));
        }

        return dcMap;
    }
}