OSDN Git Service

Merge commit '2458eff3aea04f67893bc824b5cf896fbb767332'
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / HtmlSequence.java
diff --git a/src/main/java/jp/sourceforge/jindolf/HtmlSequence.java b/src/main/java/jp/sourceforge/jindolf/HtmlSequence.java
new file mode 100644 (file)
index 0000000..760890e
--- /dev/null
@@ -0,0 +1,104 @@
+/*\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