/*
 * $Id: WebContents.java,v 1.5 2006/01/26 16:27:34 rampil Exp $
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.rss.http;
import java.io.Serializable;
import java.net.URL;

/**
 * WebContents
 * サーバーからダウンロードしてきたウェブコンテンツを保有するためのオブジェクト
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.5 $
 */
public class WebContents implements Serializable {
	/** シリアルバージョンUID */
	private static final long serialVersionUID = -4901655369957216355L;

	/** 変換前のドキュメント */
	private String originalDocument;
	/** ドキュメント */
	private String document;
	/** ドキュメントタイトル */
	private String title;
	/** ドキュメントリソースの位置を示す情報(URLなど) */
	private String location;
	/** サイト名 */
	private String sitename;
	/** コンテンツのmime-type */
	private String contentType;
	/** HTTPステータスコード */
	private int responseCode;
	/** コンテンツのURL */
	private URL url;

	/** robots.txtかどうか(true:そう / false:違う) */
	private boolean robotsTxtFlg = false;

	/**
	 * コンストラクタ．
	 */
	public WebContents() {
	}

	/**
	 * レスポンスコードを返す．
	 * @return HTTPステータスコード
	 */
	public int getResponseCode() {
		return responseCode;
	}

	/**
	 * コンテンツの大きさを返す．
	 * オリジナルのコンテンツのサイズを返す．
	 */
	public int getContentLength() {
		return originalDocument.length();
	}
	/**
	 * 変換前のドキュメントを返す．
	 * @return 変換前のドキュメント
	 */
	public String getOriginalDocument() {
		return originalDocument;
	}

	/**
	 * コンテンツの種類を返す．
	 * @return コンテンツの種類(mime-type)
	 */
	public String getContentType() {
		return contentType;
	}

	/**
	 * ドキュメントを返す．
	 * @return ドキュメント
	 */
	public String getDocument() {
		return document;
	}

	/**
	 * ドキュメントリソースの位置情報を返す．
	 * @return ドキュメントリソースの位置情報(URLなど)
	 */
	public String getLocation() {
		return location;
	}

	/**
	 * サイト名を返す．
	 * @return サイト名
	 */
	public String getSitename() {
		return sitename;
	}

	/**
	 * ドキュメントタイトルを返す．
	 * @return ドキュメントタイトル
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * ドキュメントを設定する．
	 * @param string ドキュメント
	 */
	public void setDocument(String string) {
		document = string;
	}

	/**
	 * ドキュメントリソースの位置情報を設定する．
	 * @param string ドキュメントリソースの位置情報(URLなど)
	 */
	public void setLocation(String string) {
		location = string;
	}

	/**
	 * サイト名を設定する．
	 * @param string サイト名
	 */
	public void setSitename(String string) {
		sitename = string;
	}

	/**
	 * ドキュメントタイトルを設定する．
	 * @param string ドキュメントタイトル
	 */
	public void setTitle(String string) {
		title = string;
	}

	/**
	 * 変換前のドキュメントを設定する．
	 * @param ori 変換前のドキュメント
	 */
	public void setOriginalDocument(String ori) {
		originalDocument = ori;
	}

	/**
	 * ドキュメントの長さを返す．
	 * @return ドキュメントの長さ
	 */
	public int length() {
		return document == null ? 0 : document.length();
	}

	/**
	 * robots.txtかどうかを返す．
	 * @return true:そう / false:違う
	 */
	public boolean isRobotsTxtFlg() {
		return robotsTxtFlg;
	}

	/**
	 * mimeタイプを設定する．
	 * @param string mimeタイプ
	 */
	public void setContentType(String string) {
		contentType = string;
	}

	/**
	 * HTTPステータスコードを設定する．
	 * @param i httpステータスコード
	 */
	public void setResponseCode(int i) {
		responseCode = i;
	}

	/**
	 * robots.txtかどうかを返す．
	 * @param b true:そう / false:違う
	 */
	public void setRobotsTxtFlg(boolean b) {
		robotsTxtFlg = b;
	}

	/**
	 * コンテンツのURLを返す．
	 * @return コンテンツのURL
	 */
	public URL getURL() {
		return url;
	}

	/**
	 * コンテンツのURLを設定する．
	 * @param u コンテンツのURL
	 */
	public void setURL(URL u) {
		url = u;
	}
}
