<?php

declare(strict_types=1);

namespace Acms\Services\View;

/**
 * V2モジュール／V1強制ビルドの実行時フラグを保持する。
 *
 * リクエスト内で 1 つの状態を共有する契約のため、Helper（Common ファサード）経由でのみ
 * 参照・変更される想定（{@see \Acms\Services\Common\Helper}）。
 */
class BuildContext
{
    /**
     * V2モジュールかどうか判定用のフラグ
     *
     * @var bool
     */
    private $isV2Module = false;

    /**
     * 強制的にV1ビルドを行うかどうかのフラグ
     *
     * @var bool
     */
    private $isForceV1Build = false;

    /**
     * V2モジュールとして実行中か判定
     *
     * @return boolean
     */
    public function isV2Module(): bool
    {
        return $this->isV2Module;
    }

    /**
     * 強制的にV1ビルドを行うか判定
     *
     * @return boolean
     */
    public function isForceV1Build(): bool
    {
        return $this->isForceV1Build;
    }

    /**
     * V2モジュールとして実行中か設定
     *
     * @param boolean $isV2Module
     * @return void
     */
    public function setV2Module(bool $isV2Module): void
    {
        $this->isV2Module = $isV2Module;
    }

    /**
     * 強制的にV1ビルドを行うか設定
     *
     * @param boolean $isForceV1Build
     * @return void
     */
    public function setForceV1Build(bool $isForceV1Build): void
    {
        $this->isForceV1Build = $isForceV1Build;
    }
}
