<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TripFeaturesType StructType
 * @package Dg
 * @subpackage Structs
 */
class DgTripFeaturesType extends AbstractStructBase
{
    /**
     * The Destinations
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination
     */
    public $Destinations;
    /**
     * The Activities
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfString4
     */
    public $Activities;
    /**
     * The Operators
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\ArrayType\DgArrayOfCompanyNameType
     */
    public $Operators;
    /**
     * Constructor method for TripFeaturesType
     * @uses DgTripFeaturesType::setDestinations()
     * @uses DgTripFeaturesType::setActivities()
     * @uses DgTripFeaturesType::setOperators()
     * @param \dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination $destinations
     * @param \dgsoft\ArrayType\DgArrayOfString4 $activities
     * @param \dgsoft\ArrayType\DgArrayOfCompanyNameType $operators
     */
    public function __construct(\dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination $destinations = null, \dgsoft\ArrayType\DgArrayOfString4 $activities = null, \dgsoft\ArrayType\DgArrayOfCompanyNameType $operators = null)
    {
        $this
            ->setDestinations($destinations)
            ->setActivities($activities)
            ->setOperators($operators);
    }
    /**
     * Get Destinations value
     * @return \dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination|null
     */
    public function getDestinations()
    {
        return $this->Destinations;
    }
    /**
     * Set Destinations value
     * @param \dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination $destinations
     * @return \dgsoft\StructType\DgTripFeaturesType
     */
    public function setDestinations(\dgsoft\ArrayType\DgArrayOfTripFeaturesTypeDestination $destinations = null)
    {
        $this->Destinations = $destinations;
        return $this;
    }
    /**
     * Get Activities value
     * @return \dgsoft\ArrayType\DgArrayOfString4|null
     */
    public function getActivities()
    {
        return $this->Activities;
    }
    /**
     * Set Activities value
     * @param \dgsoft\ArrayType\DgArrayOfString4 $activities
     * @return \dgsoft\StructType\DgTripFeaturesType
     */
    public function setActivities(\dgsoft\ArrayType\DgArrayOfString4 $activities = null)
    {
        $this->Activities = $activities;
        return $this;
    }
    /**
     * Get Operators value
     * @return \dgsoft\ArrayType\DgArrayOfCompanyNameType|null
     */
    public function getOperators()
    {
        return $this->Operators;
    }
    /**
     * Set Operators value
     * @param \dgsoft\ArrayType\DgArrayOfCompanyNameType $operators
     * @return \dgsoft\StructType\DgTripFeaturesType
     */
    public function setOperators(\dgsoft\ArrayType\DgArrayOfCompanyNameType $operators = null)
    {
        $this->Operators = $operators;
        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 \dgsoft\StructType\DgTripFeaturesType
     */
    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__;
    }
}
