<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for JP_CruiseSportServices StructType
 * @subpackage Structs
 */
class JP_CruiseSportServices extends AbstractStructBase
{
    /**
     * The Pools
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var int
     */
    public $Pools;
    /**
     * The Indorpools
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var int
     */
    public $Indorpools;
    /**
     * The Extpools
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var int
     */
    public $Extpools;
    /**
     * The Basketball
     * @var bool
     */
    public $Basketball;
    /**
     * The Tennis
     * @var bool
     */
    public $Tennis;
    /**
     * The Golf
     * @var bool
     */
    public $Golf;
    /**
     * The Jogging
     * @var bool
     */
    public $Jogging;
    /**
     * The Minigolf
     * @var bool
     */
    public $Minigolf;
    /**
     * The Rocodrom
     * @var bool
     */
    public $Rocodrom;
    /**
     * The Pathinhileo
     * @var bool
     */
    public $Pathinhileo;
    /**
     * The Gym
     * @var bool
     */
    public $Gym;
    /**
     * The Aquaticplant
     * @var bool
     */
    public $Aquaticplant;
    /**
     * Constructor method for JP_CruiseSportServices
     * @uses JP_CruiseSportServices::setPools()
     * @uses JP_CruiseSportServices::setIndorpools()
     * @uses JP_CruiseSportServices::setExtpools()
     * @uses JP_CruiseSportServices::setBasketball()
     * @uses JP_CruiseSportServices::setTennis()
     * @uses JP_CruiseSportServices::setGolf()
     * @uses JP_CruiseSportServices::setJogging()
     * @uses JP_CruiseSportServices::setMinigolf()
     * @uses JP_CruiseSportServices::setRocodrom()
     * @uses JP_CruiseSportServices::setPathinhileo()
     * @uses JP_CruiseSportServices::setGym()
     * @uses JP_CruiseSportServices::setAquaticplant()
     * @param int $pools
     * @param int $indorpools
     * @param int $extpools
     * @param bool $basketball
     * @param bool $tennis
     * @param bool $golf
     * @param bool $jogging
     * @param bool $minigolf
     * @param bool $rocodrom
     * @param bool $pathinhileo
     * @param bool $gym
     * @param bool $aquaticplant
     */
    public function __construct($pools = null, $indorpools = null, $extpools = null, $basketball = null, $tennis = null, $golf = null, $jogging = null, $minigolf = null, $rocodrom = null, $pathinhileo = null, $gym = null, $aquaticplant = null)
    {
        $this
            ->setPools($pools)
            ->setIndorpools($indorpools)
            ->setExtpools($extpools)
            ->setBasketball($basketball)
            ->setTennis($tennis)
            ->setGolf($golf)
            ->setJogging($jogging)
            ->setMinigolf($minigolf)
            ->setRocodrom($rocodrom)
            ->setPathinhileo($pathinhileo)
            ->setGym($gym)
            ->setAquaticplant($aquaticplant);
    }
    /**
     * Get Pools value
     * @return int|null
     */
    public function getPools()
    {
        return $this->Pools;
    }
    /**
     * Set Pools value
     * @param int $pools
     * @return \StructType\JP_CruiseSportServices
     */
    public function setPools($pools = null)
    {
        // validation for constraint: int
        if (!is_null($pools) && !is_numeric($pools)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($pools)), __LINE__);
        }
        $this->Pools = $pools;
        return $this;
    }
    /**
     * Get Indorpools value
     * @return int|null
     */
    public function getIndorpools()
    {
        return $this->Indorpools;
    }
    /**
     * Set Indorpools value
     * @param int $indorpools
     * @return \StructType\JP_CruiseSportServices
     */
    public function setIndorpools($indorpools = null)
    {
        // validation for constraint: int
        if (!is_null($indorpools) && !is_numeric($indorpools)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($indorpools)), __LINE__);
        }
        $this->Indorpools = $indorpools;
        return $this;
    }
    /**
     * Get Extpools value
     * @return int|null
     */
    public function getExtpools()
    {
        return $this->Extpools;
    }
    /**
     * Set Extpools value
     * @param int $extpools
     * @return \StructType\JP_CruiseSportServices
     */
    public function setExtpools($extpools = null)
    {
        // validation for constraint: int
        if (!is_null($extpools) && !is_numeric($extpools)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($extpools)), __LINE__);
        }
        $this->Extpools = $extpools;
        return $this;
    }
    /**
     * Get Basketball value
     * @return bool|null
     */
    public function getBasketball()
    {
        return $this->Basketball;
    }
    /**
     * Set Basketball value
     * @param bool $basketball
     * @return \StructType\JP_CruiseSportServices
     */
    public function setBasketball($basketball = null)
    {
        // validation for constraint: boolean
        if (!is_null($basketball) && !is_bool($basketball)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($basketball)), __LINE__);
        }
        $this->Basketball = $basketball;
        return $this;
    }
    /**
     * Get Tennis value
     * @return bool|null
     */
    public function getTennis()
    {
        return $this->Tennis;
    }
    /**
     * Set Tennis value
     * @param bool $tennis
     * @return \StructType\JP_CruiseSportServices
     */
    public function setTennis($tennis = null)
    {
        // validation for constraint: boolean
        if (!is_null($tennis) && !is_bool($tennis)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tennis)), __LINE__);
        }
        $this->Tennis = $tennis;
        return $this;
    }
    /**
     * Get Golf value
     * @return bool|null
     */
    public function getGolf()
    {
        return $this->Golf;
    }
    /**
     * Set Golf value
     * @param bool $golf
     * @return \StructType\JP_CruiseSportServices
     */
    public function setGolf($golf = null)
    {
        // validation for constraint: boolean
        if (!is_null($golf) && !is_bool($golf)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($golf)), __LINE__);
        }
        $this->Golf = $golf;
        return $this;
    }
    /**
     * Get Jogging value
     * @return bool|null
     */
    public function getJogging()
    {
        return $this->Jogging;
    }
    /**
     * Set Jogging value
     * @param bool $jogging
     * @return \StructType\JP_CruiseSportServices
     */
    public function setJogging($jogging = null)
    {
        // validation for constraint: boolean
        if (!is_null($jogging) && !is_bool($jogging)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($jogging)), __LINE__);
        }
        $this->Jogging = $jogging;
        return $this;
    }
    /**
     * Get Minigolf value
     * @return bool|null
     */
    public function getMinigolf()
    {
        return $this->Minigolf;
    }
    /**
     * Set Minigolf value
     * @param bool $minigolf
     * @return \StructType\JP_CruiseSportServices
     */
    public function setMinigolf($minigolf = null)
    {
        // validation for constraint: boolean
        if (!is_null($minigolf) && !is_bool($minigolf)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($minigolf)), __LINE__);
        }
        $this->Minigolf = $minigolf;
        return $this;
    }
    /**
     * Get Rocodrom value
     * @return bool|null
     */
    public function getRocodrom()
    {
        return $this->Rocodrom;
    }
    /**
     * Set Rocodrom value
     * @param bool $rocodrom
     * @return \StructType\JP_CruiseSportServices
     */
    public function setRocodrom($rocodrom = null)
    {
        // validation for constraint: boolean
        if (!is_null($rocodrom) && !is_bool($rocodrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($rocodrom)), __LINE__);
        }
        $this->Rocodrom = $rocodrom;
        return $this;
    }
    /**
     * Get Pathinhileo value
     * @return bool|null
     */
    public function getPathinhileo()
    {
        return $this->Pathinhileo;
    }
    /**
     * Set Pathinhileo value
     * @param bool $pathinhileo
     * @return \StructType\JP_CruiseSportServices
     */
    public function setPathinhileo($pathinhileo = null)
    {
        // validation for constraint: boolean
        if (!is_null($pathinhileo) && !is_bool($pathinhileo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($pathinhileo)), __LINE__);
        }
        $this->Pathinhileo = $pathinhileo;
        return $this;
    }
    /**
     * Get Gym value
     * @return bool|null
     */
    public function getGym()
    {
        return $this->Gym;
    }
    /**
     * Set Gym value
     * @param bool $gym
     * @return \StructType\JP_CruiseSportServices
     */
    public function setGym($gym = null)
    {
        // validation for constraint: boolean
        if (!is_null($gym) && !is_bool($gym)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($gym)), __LINE__);
        }
        $this->Gym = $gym;
        return $this;
    }
    /**
     * Get Aquaticplant value
     * @return bool|null
     */
    public function getAquaticplant()
    {
        return $this->Aquaticplant;
    }
    /**
     * Set Aquaticplant value
     * @param bool $aquaticplant
     * @return \StructType\JP_CruiseSportServices
     */
    public function setAquaticplant($aquaticplant = null)
    {
        // validation for constraint: boolean
        if (!is_null($aquaticplant) && !is_bool($aquaticplant)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($aquaticplant)), __LINE__);
        }
        $this->Aquaticplant = $aquaticplant;
        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_CruiseSportServices
     */
    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__;
    }
}
