<?php

namespace Sabre\RulesFromPrice\Structs;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for FareRuleInfo Structs
 * @subpackage Structs
 */
class FareRuleInfo extends AbstractStructBase
{
    /**
     * The Header
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\RulesFromPrice\Structs\Header
     */
    public $Header;
    /**
     * The Rules
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \Sabre\RulesFromPrice\Structs\Rules
     */
    public $Rules;
    /**
     * Constructor method for FareRuleInfo
     * @uses FareRuleInfo::setHeader()
     * @uses FareRuleInfo::setRules()
     * @param \Sabre\RulesFromPrice\Structs\Header $header
     * @param \Sabre\RulesFromPrice\Structs\Rules $rules
     */
    public function __construct(\Sabre\RulesFromPrice\Structs\Header $header = null, \Sabre\RulesFromPrice\Structs\Rules $rules = null)
    {
        $this
            ->setHeader($header)
            ->setRules($rules);
    }
    /**
     * Get Header value
     * @return \Sabre\RulesFromPrice\Structs\Header|null
     */
    public function getHeader()
    {
        return $this->Header;
    }
    /**
     * Set Header value
     * @param \Sabre\RulesFromPrice\Structs\Header $header
     * @return \Sabre\RulesFromPrice\Structs\FareRuleInfo
     */
    public function setHeader(\Sabre\RulesFromPrice\Structs\Header $header = null)
    {
        $this->Header = $header;
        return $this;
    }
    /**
     * Get Rules value
     * @return \Sabre\RulesFromPrice\Structs\Rules|null
     */
    public function getRules()
    {
        return $this->Rules;
    }
    /**
     * Set Rules value
     * @param \Sabre\RulesFromPrice\Structs\Rules $rules
     * @return \Sabre\RulesFromPrice\Structs\FareRuleInfo
     */
    public function setRules(\Sabre\RulesFromPrice\Structs\Rules $rules = null)
    {
        $this->Rules = $rules;
        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 \Sabre\RulesFromPrice\Structs\FareRuleInfo
     */
    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__;
    }
}
