<?php
/**
 * This class stands for XMonthOfYear EnumType
 * @subpackage Enumerations
 */
class XMonthOfYear
{
    /**
     * Constant for value 'None'
     * @return string 'None'
     */
    const VALUE_NONE = 'None';
    /**
     * Constant for value 'Jan'
     * @return string 'Jan'
     */
    const VALUE_JAN = 'Jan';
    /**
     * Constant for value 'Feb'
     * @return string 'Feb'
     */
    const VALUE_FEB = 'Feb';
    /**
     * Constant for value 'Mar'
     * @return string 'Mar'
     */
    const VALUE_MAR = 'Mar';
    /**
     * Constant for value 'Apr'
     * @return string 'Apr'
     */
    const VALUE_APR = 'Apr';
    /**
     * Constant for value 'May'
     * @return string 'May'
     */
    const VALUE_MAY = 'May';
    /**
     * Constant for value 'Jun'
     * @return string 'Jun'
     */
    const VALUE_JUN = 'Jun';
    /**
     * Constant for value 'Jul'
     * @return string 'Jul'
     */
    const VALUE_JUL = 'Jul';
    /**
     * Constant for value 'Aug'
     * @return string 'Aug'
     */
    const VALUE_AUG = 'Aug';
    /**
     * Constant for value 'Sep'
     * @return string 'Sep'
     */
    const VALUE_SEP = 'Sep';
    /**
     * Constant for value 'Oct'
     * @return string 'Oct'
     */
    const VALUE_OCT = 'Oct';
    /**
     * Constant for value 'Nov'
     * @return string 'Nov'
     */
    const VALUE_NOV = 'Nov';
    /**
     * Constant for value 'Dec'
     * @return string 'Dec'
     */
    const VALUE_DEC = 'Dec';
    /**
     * 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_NONE
     * @uses self::VALUE_JAN
     * @uses self::VALUE_FEB
     * @uses self::VALUE_MAR
     * @uses self::VALUE_APR
     * @uses self::VALUE_MAY
     * @uses self::VALUE_JUN
     * @uses self::VALUE_JUL
     * @uses self::VALUE_AUG
     * @uses self::VALUE_SEP
     * @uses self::VALUE_OCT
     * @uses self::VALUE_NOV
     * @uses self::VALUE_DEC
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_NONE,
            self::VALUE_JAN,
            self::VALUE_FEB,
            self::VALUE_MAR,
            self::VALUE_APR,
            self::VALUE_MAY,
            self::VALUE_JUN,
            self::VALUE_JUL,
            self::VALUE_AUG,
            self::VALUE_SEP,
            self::VALUE_OCT,
            self::VALUE_NOV,
            self::VALUE_DEC,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
