1: <?php
2:
3: namespace Saklient\Cloud;
4:
5: require_once __DIR__ . "/../../Saklient/Cloud/Models/Model_ServerPlan.php";
6: use \Saklient\Cloud\Models\Model_ServerPlan;
7: require_once __DIR__ . "/../../Saklient/Cloud/Models/Model_DiskPlan.php";
8: use \Saklient\Cloud\Models\Model_DiskPlan;
9: require_once __DIR__ . "/../../Saklient/Cloud/Models/Model_RouterPlan.php";
10: use \Saklient\Cloud\Models\Model_RouterPlan;
11: require_once __DIR__ . "/../../Saklient/Cloud/Models/Model_LicenseInfo.php";
12: use \Saklient\Cloud\Models\Model_LicenseInfo;
13: require_once __DIR__ . "/../../Saklient/Cloud/Client.php";
14: use \Saklient\Cloud\Client;
15: require_once __DIR__ . "/../../Saklient/Util.php";
16: use \Saklient\Util;
17: require_once __DIR__ . "/../../Saklient/Errors/SaklientException.php";
18: use \Saklient\Errors\SaklientException;
19:
20: /**
21: * 商品情報にアクセスするためのモデルを集めたクラス。
22: *
23: * @property-read \Saklient\Cloud\Models\Model_ServerPlan $server サーバプラン情報。
24: * @property-read \Saklient\Cloud\Models\Model_DiskPlan $disk ディスクプラン情報。
25: * @property-read \Saklient\Cloud\Models\Model_RouterPlan $router ルータ帯域プラン情報。
26: * @property-read \Saklient\Cloud\Models\Model_LicenseInfo $license ライセンス種別情報。
27: */
28: class Product {
29:
30: /**
31: * @private
32: * @access protected
33: * @ignore
34: * @var Model_ServerPlan
35: */
36: protected $_server;
37:
38: /**
39: * @access protected
40: * @ignore
41: * @return \Saklient\Cloud\Models\Model_ServerPlan
42: */
43: protected function get_server()
44: {
45: return $this->_server;
46: }
47:
48:
49:
50: /**
51: * @private
52: * @access protected
53: * @ignore
54: * @var Model_DiskPlan
55: */
56: protected $_disk;
57:
58: /**
59: * @access protected
60: * @ignore
61: * @return \Saklient\Cloud\Models\Model_DiskPlan
62: */
63: protected function get_disk()
64: {
65: return $this->_disk;
66: }
67:
68:
69:
70: /**
71: * @private
72: * @access protected
73: * @ignore
74: * @var Model_RouterPlan
75: */
76: protected $_router;
77:
78: /**
79: * @access protected
80: * @ignore
81: * @return \Saklient\Cloud\Models\Model_RouterPlan
82: */
83: protected function get_router()
84: {
85: return $this->_router;
86: }
87:
88:
89:
90: /**
91: * @private
92: * @access protected
93: * @ignore
94: * @var Model_LicenseInfo
95: */
96: protected $_license;
97:
98: /**
99: * @access protected
100: * @ignore
101: * @return \Saklient\Cloud\Models\Model_LicenseInfo
102: */
103: protected function get_license()
104: {
105: return $this->_license;
106: }
107:
108:
109:
110: /**
111: * @ignore
112: * @access public
113: * @param \Saklient\Cloud\Client $client
114: */
115: public function __construct(\Saklient\Cloud\Client $client)
116: {
117: Util::validateArgCount(func_num_args(), 1);
118: Util::validateType($client, "\\Saklient\\Cloud\\Client");
119: $this->_server = new Model_ServerPlan($client);
120: $this->_disk = new Model_DiskPlan($client);
121: $this->_router = new Model_RouterPlan($client);
122: $this->_license = new Model_LicenseInfo($client);
123: }
124:
125: /**
126: * @ignore
127: */
128: public function __get($key) {
129: switch ($key) {
130: case "server": return $this->get_server();
131: case "disk": return $this->get_disk();
132: case "router": return $this->get_router();
133: case "license": return $this->get_license();
134: default: return null;
135: }
136: }
137:
138: }
139:
140: