if (mtable != null) { Table table = convertToTable(mtable); jdoFilter = parser.tree.generateJDOFilter(table, params); } else { jdoFilter = parser.tree.generateJDOFilter(null, params);
private String makeQueryFilterString(MTable mtable, String filter, Map<String, String> params) throws MetaException { StringBuilder queryBuilder = new StringBuilder( "table.tableName == t1 && table.database.name == t2"); if( filter != null && filter.length() > 0) { Table table = convertToTable(mtable); CharStream cs = new ANTLRNoCaseStringStream(filter); FilterLexer lexer = new FilterLexer(cs); CommonTokenStream tokens = new CommonTokenStream(); tokens.setTokenSource (lexer); FilterParser parser = new FilterParser(tokens); try { parser.filter(); } catch(RecognitionException re) { throw new MetaException("Error parsing partition filter : " + re); } String jdoFilter = parser.tree.generateJDOFilter(table, params); if( jdoFilter.trim().length() > 0 ) { queryBuilder.append(" && ( "); queryBuilder.append(jdoFilter.trim()); queryBuilder.append(" )"); } } return queryBuilder.toString(); }