<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for AbstractCapabilitiesStructure StructType
 * Meta informations extracted from the WSDL
 * - documentation: Type for Capabilities of StopMonitopring Service.
 * @subpackage Structs
 */
class AbstractCapabilitiesStructure extends AbstractStructBase
{
    /**
     * The GeneralInteraction
     * Meta informations extracted from the WSDL
     * - documentation: General capabilities common to all SIRI service request types.
     * - minOccurs: 0
     * @var \StructType\CapabilityGeneralInteractionStructure
     */
    public $GeneralInteraction;
    /**
     * The TransportDescription
     * Meta informations extracted from the WSDL
     * - documentation: Implementation properties common to all request types.
     * - minOccurs: 0
     * @var \StructType\TransportDescriptionStructure
     */
    public $TransportDescription;
    /**
     * Constructor method for AbstractCapabilitiesStructure
     * @uses AbstractCapabilitiesStructure::setGeneralInteraction()
     * @uses AbstractCapabilitiesStructure::setTransportDescription()
     * @param \StructType\CapabilityGeneralInteractionStructure $generalInteraction
     * @param \StructType\TransportDescriptionStructure $transportDescription
     */
    public function __construct(\StructType\CapabilityGeneralInteractionStructure $generalInteraction = null, \StructType\TransportDescriptionStructure $transportDescription = null)
    {
        $this
            ->setGeneralInteraction($generalInteraction)
            ->setTransportDescription($transportDescription);
    }
    /**
     * Get GeneralInteraction value
     * @return \StructType\CapabilityGeneralInteractionStructure|null
     */
    public function getGeneralInteraction()
    {
        return $this->GeneralInteraction;
    }
    /**
     * Set GeneralInteraction value
     * @param \StructType\CapabilityGeneralInteractionStructure $generalInteraction
     * @return \StructType\AbstractCapabilitiesStructure
     */
    public function setGeneralInteraction(\StructType\CapabilityGeneralInteractionStructure $generalInteraction = null)
    {
        $this->GeneralInteraction = $generalInteraction;
        return $this;
    }
    /**
     * Get TransportDescription value
     * @return \StructType\TransportDescriptionStructure|null
     */
    public function getTransportDescription()
    {
        return $this->TransportDescription;
    }
    /**
     * Set TransportDescription value
     * @param \StructType\TransportDescriptionStructure $transportDescription
     * @return \StructType\AbstractCapabilitiesStructure
     */
    public function setTransportDescription(\StructType\TransportDescriptionStructure $transportDescription = null)
    {
        $this->TransportDescription = $transportDescription;
        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\AbstractCapabilitiesStructure
     */
    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__;
    }
}
