JinParser 変更履歴
+2.101.X (20XX-XX-XX)
+ ・文字デコード処理をJioCemaに分離。
+ ・OSDN社の事情を鑑みパッケージ名とgroupIdを変更。
+ ・XHTMLに依存しない部分をパッケージ分離。
+
1.409.4 (2017-04-09)
・F国URL修正に伴い JinCore 1.206.10 に対応。
=== 依存ライブラリ ===
- - JinParserはビルドに際してJinCoreライブラリを必要とします。
- 開発時はMaven等を用いてJinCoreライブラリを用意してください。
+ - JinParserã\81¯ã\83\93ã\83«ã\83\89ã\81«é\9a\9bã\81\97ã\81¦JinCoreã\80\81JioCema両ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\82\92å¿\85è¦\81ã\81¨ã\81\97ã\81¾ã\81\99ã\80\82
+ 開発時はMaven等を用いてこれらのライブラリを用意してください。
=== 開発プロジェクト運営元 ===
<modelVersion>4.0.0</modelVersion>
<!--parent/-->
- <groupId>jp.sourceforge.jindolf</groupId>
+ <groupId>jp.osdn.jindolf</groupId>
<artifactId>jinparser</artifactId>
- <version>1.409.5-SNAPSHOT</version>
+ <version>2.101.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JinParser</name>
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.GameRole;
/**
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.PeriodType;
import jp.sourceforge.jindolf.corelib.VillageState;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Matcher;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* 連結パーサの基本インタフェース。
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* 人狼BBSで用いられる4種類のXHTML文字実体参照の
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.EventFamily;
import jp.sourceforge.jindolf.corelib.GameRole;
import jp.sourceforge.jindolf.corelib.PeriodType;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
/**
* 各種XHTMLパース用ハンドラをまとめたインタフェース。
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
/**
* XHTMLパースの異常系情報。
* {@link HtmlParser}の各ハンドラは、この例外をスローすることで
* パース処理の即時停止を{@link HtmlParser}に指示することができる。
- * パース対象({@link DecodedContent})内のパース中断位置を
- * 保持することができる。
+ * パース対象({@link jp.osdn.jindolf.parser.content.DecodedContent})
+ * 内のパース中断位置を保持することができる。
* 中断位置が不明な場合は負の値が設定される。
*/
@SuppressWarnings("serial")
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Pattern;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.PeriodType;
import jp.sourceforge.jindolf.corelib.VillageState;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
/**
* 人狼BBSサーバが生成するXHTMLページの種別。
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.MatchResult;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.EventFamily;
import jp.sourceforge.jindolf.corelib.GameRole;
import jp.sourceforge.jindolf.corelib.SysEventType;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Pattern;
import jp.sourceforge.jindolf.corelib.EventFamily;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import jp.sourceforge.jindolf.corelib.TalkType;
/**
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.regex.Pattern;
import jp.sourceforge.jindolf.corelib.TalkType;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.CharDecodeListener;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.util.Comparator;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.util.ArrayList;
import java.util.Collections;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.nio.charset.Charset;
* Copyright(c) 2018 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeNotifier;
import java.io.IOException;
--- /dev/null
+/*
+ * JinParser (content) パッケージコメント
+ *
+ * License : The MIT License
+ * Copyright(c) 2018 olyutorskii
+ */
+
+/**
+ * このパッケージは、人狼BBS用パーサライブラリ「JinParser」から
+ * XHTMLに依存しない部分のみを抽出したライブラリである。
+ *
+ * <p>
+ * 任意のバイトストリームから、
+ * デコードエラー情報付き文字列{@code DecodedContent}を得るには、
+ * 次のように行う。
+ * <pre>
+ * {@code
+ * InputStream is = .....
+ * DecodeNotifier decoder = new DecodeNotifier(...);
+ * ContentBuilder builder = new ContentBuilder();
+ * decoder.setCharDecodeListener(builder);
+ * try{
+ * decoder.decode(is);
+ * }catch(IOException e){
+ * // ERROR!
+ * }catch(DecodeBreakException e){
+ * // ABORT!
+ * }
+ * DecodedContent content = builder.getContent();
+ * }
+ * </pre>
+ *
+ * <hr>
+ *
+ * <p>
+ * The MIT License
+ * <p>
+ * Copyright(c) 2018 olyutorskii
+ * <p>
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ * <p>
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * <p>
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ * </p>
+ *
+ * <hr>
+ *
+ * @see <a href="http://jindolf.osdn.jp/">
+ * Jindolfポータルサイト</a>
+ * @see <a href="https://osdn.jp/projects/jindolf/devel/">
+ * Jindolf開発プロジェクト</a>
+ */
+
+package jp.osdn.jindolf.parser.content;
+
+/* EOF */
/*
* JinParser パッケージコメント
*
- * このファイルは、SunJDK5.0以降に含まれるJavadoc用に用意された、
- * 特別な名前を持つソースファイルです。
- * このファイルはソースコードを含まず、
- * パッケージコメントとパッケージ宣言のみが含まれます。
- *
* License : The MIT License
* Copyright(c) 2009 olyutorskii
*/
/**
* これは Jindolf プロジェクトにおける、
- * XHTMLæ\96\87æ\9b¸ã\81®ã\83\91ã\83¼ã\82¹é\83¨å\88\86ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81§ã\81\99。
+ * XHTMLæ\96\87æ\9b¸ã\81®ã\83\91ã\83¼ã\82¹é\83¨å\88\86ã\82\92æ§\8bæ\88\90ã\81\99ã\82\8bã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81§ã\81\82ã\82\8b。
*
* <p>
* JinParserライブラリは、CGIゲーム「人狼BBS」のクライアント制作者向けに
- * ä½\9cã\82\89ã\82\8cã\81\9fJavaã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81§ã\81\99。
+ * ä½\9cã\82\89ã\82\8cã\81\9fJavaã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81§ã\81\82ã\82\8b。
* JinParserライブラリは、人狼BBSの専用クライアント開発プロジェクト
- * ã\80\8cJindolfã\80\8dã\81\8bã\82\89æ´¾ç\94\9fã\81\97ã\81¾ã\81\97ã\81\9fã\80\82
+ * 「Jindolf」から派生した。
*
* <hr>
*
* <p>
- * 任意のバイトストリームから、
- * デコードエラー情報付き文字列{@code DecodedContent}を得るには、
- * 次のようにします。
- * <pre>
- * {@code
- * InputStream is = .....
- * DecodeNotifier decoder = new DecodeNotifier(...);
- * ContentBuilder builder = new ContentBuilder();
- * decoder.setCharDecodeListener(builder);
- * try{
- * decoder.decode(is);
- * }catch(IOException e){
- * // ERROR!
- * }catch(DecodeBreakException e){
- * // ERROR!
- * }
- * DecodedContent content = builder.getContent();
- * }
- * </pre>
- *
- * <p>
- * このようにして得られた文字列をパースして、
+ * 文字列と文字デコードエラーが混在した{@code DecodedContent}をパースして、
* あなたの実装したハンドラ{@code YourHandler}に通知するには、
- * 以下のようにします。
+ * 以下のように行う。
* <pre>
* {@code
+ * DecodedContent content = ...;
* HtmlParser parser = new HtmlParser();
* HtmlHandler handler = new YourHandler();
* parser.setBasicHandler(handler);
*
* <p>
* ハンドラ内部で、パース元となった文字列の一部を切り出したい場合は、
- * {@code EntityConverter}ã\82\92使ã\81\86ã\81®ã\81\8c便å\88©ã\81§ã\81\99。
+ * {@code EntityConverter}ã\82\92使ã\81\86ã\81®ã\81\8c便å\88©ã\81§ã\81\82ã\82\8b。
*
* <hr>
*
* Jindolf開発プロジェクト</a>
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
/* EOF */
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import java.util.List;
+import jp.osdn.jindolf.parser.content.DecodeErrorInfo;
+import jp.osdn.jindolf.parser.content.DecodedContent;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser;
import org.junit.After;
import org.junit.AfterClass;
/*
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.io.ByteArrayInputStream;
import java.util.ArrayList;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
import io.bitbucket.olyutorskii.jiocema.DecodeNotifier;
* Copyright(c) 2010 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
import io.bitbucket.olyutorskii.jiocema.DecodeNotifier;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import org.junit.After;
import org.junit.AfterClass;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.util.ArrayList;
import java.util.List;
* Copyright(c) 2009 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import java.io.UnsupportedEncodingException;
import org.junit.After;
/*
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeNotifier;
import java.io.InputStream;
* Copyright(c) 2018 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.CharDecodeListener;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
* Copyright(c) 2018 olyutorskii
*/
-package jp.sourceforge.jindolf.parser;
+package jp.osdn.jindolf.parser.content;
import io.bitbucket.olyutorskii.jiocema.DecodeBreakException;
/*
* sample handler
- *
+ *
* License : The MIT License
* Copyright(c) 2009 olyutorskii
*/
package sample;
-import jp.sourceforge.jindolf.parser.DecodedContent;
-import jp.sourceforge.jindolf.parser.EntityConverter;
-import jp.sourceforge.jindolf.parser.HtmlAdapter;
-import jp.sourceforge.jindolf.parser.HtmlParseException;
-import jp.sourceforge.jindolf.parser.SeqRange;
+import jp.osdn.jindolf.parser.EntityConverter;
+import jp.osdn.jindolf.parser.HtmlAdapter;
+import jp.osdn.jindolf.parser.HtmlParseException;
+import jp.osdn.jindolf.parser.SeqRange;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* サンプルのハンドラ
import java.util.TreeMap;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
-import jp.sourceforge.jindolf.parser.*;
+import jp.osdn.jindolf.parser.HtmlHandler;
+import jp.osdn.jindolf.parser.HtmlParseException;
+import jp.osdn.jindolf.parser.HtmlParser;
+import jp.osdn.jindolf.parser.content.ContentBuilder;
+import jp.osdn.jindolf.parser.content.DecodedContent;
/**
* サンプルのパーサ