<?php
/*
 * $Id: MainCommand.php,v 1.1.1.1 2003/12/13 11:04:19 jjlehto Exp $
 */

require_once("Batch/CommandBase.php");
require_once("SubCommand.php");
require_once("SubCommand2.php");

/**
 * 親バッチクラス
 */
class MainCommand extends Batch_CommandBase
{
    var $_a_flg = false;

    /**
     * コンストラクタ
     */
    function MainCommand()
    {
        parent::Batch_CommandBase();
        //$this->setPrefix("/"); // オプションプリフィックス変更

        $this->addOption("a","auto"); // オプションの追加
        $this->setSubCommand("sub", new SubCommand());  // サブオプションコマンドの追加
        $this->setSubCommand("subcmd", new SubCommand2()); // サブオプションコマンドの追加
    }

    /**
     * バッチ処理Main
     */
    function exec()
    {
        if (!parent::exec()) {   // 必須
            $sub    = $this->getSubCommand("sub");
            $subcmd = $this->getSubCommand("subcmd");
            echo "[親コマンドErr]".$this->getMessage()."\n";
            echo "[子コマンド:sub Err]".$sub->getMessage()."\n";
            echo "[子コマンド:subcmd Err]".$subcmd->getMessage()."\n";
            $this->showUsage();
            return false;
        }

        return true;
    }

    /**
     * オプション-aに対する関数
     *
     * @param array オプション引数
     */
    function auto()
    {
        $this->_a_flg  = true;
        echo"[親コマンド]Call:".$this->getCurrentOptionName()."(".$this->getCurrentOptionPos().")::".$this->getCurrentPos()."\n";
    }

    /**
     * サブオプションsubに対する関数
     *
     * @param array オプション引数
     */
    function sub()
    {
        echo"[親サブコマンド]Call:".$this->getCurrentOptionName()."(".$this->getCurrentOptionPos().")::".$this->getCurrentPos()."\n";
    }

    /**
     * サブオプションsubcmdに対する関数
     *
     * @param array オプション引数
     */
    function subcmd()
    {
        echo"[親サブコマンド]Call:".$this->getCurrentOptionName()."(".$this->getCurrentOptionPos().")::".$this->getCurrentPos()."\n";
    }
}

?>
