/*
 * $Revision: 1.9 $ $Date: 2005/09/08 01:32:34 $
 * (C) 2004 SUGIMOTO Ken-ichi
 */

package feat.v1;

import feat.v1.config.ViewDeclaration;
import feat.v1.template.HTMLDocument;

abstract public class View {

    private ViewDeclaration viewDeclaration;

    abstract public HTMLDocument format(HTMLDocument template, String[] params, ContextAccessor acc) throws Exception;

    /**
     * このビューの宣言を返す。
     * @return ViewDeclaration
     */
    public ViewDeclaration getViewDeclaration() {
        return viewDeclaration;
    }
    public void setViewDeclaration(ViewDeclaration viewDeclaration) {
        this.viewDeclaration = viewDeclaration;
    }

    /**
     * このビューが宣言されたFeatureのリソースを検索する。
     * ロケールは現在のコンテキストでもっとも適切な値が採用される。
     * @param name リソース名
     * @param acc
     * @return
     */
    public String getStringResource(String name, ContextAccessor acc) {
        return acc.getStringResource(viewDeclaration.getFeatureDeclaration(), name);
    }
}
