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 ""; } }