<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for
 * OTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
 * StructType
 * @package Dg
 * @subpackage Structs
 */
class DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment extends DgFlightSegmentType
{
    /**
     * The Comment
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgFreeTextType[]
     */
    public $Comment;
    /**
     * The MarketingCabin
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgMarketingCabinType[]
     */
    public $MarketingCabin;
    /**
     * The DaysOfOperation
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgOperationSchedulesType
     */
    public $DaysOfOperation;
    /**
     * The BookingClass
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass[]
     */
    public $BookingClass;
    /**
     * The TrafficRestrictionInfo
     * Meta informations extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo[]
     */
    public $TrafficRestrictionInfo;
    /**
     * The JourneyDuration
     * @var string
     */
    public $JourneyDuration;
    /**
     * The SmokingAllowed
     * Meta informations extracted from the WSDL
     * - default: false
     * @var bool
     */
    public $SmokingAllowed;
    /**
     * The OnTimeRate
     * @var float
     */
    public $OnTimeRate;
    /**
     * The ScheduleValidStartDate
     * @var string
     */
    public $ScheduleValidStartDate;
    /**
     * The ScheduleValidEndDate
     * @var string
     */
    public $ScheduleValidEndDate;
    /**
     * The ParticipationLevelCode
     * @var string
     */
    public $ParticipationLevelCode;
    /**
     * The DateChangeNbr
     * @var string
     */
    public $DateChangeNbr;
    /**
     * The FLIFO_Ind
     * @var bool
     */
    public $FLIFO_Ind;
    /**
     * Constructor method for
     * OTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setComment()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setMarketingCabin()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setDaysOfOperation()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setBookingClass()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setTrafficRestrictionInfo()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setJourneyDuration()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setSmokingAllowed()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setOnTimeRate()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setScheduleValidStartDate()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setScheduleValidEndDate()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setParticipationLevelCode()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setDateChangeNbr()
     * @uses DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment::setFLIFO_Ind()
     * @param \dgsoft\StructType\DgFreeTextType[] $comment
     * @param \dgsoft\StructType\DgMarketingCabinType[] $marketingCabin
     * @param \dgsoft\StructType\DgOperationSchedulesType $daysOfOperation
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass[] $bookingClass
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo[] $trafficRestrictionInfo
     * @param string $journeyDuration
     * @param bool $smokingAllowed
     * @param float $onTimeRate
     * @param string $scheduleValidStartDate
     * @param string $scheduleValidEndDate
     * @param string $participationLevelCode
     * @param string $dateChangeNbr
     * @param bool $fLIFO_Ind
     */
    public function __construct(array $comment = array(), array $marketingCabin = array(), \dgsoft\StructType\DgOperationSchedulesType $daysOfOperation = null, array $bookingClass = array(), array $trafficRestrictionInfo = array(), $journeyDuration = null, $smokingAllowed = false, $onTimeRate = null, $scheduleValidStartDate = null, $scheduleValidEndDate = null, $participationLevelCode = null, $dateChangeNbr = null, $fLIFO_Ind = null)
    {
        $this
            ->setComment($comment)
            ->setMarketingCabin($marketingCabin)
            ->setDaysOfOperation($daysOfOperation)
            ->setBookingClass($bookingClass)
            ->setTrafficRestrictionInfo($trafficRestrictionInfo)
            ->setJourneyDuration($journeyDuration)
            ->setSmokingAllowed($smokingAllowed)
            ->setOnTimeRate($onTimeRate)
            ->setScheduleValidStartDate($scheduleValidStartDate)
            ->setScheduleValidEndDate($scheduleValidEndDate)
            ->setParticipationLevelCode($participationLevelCode)
            ->setDateChangeNbr($dateChangeNbr)
            ->setFLIFO_Ind($fLIFO_Ind);
    }
    /**
     * Get Comment value
     * @return \dgsoft\StructType\DgFreeTextType[]|null
     */
    public function getComment()
    {
        return $this->Comment;
    }
    /**
     * Set Comment value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgFreeTextType[] $comment
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setComment(array $comment = array())
    {
        foreach ($comment as $oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentCommentItem) {
            // validation for constraint: itemType
            if (!$oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentCommentItem instanceof \dgsoft\StructType\DgFreeTextType) {
                throw new \InvalidArgumentException(sprintf('The Comment property can only contain items of \dgsoft\StructType\DgFreeTextType, "%s" given', is_object($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentCommentItem) ? get_class($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentCommentItem) : gettype($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentCommentItem)), __LINE__);
            }
        }
        $this->Comment = $comment;
        return $this;
    }
    /**
     * Add item to Comment value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgFreeTextType $item
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function addToComment(\dgsoft\StructType\DgFreeTextType $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \dgsoft\StructType\DgFreeTextType) {
            throw new \InvalidArgumentException(sprintf('The Comment property can only contain items of \dgsoft\StructType\DgFreeTextType, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->Comment[] = $item;
        return $this;
    }
    /**
     * Get MarketingCabin value
     * @return \dgsoft\StructType\DgMarketingCabinType[]|null
     */
    public function getMarketingCabin()
    {
        return $this->MarketingCabin;
    }
    /**
     * Set MarketingCabin value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgMarketingCabinType[] $marketingCabin
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setMarketingCabin(array $marketingCabin = array())
    {
        foreach ($marketingCabin as $oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentMarketingCabinItem) {
            // validation for constraint: itemType
            if (!$oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentMarketingCabinItem instanceof \dgsoft\StructType\DgMarketingCabinType) {
                throw new \InvalidArgumentException(sprintf('The MarketingCabin property can only contain items of \dgsoft\StructType\DgMarketingCabinType, "%s" given', is_object($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentMarketingCabinItem) ? get_class($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentMarketingCabinItem) : gettype($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentMarketingCabinItem)), __LINE__);
            }
        }
        $this->MarketingCabin = $marketingCabin;
        return $this;
    }
    /**
     * Add item to MarketingCabin value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgMarketingCabinType $item
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function addToMarketingCabin(\dgsoft\StructType\DgMarketingCabinType $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \dgsoft\StructType\DgMarketingCabinType) {
            throw new \InvalidArgumentException(sprintf('The MarketingCabin property can only contain items of \dgsoft\StructType\DgMarketingCabinType, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->MarketingCabin[] = $item;
        return $this;
    }
    /**
     * Get DaysOfOperation value
     * @return \dgsoft\StructType\DgOperationSchedulesType|null
     */
    public function getDaysOfOperation()
    {
        return $this->DaysOfOperation;
    }
    /**
     * Set DaysOfOperation value
     * @param \dgsoft\StructType\DgOperationSchedulesType $daysOfOperation
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setDaysOfOperation(\dgsoft\StructType\DgOperationSchedulesType $daysOfOperation = null)
    {
        $this->DaysOfOperation = $daysOfOperation;
        return $this;
    }
    /**
     * Get BookingClass value
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass[]|null
     */
    public function getBookingClass()
    {
        return $this->BookingClass;
    }
    /**
     * Set BookingClass value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass[] $bookingClass
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setBookingClass(array $bookingClass = array())
    {
        foreach ($bookingClass as $oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClassItem) {
            // validation for constraint: itemType
            if (!$oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClassItem instanceof \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass) {
                throw new \InvalidArgumentException(sprintf('The BookingClass property can only contain items of \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass, "%s" given', is_object($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClassItem) ? get_class($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClassItem) : gettype($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClassItem)), __LINE__);
            }
        }
        $this->BookingClass = $bookingClass;
        return $this;
    }
    /**
     * Add item to BookingClass value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass $item
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function addToBookingClass(\dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass) {
            throw new \InvalidArgumentException(sprintf('The BookingClass property can only contain items of \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentBookingClass, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->BookingClass[] = $item;
        return $this;
    }
    /**
     * Get TrafficRestrictionInfo value
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo[]|null
     */
    public function getTrafficRestrictionInfo()
    {
        return $this->TrafficRestrictionInfo;
    }
    /**
     * Set TrafficRestrictionInfo value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo[] $trafficRestrictionInfo
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setTrafficRestrictionInfo(array $trafficRestrictionInfo = array())
    {
        foreach ($trafficRestrictionInfo as $oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfoItem) {
            // validation for constraint: itemType
            if (!$oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfoItem instanceof \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo) {
                throw new \InvalidArgumentException(sprintf('The TrafficRestrictionInfo property can only contain items of \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo, "%s" given', is_object($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfoItem) ? get_class($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfoItem) : gettype($oTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfoItem)), __LINE__);
            }
        }
        $this->TrafficRestrictionInfo = $trafficRestrictionInfo;
        return $this;
    }
    /**
     * Add item to TrafficRestrictionInfo value
     * @throws \InvalidArgumentException
     * @param \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo $item
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function addToTrafficRestrictionInfo(\dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo) {
            throw new \InvalidArgumentException(sprintf('The TrafficRestrictionInfo property can only contain items of \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegmentTrafficRestrictionInfo, "%s" given', is_object($item) ? get_class($item) : gettype($item)), __LINE__);
        }
        $this->TrafficRestrictionInfo[] = $item;
        return $this;
    }
    /**
     * Get JourneyDuration value
     * @return string|null
     */
    public function getJourneyDuration()
    {
        return $this->JourneyDuration;
    }
    /**
     * Set JourneyDuration value
     * @param string $journeyDuration
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setJourneyDuration($journeyDuration = null)
    {
        // validation for constraint: string
        if (!is_null($journeyDuration) && !is_string($journeyDuration)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($journeyDuration)), __LINE__);
        }
        $this->JourneyDuration = $journeyDuration;
        return $this;
    }
    /**
     * Get SmokingAllowed value
     * @return bool|null
     */
    public function getSmokingAllowed()
    {
        return $this->SmokingAllowed;
    }
    /**
     * Set SmokingAllowed value
     * @param bool $smokingAllowed
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setSmokingAllowed($smokingAllowed = false)
    {
        // validation for constraint: boolean
        if (!is_null($smokingAllowed) && !is_bool($smokingAllowed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($smokingAllowed)), __LINE__);
        }
        $this->SmokingAllowed = $smokingAllowed;
        return $this;
    }
    /**
     * Get OnTimeRate value
     * @return float|null
     */
    public function getOnTimeRate()
    {
        return $this->OnTimeRate;
    }
    /**
     * Set OnTimeRate value
     * @param float $onTimeRate
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setOnTimeRate($onTimeRate = null)
    {
        $this->OnTimeRate = $onTimeRate;
        return $this;
    }
    /**
     * Get ScheduleValidStartDate value
     * @return string|null
     */
    public function getScheduleValidStartDate()
    {
        return $this->ScheduleValidStartDate;
    }
    /**
     * Set ScheduleValidStartDate value
     * @param string $scheduleValidStartDate
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setScheduleValidStartDate($scheduleValidStartDate = null)
    {
        // validation for constraint: string
        if (!is_null($scheduleValidStartDate) && !is_string($scheduleValidStartDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($scheduleValidStartDate)), __LINE__);
        }
        $this->ScheduleValidStartDate = $scheduleValidStartDate;
        return $this;
    }
    /**
     * Get ScheduleValidEndDate value
     * @return string|null
     */
    public function getScheduleValidEndDate()
    {
        return $this->ScheduleValidEndDate;
    }
    /**
     * Set ScheduleValidEndDate value
     * @param string $scheduleValidEndDate
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setScheduleValidEndDate($scheduleValidEndDate = null)
    {
        // validation for constraint: string
        if (!is_null($scheduleValidEndDate) && !is_string($scheduleValidEndDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($scheduleValidEndDate)), __LINE__);
        }
        $this->ScheduleValidEndDate = $scheduleValidEndDate;
        return $this;
    }
    /**
     * Get ParticipationLevelCode value
     * @return string|null
     */
    public function getParticipationLevelCode()
    {
        return $this->ParticipationLevelCode;
    }
    /**
     * Set ParticipationLevelCode value
     * @param string $participationLevelCode
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setParticipationLevelCode($participationLevelCode = null)
    {
        // validation for constraint: string
        if (!is_null($participationLevelCode) && !is_string($participationLevelCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($participationLevelCode)), __LINE__);
        }
        $this->ParticipationLevelCode = $participationLevelCode;
        return $this;
    }
    /**
     * Get DateChangeNbr value
     * @return string|null
     */
    public function getDateChangeNbr()
    {
        return $this->DateChangeNbr;
    }
    /**
     * Set DateChangeNbr value
     * @param string $dateChangeNbr
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setDateChangeNbr($dateChangeNbr = null)
    {
        // validation for constraint: string
        if (!is_null($dateChangeNbr) && !is_string($dateChangeNbr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dateChangeNbr)), __LINE__);
        }
        $this->DateChangeNbr = $dateChangeNbr;
        return $this;
    }
    /**
     * Get FLIFO_Ind value
     * @return bool|null
     */
    public function getFLIFO_Ind()
    {
        return $this->FLIFO_Ind;
    }
    /**
     * Set FLIFO_Ind value
     * @param bool $fLIFO_Ind
     * @return \dgsoft\StructType\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    public function setFLIFO_Ind($fLIFO_Ind = null)
    {
        // validation for constraint: boolean
        if (!is_null($fLIFO_Ind) && !is_bool($fLIFO_Ind)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fLIFO_Ind)), __LINE__);
        }
        $this->FLIFO_Ind = $fLIFO_Ind;
        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\DgOTA_AirScheduleRSOriginDestinationOptionsOriginDestinationOptionFlightSegment
     */
    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__;
    }
}
