_departureAirport; } /** * @param string $value */ public function setDepartureAirport($value) { if (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid departure_airport value type', 0, 'airline.departure_airport'); } elseif (!preg_match('/^[A-Z]{3}$/', (string)$value)) { throw new InvalidPropertyValueException('Invalid departure_airport value: "'.$value.'"', 0, 'airline.departure_airport'); } else { $this->_departureAirport = (string)$value; } } /** * @inheritdoc */ public function getDestinationAirport() { return $this->_destinationAirport; } /** * @param string $value */ public function setDestinationAirport($value) { if (!TypeCast::canCastToString($value)) { throw new InvalidPropertyValueTypeException('Invalid destination_airport value type', 0, 'airline.destination_airport'); } elseif (!preg_match('/^[A-Z]{3}$/', (string)$value)) { throw new InvalidPropertyValueException('Invalid destination_airport value: "'.$value.'"', 0, 'airline.destination_airport'); } else { $this->_destinationAirport = (string)$value; } } /** * @inheritdoc */ public function getDepartureDate() { return $this->_departureDate; } /** * @param \DateTime|string $value * @throws \Exception */ public function setDepartureDate($value) { if (TypeCast::canCastToDateTime($value)) { $departureDate = TypeCast::castToDateTime($value); if ($departureDate === null) { throw new InvalidPropertyValueException( 'Invalid departure_date value in airline.legs', 0, 'airline.legs' ); } $this->_departureDate = $departureDate->format(self::ISO8601); } else { throw new InvalidPropertyValueTypeException( 'Invalid departure_date value type in airline.legs', 0, 'airline.legs' ); } } }