<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/telemetry_control/v1/keyapis_telemetry_control_template_v1.proto

namespace Keyapis\TelemetryControl\V1\TemplateIndicator;

use UnexpectedValueException;

/**
 * Справочник типов единиц измерений
 *
 * Protobuf type <code>keyapis.telemetry_control.v1.TemplateIndicator.UnitType</code>
 */
class UnitType
{
    /**
     * Значение не указано
     *
     * Generated from protobuf enum <code>UNIT_TYPE_UNKNOWN = 0;</code>
     */
    const UNIT_TYPE_UNKNOWN = 0;
    /**
     * Процент
     *
     * Generated from protobuf enum <code>PERCENT = 1;</code>
     */
    const PERCENT = 1;
    /**
     * Градус по Цельсию
     *
     * Generated from protobuf enum <code>C = 2;</code>
     */
    const C = 2;
    /**
     * Ватт
     *
     * Generated from protobuf enum <code>WT = 3;</code>
     */
    const WT = 3;
    /**
     * Гигакалория
     *
     * Generated from protobuf enum <code>GKAL = 4;</code>
     */
    const GKAL = 4;
    /**
     * Количество
     *
     * Generated from protobuf enum <code>VALUE = 5;</code>
     */
    const VALUE = 5;
    /**
     * Киловaтт-час
     *
     * Generated from protobuf enum <code>KWH = 6;</code>
     */
    const KWH = 6;
    /**
     * Килограмм на квадратный сантиметр
     *
     * Generated from protobuf enum <code>KG_CM2 = 7;</code>
     */
    const KG_CM2 = 7;
    /**
     * Килограмм-сила на квадратный сантиметр
     *
     * Generated from protobuf enum <code>KGF_CM2 = 8;</code>
     */
    const KGF_CM2 = 8;
    /**
     * Кубический метр
     *
     * Generated from protobuf enum <code>M3 = 9;</code>
     */
    const M3 = 9;
    /**
     * Кубический метр в час
     *
     * Generated from protobuf enum <code>M3_H = 10;</code>
     */
    const M3_H = 10;
    /**
     * Мегапаскаль
     *
     * Generated from protobuf enum <code>MPA = 11;</code>
     */
    const MPA = 11;
    /**
     * Миллисекунда
     *
     * Generated from protobuf enum <code>MS = 12;</code>
     */
    const MS = 12;
    /**
     * Флаг состояния
     *
     * Generated from protobuf enum <code>BOOLEAN = 13;</code>
     */
    const BOOLEAN = 13;
    /**
     * Тонна
     *
     * Generated from protobuf enum <code>T = 14;</code>
     */
    const T = 14;
    /**
     * Тонна в час
     *
     * Generated from protobuf enum <code>T_H = 15;</code>
     */
    const T_H = 15;
    /**
     * Час
     *
     * Generated from protobuf enum <code>H = 16;</code>
     */
    const H = 16;
    /**
     * Безразмерная величина
     *
     * Generated from protobuf enum <code>NON_MEASURABLE = 17;</code>
     */
    const NON_MEASURABLE = 17;
    /**
     * Импульс
     *
     * Generated from protobuf enum <code>IMP = 18;</code>
     */
    const IMP = 18;
    /**
     * Джоуль
     *
     * Generated from protobuf enum <code>J = 19;</code>
     */
    const J = 19;
    /**
     * Килоджоуль
     *
     * Generated from protobuf enum <code>KJ = 20;</code>
     */
    const KJ = 20;
    /**
     * Гигаджоуль
     *
     * Generated from protobuf enum <code>GJ = 21;</code>
     */
    const GJ = 21;
    /**
     * Ватт-час
     *
     * Generated from protobuf enum <code>WTH = 22;</code>
     */
    const WTH = 22;
    /**
     * Киловатт
     *
     * Generated from protobuf enum <code>KWT = 23;</code>
     */
    const KWT = 23;
    /**
     * Минута
     *
     * Generated from protobuf enum <code>MIN = 24;</code>
     */
    const MIN = 24;
    /**
     * Секунда
     *
     * Generated from protobuf enum <code>S = 25;</code>
     */
    const S = 25;

    private static $valueToName = [
        self::UNIT_TYPE_UNKNOWN => 'UNIT_TYPE_UNKNOWN',
        self::PERCENT => 'PERCENT',
        self::C => 'C',
        self::WT => 'WT',
        self::GKAL => 'GKAL',
        self::VALUE => 'VALUE',
        self::KWH => 'KWH',
        self::KG_CM2 => 'KG_CM2',
        self::KGF_CM2 => 'KGF_CM2',
        self::M3 => 'M3',
        self::M3_H => 'M3_H',
        self::MPA => 'MPA',
        self::MS => 'MS',
        self::BOOLEAN => 'BOOLEAN',
        self::T => 'T',
        self::T_H => 'T_H',
        self::H => 'H',
        self::NON_MEASURABLE => 'NON_MEASURABLE',
        self::IMP => 'IMP',
        self::J => 'J',
        self::KJ => 'KJ',
        self::GJ => 'GJ',
        self::WTH => 'WTH',
        self::KWT => 'KWT',
        self::MIN => 'MIN',
        self::S => 'S',
    ];

    public static function name($value)
    {
        if (!isset(self::$valueToName[$value])) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no name defined for value %s', __CLASS__, $value));
        }
        return self::$valueToName[$value];
    }


    public static function value($name)
    {
        $const = __CLASS__ . '::' . strtoupper($name);
        if (!defined($const)) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no value defined for name %s', __CLASS__, $name));
        }
        return constant($const);
    }
}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(UnitType::class, \Keyapis\TelemetryControl\V1\TemplateIndicator_UnitType::class);

