import java.util.*;
/**
*
* 決定表のコントロール部分
*/
public class KetteiCntl {
/*
* 右側の上のYN
*/
public static final String[] zyoken_list={
"YYN", // 0
"YNY", // 1
"NYY", // 2
"NNN"}; // 3
/*
* 右側の下の実行内容
*/
public static final String[] todo_list={
"--X-", // YYN
"X---", // YNY
"---X", // NYY
"-X--"}; // NNN
/*
* 決定表の実行処理
*/
public int execute(HashMap map)
{
//======================//
// データ取得 //
//======================//
// 年齢
int age = 0;
try
{
String buf = (String)map.get("age");
age = Integer.parseInt(buf);
}
catch(Exception e)
{
e.printStackTrace();
return -1;
}
// 性別
String seibetsu = (String)map.get("seibetsu");
if ( seibetsu == null )
{
return -1;
}
// 既婚者・未婚者
String kikon = (String)map.get("kikon");
if ( kikon == null )
{
return -1;
}
//======================//
// 条件判定 //
//======================//
// 条件文をここに設定
String zyoken = "";
// 30歳未満
if ( age < 30 )
{
zyoken = zyoken+"Y";
}
else
{
zyoken = zyoken+"N";
}
// 男性
if(seibetsu.equals("男性") == true )
{
zyoken = zyoken+"Y";
}
else
{
zyoken = zyoken+"N";
}
// 既婚者
if(kikon.equals("既婚者") == true )
{
zyoken = zyoken+"Y";
}
else
{
zyoken = zyoken+"N";
}
logout(zyoken);
//======================//
// 実行条件の選択 //
//======================//
String todo = "----";
for(int i = 0 ; i < zyoken_list.length ; i ++ )
{
if ( zyoken_list[i].equals(zyoken)== true )
{
todo = todo_list[i];
}
}
logout(todo);
//======================//
// 実行 //
//======================//
KetteiModel ketteiModel = new KetteiModel();
// 1段目の実行条件
if ( todo.charAt(0) == 'X' )
{
ketteiModel.zikko_1();
}
// 2段目の実行条件
if ( todo.charAt(1) == 'X' )
{
ketteiModel.zikko_2();
}
// 3段目の実行条件
if ( todo.charAt(2) == 'X' )
{
ketteiModel.zikko_3();
}
// 4段目の実行条件
if ( todo.charAt(3) == 'X' )
{
ketteiModel.zikko_4();
}
return 0;
}
/*
* ログ出力
*/
public void logout(String msg)
{
// System.out.println(msg);
}
}
|