package com.vci.server.query.parsers;
|
|
import com.vci.common.qt.interfaces.IParserFactory;
|
import com.vci.common.qt.object.QueryTemplate;
|
|
public class ParserFactory implements IParserFactory {
|
private static ParserFactory _instance = null;
|
|
public static ParserFactory getInstance() {
|
if (_instance == null) {
|
_instance = new ParserFactory();
|
}
|
|
return _instance;
|
}
|
|
public String parseToSql(QueryTemplate qt, boolean addGrandRightFlag) {
|
|
if(qt.getLevel() == 1){
|
ParserForOneLevel parserForOneLevel = new ParserForOneLevel(qt);
|
parserForOneLevel.setAddGrandRightFlag(addGrandRightFlag);
|
if(qt.isQueryISLeaf()){
|
return parserForOneLevel.parseToSqlForLinkStartWith();
|
}else{
|
return parserForOneLevel.parseToSql();
|
}
|
}else{
|
Parser parser = new Parser(qt);
|
parser.setAddGrandRightFlag(addGrandRightFlag);
|
return parser.parseToSql();
|
}
|
|
//return "";
|
}
|
|
|
public String parseToSubSql(QueryTemplate qt, boolean addGrandRightFlag) {
|
|
if(qt.getLevel() == 1){
|
ParserForOneLevel parserForOneLevel = new ParserForOneLevel(qt);
|
parserForOneLevel.setAddGrandRightFlag(addGrandRightFlag);
|
if(qt.isQueryISLeaf()){
|
return parserForOneLevel.parseToSqlForLinkStartWith();
|
}else{
|
return parserForOneLevel.parseToSubSql();
|
}
|
}else{
|
Parser parser = new Parser(qt);
|
parser.setAddGrandRightFlag(addGrandRightFlag);
|
return parser.parseToSubSql();
|
}
|
|
//return "";
|
}
|
|
}
|