/*
 * mBench: The Open Source Micro Benchmark Tool
 *
 * Distributable under GPL license.
 * See terms of license at gnu.org.
 *
 * Copyright (C) 2005 Sumisho Computer Systems Corp.
 */
package jp.co.scs.mbench.component;

import jp.co.scs.mbench.Benchmark;
import jp.co.scs.mbench.BenchmarkAbortException;
import jp.co.scs.mbench.BenchmarkTerminateException;
import jp.co.scs.mbench.ThreadTerminateException;

/**
 *      Support to create benchmark component.<br>
 *      You can create easy by spreading this class.
 *
 *      @author Tetsuro Ikeda
 */
public class BenchmarkSupport implements Benchmark {

    private String benchmarkName = null;
    
    private String[] optionLabels = null;
    
    /**
     *  ベンチマークコンポーネントの名前を取得する．
     * 
     *  @return ベンチマークコンポーネントの名前
     */
    public String getBenchmarkName() {
        return this.benchmarkName;
    }
    
    /**
     *  ベンチマークコンポーネントの名前を設定する．
     * 
     *  @param benchmarkName ベンチマークコンポーネントの名前
     */
    public void setBenchmarkName(String benchmarkName) {
        this.benchmarkName = benchmarkName;
    }

    /**
     *  ベンチマークコンポーネントの計測項目のラベルを取得する．
     * 
     *  @return ベンチマークコンポーネントの計測項目のラベル 
     */
    public String[] getOptionLabels() {
        return this.optionLabels;
    }

    /**
     *  ベンチマークコンポーネントの計測項目のラベルを設定する．
     * 
     *  @param optionLabels ベンチマークコンポーネントの計測項目のラベル
     */
    public void setOptionLabels(String[] optionLabels) {
        this.optionLabels = optionLabels;
    }
    
    /**
     *  ベンチマークの初期処理を行う。BenchmarkSupportではこのメソッドは
     *  空実装となっている．
     */
    public void init() throws BenchmarkTerminateException {
    }

    /**
     *  ベンチマーク処理を行う。BenchmarkSupportではこのメソッドは
     *  空実装となっている．戻り値としてnullを返す．
     * 
     *  @return 処理時の情報
     */
    public String[] execute() throws ThreadTerminateException,
            BenchmarkTerminateException {
        return null;
    }

    /**
     *  ベンチマークの終了処理を行う。BenchmarkSupportではこのメソッドは
     *  空実装となっている．
     */
    public void clean() throws BenchmarkAbortException {
    }

}
