/*
 * このソースコードは blanco Frameworkによって自動生成されています。
 */
package blanco.sample.service;

/**
 * サービス定義ID[Sample]の抽象処理クラス。
 *
 * 説明: サービスのサンプル。このクラスは単にサンプルです。実際の動作には利用されません。<br>
 * このクラスは、Javaで書かれたアプリケーションをアプリケーションサーバ上に常駐させるための仕組みの一部です。<br>
 * このクラスを継承して SampleProcess というクラスを作り、その中に具体的な処理を記載してください。
 */
public abstract class AbstractSampleProcess implements Runnable {
    /**
     * 処理がスレッドとして動作する際のエントリポイント。
     *
     * java.lang.Runnable がスレッドとして実行された際に、このメソッドが呼び出されます。
     */
    public final void run() {
        System.out.println("SampleProcess: begin.");

        try {
            execute();
        } catch (Exception ex) {
            System.out.println("SampleProcess: exception: " + ex.toString());
            ex.printStackTrace();
        } catch (Error er) {
            System.out.println("SampleProcess: error: " + er.toString());
            er.printStackTrace();
        }

        System.out.println("SampleProcess: end.");
    }

    /**
     * 実際の処理内容を記述するメソッド。
     *
     * このメソッドを実装して、実際の処理記述を行います。
     */
    public abstract void execute();

    /**
     * 処理が停止される際に呼び出されるメソッド。
     *
     * 停止処理を記述します。特別な停止処理がない場合には、このメソッドを上書きする必要はありません。
     */
    public void stop() {
        // 特に何も処理は行いません。
        System.out.println("SampleProcess: stop.");
    }
}
