use of com.nhn.dbtool.query.parser.sqlmap.model.SqlMapQuery in project cubrid-manager by CUBRID.
the class Parser method loopNode.
/**
* XML Document에서 Node 단위로 반복하여 Query를 추출하여 SqlMapFile에 담는다.
*
* @param document XML Document
* @param sqlMapFile
* @throws Exception
*/
private void loopNode(Document document, SqlMapFile sqlMapFile) throws Exception {
String currentComment = "";
SqlMapQueryParser queryParser = new SqlMapQueryParser();
// rootElement 하위의 모든 Node를 읽어온다
// Node 타입이 COMMENT, ELEMENT인 경우에 따라 정보 수집
Iterator<?> nodeIterator = document.getRootElement().nodeIterator();
while (nodeIterator.hasNext()) {
Node node = (Node) nodeIterator.next();
switch(node.getNodeType()) {
case Node.COMMENT_NODE:
currentComment = node.getText();
break;
case Node.ELEMENT_NODE:
// parsing 해야 할 element인지 확인
if (SqlMapParserUtil.isParsingTarget(node.getName())) {
//Element 타입의 node에서 Query 정보를 읽어 SqlMapQuery를 생성한다.
SqlMapQuery query = queryParser.parse((Element) node);
// ELEMENT_NODE 직전에 읽어들인 Comment를 본 쿼리의 comment로 간주하여 설정한다.
query.setComment(currentComment.replaceAll("\t", ""));
sqlMapFile.getSqlMapQueryList().add(query);
}
currentComment = "";
break;
case Node.TEXT_NODE:
break;
default:
currentComment = "";
break;
}
}
}
Aggregations