SqlParseException.java
package com.github.mygreen.splate.parser;
import com.github.mygreen.splate.Position;
import com.github.mygreen.splate.TwoWaySqlException;
import lombok.Getter;
/**
* SQLテンプレートのパース時のエラー。
*
* @since 0.2
* @author T.TSUCHIE
*
*/
public class SqlParseException extends TwoWaySqlException {
/**
* パースエラーが発生したテンプレート内での位置情報
*/
@Getter
private final Position position;
/**
* メッセージと原因となったエラーを使用して新しいインスタンスを構築します。
*
* @param position パースエラーが発生したテンプレート内での位置情報
* @param message エラーメッセージ
* @param cause 原因となったエラー
*/
public SqlParseException(final Position position, String message, Throwable cause) {
super(message, cause);
this.position = position;
}
/**
* メッセージ使用して新しいインスタンスを構築します。
* @param position パースエラーが発生したテンプレート内での位置情報
* @param message エラーメッセージ
*/
public SqlParseException(final Position position, String message) {
super(message);
this.position = position;
}
@Override
public String getMessage() {
return super.getMessage()
+ System.getProperty("line.separator")
+ String.format("[row=%d, col=%d] %s", position.getRow(), position.getCol(), position.getLine());
}
}