2 * unexpected file format founded exception
\r
4 * License : The MIT License
\r
5 * Copyright(c) 2010 MikuToga Partners
\r
8 package jp.sourceforge.mikutoga.parser;
\r
12 * 必要に応じて、パースに失敗した位置を保持する。
\r
14 @SuppressWarnings("serial")
\r
15 public class MmdFormatException extends Exception {
\r
17 private final long position;
\r
22 public MmdFormatException(){
\r
29 * @param message エラーメッセージ
\r
31 public MmdFormatException(String message){
\r
38 * @param position 入力ソース先頭から数えたエラー位置。(バイト単位)
\r
39 * 負の値を与えると、エラー位置は無効と解釈される。
\r
41 public MmdFormatException(long position){
\r
42 this(null, position);
\r
48 * @param message エラーメッセージ
\r
49 * @param position 入力ソース先頭から数えたエラー位置。(バイト単位)
\r
50 * 負の値を与えると、エラー位置は無効と解釈される。
\r
52 public MmdFormatException(String message, long position){
\r
54 this.position = position;
\r
60 * 有効なエラー発生位置を保持している場合、追加出力される。
\r
61 * @return {@inheritDoc}
\r
64 public String getMessage(){
\r
65 StringBuilder result = new StringBuilder();
\r
67 String msg = super.getMessage();
\r
68 if(msg != null) result.append(msg);
\r
72 .append("position:")
\r
73 .append(this.position)
\r
77 if(result.length() <= 0) return null;
\r
79 return result.toString();
\r
84 * @return 入力ソース先頭からのバイト数で表されるエラー位置。
\r
87 public long getPosition(){
\r
88 return this.position;
\r
92 * 有効なエラー位置が設定されているか判定する。
\r
93 * @return エラー位置が有効(非負)ならtrue
\r
95 public boolean hasPosition(){
\r
96 if(this.position < 0L) return false;
\r