<?php

namespace EnumType;

/**
 * This class stands for VehicleModesOfTransportEnumeration EnumType
 * Meta informations extracted from the WSDL
 * - documentation: Values for ModesOfTransport : TPEG pti_table 01.
 * @subpackage Enumerations
 */
class VehicleModesOfTransportEnumeration
{
    /**
     * Constant for value 'pti1_0'
     * @return string 'pti1_0'
     */
    const VALUE_PTI_1_0 = 'pti1_0';
    /**
     * Constant for value 'unknown'
     * @return string 'unknown'
     */
    const VALUE_UNKNOWN = 'unknown';
    /**
     * Constant for value 'pti1_1'
     * @return string 'pti1_1'
     */
    const VALUE_PTI_1_1 = 'pti1_1';
    /**
     * Constant for value 'railwayService'
     * @return string 'railwayService'
     */
    const VALUE_RAILWAY_SERVICE = 'railwayService';
    /**
     * Constant for value 'rail'
     * @return string 'rail'
     */
    const VALUE_RAIL = 'rail';
    /**
     * Constant for value 'pti1_2'
     * @return string 'pti1_2'
     */
    const VALUE_PTI_1_2 = 'pti1_2';
    /**
     * Constant for value 'coachService'
     * @return string 'coachService'
     */
    const VALUE_COACH_SERVICE = 'coachService';
    /**
     * Constant for value 'coach'
     * @return string 'coach'
     */
    const VALUE_COACH = 'coach';
    /**
     * Constant for value 'pti1_3'
     * @return string 'pti1_3'
     */
    const VALUE_PTI_1_3 = 'pti1_3';
    /**
     * Constant for value 'suburbanRailwayService'
     * @return string 'suburbanRailwayService'
     */
    const VALUE_SUBURBAN_RAILWAY_SERVICE = 'suburbanRailwayService';
    /**
     * Constant for value 'suburbanRail'
     * @return string 'suburbanRail'
     */
    const VALUE_SUBURBAN_RAIL = 'suburbanRail';
    /**
     * Constant for value 'pti1_4'
     * @return string 'pti1_4'
     */
    const VALUE_PTI_1_4 = 'pti1_4';
    /**
     * Constant for value 'urbanRailwayService'
     * @return string 'urbanRailwayService'
     */
    const VALUE_URBAN_RAILWAY_SERVICE = 'urbanRailwayService';
    /**
     * Constant for value 'urbanRail'
     * @return string 'urbanRail'
     */
    const VALUE_URBAN_RAIL = 'urbanRail';
    /**
     * Constant for value 'pti1_5'
     * @return string 'pti1_5'
     */
    const VALUE_PTI_1_5 = 'pti1_5';
    /**
     * Constant for value 'metroService'
     * @return string 'metroService'
     */
    const VALUE_METRO_SERVICE = 'metroService';
    /**
     * Constant for value 'metro'
     * @return string 'metro'
     */
    const VALUE_METRO = 'metro';
    /**
     * Constant for value 'pti1_6'
     * @return string 'pti1_6'
     */
    const VALUE_PTI_1_6 = 'pti1_6';
    /**
     * Constant for value 'undergroundService'
     * @return string 'undergroundService'
     */
    const VALUE_UNDERGROUND_SERVICE = 'undergroundService';
    /**
     * Constant for value 'underground'
     * @return string 'underground'
     */
    const VALUE_UNDERGROUND = 'underground';
    /**
     * Constant for value 'pti1_7'
     * @return string 'pti1_7'
     */
    const VALUE_PTI_1_7 = 'pti1_7';
    /**
     * Constant for value 'busService'
     * @return string 'busService'
     */
    const VALUE_BUS_SERVICE = 'busService';
    /**
     * Constant for value 'bus'
     * @return string 'bus'
     */
    const VALUE_BUS = 'bus';
    /**
     * Constant for value 'pti1_8'
     * @return string 'pti1_8'
     */
    const VALUE_PTI_1_8 = 'pti1_8';
    /**
     * Constant for value 'trolleyBusService'
     * @return string 'trolleyBusService'
     */
    const VALUE_TROLLEY_BUS_SERVICE = 'trolleyBusService';
    /**
     * Constant for value 'trolleyBus'
     * @return string 'trolleyBus'
     */
    const VALUE_TROLLEY_BUS = 'trolleyBus';
    /**
     * Constant for value 'pti1_9'
     * @return string 'pti1_9'
     */
    const VALUE_PTI_1_9 = 'pti1_9';
    /**
     * Constant for value 'tramService'
     * @return string 'tramService'
     */
    const VALUE_TRAM_SERVICE = 'tramService';
    /**
     * Constant for value 'tram'
     * @return string 'tram'
     */
    const VALUE_TRAM = 'tram';
    /**
     * Constant for value 'pti1_10'
     * @return string 'pti1_10'
     */
    const VALUE_PTI_1_10 = 'pti1_10';
    /**
     * Constant for value 'waterTransportService'
     * @return string 'waterTransportService'
     */
    const VALUE_WATER_TRANSPORT_SERVICE = 'waterTransportService';
    /**
     * Constant for value 'waterTransport'
     * @return string 'waterTransport'
     */
    const VALUE_WATER_TRANSPORT = 'waterTransport';
    /**
     * Constant for value 'pti1_11'
     * @return string 'pti1_11'
     */
    const VALUE_PTI_1_11 = 'pti1_11';
    /**
     * Constant for value 'airService'
     * @return string 'airService'
     */
    const VALUE_AIR_SERVICE = 'airService';
    /**
     * Constant for value 'air'
     * @return string 'air'
     */
    const VALUE_AIR = 'air';
    /**
     * Constant for value 'pti1_12'
     * @return string 'pti1_12'
     */
    const VALUE_PTI_1_12 = 'pti1_12';
    /**
     * Constant for value 'ferryService'
     * @return string 'ferryService'
     */
    const VALUE_FERRY_SERVICE = 'ferryService';
    /**
     * Constant for value 'water'
     * @return string 'water'
     */
    const VALUE_WATER = 'water';
    /**
     * Constant for value 'pti1_13'
     * @return string 'pti1_13'
     */
    const VALUE_PTI_1_13 = 'pti1_13';
    /**
     * Constant for value 'telecabinService'
     * @return string 'telecabinService'
     */
    const VALUE_TELECABIN_SERVICE = 'telecabinService';
    /**
     * Constant for value 'telecabin'
     * @return string 'telecabin'
     */
    const VALUE_TELECABIN = 'telecabin';
    /**
     * Constant for value 'pti1_14'
     * @return string 'pti1_14'
     */
    const VALUE_PTI_1_14 = 'pti1_14';
    /**
     * Constant for value 'funicularService'
     * @return string 'funicularService'
     */
    const VALUE_FUNICULAR_SERVICE = 'funicularService';
    /**
     * Constant for value 'funicular'
     * @return string 'funicular'
     */
    const VALUE_FUNICULAR = 'funicular';
    /**
     * Constant for value 'pti1_15'
     * @return string 'pti1_15'
     */
    const VALUE_PTI_1_15 = 'pti1_15';
    /**
     * Constant for value 'taxiService'
     * @return string 'taxiService'
     */
    const VALUE_TAXI_SERVICE = 'taxiService';
    /**
     * Constant for value 'taxi'
     * @return string 'taxi'
     */
    const VALUE_TAXI = 'taxi';
    /**
     * Constant for value 'pti1_16'
     * @return string 'pti1_16'
     */
    const VALUE_PTI_1_16 = 'pti1_16';
    /**
     * Constant for value 'selfDrive'
     * @return string 'selfDrive'
     */
    const VALUE_SELF_DRIVE = 'selfDrive';
    /**
     * Constant for value 'pti1_17'
     * @return string 'pti1_17'
     */
    const VALUE_PTI_1_17 = 'pti1_17';
    /**
     * Constant for value 'allServices'
     * @return string 'allServices'
     */
    const VALUE_ALL_SERVICES = 'allServices';
    /**
     * Constant for value 'all'
     * @return string 'all'
     */
    const VALUE_ALL = 'all';
    /**
     * Constant for value 'pti1_18'
     * @return string 'pti1_18'
     */
    const VALUE_PTI_1_18 = 'pti1_18';
    /**
     * Constant for value 'allServicesExcept'
     * @return string 'allServicesExcept'
     */
    const VALUE_ALL_SERVICES_EXCEPT = 'allServicesExcept';
    /**
     * Return true if value is allowed
     * @uses self::getValidValues()
     * @param mixed $value value
     * @return bool true|false
     */
    public static function valueIsValid($value)
    {
        return ($value === null) || in_array($value, self::getValidValues(), true);
    }
    /**
     * Return allowed values
     * @uses self::VALUE_PTI_1_0
     * @uses self::VALUE_UNKNOWN
     * @uses self::VALUE_PTI_1_1
     * @uses self::VALUE_RAILWAY_SERVICE
     * @uses self::VALUE_RAIL
     * @uses self::VALUE_PTI_1_2
     * @uses self::VALUE_COACH_SERVICE
     * @uses self::VALUE_COACH
     * @uses self::VALUE_PTI_1_3
     * @uses self::VALUE_SUBURBAN_RAILWAY_SERVICE
     * @uses self::VALUE_SUBURBAN_RAIL
     * @uses self::VALUE_PTI_1_4
     * @uses self::VALUE_URBAN_RAILWAY_SERVICE
     * @uses self::VALUE_URBAN_RAIL
     * @uses self::VALUE_PTI_1_5
     * @uses self::VALUE_METRO_SERVICE
     * @uses self::VALUE_METRO
     * @uses self::VALUE_PTI_1_6
     * @uses self::VALUE_UNDERGROUND_SERVICE
     * @uses self::VALUE_UNDERGROUND
     * @uses self::VALUE_PTI_1_7
     * @uses self::VALUE_BUS_SERVICE
     * @uses self::VALUE_BUS
     * @uses self::VALUE_PTI_1_8
     * @uses self::VALUE_TROLLEY_BUS_SERVICE
     * @uses self::VALUE_TROLLEY_BUS
     * @uses self::VALUE_PTI_1_9
     * @uses self::VALUE_TRAM_SERVICE
     * @uses self::VALUE_TRAM
     * @uses self::VALUE_PTI_1_10
     * @uses self::VALUE_WATER_TRANSPORT_SERVICE
     * @uses self::VALUE_WATER_TRANSPORT
     * @uses self::VALUE_PTI_1_11
     * @uses self::VALUE_AIR_SERVICE
     * @uses self::VALUE_AIR
     * @uses self::VALUE_PTI_1_12
     * @uses self::VALUE_FERRY_SERVICE
     * @uses self::VALUE_WATER
     * @uses self::VALUE_PTI_1_13
     * @uses self::VALUE_TELECABIN_SERVICE
     * @uses self::VALUE_TELECABIN
     * @uses self::VALUE_PTI_1_14
     * @uses self::VALUE_FUNICULAR_SERVICE
     * @uses self::VALUE_FUNICULAR
     * @uses self::VALUE_PTI_1_15
     * @uses self::VALUE_TAXI_SERVICE
     * @uses self::VALUE_TAXI
     * @uses self::VALUE_PTI_1_16
     * @uses self::VALUE_SELF_DRIVE
     * @uses self::VALUE_PTI_1_17
     * @uses self::VALUE_ALL_SERVICES
     * @uses self::VALUE_ALL
     * @uses self::VALUE_PTI_1_18
     * @uses self::VALUE_ALL_SERVICES_EXCEPT
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_PTI_1_0,
            self::VALUE_UNKNOWN,
            self::VALUE_PTI_1_1,
            self::VALUE_RAILWAY_SERVICE,
            self::VALUE_RAIL,
            self::VALUE_PTI_1_2,
            self::VALUE_COACH_SERVICE,
            self::VALUE_COACH,
            self::VALUE_PTI_1_3,
            self::VALUE_SUBURBAN_RAILWAY_SERVICE,
            self::VALUE_SUBURBAN_RAIL,
            self::VALUE_PTI_1_4,
            self::VALUE_URBAN_RAILWAY_SERVICE,
            self::VALUE_URBAN_RAIL,
            self::VALUE_PTI_1_5,
            self::VALUE_METRO_SERVICE,
            self::VALUE_METRO,
            self::VALUE_PTI_1_6,
            self::VALUE_UNDERGROUND_SERVICE,
            self::VALUE_UNDERGROUND,
            self::VALUE_PTI_1_7,
            self::VALUE_BUS_SERVICE,
            self::VALUE_BUS,
            self::VALUE_PTI_1_8,
            self::VALUE_TROLLEY_BUS_SERVICE,
            self::VALUE_TROLLEY_BUS,
            self::VALUE_PTI_1_9,
            self::VALUE_TRAM_SERVICE,
            self::VALUE_TRAM,
            self::VALUE_PTI_1_10,
            self::VALUE_WATER_TRANSPORT_SERVICE,
            self::VALUE_WATER_TRANSPORT,
            self::VALUE_PTI_1_11,
            self::VALUE_AIR_SERVICE,
            self::VALUE_AIR,
            self::VALUE_PTI_1_12,
            self::VALUE_FERRY_SERVICE,
            self::VALUE_WATER,
            self::VALUE_PTI_1_13,
            self::VALUE_TELECABIN_SERVICE,
            self::VALUE_TELECABIN,
            self::VALUE_PTI_1_14,
            self::VALUE_FUNICULAR_SERVICE,
            self::VALUE_FUNICULAR,
            self::VALUE_PTI_1_15,
            self::VALUE_TAXI_SERVICE,
            self::VALUE_TAXI,
            self::VALUE_PTI_1_16,
            self::VALUE_SELF_DRIVE,
            self::VALUE_PTI_1_17,
            self::VALUE_ALL_SERVICES,
            self::VALUE_ALL,
            self::VALUE_PTI_1_18,
            self::VALUE_ALL_SERVICES_EXCEPT,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
