<?php

namespace EnumType;

/**
 * This class stands for CoachSubmodesOfTransportEnumeration EnumType
 * Meta informations extracted from the WSDL
 * - documentation: Values for Coach ModesOfTransport: TPEG pti_table_03.
 * @subpackage Enumerations
 */
class CoachSubmodesOfTransportEnumeration
{
    /**
     * Constant for value 'pti3_0'
     * @return string 'pti3_0'
     */
    const VALUE_PTI_3_0 = 'pti3_0';
    /**
     * Constant for value 'unknown'
     * @return string 'unknown'
     */
    const VALUE_UNKNOWN = 'unknown';
    /**
     * Constant for value 'pti3_1'
     * @return string 'pti3_1'
     */
    const VALUE_PTI_3_1 = 'pti3_1';
    /**
     * Constant for value 'internationalCoachService'
     * @return string 'internationalCoachService'
     */
    const VALUE_INTERNATIONAL_COACH_SERVICE = 'internationalCoachService';
    /**
     * Constant for value 'pti3_2'
     * @return string 'pti3_2'
     */
    const VALUE_PTI_3_2 = 'pti3_2';
    /**
     * Constant for value 'nationalCoachService'
     * @return string 'nationalCoachService'
     */
    const VALUE_NATIONAL_COACH_SERVICE = 'nationalCoachService';
    /**
     * Constant for value 'pti3_3'
     * @return string 'pti3_3'
     */
    const VALUE_PTI_3_3 = 'pti3_3';
    /**
     * Constant for value 'shuttleCoachService'
     * @return string 'shuttleCoachService'
     */
    const VALUE_SHUTTLE_COACH_SERVICE = 'shuttleCoachService';
    /**
     * Constant for value 'pti3_4'
     * @return string 'pti3_4'
     */
    const VALUE_PTI_3_4 = 'pti3_4';
    /**
     * Constant for value 'regionalCoachService'
     * @return string 'regionalCoachService'
     */
    const VALUE_REGIONAL_COACH_SERVICE = 'regionalCoachService';
    /**
     * Constant for value 'pti3_5'
     * @return string 'pti3_5'
     */
    const VALUE_PTI_3_5 = 'pti3_5';
    /**
     * Constant for value 'specialCoachService'
     * @return string 'specialCoachService'
     */
    const VALUE_SPECIAL_COACH_SERVICE = 'specialCoachService';
    /**
     * Constant for value 'pti3_6'
     * @return string 'pti3_6'
     */
    const VALUE_PTI_3_6 = 'pti3_6';
    /**
     * Constant for value 'sightseeingCoachService'
     * @return string 'sightseeingCoachService'
     */
    const VALUE_SIGHTSEEING_COACH_SERVICE = 'sightseeingCoachService';
    /**
     * Constant for value 'pti3_7'
     * @return string 'pti3_7'
     */
    const VALUE_PTI_3_7 = 'pti3_7';
    /**
     * Constant for value 'touristCoachService'
     * @return string 'touristCoachService'
     */
    const VALUE_TOURIST_COACH_SERVICE = 'touristCoachService';
    /**
     * Constant for value 'pti3_8'
     * @return string 'pti3_8'
     */
    const VALUE_PTI_3_8 = 'pti3_8';
    /**
     * Constant for value 'commuterCoachService'
     * @return string 'commuterCoachService'
     */
    const VALUE_COMMUTER_COACH_SERVICE = 'commuterCoachService';
    /**
     * Constant for value 'pti3_9'
     * @return string 'pti3_9'
     */
    const VALUE_PTI_3_9 = 'pti3_9';
    /**
     * Constant for value 'allCoachServices'
     * @return string 'allCoachServices'
     */
    const VALUE_ALL_COACH_SERVICES = 'allCoachServices';
    /**
     * Constant for value 'pti3_255'
     * @return string 'pti3_255'
     */
    const VALUE_PTI_3_255 = 'pti3_255';
    /**
     * Constant for value 'undefined'
     * @return string 'undefined'
     */
    const VALUE_UNDEFINED = 'undefined';
    /**
     * 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_3_0
     * @uses self::VALUE_UNKNOWN
     * @uses self::VALUE_PTI_3_1
     * @uses self::VALUE_INTERNATIONAL_COACH_SERVICE
     * @uses self::VALUE_PTI_3_2
     * @uses self::VALUE_NATIONAL_COACH_SERVICE
     * @uses self::VALUE_PTI_3_3
     * @uses self::VALUE_SHUTTLE_COACH_SERVICE
     * @uses self::VALUE_PTI_3_4
     * @uses self::VALUE_REGIONAL_COACH_SERVICE
     * @uses self::VALUE_PTI_3_5
     * @uses self::VALUE_SPECIAL_COACH_SERVICE
     * @uses self::VALUE_PTI_3_6
     * @uses self::VALUE_SIGHTSEEING_COACH_SERVICE
     * @uses self::VALUE_PTI_3_7
     * @uses self::VALUE_TOURIST_COACH_SERVICE
     * @uses self::VALUE_PTI_3_8
     * @uses self::VALUE_COMMUTER_COACH_SERVICE
     * @uses self::VALUE_PTI_3_9
     * @uses self::VALUE_ALL_COACH_SERVICES
     * @uses self::VALUE_PTI_3_255
     * @uses self::VALUE_UNDEFINED
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_PTI_3_0,
            self::VALUE_UNKNOWN,
            self::VALUE_PTI_3_1,
            self::VALUE_INTERNATIONAL_COACH_SERVICE,
            self::VALUE_PTI_3_2,
            self::VALUE_NATIONAL_COACH_SERVICE,
            self::VALUE_PTI_3_3,
            self::VALUE_SHUTTLE_COACH_SERVICE,
            self::VALUE_PTI_3_4,
            self::VALUE_REGIONAL_COACH_SERVICE,
            self::VALUE_PTI_3_5,
            self::VALUE_SPECIAL_COACH_SERVICE,
            self::VALUE_PTI_3_6,
            self::VALUE_SIGHTSEEING_COACH_SERVICE,
            self::VALUE_PTI_3_7,
            self::VALUE_TOURIST_COACH_SERVICE,
            self::VALUE_PTI_3_8,
            self::VALUE_COMMUTER_COACH_SERVICE,
            self::VALUE_PTI_3_9,
            self::VALUE_ALL_COACH_SERVICES,
            self::VALUE_PTI_3_255,
            self::VALUE_UNDEFINED,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
