use of com.nhn.dbtool.query.parser.sqlmap.model.SqlMapParameter in project cubrid-manager by CUBRID.
the class SqlMapParameterParser method createDynamicParameter.
/**
* Element node의 property attribute를 통해서 파라미터를 추출하여 SqlMapQuery의 ParameterList에 추가 한다.
*
* @param node Element node
* @param query 추출한 파라미터를 담을 SqlMapQuery 객체
*/
private void createDynamicParameter(Node node, SqlMapQuery query) {
String parameterName = SqlMapParserUtil.getAttribute(node, "property");
if (StringUtils.isNotEmpty(parameterName)) {
SqlMapParameter newParameter = new SqlMapParameter();
newParameter.setName(parameterName);
newParameter.setDynamic(true);
query.addParameter(newParameter);
}
}
use of com.nhn.dbtool.query.parser.sqlmap.model.SqlMapParameter in project cubrid-manager by CUBRID.
the class SqlMapParameterParser method createStaticParameter.
/**
* Element내의 text 내용에서 파라미터를 추출하여 SqlMapQuery의 ParameterList에 추가 한다.
*
* @param nodeText Element내의 text 내용
* @param query 추출한 파라미터를 담을 SqlMapQuery 객체
*/
private void createStaticParameter(String nodeText, SqlMapQuery query) {
List<String> parameterList = SqlMapParserUtil.parseParameter(nodeText);
for (String parameterName : parameterList) {
SqlMapParameter newParameter = new SqlMapParameter();
newParameter.setName(parameterName);
newParameter.setDynamic(false);
query.addParameter(newParameter);
}
}
use of com.nhn.dbtool.query.parser.sqlmap.model.SqlMapParameter in project cubrid-manager by CUBRID.
the class SqlMapQueryParser method extractMyBatisTestConditions.
/**
* MyBatis test 속성 내의 조건식을 쿼리 조합시 사용하도록 parameter list에 입력
*
* @param query
* @param conditionList
*/
private void extractMyBatisTestConditions(SqlMapQuery query, List<SqlMapCondition> conditionList) {
if (conditionList == null) {
return;
}
for (SqlMapCondition condition : conditionList) {
if (condition == null || condition.getMyBatisTestConditions() == null) {
continue;
}
for (MyBatisTestCondition mCondition : condition.getMyBatisTestConditions()) {
String property = mCondition.getProperty();
SqlMapParameter sqlmapParameter = new SqlMapParameter();
sqlmapParameter.setName(property);
sqlmapParameter.setDynamic(true);
query.addParameter(sqlmapParameter);
}
if ("foreach".equals(condition.getType())) {
SqlMapParameter sqlmapParameter = new SqlMapParameter();
sqlmapParameter.setName(condition.getCollection());
sqlmapParameter.setDynamic(true);
query.addParameter(sqlmapParameter);
}
if (condition.getChildConditionList() != null) {
extractMyBatisTestConditions(query, condition.getChildConditionList());
}
}
}
use of com.nhn.dbtool.query.parser.sqlmap.model.SqlMapParameter in project cubrid-manager by CUBRID.
the class Parser method mergeInclude.
/**
* Include Id에 해당 하는 Query의 파싱된 정보를 원본 Query 및 Condition 에 추가
*
* @param query 원본 쿼리
* @param condition 원본 Include Condition
* @param includeQuery Include condition에 해당하는 Query
*/
private void mergeInclude(SqlMapQuery query, SqlMapCondition condition, SqlMapQuery includeQuery) {
// Query 정보 추가
condition.setStatement(includeQuery.getQuery());
condition.setModifiedStatement(includeQuery.getModifiedQuery());
// includeQuery의 condition 목록을 원본 Condition의 childCondition으로 추가
// condition를 그대로 추가하지 않고 Object의 hascode를 포함한 key값을 다시 생성하여야 한다.
List<SqlMapCondition> includeConditionList = new ArrayList<SqlMapCondition>();
for (SqlMapCondition includeCondition : includeQuery.getConditionList()) {
SqlMapCondition copiedCondition = includeCondition;
copiedCondition.setKey(null);
// 기존 쿼리에서 key값을 통한 해당 condition의 statement가 위치 자리의 key값을 새롭게 생성된 key값으로 변경한다.
condition.setModifiedStatement(condition.getModifiedStatement().replaceAll(includeCondition.getKey(), copiedCondition.getKey()));
includeConditionList.add(copiedCondition);
}
condition.setChildConditionList(includeQuery.getConditionList());
// Parameter 추가
for (SqlMapParameter includeParameter : includeQuery.getParameterList()) {
query.addParameter(includeParameter);
}
}
Aggregations