<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ActivityReportDetailItem_V11 StructType
 * @subpackage Structs
 */
class ActivityReportDetailItem_V11 extends ActivityReportItem_V12
{
    /**
     * The IsActive
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $IsActive;
    /**
     * The PathInfoDetail
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfPathResultV2
     */
    public $PathInfoDetail;
    /**
     * The PathInfoSummary
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $PathInfoSummary;
    /**
     * Constructor method for ActivityReportDetailItem_V11
     * @uses ActivityReportDetailItem_V11::setIsActive()
     * @uses ActivityReportDetailItem_V11::setPathInfoDetail()
     * @uses ActivityReportDetailItem_V11::setPathInfoSummary()
     * @param bool $isActive
     * @param \ArrayType\ArrayOfPathResultV2 $pathInfoDetail
     * @param string $pathInfoSummary
     */
    public function __construct($isActive = null, \ArrayType\ArrayOfPathResultV2 $pathInfoDetail = null, $pathInfoSummary = null)
    {
        $this
            ->setIsActive($isActive)
            ->setPathInfoDetail($pathInfoDetail)
            ->setPathInfoSummary($pathInfoSummary);
    }
    /**
     * Get IsActive value
     * @return bool
     */
    public function getIsActive()
    {
        return $this->IsActive;
    }
    /**
     * Set IsActive value
     * @param bool $isActive
     * @return \StructType\ActivityReportDetailItem_V11
     */
    public function setIsActive($isActive = null)
    {
        // validation for constraint: boolean
        if (!is_null($isActive) && !is_bool($isActive)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isActive, true), gettype($isActive)), __LINE__);
        }
        $this->IsActive = $isActive;
        return $this;
    }
    /**
     * Get PathInfoDetail value
     * @return \ArrayType\ArrayOfPathResultV2|null
     */
    public function getPathInfoDetail()
    {
        return $this->PathInfoDetail;
    }
    /**
     * Set PathInfoDetail value
     * @param \ArrayType\ArrayOfPathResultV2 $pathInfoDetail
     * @return \StructType\ActivityReportDetailItem_V11
     */
    public function setPathInfoDetail(\ArrayType\ArrayOfPathResultV2 $pathInfoDetail = null)
    {
        $this->PathInfoDetail = $pathInfoDetail;
        return $this;
    }
    /**
     * Get PathInfoSummary value
     * @return string|null
     */
    public function getPathInfoSummary()
    {
        return $this->PathInfoSummary;
    }
    /**
     * Set PathInfoSummary value
     * @param string $pathInfoSummary
     * @return \StructType\ActivityReportDetailItem_V11
     */
    public function setPathInfoSummary($pathInfoSummary = null)
    {
        // validation for constraint: string
        if (!is_null($pathInfoSummary) && !is_string($pathInfoSummary)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pathInfoSummary, true), gettype($pathInfoSummary)), __LINE__);
        }
        $this->PathInfoSummary = $pathInfoSummary;
        return $this;
    }
}
