/*
    TCFbECell.cpp    June 6, 2004.

    Copyright (C) 2003-2004 CFbE Research Group,
    Software Engineering Laboratory,
    Graduate School of Information Science,
    Nara Institute of Science and Technology,
    All rights reserved.

    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2, (at your option) or
    any later version.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with GNU Emacs; see the file COPYING.  If not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
*/
//---------------------------------------------------------------------------
#pragma hdrstop

#include "TCFbECell.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
// コンストラクタ（測定されていないメトリクスを生成する
__fastcall TCFbECell::TCFbECell(void)
    : TObject()
{
    this->Enabled = false;
    this->FValue = 0.0;
    this->Rank = -1;
}

//---------------------------------------------------------------------------
// コンストラクタ（測定されているメトリクスを生成する
__fastcall TCFbECell::TCFbECell(double value)
    : TObject()
{
    this->SetValue(value);
}

//---------------------------------------------------------------------------
// コピーコンストラクタ
__fastcall TCFbECell::TCFbECell(TCFbECell* Source)
{
    this->Assign(Source);
}

//---------------------------------------------------------------------------
// デストラクタ
__fastcall TCFbECell::~TCFbECell()
{
}

//---------------------------------------------------------------------------
// this の各値に Source の各値を代入する
void __fastcall TCFbECell::Assign(TCFbECell* Source)
{
    this->Enabled = Source->Enabled;
    this->FValue = Source->FValue;
    this->Rank = Source->Rank;
}

//---------------------------------------------------------------------------
// 以下，protected メソッドの定義
//---------------------------------------------------------------------------
// Value の Set アクセサ
void __fastcall TCFbECell::SetValue(double value)
{
    this->Enabled = true;
    this->FValue = value;
}

//---------------------------------------------------------------------------
// Value の Get アクセサ
double __fastcall TCFbECell::GetValue()
{
    if (!this->Enabled) {
        throw EInvalidArgument("The cell's value is unavailable.");
    }

    return this->FValue;
}

//---------------------------------------------------------------------------

