/*
 * $Id: ApplicationException.java,v 1.1 2005/05/22 14:58:43 sugimotokenichi Exp $
 * Copyright (C) 2005 SUGIMOTO Ken-ichi
 * 作成日: 2005/05/15
 */
package feat.v1;

import feat.v1.config.FeatureDeclaration;

/**
 * アプリケーションで起こった例外をFeatフレームワークで伝播するためのラッパークラス。
 * @author SUGIMOTO Ken-ichi
 */
public class ApplicationException extends FeatException {

    private FeatureDeclaration featureDecl;

    /**
     *
     * @param cause
     * @param feature 例外が起きたフィーチャー。causeはここで指定したフィーチャーの例外ハンドラに渡される
     */
    public ApplicationException(Exception cause, FeatureDeclaration feature) {
        super(cause);
        featureDecl = feature;
    }

    /**
     *
     * @param message
     * @param feature 例外が起きたフィーチャー。causeはここで指定したフィーチャーの例外ハンドラに渡される
     */
    public ApplicationException(String message, FeatureDeclaration feature) {
        super(message);
        featureDecl = feature;
    }

    /**
     *
     * @param message
     * @param cause
     * @param feature 例外が起きたフィーチャー。causeはここで指定したフィーチャーの例外ハンドラに渡される
     */
    public ApplicationException(String message, Exception cause, FeatureDeclaration feature) {
        super(message, cause);
        featureDecl = feature;
    }

    public FeatureDeclaration getFeatureDeclaration() {
        return featureDecl;
    }

}
