<?php

namespace dgsoft\EnumType;

/**
 * This class stands for ValidationErrorCodes EnumType
 * @package Dg
 * @subpackage Enumerations
 */
class DgValidationErrorCodes
{
    /**
     * Constant for value 'A000'
     * @return string 'A000'
     */
    const VALUE_A_000 = 'A000';
    /**
     * Constant for value 'A001'
     * @return string 'A001'
     */
    const VALUE_A_001 = 'A001';
    /**
     * Constant for value 'A002'
     * @return string 'A002'
     */
    const VALUE_A_002 = 'A002';
    /**
     * Constant for value 'A003'
     * @return string 'A003'
     */
    const VALUE_A_003 = 'A003';
    /**
     * Constant for value 'A004'
     * @return string 'A004'
     */
    const VALUE_A_004 = 'A004';
    /**
     * Constant for value 'A005'
     * @return string 'A005'
     */
    const VALUE_A_005 = 'A005';
    /**
     * Constant for value 'A006'
     * @return string 'A006'
     */
    const VALUE_A_006 = 'A006';
    /**
     * Constant for value 'A007'
     * @return string 'A007'
     */
    const VALUE_A_007 = 'A007';
    /**
     * Constant for value 'A008'
     * @return string 'A008'
     */
    const VALUE_A_008 = 'A008';
    /**
     * Constant for value 'A009'
     * @return string 'A009'
     */
    const VALUE_A_009 = 'A009';
    /**
     * Constant for value 'A010'
     * @return string 'A010'
     */
    const VALUE_A_010 = 'A010';
    /**
     * Constant for value 'A011'
     * @return string 'A011'
     */
    const VALUE_A_011 = 'A011';
    /**
     * Constant for value 'A012'
     * @return string 'A012'
     */
    const VALUE_A_012 = 'A012';
    /**
     * Constant for value 'A013'
     * @return string 'A013'
     */
    const VALUE_A_013 = 'A013';
    /**
     * Constant for value 'A014'
     * @return string 'A014'
     */
    const VALUE_A_014 = 'A014';
    /**
     * Constant for value 'A015'
     * @return string 'A015'
     */
    const VALUE_A_015 = 'A015';
    /**
     * Constant for value 'A016'
     * @return string 'A016'
     */
    const VALUE_A_016 = 'A016';
    /**
     * Constant for value 'A017'
     * @return string 'A017'
     */
    const VALUE_A_017 = 'A017';
    /**
     * Constant for value 'A018'
     * @return string 'A018'
     */
    const VALUE_A_018 = 'A018';
    /**
     * Constant for value 'A019'
     * @return string 'A019'
     */
    const VALUE_A_019 = 'A019';
    /**
     * Constant for value 'A020'
     * @return string 'A020'
     */
    const VALUE_A_020 = 'A020';
    /**
     * Constant for value 'A021'
     * @return string 'A021'
     */
    const VALUE_A_021 = 'A021';
    /**
     * Constant for value 'A022'
     * @return string 'A022'
     */
    const VALUE_A_022 = 'A022';
    /**
     * Constant for value 'A023'
     * @return string 'A023'
     */
    const VALUE_A_023 = 'A023';
    /**
     * Constant for value 'A024'
     * @return string 'A024'
     */
    const VALUE_A_024 = 'A024';
    /**
     * Constant for value 'A025'
     * @return string 'A025'
     */
    const VALUE_A_025 = 'A025';
    /**
     * Constant for value 'A026'
     * @return string 'A026'
     */
    const VALUE_A_026 = 'A026';
    /**
     * Constant for value 'A027'
     * @return string 'A027'
     */
    const VALUE_A_027 = 'A027';
    /**
     * Constant for value 'USR000'
     * @return string 'USR000'
     */
    const VALUE_USR_000 = 'USR000';
    /**
     * Constant for value 'USR011'
     * @return string 'USR011'
     */
    const VALUE_USR_011 = 'USR011';
    /**
     * Constant for value 'USR012'
     * @return string 'USR012'
     */
    const VALUE_USR_012 = 'USR012';
    /**
     * Constant for value 'USR013'
     * @return string 'USR013'
     */
    const VALUE_USR_013 = 'USR013';
    /**
     * Constant for value 'USR014'
     * @return string 'USR014'
     */
    const VALUE_USR_014 = 'USR014';
    /**
     * Constant for value 'USR015'
     * @return string 'USR015'
     */
    const VALUE_USR_015 = 'USR015';
    /**
     * Constant for value 'USR016'
     * @return string 'USR016'
     */
    const VALUE_USR_016 = 'USR016';
    /**
     * Constant for value 'USR017'
     * @return string 'USR017'
     */
    const VALUE_USR_017 = 'USR017';
    /**
     * Constant for value 'USR018'
     * @return string 'USR018'
     */
    const VALUE_USR_018 = 'USR018';
    /**
     * Constant for value 'USR019'
     * @return string 'USR019'
     */
    const VALUE_USR_019 = 'USR019';
    /**
     * Constant for value 'USR020'
     * @return string 'USR020'
     */
    const VALUE_USR_020 = 'USR020';
    /**
     * Constant for value 'USR021'
     * @return string 'USR021'
     */
    const VALUE_USR_021 = 'USR021';
    /**
     * Constant for value 'USR022'
     * @return string 'USR022'
     */
    const VALUE_USR_022 = 'USR022';
    /**
     * Constant for value 'USR023'
     * @return string 'USR023'
     */
    const VALUE_USR_023 = 'USR023';
    /**
     * Constant for value 'USR024'
     * @return string 'USR024'
     */
    const VALUE_USR_024 = 'USR024';
    /**
     * Constant for value 'USR025'
     * @return string 'USR025'
     */
    const VALUE_USR_025 = 'USR025';
    /**
     * Constant for value 'USR026'
     * @return string 'USR026'
     */
    const VALUE_USR_026 = 'USR026';
    /**
     * Constant for value 'USR027'
     * @return string 'USR027'
     */
    const VALUE_USR_027 = 'USR027';
    /**
     * Constant for value 'USR028'
     * @return string 'USR028'
     */
    const VALUE_USR_028 = 'USR028';
    /**
     * 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_A_000
     * @uses self::VALUE_A_001
     * @uses self::VALUE_A_002
     * @uses self::VALUE_A_003
     * @uses self::VALUE_A_004
     * @uses self::VALUE_A_005
     * @uses self::VALUE_A_006
     * @uses self::VALUE_A_007
     * @uses self::VALUE_A_008
     * @uses self::VALUE_A_009
     * @uses self::VALUE_A_010
     * @uses self::VALUE_A_011
     * @uses self::VALUE_A_012
     * @uses self::VALUE_A_013
     * @uses self::VALUE_A_014
     * @uses self::VALUE_A_015
     * @uses self::VALUE_A_016
     * @uses self::VALUE_A_017
     * @uses self::VALUE_A_018
     * @uses self::VALUE_A_019
     * @uses self::VALUE_A_020
     * @uses self::VALUE_A_021
     * @uses self::VALUE_A_022
     * @uses self::VALUE_A_023
     * @uses self::VALUE_A_024
     * @uses self::VALUE_A_025
     * @uses self::VALUE_A_026
     * @uses self::VALUE_A_027
     * @uses self::VALUE_USR_000
     * @uses self::VALUE_USR_011
     * @uses self::VALUE_USR_012
     * @uses self::VALUE_USR_013
     * @uses self::VALUE_USR_014
     * @uses self::VALUE_USR_015
     * @uses self::VALUE_USR_016
     * @uses self::VALUE_USR_017
     * @uses self::VALUE_USR_018
     * @uses self::VALUE_USR_019
     * @uses self::VALUE_USR_020
     * @uses self::VALUE_USR_021
     * @uses self::VALUE_USR_022
     * @uses self::VALUE_USR_023
     * @uses self::VALUE_USR_024
     * @uses self::VALUE_USR_025
     * @uses self::VALUE_USR_026
     * @uses self::VALUE_USR_027
     * @uses self::VALUE_USR_028
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_A_000,
            self::VALUE_A_001,
            self::VALUE_A_002,
            self::VALUE_A_003,
            self::VALUE_A_004,
            self::VALUE_A_005,
            self::VALUE_A_006,
            self::VALUE_A_007,
            self::VALUE_A_008,
            self::VALUE_A_009,
            self::VALUE_A_010,
            self::VALUE_A_011,
            self::VALUE_A_012,
            self::VALUE_A_013,
            self::VALUE_A_014,
            self::VALUE_A_015,
            self::VALUE_A_016,
            self::VALUE_A_017,
            self::VALUE_A_018,
            self::VALUE_A_019,
            self::VALUE_A_020,
            self::VALUE_A_021,
            self::VALUE_A_022,
            self::VALUE_A_023,
            self::VALUE_A_024,
            self::VALUE_A_025,
            self::VALUE_A_026,
            self::VALUE_A_027,
            self::VALUE_USR_000,
            self::VALUE_USR_011,
            self::VALUE_USR_012,
            self::VALUE_USR_013,
            self::VALUE_USR_014,
            self::VALUE_USR_015,
            self::VALUE_USR_016,
            self::VALUE_USR_017,
            self::VALUE_USR_018,
            self::VALUE_USR_019,
            self::VALUE_USR_020,
            self::VALUE_USR_021,
            self::VALUE_USR_022,
            self::VALUE_USR_023,
            self::VALUE_USR_024,
            self::VALUE_USR_025,
            self::VALUE_USR_026,
            self::VALUE_USR_027,
            self::VALUE_USR_028,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
