2 * unexpected binary-file format founded exception
4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sfjp.mikutoga.bin.parser;
13 * <p>必要に応じて、パースに失敗した位置を保持する。
15 @SuppressWarnings("serial")
16 public class MmdFormatException extends Exception {
18 private final long position;
23 public MmdFormatException(){
30 * @param message エラーメッセージ
32 public MmdFormatException(String message){
39 * @param position 入力ソース先頭から数えたエラー位置。(バイト単位)
40 * 負の値を与えると、エラー位置は無効と解釈される。
42 public MmdFormatException(long position){
49 * @param message エラーメッセージ
50 * @param position 入力ソース先頭から数えたエラー位置。(バイト単位)
51 * 負の値を与えると、エラー位置は無効と解釈される。
53 public MmdFormatException(String message, long position){
55 this.position = position;
61 * 有効なエラー発生位置を保持している場合、
63 * @return {@inheritDoc}
66 public String getMessage(){
67 StringBuilder result = new StringBuilder();
69 String msg = super.getMessage();
70 if(msg != null) result.append(msg);
75 .append(this.position)
79 if(result.length() <= 0) return null;
81 return result.toString();
86 * @return 入力ソース先頭からのバイト数で表されるエラー位置。
89 public long getPosition(){
94 * 有効なエラー位置が設定されているか判定する。
95 * @return エラー位置が有効(非負)ならtrue
97 public boolean hasPosition(){
98 if(this.position < 0L) return false;