1: <?php
2: /*
3: * Copyright (c) 2014 @trashtoy
4: * https://github.com/trashtoy/
5: *
6: * Permission is hereby granted, free of charge, to any person obtaining a copy of
7: * this software and associated documentation files (the "Software"), to deal in
8: * the Software without restriction, including without limitation the rights to use,
9: * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
10: * Software, and to permit persons to whom the Software is furnished to do so,
11: * subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all
14: * copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18: * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19: * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20: * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21: * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22: */
23: /**
24: * PHP class file.
25: * @auhtor trashtoy
26: * @since 2.0.0
27: */
28: namespace Peach\Util;
29:
30: /**
31: * {@link ArrayMap} の entryList() から生成されるオブジェクトです.
32: */
33: class ArrayMapEntry extends AbstractMapEntry
34: {
35: /**
36: * このエントリーが登録されている ArrayMap です.
37: * @var ArrayMap
38: */
39: private $map;
40:
41: /**
42: * 新しい ArrayMapEntry を構築します.
43: *
44: * @param mixed $key キー
45: * @param mixed $value キーに関連づけられた値
46: * @param ArrayMap $map このエントリーが属する ArrayMap
47: */
48: public function __construct($key, $value, ArrayMap $map)
49: {
50: parent::__construct($key, $value);
51: $this->map = $map;
52: }
53:
54: /**
55: * このエントリーの値を更新します.
56: * @param mixed $value 新しくセットされる値
57: */
58: public function setValue($value)
59: {
60: $this->map->put($this->key, $value);
61: $this->value = $value;
62: }
63:
64: /**
65: * この MapEntry の文字列表現です.
66: * @return string
67: */
68: public function __toString()
69: {
70: return "[{$this->key}={$this->value}]";
71: }
72: }
73: