<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for JP_CruiseCabinServices StructType
 * @subpackage Structs
 */
class JP_CruiseCabinServices extends AbstractStructBase
{
    /**
     * The Dryer
     * @var bool
     */
    public $Dryer;
    /**
     * The Phone
     * @var bool
     */
    public $Phone;
    /**
     * The Cabinasistan
     * @var bool
     */
    public $Cabinasistan;
    /**
     * The Internet
     * @var bool
     */
    public $Internet;
    /**
     * The Safe
     * @var bool
     */
    public $Safe;
    /**
     * The Contiguous
     * @var bool
     */
    public $Contiguous;
    /**
     * Constructor method for JP_CruiseCabinServices
     * @uses JP_CruiseCabinServices::setDryer()
     * @uses JP_CruiseCabinServices::setPhone()
     * @uses JP_CruiseCabinServices::setCabinasistan()
     * @uses JP_CruiseCabinServices::setInternet()
     * @uses JP_CruiseCabinServices::setSafe()
     * @uses JP_CruiseCabinServices::setContiguous()
     * @param bool $dryer
     * @param bool $phone
     * @param bool $cabinasistan
     * @param bool $internet
     * @param bool $safe
     * @param bool $contiguous
     */
    public function __construct($dryer = null, $phone = null, $cabinasistan = null, $internet = null, $safe = null, $contiguous = null)
    {
        $this
            ->setDryer($dryer)
            ->setPhone($phone)
            ->setCabinasistan($cabinasistan)
            ->setInternet($internet)
            ->setSafe($safe)
            ->setContiguous($contiguous);
    }
    /**
     * Get Dryer value
     * @return bool|null
     */
    public function getDryer()
    {
        return $this->Dryer;
    }
    /**
     * Set Dryer value
     * @param bool $dryer
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setDryer($dryer = null)
    {
        // validation for constraint: boolean
        if (!is_null($dryer) && !is_bool($dryer)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($dryer)), __LINE__);
        }
        $this->Dryer = $dryer;
        return $this;
    }
    /**
     * Get Phone value
     * @return bool|null
     */
    public function getPhone()
    {
        return $this->Phone;
    }
    /**
     * Set Phone value
     * @param bool $phone
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setPhone($phone = null)
    {
        // validation for constraint: boolean
        if (!is_null($phone) && !is_bool($phone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($phone)), __LINE__);
        }
        $this->Phone = $phone;
        return $this;
    }
    /**
     * Get Cabinasistan value
     * @return bool|null
     */
    public function getCabinasistan()
    {
        return $this->Cabinasistan;
    }
    /**
     * Set Cabinasistan value
     * @param bool $cabinasistan
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setCabinasistan($cabinasistan = null)
    {
        // validation for constraint: boolean
        if (!is_null($cabinasistan) && !is_bool($cabinasistan)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cabinasistan)), __LINE__);
        }
        $this->Cabinasistan = $cabinasistan;
        return $this;
    }
    /**
     * Get Internet value
     * @return bool|null
     */
    public function getInternet()
    {
        return $this->Internet;
    }
    /**
     * Set Internet value
     * @param bool $internet
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setInternet($internet = null)
    {
        // validation for constraint: boolean
        if (!is_null($internet) && !is_bool($internet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($internet)), __LINE__);
        }
        $this->Internet = $internet;
        return $this;
    }
    /**
     * Get Safe value
     * @return bool|null
     */
    public function getSafe()
    {
        return $this->Safe;
    }
    /**
     * Set Safe value
     * @param bool $safe
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setSafe($safe = null)
    {
        // validation for constraint: boolean
        if (!is_null($safe) && !is_bool($safe)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($safe)), __LINE__);
        }
        $this->Safe = $safe;
        return $this;
    }
    /**
     * Get Contiguous value
     * @return bool|null
     */
    public function getContiguous()
    {
        return $this->Contiguous;
    }
    /**
     * Set Contiguous value
     * @param bool $contiguous
     * @return \StructType\JP_CruiseCabinServices
     */
    public function setContiguous($contiguous = null)
    {
        // validation for constraint: boolean
        if (!is_null($contiguous) && !is_bool($contiguous)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($contiguous)), __LINE__);
        }
        $this->Contiguous = $contiguous;
        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_CruiseCabinServices
     */
    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__;
    }
}
