Imported Upstream version 3.8.0
[platform/upstream/protobuf.git] / php / src / Google / Protobuf / NullValue.php
index 482b80d..a72cbb2 100644 (file)
@@ -4,6 +4,8 @@
 
 namespace Google\Protobuf;
 
+use UnexpectedValueException;
+
 /**
  * `NullValue` is a singleton enumeration to represent the null value for the
  * `Value` type union.
@@ -19,5 +21,28 @@ class NullValue
      * Generated from protobuf enum <code>NULL_VALUE = 0;</code>
      */
     const NULL_VALUE = 0;
+
+    private static $valueToName = [
+        self::NULL_VALUE => 'NULL_VALUE',
+    ];
+
+    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);
+    }
 }