// Paraselene2 2.2.2.17 (http://paraselene.sourceforge.jp/) generated this source file.
/*
 * Paraselene
 * Copyright (c) 2009, 2010  Akira Terasaki
 * このファイルは同梱されているLicense.txtに定めた条件に同意できる場合にのみ
 * 利用可能です。
 */
package paraselene.mockup.output.source.base;
public class Resource extends paraselene.mockup.Output {
protected String getFileByte() { return
"package #1.#x;\n\nimport paraselene.*;\nimport paraselene.supervisor.*;\nimport java.io.*;\nimport java.net.*;\nimport java.util.*;\nimport paraselene.dyna.*;\n\n/**\n * リソース出力。\n */\npublic class Resource extends #1.SuperPage implements Downloadable {\n	private static final long serialVersionUID = 1L;\n\n	/**\n	 * コンストラクタ。\n	 */\n	public Resource() {\n		super();\n		try {\n			setInitialized( true );\n		}\n		catch( Exception e ) {\n			Option.debug( e );\n		}\n	}\n	/**\n	 * ページIDの取得。\n	 * @return ページID。\n	 */\n	public PageID getID() {\n		return PageType.PARASELENE_RESOURCE;\n	}\n	/**\n	 * ブラウザに403を返す。\n	 * @param req リクエスト内容。\n	 * @param fw デフォルト遷移先。\n	 * @exception PageException 処理の継続が不可能(ブラウザには500を返す)。\n	 */\n	public Forward inputMain( RequestParameter req, Forward fw ) throws PageException {\n		return new Forward( 403 );\n	}\n	public boolean isHistoryClear() { return false; }\n	public boolean isAllowHistoryAdd() { return false; }\n	/**\n	 * 別名URI設定。\n	 * @return paraselene.css.na\n	 */\n	public String getAliasURI() {\n		return \"paraselene.resource.na\";\n	}\n	/**\n	 * 初回outputの呼び出しメイン処理。\n	 * @param req リクエスト内容。\n	 * @exception PageException 処理の継続が不可能(ブラウザには500を返す)。\n	 */\n	public void firstOutputMain( RequestParameter req ) throws PageException{}\n\n	private String file_name;\n\n	/**\n	 * 出力情報の設定を行う。\n	 * @param from 遷移元ページ。直接呼ばれている場合はnullです。\n	 * @param req リクエスト内容。\n	 * @return 出力ページ。\n	 * @exception PageException 処理の継続が不可能(ブラウザには500を返す)。\n	 */\n	public Page outputMain( Page from, RequestParameter req ) throws PageException {\n		file_name = new File( req.getRelativeURI().getPath() ).getParent();\n		if ( file_name.charAt( 0 ) == '/' )	file_name = file_name.substring( 1 );\n		return this;\n	}\n	/**\n	 * 出力コンテントタイプ。\n	 * @return コンテントタイプ。\n	 */\n	public String getContentType() {\n		return MimeType.getMimeType( file_name );\n	}\n	/**\n	 * 更新日。\n	 * @return 更新日。\n	 */\n	public HTTPDate getLastModified() {\n		return Version.getLastModified( file_name );\n	}\n	/**\n	 * 出力内容の取得。\n	 * @return ストリーム。\n	 * @exception PageException 処理の継続が不可能(ブラウザには500を返す)。\n	 */\n	public InputStream getInputStream() throws PageException {\n		try {\n			return Version.getResource( file_name );\n		}\n		catch( Exception e ) {\n			throw new PageException( e );\n		}\n	}\n	public NameDefine[] inspectName( Page page, String ... exclude ){ return null;}\n}\n\n";}
}
