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

require_once("Batch/CommandBase.php");

/**
 * 子バッチクラス
 */
class SubCommand extends Batch_CommandBase
{

    var $_b_flg     = false;
    var $_b_argv;
    var $_c_flg     = false;
    var $_c_argv;
    var $_file_flg  = false;
    var $_file_argv = array();

    /**
     * コンストラクタ
     */
    function SubCommand()
    {
        parent::Batch_CommandBase();

        $this->addOption("b","boot",JJ_BATCH_OPTION_TYPE_ARG);
        $this->addOption("c");
    }

    /**
     * バッチ処理Main
     */
    function exec()
    {
        if (!parent::exec()) {   // 必須
            return false;
        }

        if ($this->__main_command->_a_flg) {
            echo "[親コマンド]オプションaが指定されました。\n";
        }

        if ($this->_b_flg) {
            echo "[子コマンド]オプションbが指定されました。\n";
            echo "引数は";
            foreach ($this->_b_argv as $arg) {
                echo ("${arg},");
            }
            echo "です。\n";
        }
        if ($this->_c_flg) {
            echo "[子コマンド]オプションcが指定されました。\n";
        }
        if ($this->_file_flg) {
            echo "[子コマンド]Fileが指定されました。\n";
            echo "引数は";
            if(count($this->_file_argv) > 0) {
                foreach ($this->_file_argv as $arg) {
                    echo ("${arg},");
                }
            }
            echo "です。\n";
        }else{
            echo "[子コマンド]Fileを取得出来ませんでした。\n";
        }

        return true;
    }

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

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

    function _file_func($func_argv)
    {
        $this->_file_flg  = true;
        $this->_file_argv = $func_argv;
        echo"[子コマンド]FileCount:".count($func_argv)."\n";
        echo"[子コマンド]Call:file:".$this->getCurrentOptionName()."(".$this->getCurrentOptionPos().")::".$this->getCurrentPos()."\n";
    }

}

?>
