aboutsummaryrefslogtreecommitdiff
path: root/php/src/Google/Protobuf/Syntax.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/src/Google/Protobuf/Syntax.php')
-rw-r--r--php/src/Google/Protobuf/Syntax.php26
1 files changed, 26 insertions, 0 deletions
diff --git a/php/src/Google/Protobuf/Syntax.php b/php/src/Google/Protobuf/Syntax.php
index 3a52dc9e1..9812669da 100644
--- a/php/src/Google/Protobuf/Syntax.php
+++ b/php/src/Google/Protobuf/Syntax.php
@@ -4,6 +4,8 @@
namespace Google\Protobuf;
+use UnexpectedValueException;
+
/**
* The syntax in which a protocol buffer element is defined.
*
@@ -23,5 +25,29 @@ class Syntax
* Generated from protobuf enum <code>SYNTAX_PROTO3 = 1;</code>
*/
const SYNTAX_PROTO3 = 1;
+
+ private static $valueToName = [
+ self::SYNTAX_PROTO2 => 'SYNTAX_PROTO2',
+ self::SYNTAX_PROTO3 => 'SYNTAX_PROTO3',
+ ];
+
+ 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);
+ }
}