<?php

namespace EnumType;

/**
 * This class stands for RailSubmodesOfTransportEnumeration EnumType
 * Meta informations extracted from the WSDL
 * - documentation: Values for Rail ModesOfTransport: TPEG pti_table_02, train link loc_table_13.
 * @subpackage Enumerations
 */
class RailSubmodesOfTransportEnumeration
{
    /**
     * Constant for value 'pti2_0'
     * @return string 'pti2_0'
     */
    const VALUE_PTI_2_0 = 'pti2_0';
    /**
     * Constant for value 'loc13_0'
     * @return string 'loc13_0'
     */
    const VALUE_LOC_13_0 = 'loc13_0';
    /**
     * Constant for value 'unknown'
     * @return string 'unknown'
     */
    const VALUE_UNKNOWN = 'unknown';
    /**
     * Constant for value 'pti2_1'
     * @return string 'pti2_1'
     */
    const VALUE_PTI_2_1 = 'pti2_1';
    /**
     * Constant for value 'highSpeedRailService'
     * @return string 'highSpeedRailService'
     */
    const VALUE_HIGH_SPEED_RAIL_SERVICE = 'highSpeedRailService';
    /**
     * Constant for value 'pti2_2'
     * @return string 'pti2_2'
     */
    const VALUE_PTI_2_2 = 'pti2_2';
    /**
     * Constant for value 'loc13_3'
     * @return string 'loc13_3'
     */
    const VALUE_LOC_13_3 = 'loc13_3';
    /**
     * Constant for value 'longDistanceTrain'
     * @return string 'longDistanceTrain'
     */
    const VALUE_LONG_DISTANCE_TRAIN = 'longDistanceTrain';
    /**
     * Constant for value 'pti2_3'
     * @return string 'pti2_3'
     */
    const VALUE_PTI_2_3 = 'pti2_3';
    /**
     * Constant for value 'loc13_2'
     * @return string 'loc13_2'
     */
    const VALUE_LOC_13_2 = 'loc13_2';
    /**
     * Constant for value 'interRegionalRailService'
     * @return string 'interRegionalRailService'
     */
    const VALUE_INTER_REGIONAL_RAIL_SERVICE = 'interRegionalRailService';
    /**
     * Constant for value 'pti2_4'
     * @return string 'pti2_4'
     */
    const VALUE_PTI_2_4 = 'pti2_4';
    /**
     * Constant for value 'carTransportRailService'
     * @return string 'carTransportRailService'
     */
    const VALUE_CAR_TRANSPORT_RAIL_SERVICE = 'carTransportRailService';
    /**
     * Constant for value 'pti2_5'
     * @return string 'pti2_5'
     */
    const VALUE_PTI_2_5 = 'pti2_5';
    /**
     * Constant for value 'sleeperRailService'
     * @return string 'sleeperRailService'
     */
    const VALUE_SLEEPER_RAIL_SERVICE = 'sleeperRailService';
    /**
     * Constant for value 'pti2_6'
     * @return string 'pti2_6'
     */
    const VALUE_PTI_2_6 = 'pti2_6';
    /**
     * Constant for value 'loc13_4'
     * @return string 'loc13_4'
     */
    const VALUE_LOC_13_4 = 'loc13_4';
    /**
     * Constant for value 'regionalRail'
     * @return string 'regionalRail'
     */
    const VALUE_REGIONAL_RAIL = 'regionalRail';
    /**
     * Constant for value 'pti2_7'
     * @return string 'pti2_7'
     */
    const VALUE_PTI_2_7 = 'pti2_7';
    /**
     * Constant for value 'loc13_7'
     * @return string 'loc13_7'
     */
    const VALUE_LOC_13_7 = 'loc13_7';
    /**
     * Constant for value 'touristRailway'
     * @return string 'touristRailway'
     */
    const VALUE_TOURIST_RAILWAY = 'touristRailway';
    /**
     * Constant for value 'pti2_8'
     * @return string 'pti2_8'
     */
    const VALUE_PTI_2_8 = 'pti2_8';
    /**
     * Constant for value 'railShuttle'
     * @return string 'railShuttle'
     */
    const VALUE_RAIL_SHUTTLE = 'railShuttle';
    /**
     * Constant for value 'pti2_9'
     * @return string 'pti2_9'
     */
    const VALUE_PTI_2_9 = 'pti2_9';
    /**
     * Constant for value 'loc13_5'
     * @return string 'loc13_5'
     */
    const VALUE_LOC_13_5 = 'loc13_5';
    /**
     * Constant for value 'suburbanRailway'
     * @return string 'suburbanRailway'
     */
    const VALUE_SUBURBAN_RAILWAY = 'suburbanRailway';
    /**
     * Constant for value 'pti2_10'
     * @return string 'pti2_10'
     */
    const VALUE_PTI_2_10 = 'pti2_10';
    /**
     * Constant for value 'replacementRailService'
     * @return string 'replacementRailService'
     */
    const VALUE_REPLACEMENT_RAIL_SERVICE = 'replacementRailService';
    /**
     * Constant for value 'pti2_11'
     * @return string 'pti2_11'
     */
    const VALUE_PTI_2_11 = 'pti2_11';
    /**
     * Constant for value 'specialTrainService'
     * @return string 'specialTrainService'
     */
    const VALUE_SPECIAL_TRAIN_SERVICE = 'specialTrainService';
    /**
     * Constant for value 'pti2_12'
     * @return string 'pti2_12'
     */
    const VALUE_PTI_2_12 = 'pti2_12';
    /**
     * Constant for value 'lorryTransportRailService'
     * @return string 'lorryTransportRailService'
     */
    const VALUE_LORRY_TRANSPORT_RAIL_SERVICE = 'lorryTransportRailService';
    /**
     * Constant for value 'pti2_13'
     * @return string 'pti2_13'
     */
    const VALUE_PTI_2_13 = 'pti2_13';
    /**
     * Constant for value 'allRailServices'
     * @return string 'allRailServices'
     */
    const VALUE_ALL_RAIL_SERVICES = 'allRailServices';
    /**
     * Constant for value 'pti2_14'
     * @return string 'pti2_14'
     */
    const VALUE_PTI_2_14 = 'pti2_14';
    /**
     * Constant for value 'crossCountryRailService'
     * @return string 'crossCountryRailService'
     */
    const VALUE_CROSS_COUNTRY_RAIL_SERVICE = 'crossCountryRailService';
    /**
     * Constant for value 'pti2_15'
     * @return string 'pti2_15'
     */
    const VALUE_PTI_2_15 = 'pti2_15';
    /**
     * Constant for value 'vehicleRailTransportService'
     * @return string 'vehicleRailTransportService'
     */
    const VALUE_VEHICLE_RAIL_TRANSPORT_SERVICE = 'vehicleRailTransportService';
    /**
     * Constant for value 'pti2_16'
     * @return string 'pti2_16'
     */
    const VALUE_PTI_2_16 = 'pti2_16';
    /**
     * Constant for value 'loc13_8'
     * @return string 'loc13_8'
     */
    const VALUE_LOC_13_8 = 'loc13_8';
    /**
     * Constant for value 'rackAndPinionRailway'
     * @return string 'rackAndPinionRailway'
     */
    const VALUE_RACK_AND_PINION_RAILWAY = 'rackAndPinionRailway';
    /**
     * Constant for value 'pti2_17'
     * @return string 'pti2_17'
     */
    const VALUE_PTI_2_17 = 'pti2_17';
    /**
     * Constant for value 'additionalTrainService'
     * @return string 'additionalTrainService'
     */
    const VALUE_ADDITIONAL_TRAIN_SERVICE = 'additionalTrainService';
    /**
     * Constant for value 'pti2_255'
     * @return string 'pti2_255'
     */
    const VALUE_PTI_2_255 = 'pti2_255';
    /**
     * Constant for value 'undefined'
     * @return string 'undefined'
     */
    const VALUE_UNDEFINED = 'undefined';
    /**
     * Constant for value 'loc13_6'
     * @return string 'loc13_6'
     */
    const VALUE_LOC_13_6 = 'loc13_6';
    /**
     * Constant for value 'local'
     * @return string 'local'
     */
    const VALUE_LOCAL = 'local';
    /**
     * Constant for value 'loc13_1'
     * @return string 'loc13_1'
     */
    const VALUE_LOC_13_1 = 'loc13_1';
    /**
     * Constant for value 'interbational'
     * @return string 'interbational'
     */
    const VALUE_INTERBATIONAL = 'interbational';
    /**
     * 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_2_0
     * @uses self::VALUE_LOC_13_0
     * @uses self::VALUE_UNKNOWN
     * @uses self::VALUE_PTI_2_1
     * @uses self::VALUE_HIGH_SPEED_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_2
     * @uses self::VALUE_LOC_13_3
     * @uses self::VALUE_LONG_DISTANCE_TRAIN
     * @uses self::VALUE_PTI_2_3
     * @uses self::VALUE_LOC_13_2
     * @uses self::VALUE_INTER_REGIONAL_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_4
     * @uses self::VALUE_CAR_TRANSPORT_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_5
     * @uses self::VALUE_SLEEPER_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_6
     * @uses self::VALUE_LOC_13_4
     * @uses self::VALUE_REGIONAL_RAIL
     * @uses self::VALUE_PTI_2_7
     * @uses self::VALUE_LOC_13_7
     * @uses self::VALUE_TOURIST_RAILWAY
     * @uses self::VALUE_PTI_2_8
     * @uses self::VALUE_RAIL_SHUTTLE
     * @uses self::VALUE_PTI_2_9
     * @uses self::VALUE_LOC_13_5
     * @uses self::VALUE_SUBURBAN_RAILWAY
     * @uses self::VALUE_PTI_2_10
     * @uses self::VALUE_REPLACEMENT_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_11
     * @uses self::VALUE_SPECIAL_TRAIN_SERVICE
     * @uses self::VALUE_PTI_2_12
     * @uses self::VALUE_LORRY_TRANSPORT_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_13
     * @uses self::VALUE_ALL_RAIL_SERVICES
     * @uses self::VALUE_PTI_2_14
     * @uses self::VALUE_CROSS_COUNTRY_RAIL_SERVICE
     * @uses self::VALUE_PTI_2_15
     * @uses self::VALUE_VEHICLE_RAIL_TRANSPORT_SERVICE
     * @uses self::VALUE_PTI_2_16
     * @uses self::VALUE_LOC_13_8
     * @uses self::VALUE_RACK_AND_PINION_RAILWAY
     * @uses self::VALUE_PTI_2_17
     * @uses self::VALUE_ADDITIONAL_TRAIN_SERVICE
     * @uses self::VALUE_PTI_2_255
     * @uses self::VALUE_UNDEFINED
     * @uses self::VALUE_LOC_13_6
     * @uses self::VALUE_LOCAL
     * @uses self::VALUE_LOC_13_1
     * @uses self::VALUE_INTERBATIONAL
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_PTI_2_0,
            self::VALUE_LOC_13_0,
            self::VALUE_UNKNOWN,
            self::VALUE_PTI_2_1,
            self::VALUE_HIGH_SPEED_RAIL_SERVICE,
            self::VALUE_PTI_2_2,
            self::VALUE_LOC_13_3,
            self::VALUE_LONG_DISTANCE_TRAIN,
            self::VALUE_PTI_2_3,
            self::VALUE_LOC_13_2,
            self::VALUE_INTER_REGIONAL_RAIL_SERVICE,
            self::VALUE_PTI_2_4,
            self::VALUE_CAR_TRANSPORT_RAIL_SERVICE,
            self::VALUE_PTI_2_5,
            self::VALUE_SLEEPER_RAIL_SERVICE,
            self::VALUE_PTI_2_6,
            self::VALUE_LOC_13_4,
            self::VALUE_REGIONAL_RAIL,
            self::VALUE_PTI_2_7,
            self::VALUE_LOC_13_7,
            self::VALUE_TOURIST_RAILWAY,
            self::VALUE_PTI_2_8,
            self::VALUE_RAIL_SHUTTLE,
            self::VALUE_PTI_2_9,
            self::VALUE_LOC_13_5,
            self::VALUE_SUBURBAN_RAILWAY,
            self::VALUE_PTI_2_10,
            self::VALUE_REPLACEMENT_RAIL_SERVICE,
            self::VALUE_PTI_2_11,
            self::VALUE_SPECIAL_TRAIN_SERVICE,
            self::VALUE_PTI_2_12,
            self::VALUE_LORRY_TRANSPORT_RAIL_SERVICE,
            self::VALUE_PTI_2_13,
            self::VALUE_ALL_RAIL_SERVICES,
            self::VALUE_PTI_2_14,
            self::VALUE_CROSS_COUNTRY_RAIL_SERVICE,
            self::VALUE_PTI_2_15,
            self::VALUE_VEHICLE_RAIL_TRANSPORT_SERVICE,
            self::VALUE_PTI_2_16,
            self::VALUE_LOC_13_8,
            self::VALUE_RACK_AND_PINION_RAILWAY,
            self::VALUE_PTI_2_17,
            self::VALUE_ADDITIONAL_TRAIN_SERVICE,
            self::VALUE_PTI_2_255,
            self::VALUE_UNDEFINED,
            self::VALUE_LOC_13_6,
            self::VALUE_LOCAL,
            self::VALUE_LOC_13_1,
            self::VALUE_INTERBATIONAL,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
