2 * JSON parse error information
4 * License : The MIT License
5 * Copyright(c) 2009 olyutorskii
8 package jp.sourceforge.jovsonz;
12 * JSON文字列ソースへのパース処理の中断時に投げられる。
14 @SuppressWarnings("serial")
15 public class JsParseException extends Exception {
17 static final String ERRMSG_INVALIDTOKEN =
19 static final String ERRMSG_INVALIDROOT =
20 "top root JSON value must be OBJECT or ARRAY";
21 static final String ERRMSG_NODATA =
22 "We need but no more JSON data";
24 private static final int LINE_UNKNOWN = 0;
26 private final int lineNumber;
31 public JsParseException(){
32 this(null, LINE_UNKNOWN);
38 * @param message 詳細メッセージ。不明な場合はnull
39 * @param lineNumber 行番号。不明な場合は0以下の値
41 public JsParseException(String message, int lineNumber){
42 this(message, (Throwable) null, lineNumber);
48 * @param message 詳細メッセージ。不明な場合はnull
49 * @param cause 原因となった例外。不明な場合はnull
50 * @param lineNumber 行番号。不明な場合は0以下の値
52 public JsParseException(String message, Throwable cause, int lineNumber){
53 super(message, cause);
54 this.lineNumber = lineNumber;
60 * @return 行番号。不明な場合は0以下の値。
62 public int getLineNumber(){
63 return this.lineNumber;
68 * @return 有効な行番号(1以上)を保持していればtrue
70 public boolean hasValidLineNumber(){
71 if(this.lineNumber > 0) return true;
78 * @return {@inheritDoc}
81 public String getMessage(){
82 StringBuilder message = new StringBuilder();
84 String superMessage = super.getMessage();
85 if(superMessage != null){
86 message.append(superMessage);
89 if(hasValidLineNumber()){
90 if(message.length() > 0) message.append(' ');
91 message.append("[line:").append(this.lineNumber).append(']');
94 if(message.length() <= 0) return null;
95 return message.toString();