2 * handler for parse talk-part
4 * License : The MIT License
5 * Copyright(c) 2009 olyutorskii
8 package jp.sourceforge.jindolf.parser;
10 import jp.sourceforge.jindolf.corelib.TalkType;
13 * 人狼BBSの発言部XHTML断片をパースするためのハンドラ。
15 * このハンドラの全メソッドはパーサ{@link HtmlParser}から呼び出される。
17 * パーサが発言箇所を発見すると、まず最初に
18 * {@link #startTalk()}が呼び出される。
19 * 発言内容に従い、このハンドラの様々なメソッドが0回以上呼び出される。
20 * 最後に{@link #endTalk()}が呼び出される。
23 * 一部のメソッドに渡される{@link DecodedContent}文字列オブジェクトは
25 * 後々で内容が必要になるならば、ハンドラはSeqRangeで示されたこの内容の
26 * 必要な箇所をコピーして保存しなければならない。
28 * フラグメントや属性値中の文字参照記号列の解釈はハンドラ側の責務とする。
30 * 各メソッドは、各々の判断で{@link HtmlParseException}をスローする
31 * ことにより、パース作業を中断させることができる。
33 public interface TalkHandler{
37 * @throws HtmlParseException パースエラー
40 throws HtmlParseException;
44 * @throws HtmlParseException パースエラー
47 throws HtmlParseException;
51 * 負の値が渡ってきた場合は白発言でないので無視してよい。
53 * @throws HtmlParseException パースエラー
55 void talkNo(int talkNo)
56 throws HtmlParseException;
59 * 発言部ID(Aタグのname属性)の通知を受け取る。
60 * @param content パース対象文字列
61 * @param idRange IDの範囲
62 * @throws HtmlParseException パースエラー
64 void talkId(DecodedContent content, SeqRange idRange)
65 throws HtmlParseException;
68 * 発言したAvatar名の通知を受け取る。
69 * @param content パース対象文字列
70 * @param avatarRange Avatar名の範囲
71 * @throws HtmlParseException パースエラー
73 void talkAvatar(DecodedContent content, SeqRange avatarRange)
74 throws HtmlParseException;
78 * @param hour 時間(24時間制)
80 * @throws HtmlParseException パースエラー
82 void talkTime(int hour, int minute)
83 throws HtmlParseException;
86 * 発言者の顔アイコンURLの通知を受け取る。
87 * @param content パース対象文字列
88 * @param urlRange URLの範囲。
89 * @throws HtmlParseException パースエラー
91 void talkIconUrl(DecodedContent content, SeqRange urlRange)
92 throws HtmlParseException;
97 * @throws HtmlParseException パースエラー
99 void talkType(TalkType type)
100 throws HtmlParseException;
104 * 1発言のパース中に複数回呼ばれる事もありうる。
105 * @param content パース対象文字列
106 * @param textRange テキストの範囲
107 * @throws HtmlParseException パースエラー
109 void talkText(DecodedContent content, SeqRange textRange)
110 throws HtmlParseException;
113 * 発言テキスト内のBRタグ出現の通知を受け取る。
114 * 1発言のパース中に複数回呼ばれる事もありうる。
115 * @throws HtmlParseException パースエラー
118 throws HtmlParseException;