|
@@ -32,6 +32,7 @@
|
|
|
|
|
|
namespace Google\Protobuf\Internal;
|
|
namespace Google\Protobuf\Internal;
|
|
|
|
|
|
|
|
+use Google\Protobuf\Internal\GPBType;
|
|
use Google\Protobuf\Internal\Message;
|
|
use Google\Protobuf\Internal\Message;
|
|
|
|
|
|
class MapEntry extends Message
|
|
class MapEntry extends Message
|
|
@@ -39,6 +40,19 @@ class MapEntry extends Message
|
|
public $key;
|
|
public $key;
|
|
public $value;
|
|
public $value;
|
|
|
|
|
|
|
|
+ public function __construct($desc) {
|
|
|
|
+ parent::__construct($desc);
|
|
|
|
+ // For MapEntry, getValue should always return a valid value. Thus, we
|
|
|
|
+ // need to create a default instance value if the value type is
|
|
|
|
+ // message, in case no value is provided in data.
|
|
|
|
+ $value_field = $desc->getFieldByNumber(2);
|
|
|
|
+ if ($value_field->getType() == GPBType::MESSAGE) {
|
|
|
|
+ $klass = $value_field->getMessageType()->getClass();
|
|
|
|
+ $value = new $klass;
|
|
|
|
+ $this->setValue($value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
public function setKey($key) {
|
|
public function setKey($key) {
|
|
$this->key = $key;
|
|
$this->key = $key;
|
|
}
|
|
}
|