<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for JP_HotelItemStaticData StructType
 * @subpackage Structs
 */
class JP_HotelItemStaticData extends AbstractStructBase
{
    /**
     * The RoomCategoryList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_RoomCategory
     */
    public $RoomCategoryList;
    /**
     * The RoomList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_HotelRoomCode
     */
    public $RoomList;
    /**
     * The HotelCategoryList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_HotelCategory
     */
    public $HotelCategoryList;
    /**
     * The HotelTypeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_HotelType
     */
    public $HotelTypeList;
    /**
     * The BoardList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_Board
     */
    public $BoardList;
    /**
     * The BoardCodeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_Board
     */
    public $BoardCodeList;
    /**
     * The OfferSupplementTypeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_OfferSupplementType
     */
    public $OfferSupplementTypeList;
    /**
     * The SpecialSupplementTypeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_SpecialSupplementType
     */
    public $SpecialSupplementTypeList;
    /**
     * The ContractTypeList
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \ArrayType\ArrayOfJP_HotelContractType
     */
    public $ContractTypeList;
    /**
     * Constructor method for JP_HotelItemStaticData
     * @uses JP_HotelItemStaticData::setRoomCategoryList()
     * @uses JP_HotelItemStaticData::setRoomList()
     * @uses JP_HotelItemStaticData::setHotelCategoryList()
     * @uses JP_HotelItemStaticData::setHotelTypeList()
     * @uses JP_HotelItemStaticData::setBoardList()
     * @uses JP_HotelItemStaticData::setBoardCodeList()
     * @uses JP_HotelItemStaticData::setOfferSupplementTypeList()
     * @uses JP_HotelItemStaticData::setSpecialSupplementTypeList()
     * @uses JP_HotelItemStaticData::setContractTypeList()
     * @param \ArrayType\ArrayOfJP_RoomCategory $roomCategoryList
     * @param \ArrayType\ArrayOfJP_HotelRoomCode $roomList
     * @param \ArrayType\ArrayOfJP_HotelCategory $hotelCategoryList
     * @param \ArrayType\ArrayOfJP_HotelType $hotelTypeList
     * @param \ArrayType\ArrayOfJP_Board $boardList
     * @param \ArrayType\ArrayOfJP_Board $boardCodeList
     * @param \ArrayType\ArrayOfJP_OfferSupplementType $offerSupplementTypeList
     * @param \ArrayType\ArrayOfJP_SpecialSupplementType $specialSupplementTypeList
     * @param \ArrayType\ArrayOfJP_HotelContractType $contractTypeList
     */
    public function __construct(\ArrayType\ArrayOfJP_RoomCategory $roomCategoryList = null, \ArrayType\ArrayOfJP_HotelRoomCode $roomList = null, \ArrayType\ArrayOfJP_HotelCategory $hotelCategoryList = null, \ArrayType\ArrayOfJP_HotelType $hotelTypeList = null, \ArrayType\ArrayOfJP_Board $boardList = null, \ArrayType\ArrayOfJP_Board $boardCodeList = null, \ArrayType\ArrayOfJP_OfferSupplementType $offerSupplementTypeList = null, \ArrayType\ArrayOfJP_SpecialSupplementType $specialSupplementTypeList = null, \ArrayType\ArrayOfJP_HotelContractType $contractTypeList = null)
    {
        $this
            ->setRoomCategoryList($roomCategoryList)
            ->setRoomList($roomList)
            ->setHotelCategoryList($hotelCategoryList)
            ->setHotelTypeList($hotelTypeList)
            ->setBoardList($boardList)
            ->setBoardCodeList($boardCodeList)
            ->setOfferSupplementTypeList($offerSupplementTypeList)
            ->setSpecialSupplementTypeList($specialSupplementTypeList)
            ->setContractTypeList($contractTypeList);
    }
    /**
     * Get RoomCategoryList value
     * @return \ArrayType\ArrayOfJP_RoomCategory|null
     */
    public function getRoomCategoryList()
    {
        return $this->RoomCategoryList;
    }
    /**
     * Set RoomCategoryList value
     * @param \ArrayType\ArrayOfJP_RoomCategory $roomCategoryList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setRoomCategoryList(\ArrayType\ArrayOfJP_RoomCategory $roomCategoryList = null)
    {
        $this->RoomCategoryList = $roomCategoryList;
        return $this;
    }
    /**
     * Get RoomList value
     * @return \ArrayType\ArrayOfJP_HotelRoomCode|null
     */
    public function getRoomList()
    {
        return $this->RoomList;
    }
    /**
     * Set RoomList value
     * @param \ArrayType\ArrayOfJP_HotelRoomCode $roomList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setRoomList(\ArrayType\ArrayOfJP_HotelRoomCode $roomList = null)
    {
        $this->RoomList = $roomList;
        return $this;
    }
    /**
     * Get HotelCategoryList value
     * @return \ArrayType\ArrayOfJP_HotelCategory|null
     */
    public function getHotelCategoryList()
    {
        return $this->HotelCategoryList;
    }
    /**
     * Set HotelCategoryList value
     * @param \ArrayType\ArrayOfJP_HotelCategory $hotelCategoryList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setHotelCategoryList(\ArrayType\ArrayOfJP_HotelCategory $hotelCategoryList = null)
    {
        $this->HotelCategoryList = $hotelCategoryList;
        return $this;
    }
    /**
     * Get HotelTypeList value
     * @return \ArrayType\ArrayOfJP_HotelType|null
     */
    public function getHotelTypeList()
    {
        return $this->HotelTypeList;
    }
    /**
     * Set HotelTypeList value
     * @param \ArrayType\ArrayOfJP_HotelType $hotelTypeList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setHotelTypeList(\ArrayType\ArrayOfJP_HotelType $hotelTypeList = null)
    {
        $this->HotelTypeList = $hotelTypeList;
        return $this;
    }
    /**
     * Get BoardList value
     * @return \ArrayType\ArrayOfJP_Board|null
     */
    public function getBoardList()
    {
        return $this->BoardList;
    }
    /**
     * Set BoardList value
     * @param \ArrayType\ArrayOfJP_Board $boardList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setBoardList(\ArrayType\ArrayOfJP_Board $boardList = null)
    {
        $this->BoardList = $boardList;
        return $this;
    }
    /**
     * Get BoardCodeList value
     * @return \ArrayType\ArrayOfJP_Board|null
     */
    public function getBoardCodeList()
    {
        return $this->BoardCodeList;
    }
    /**
     * Set BoardCodeList value
     * @param \ArrayType\ArrayOfJP_Board $boardCodeList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setBoardCodeList(\ArrayType\ArrayOfJP_Board $boardCodeList = null)
    {
        $this->BoardCodeList = $boardCodeList;
        return $this;
    }
    /**
     * Get OfferSupplementTypeList value
     * @return \ArrayType\ArrayOfJP_OfferSupplementType|null
     */
    public function getOfferSupplementTypeList()
    {
        return $this->OfferSupplementTypeList;
    }
    /**
     * Set OfferSupplementTypeList value
     * @param \ArrayType\ArrayOfJP_OfferSupplementType $offerSupplementTypeList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setOfferSupplementTypeList(\ArrayType\ArrayOfJP_OfferSupplementType $offerSupplementTypeList = null)
    {
        $this->OfferSupplementTypeList = $offerSupplementTypeList;
        return $this;
    }
    /**
     * Get SpecialSupplementTypeList value
     * @return \ArrayType\ArrayOfJP_SpecialSupplementType|null
     */
    public function getSpecialSupplementTypeList()
    {
        return $this->SpecialSupplementTypeList;
    }
    /**
     * Set SpecialSupplementTypeList value
     * @param \ArrayType\ArrayOfJP_SpecialSupplementType $specialSupplementTypeList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setSpecialSupplementTypeList(\ArrayType\ArrayOfJP_SpecialSupplementType $specialSupplementTypeList = null)
    {
        $this->SpecialSupplementTypeList = $specialSupplementTypeList;
        return $this;
    }
    /**
     * Get ContractTypeList value
     * @return \ArrayType\ArrayOfJP_HotelContractType|null
     */
    public function getContractTypeList()
    {
        return $this->ContractTypeList;
    }
    /**
     * Set ContractTypeList value
     * @param \ArrayType\ArrayOfJP_HotelContractType $contractTypeList
     * @return \StructType\JP_HotelItemStaticData
     */
    public function setContractTypeList(\ArrayType\ArrayOfJP_HotelContractType $contractTypeList = null)
    {
        $this->ContractTypeList = $contractTypeList;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \StructType\JP_HotelItemStaticData
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
