--- /dev/null
+/*\r
+ * HTML sequence\r
+ *\r
+ * Copyright(c) 2009 olyutorskii\r
+ * $Id: HtmlSequence.java 888 2009-11-04 06:23:35Z olyutorskii $\r
+ */\r
+\r
+package jp.sourceforge.jindolf;\r
+\r
+import java.net.URL;\r
+import jp.sourceforge.jindolf.parser.DecodedContent;\r
+\r
+/**\r
+ * HTML本文。\r
+ * 任意のDecodedContentをラップする。\r
+ * 由来となるURLと受信時刻を含む。\r
+ */\r
+// TODO Dateも含めたい\r
+public class HtmlSequence implements CharSequence{\r
+\r
+ private final URL url;\r
+ private final long datems;\r
+ private final DecodedContent html;\r
+\r
+ /**\r
+ * コンストラクタ。\r
+ * @param url 由来のURL\r
+ * @param datems 受信時刻(エポックミリ秒)\r
+ * @param html HTML本文\r
+ * @throws java.lang.NullPointerException 引数がnull\r
+ */\r
+ public HtmlSequence(URL url, long datems, DecodedContent html)\r
+ throws NullPointerException{\r
+ if(url == null || html == null){\r
+ throw new NullPointerException();\r
+ }\r
+ this.url = url;\r
+ this.datems = datems;\r
+ this.html = html;\r
+ return;\r
+ }\r
+\r
+ /**\r
+ * URLを返す。\r
+ * @return URL\r
+ */\r
+ public URL getURL(){\r
+ return this.url;\r
+ }\r
+\r
+ /**\r
+ * 受信時刻を返す。\r
+ * 単位はエポック時からのミリ秒。\r
+ * @return 受信時刻\r
+ */\r
+ public long getDateMs(){\r
+ return this.datems;\r
+ }\r
+\r
+ /**\r
+ * HTML文字列を返す。\r
+ * @return HTML文字列\r
+ */\r
+ public DecodedContent getContent(){\r
+ return this.html;\r
+ }\r
+\r
+ /**\r
+ * {@inheritDoc}\r
+ * @param index {@inheritDoc}\r
+ * @return {@inheritDoc}\r
+ */\r
+ public char charAt(int index){\r
+ return this.html.charAt(index);\r
+ }\r
+\r
+ /**\r
+ * {@inheritDoc}\r
+ * @return {@inheritDoc}\r
+ */\r
+ public int length(){\r
+ return this.html.length();\r
+ }\r
+\r
+ /**\r
+ * {@inheritDoc}\r
+ * @param start {@inheritDoc}\r
+ * @param end {@inheritDoc}\r
+ * @return {@inheritDoc}\r
+ */\r
+ public CharSequence subSequence(int start, int end){\r
+ return this.html.subSequence(start, end);\r
+ }\r
+\r
+ /**\r
+ * {@inheritDoc}\r
+ * @return {@inheritDoc}\r
+ */\r
+ @Override\r
+ public String toString(){\r
+ return this.html.toString();\r
+ }\r
+\r
+}\r