@Override public ParameterTranslations getParameterTranslations() { if ( paramTranslations == null ) { paramTranslations = new ParameterTranslationsImpl( getWalker().getParameterSpecs() ); } return paramTranslations; }
@Override public String[] getReturnAliases() { errorIfDML(); return getWalker().getReturnAliases(); } @Override
/** * Types of the return values of an <tt>iterate()</tt> style query. * * @return an array of <tt>Type</tt>s. */ @Override public Type[] getReturnTypes() { errorIfDML(); return getWalker().getReturnTypes(); } @Override
public BasicExecutor(HqlSqlWalker walker, Queryable persister) { this.persister = persister; try { SqlGenerator gen = new SqlGenerator( walker.getSessionFactoryHelper().getFactory() ); gen.statement( walker.getAST() ); sql = gen.getSQL(); gen.getParseErrorHandler().throwQueryException(); parameterSpecifications = gen.getCollectedParameters(); } catch ( RecognitionException e ) { throw QuerySyntaxException.convert( e ); } }
private HqlSqlWalker analyze(HqlParser parser, String collectionRole) throws QueryException, RecognitionException { final HqlSqlWalker w = new HqlSqlWalker( this, factory, parser, tokenReplacements, collectionRole ); final AST hqlAst = parser.getAST(); // Transform the tree. w.statement( hqlAst ); if ( LOG.isDebugEnabled() ) { LOG.debug( TokenPrinters.SQL_TOKEN_PRINTER.showAsString( w.getAST(), "--- SQL AST ---" ) ); } w.getParseErrorHandler().throwQueryException(); return w; }
private HqlParser(String hql) { // The fix for HHH-558... super( new HqlLexer( new StringReader( hql ) ) ); parseErrorHandler = new ErrorTracker( hql ); // Create nodes that track line and column number. setASTFactory( new HqlASTFactory() ); }
/** * The SQL query string to be called. */ @Override public String getSQLString() { return queryTranslator.getSQLString(); }
@Override public FilterTranslator createFilterTranslator( String queryIdentifier, String queryString, Map filters, SessionFactoryImplementor factory) { return new QueryTranslatorImpl( queryIdentifier, queryString, filters, factory ); } }
@Override public Set<Serializable> getQuerySpaces() { return getWalker().getQuerySpaces(); }
public int[] getNamedParameterLocs(String name) { return getWalker().getNamedParameterLocations( name ); } @Override
public boolean isShallowQuery() { // select clauses for insert statements should alwasy be treated as shallow return getStatementType() == INSERT || queryTranslatorImpl.isShallowQuery(); }
@Override protected QueryException generateQueryException(String queryString) { return new QuerySyntaxException( getOriginalMessage(), queryString, this ); } }
@Override public void reportError(RecognitionException e) { parseErrorHandler.reportError( e ); }
/** * Converts the given ANTLR RecognitionException into a QuerySyntaxException. The RecognitionException * does not become the cause because ANTLR exceptions are not serializable. * * @param e The ANTLR exception * * @return The QuerySyntaxException */ public static QuerySyntaxException convert(RecognitionException e) { return convert( e, null ); }
@Override protected void postProcessUpdate(AST update) throws SemanticException { UpdateStatement updateStatement = (UpdateStatement) update; postProcessDML( updateStatement ); }
@Override public void panic() { //overriden to avoid System.exit panic( "CharScanner: panic" ); }
/** * Get a HqlParser instance for the given HQL string. * * @param hql The HQL query string * * @return The parser. */ public static HqlParser getInstance(String hql) { return new HqlParser( hql ); }
public SqlGenerator(SessionFactoryImplementor sfi) { super(); parseErrorHandler = new ErrorTracker(); sessionFactory = sfi; }
@Override public QueryTranslator createQueryTranslator( String queryIdentifier, String queryString, Map filters, SessionFactoryImplementor factory, EntityGraphQueryHint entityGraphQueryHint) { return new QueryTranslatorImpl( queryIdentifier, queryString, filters, factory, entityGraphQueryHint ); }
@Override public void reportError(RecognitionException e) { parseErrorHandler.reportError( e ); // Use the delegate. }