<?php
/**
 * This class stands for XDayOfMonth EnumType
 * @subpackage Enumerations
 */
class XDayOfMonth
{
    /**
     * Constant for value 'Last'
     * @return string 'Last'
     */
    const VALUE_LAST = 'Last';
    /**
     * Constant for value 'None'
     * @return string 'None'
     */
    const VALUE_NONE = 'None';
    /**
     * Constant for value '1'
     * @return string '1'
     */
    const VALUE_1 = '1';
    /**
     * Constant for value '2'
     * @return string '2'
     */
    const VALUE_2 = '2';
    /**
     * Constant for value '3'
     * @return string '3'
     */
    const VALUE_3 = '3';
    /**
     * Constant for value '4'
     * @return string '4'
     */
    const VALUE_4 = '4';
    /**
     * Constant for value '5'
     * @return string '5'
     */
    const VALUE_5 = '5';
    /**
     * Constant for value '6'
     * @return string '6'
     */
    const VALUE_6 = '6';
    /**
     * Constant for value '7'
     * @return string '7'
     */
    const VALUE_7 = '7';
    /**
     * Constant for value '8'
     * @return string '8'
     */
    const VALUE_8 = '8';
    /**
     * Constant for value '9'
     * @return string '9'
     */
    const VALUE_9 = '9';
    /**
     * Constant for value '10'
     * @return string '10'
     */
    const VALUE_10 = '10';
    /**
     * Constant for value '11'
     * @return string '11'
     */
    const VALUE_11 = '11';
    /**
     * Constant for value '12'
     * @return string '12'
     */
    const VALUE_12 = '12';
    /**
     * Constant for value '13'
     * @return string '13'
     */
    const VALUE_13 = '13';
    /**
     * Constant for value '14'
     * @return string '14'
     */
    const VALUE_14 = '14';
    /**
     * Constant for value '15'
     * @return string '15'
     */
    const VALUE_15 = '15';
    /**
     * Constant for value '16'
     * @return string '16'
     */
    const VALUE_16 = '16';
    /**
     * Constant for value '17'
     * @return string '17'
     */
    const VALUE_17 = '17';
    /**
     * Constant for value '18'
     * @return string '18'
     */
    const VALUE_18 = '18';
    /**
     * Constant for value '19'
     * @return string '19'
     */
    const VALUE_19 = '19';
    /**
     * Constant for value '20'
     * @return string '20'
     */
    const VALUE_20 = '20';
    /**
     * Constant for value '21'
     * @return string '21'
     */
    const VALUE_21 = '21';
    /**
     * Constant for value '22'
     * @return string '22'
     */
    const VALUE_22 = '22';
    /**
     * Constant for value '23'
     * @return string '23'
     */
    const VALUE_23 = '23';
    /**
     * Constant for value '24'
     * @return string '24'
     */
    const VALUE_24 = '24';
    /**
     * Constant for value '25'
     * @return string '25'
     */
    const VALUE_25 = '25';
    /**
     * Constant for value '26'
     * @return string '26'
     */
    const VALUE_26 = '26';
    /**
     * Constant for value '27'
     * @return string '27'
     */
    const VALUE_27 = '27';
    /**
     * Constant for value '28'
     * @return string '28'
     */
    const VALUE_28 = '28';
    /**
     * 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_LAST
     * @uses self::VALUE_NONE
     * @uses self::VALUE_1
     * @uses self::VALUE_2
     * @uses self::VALUE_3
     * @uses self::VALUE_4
     * @uses self::VALUE_5
     * @uses self::VALUE_6
     * @uses self::VALUE_7
     * @uses self::VALUE_8
     * @uses self::VALUE_9
     * @uses self::VALUE_10
     * @uses self::VALUE_11
     * @uses self::VALUE_12
     * @uses self::VALUE_13
     * @uses self::VALUE_14
     * @uses self::VALUE_15
     * @uses self::VALUE_16
     * @uses self::VALUE_17
     * @uses self::VALUE_18
     * @uses self::VALUE_19
     * @uses self::VALUE_20
     * @uses self::VALUE_21
     * @uses self::VALUE_22
     * @uses self::VALUE_23
     * @uses self::VALUE_24
     * @uses self::VALUE_25
     * @uses self::VALUE_26
     * @uses self::VALUE_27
     * @uses self::VALUE_28
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_LAST,
            self::VALUE_NONE,
            self::VALUE_1,
            self::VALUE_2,
            self::VALUE_3,
            self::VALUE_4,
            self::VALUE_5,
            self::VALUE_6,
            self::VALUE_7,
            self::VALUE_8,
            self::VALUE_9,
            self::VALUE_10,
            self::VALUE_11,
            self::VALUE_12,
            self::VALUE_13,
            self::VALUE_14,
            self::VALUE_15,
            self::VALUE_16,
            self::VALUE_17,
            self::VALUE_18,
            self::VALUE_19,
            self::VALUE_20,
            self::VALUE_21,
            self::VALUE_22,
            self::VALUE_23,
            self::VALUE_24,
            self::VALUE_25,
            self::VALUE_26,
            self::VALUE_27,
            self::VALUE_28,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
