/**
 * NoIndexException
 * ロボットによる収集を禁止されたページを解析しようとした場合に発生する例外
 * この例外を補足した場合，ページの解析を直ちに中止し，ページデータを破棄しなければならない
 */
package org.logical_paradox.rss.http;

import java.util.Vector;

public class NoIndexException extends Exception {
	private Vector anchorTags;
	private boolean followable = false;

	/**
	 * コンストラクタ
	 * これらのコンストラクタによって生成された場合，この例外が発生したページは収集することができないし
	 * またリンクも辿ることは禁止される
	 */
	public NoIndexException() {
	}
	public NoIndexException( String msg ) {
		super( msg );
	}

	/**
	 * アンカータグを引数にとるコンストラクタ
	 * 発生したページ自体は収集禁止だが，リンクの先は問題ない場合，こちらのコンストラクタで生成する
	 */
	public NoIndexException( String msg, Vector anchors ) {
		super( msg );
		anchorTags = anchors;
		followable = true;
	}

	/**
	 * このページ内のリンクをたどることについて，許可されているかどうかを返す
	 * つまり，<META NAME=ROBOTS CONTENT=NOINDEX,FOLLOW>になっているかどうか
	 * NOFOLLOWの場合はfalseを返す
	 */
	public boolean isFollowable() {
		return followable;
	}

	/**
	 * アンカータグのリストを返す
	 */
	public Vector getAnchorsInThisPage() {
		return anchorTags;
	}
}

// end of NoIndexException.java
