org.hibernate.hql.internal.ast.QuerySyntaxException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.hql.internal.ast;
import org.hibernate.QueryException;
import antlr.RecognitionException;
/**
* Exception thrown when there is a syntax error in the HQL.
*
* @author josh
*/
public class QuerySyntaxException extends QueryException {
/**
* Constructs a QuerySyntaxException
*
* @param message Message explaining the condition that led to the exception
*/
public QuerySyntaxException(String message) {
super( message );
}
/**
* Constructs a QuerySyntaxException
*
* @param message Message explaining the condition that led to the exception
* @param hql The hql query that was being parsed/analyzed
*/
public QuerySyntaxException(String message, String hql) {
super( message, hql );
}
/**
* Intended for use solely from {@link #generateQueryException(String)}
*
* @param message Message explaining the condition that led to the exception
* @param queryString The hql query that was being parsed/analyzed
* @param cause The cause, generally another QuerySyntaxException
*/
protected QuerySyntaxException(String message, String queryString, Exception cause) {
super( message, queryString, cause );
}
/**
* 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 );
}
/**
* 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
* @param hql The query string
*
* @return The QuerySyntaxException
*/
public static QuerySyntaxException convert(RecognitionException e, String hql) {
String positionInfo = e.getLine() > 0 && e.getColumn() > 0
? " near line " + e.getLine() + ", column " + e.getColumn()
: "";
return new QuerySyntaxException( e.getMessage() + positionInfo, hql );
}
@Override
protected QueryException generateQueryException(String queryString) {
return new QuerySyntaxException( getOriginalMessage(), queryString, this );
}
}