<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for JP_FlightInfo StructType
 * @subpackage Structs
 */
class JP_FlightInfo extends AbstractStructBase
{
    /**
     * The FlightTime
     * Meta information extracted from the WSDL
     * - use: required
     * @var string
     */
    public $FlightTime;
    /**
     * The TimeZone
     * @var string
     */
    public $TimeZone;
    /**
     * The Airport
     * @var string
     */
    public $Airport;
    /**
     * The FlightNumber
     * @var string
     */
    public $FlightNumber;
    /**
     * Constructor method for JP_FlightInfo
     * @uses JP_FlightInfo::setFlightTime()
     * @uses JP_FlightInfo::setTimeZone()
     * @uses JP_FlightInfo::setAirport()
     * @uses JP_FlightInfo::setFlightNumber()
     * @param string $flightTime
     * @param string $timeZone
     * @param string $airport
     * @param string $flightNumber
     */
    public function __construct($flightTime = null, $timeZone = null, $airport = null, $flightNumber = null)
    {
        $this
            ->setFlightTime($flightTime)
            ->setTimeZone($timeZone)
            ->setAirport($airport)
            ->setFlightNumber($flightNumber);
    }
    /**
     * Get FlightTime value
     * @return string
     */
    public function getFlightTime()
    {
        return $this->FlightTime;
    }
    /**
     * Set FlightTime value
     * @param string $flightTime
     * @return \StructType\JP_FlightInfo
     */
    public function setFlightTime($flightTime = null)
    {
        // validation for constraint: string
        if (!is_null($flightTime) && !is_string($flightTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($flightTime, true), gettype($flightTime)), __LINE__);
        }
        $this->FlightTime = $flightTime;
        return $this;
    }
    /**
     * Get TimeZone value
     * @return string|null
     */
    public function getTimeZone()
    {
        return $this->TimeZone;
    }
    /**
     * Set TimeZone value
     * @param string $timeZone
     * @return \StructType\JP_FlightInfo
     */
    public function setTimeZone($timeZone = null)
    {
        // validation for constraint: string
        if (!is_null($timeZone) && !is_string($timeZone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($timeZone, true), gettype($timeZone)), __LINE__);
        }
        $this->TimeZone = $timeZone;
        return $this;
    }
    /**
     * Get Airport value
     * @return string|null
     */
    public function getAirport()
    {
        return $this->Airport;
    }
    /**
     * Set Airport value
     * @param string $airport
     * @return \StructType\JP_FlightInfo
     */
    public function setAirport($airport = null)
    {
        // validation for constraint: string
        if (!is_null($airport) && !is_string($airport)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($airport, true), gettype($airport)), __LINE__);
        }
        $this->Airport = $airport;
        return $this;
    }
    /**
     * Get FlightNumber value
     * @return string|null
     */
    public function getFlightNumber()
    {
        return $this->FlightNumber;
    }
    /**
     * Set FlightNumber value
     * @param string $flightNumber
     * @return \StructType\JP_FlightInfo
     */
    public function setFlightNumber($flightNumber = null)
    {
        // validation for constraint: string
        if (!is_null($flightNumber) && !is_string($flightNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($flightNumber, true), gettype($flightNumber)), __LINE__);
        }
        $this->FlightNumber = $flightNumber;
        return $this;
    }
}
