<?php
/**
 * This class stands for XBitPos EnumType
 * @subpackage Enumerations
 */
class XBitPos
{
    /**
     * Constant for value 'bit 1'
     * @return string 'bit 1'
     */
    const VALUE_BIT_1 = 'bit 1';
    /**
     * Constant for value 'bit 2'
     * @return string 'bit 2'
     */
    const VALUE_BIT_2 = 'bit 2';
    /**
     * Constant for value 'bit 3'
     * @return string 'bit 3'
     */
    const VALUE_BIT_3 = 'bit 3';
    /**
     * Constant for value 'bit 4'
     * @return string 'bit 4'
     */
    const VALUE_BIT_4 = 'bit 4';
    /**
     * Constant for value 'bit 5'
     * @return string 'bit 5'
     */
    const VALUE_BIT_5 = 'bit 5';
    /**
     * Constant for value 'bit 6'
     * @return string 'bit 6'
     */
    const VALUE_BIT_6 = 'bit 6';
    /**
     * Constant for value 'bit 7'
     * @return string 'bit 7'
     */
    const VALUE_BIT_7 = 'bit 7';
    /**
     * Constant for value 'bit 8'
     * @return string 'bit 8'
     */
    const VALUE_BIT_8 = 'bit 8';
    /**
     * Constant for value 'bit 9'
     * @return string 'bit 9'
     */
    const VALUE_BIT_9 = 'bit 9';
    /**
     * Constant for value 'bit 10'
     * @return string 'bit 10'
     */
    const VALUE_BIT_10 = 'bit 10';
    /**
     * Constant for value 'bit 11'
     * @return string 'bit 11'
     */
    const VALUE_BIT_11 = 'bit 11';
    /**
     * Constant for value 'bit 12'
     * @return string 'bit 12'
     */
    const VALUE_BIT_12 = 'bit 12';
    /**
     * Constant for value 'bit 13'
     * @return string 'bit 13'
     */
    const VALUE_BIT_13 = 'bit 13';
    /**
     * Constant for value 'bit 14'
     * @return string 'bit 14'
     */
    const VALUE_BIT_14 = 'bit 14';
    /**
     * Constant for value 'bit 15'
     * @return string 'bit 15'
     */
    const VALUE_BIT_15 = 'bit 15';
    /**
     * Constant for value 'bit 16'
     * @return string 'bit 16'
     */
    const VALUE_BIT_16 = 'bit 16';
    /**
     * Constant for value 'bit 17'
     * @return string 'bit 17'
     */
    const VALUE_BIT_17 = 'bit 17';
    /**
     * Constant for value 'bit 18'
     * @return string 'bit 18'
     */
    const VALUE_BIT_18 = 'bit 18';
    /**
     * Constant for value 'bit 19'
     * @return string 'bit 19'
     */
    const VALUE_BIT_19 = 'bit 19';
    /**
     * Constant for value 'bit 20'
     * @return string 'bit 20'
     */
    const VALUE_BIT_20 = 'bit 20';
    /**
     * Constant for value 'bit 21'
     * @return string 'bit 21'
     */
    const VALUE_BIT_21 = 'bit 21';
    /**
     * Constant for value 'bit 22'
     * @return string 'bit 22'
     */
    const VALUE_BIT_22 = 'bit 22';
    /**
     * Constant for value 'bit 23'
     * @return string 'bit 23'
     */
    const VALUE_BIT_23 = 'bit 23';
    /**
     * Constant for value 'bit 24'
     * @return string 'bit 24'
     */
    const VALUE_BIT_24 = 'bit 24';
    /**
     * Constant for value 'bit 25'
     * @return string 'bit 25'
     */
    const VALUE_BIT_25 = 'bit 25';
    /**
     * Constant for value 'bit 26'
     * @return string 'bit 26'
     */
    const VALUE_BIT_26 = 'bit 26';
    /**
     * Constant for value 'bit 27'
     * @return string 'bit 27'
     */
    const VALUE_BIT_27 = 'bit 27';
    /**
     * Constant for value 'bit 28'
     * @return string 'bit 28'
     */
    const VALUE_BIT_28 = 'bit 28';
    /**
     * Constant for value 'bit 29'
     * @return string 'bit 29'
     */
    const VALUE_BIT_29 = 'bit 29';
    /**
     * Constant for value 'bit 30'
     * @return string 'bit 30'
     */
    const VALUE_BIT_30 = 'bit 30';
    /**
     * Constant for value 'bit 31'
     * @return string 'bit 31'
     */
    const VALUE_BIT_31 = 'bit 31';
    /**
     * Constant for value 'bit 32'
     * @return string 'bit 32'
     */
    const VALUE_BIT_32 = 'bit 32';
    /**
     * 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_BIT_1
     * @uses self::VALUE_BIT_2
     * @uses self::VALUE_BIT_3
     * @uses self::VALUE_BIT_4
     * @uses self::VALUE_BIT_5
     * @uses self::VALUE_BIT_6
     * @uses self::VALUE_BIT_7
     * @uses self::VALUE_BIT_8
     * @uses self::VALUE_BIT_9
     * @uses self::VALUE_BIT_10
     * @uses self::VALUE_BIT_11
     * @uses self::VALUE_BIT_12
     * @uses self::VALUE_BIT_13
     * @uses self::VALUE_BIT_14
     * @uses self::VALUE_BIT_15
     * @uses self::VALUE_BIT_16
     * @uses self::VALUE_BIT_17
     * @uses self::VALUE_BIT_18
     * @uses self::VALUE_BIT_19
     * @uses self::VALUE_BIT_20
     * @uses self::VALUE_BIT_21
     * @uses self::VALUE_BIT_22
     * @uses self::VALUE_BIT_23
     * @uses self::VALUE_BIT_24
     * @uses self::VALUE_BIT_25
     * @uses self::VALUE_BIT_26
     * @uses self::VALUE_BIT_27
     * @uses self::VALUE_BIT_28
     * @uses self::VALUE_BIT_29
     * @uses self::VALUE_BIT_30
     * @uses self::VALUE_BIT_31
     * @uses self::VALUE_BIT_32
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_BIT_1,
            self::VALUE_BIT_2,
            self::VALUE_BIT_3,
            self::VALUE_BIT_4,
            self::VALUE_BIT_5,
            self::VALUE_BIT_6,
            self::VALUE_BIT_7,
            self::VALUE_BIT_8,
            self::VALUE_BIT_9,
            self::VALUE_BIT_10,
            self::VALUE_BIT_11,
            self::VALUE_BIT_12,
            self::VALUE_BIT_13,
            self::VALUE_BIT_14,
            self::VALUE_BIT_15,
            self::VALUE_BIT_16,
            self::VALUE_BIT_17,
            self::VALUE_BIT_18,
            self::VALUE_BIT_19,
            self::VALUE_BIT_20,
            self::VALUE_BIT_21,
            self::VALUE_BIT_22,
            self::VALUE_BIT_23,
            self::VALUE_BIT_24,
            self::VALUE_BIT_25,
            self::VALUE_BIT_26,
            self::VALUE_BIT_27,
            self::VALUE_BIT_28,
            self::VALUE_BIT_29,
            self::VALUE_BIT_30,
            self::VALUE_BIT_31,
            self::VALUE_BIT_32,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
