| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- {{~namespace_with_grace_begin __namespace~}}
- {{~for enum in __enums~}}
- {{~if enum.comment != '' ~}}
- /**
- * {{enum.comment | html.escape}}
- */
- {{~end~}}
- class {{full_name enum}} {
- {{~for item in enum.items ~}}
- {{~if item.comment != '' ~}}
- /**
- * {{escape_comment item.comment}}
- */
- {{~end~}}
- public const {{item.name}} = {{item.value}};
- {{~end~}}
- }
- {{~end~}}
- {{~for bean in __beans~}}
- {{name = (full_name bean)}}
- {{~if bean.comment != '' ~}}
- /**
- * {{escape_comment bean.comment}}
- */
- {{~end~}}
- {{class_modifier bean}} class {{name}}{{if bean.parent_def_type}} extends {{full_name bean.parent_def_type}}{{end}} {
- {{~if bean.is_abstract_type~}}
- public static function constructFrom($_json_) {
- $type = $_json_['$type'];
- switch ($type) {
- {{~ for child in bean.hierarchy_not_abstract_children~}}
- case '{{impl_data_type child bean}}': return new {{full_name child}}($_json_);
- {{~end~}}
- default: throw new \Exception("unknown type:$type");
- }
- }
- {{~end~}}
- public function __construct($_json_) {
- {{~if bean.parent_def_type~}}
- parent::__construct($_json_);
- {{~end~}}
- {{~ for field in bean.export_fields ~}}
- {{~if !field.ctype.is_nullable~}}
- if (!array_key_exists('{{field.name}}', $_json_)) { throw new \Exception("field:'{{field.name}}' missing"); }
- {{~end~}}
- {{deserialize ('$this->' + format_field_name __code_style field.name) ( '$_json_[\'' + field.name + '\']') field.ctype}};
- {{~end~}}
- }
- {{~ for field in bean.export_fields ~}}
- {{~if field.comment != '' ~}}
- /**
- * {{escape_comment field.comment}}
- */
- {{~end~}}
- public ${{format_field_name __code_style field.name}};
- {{~end~}}
- }
- {{~end~}}
- {{~for table in __tables
- key_type = table.key_ttype
- value_type = table.value_ttype
- name = (full_name table)
- ~}}
- {{~if table.comment != '' ~}}
- /**
- * {{escape_comment table.comment}}
- */
- {{~end~}}
- class {{name}} {
- {{~if table.is_map_table ~}}
- private $_dataMap;
- private $_dataList;
- public function __construct($_json_) {
- $this->_dataMap = [];
- $this->_dataList = [];
- foreach ($_json_ as $_json2_) {
- {{deserialize '$_v' '$_json2_' value_type}};
- array_push($this->_dataList, $_v);
- $this->_dataMap[$_v->{{format_field_name __code_style table.index_field.name}}] = $_v;
- }
- }
- public function getDataMap() { return $this->_dataMap; }
- public function getDataList() { return $this->_dataList; }
- public function get($key) { return $this->_dataMap[$key]; }
- {{~else if table.is_list_table ~}}
- private $_dataList;
-
- public function __construct($_json_) {
- $this->_dataList = [];
- foreach ($_json_ as $_json2_) {
- {{deserialize '$_v' '$_json2_' value_type}};
- array_push($this->_dataList, $_v);
- }
- }
- public function getDataList() { return $this->_dataList; }
- public function get($index) { return $this->_dataList[$index]; }
-
- {{~else~}}
- private $_data;
- public function __construct($_json_) {
- if (count($_json_) != 1) throw new \Exception('table:{{table.name}} mode=one, but size != 1');
- {{deserialize '$this->_data' '$_json_[0]' value_type}};
- }
- public function getData() { return $this->_data; }
- {{~ for field in value_type.def_bean.hierarchy_export_fields ~}}
- {{~if field.comment != '' ~}}
- /**
- * {{escape_comment field.comment}}
- */
- {{~end~}}
- public function get{{format_field_name __code_style field.name}}() { return $this->_data->{{format_field_name __code_style field.name}}; }
- {{~end~}}
- {{end}}
- }
- {{~end~}}
- class {{__name}} {
- {{~ for table in __tables ~}}
- private $_{{table.name}};
- {{~if table.comment != '' ~}}
- /**
- * {{escape_comment table.comment}}
- */
- {{~end~}}
- public function get{{table.name}}() { return $this->_{{table.name}}; }
- {{~end~}}
- public function __construct($loader) {
- {{~for table in __tables ~}}
- $this->_{{table.name}} = new {{full_name table}}($loader('{{table.output_data_file}}'));
- {{~end~}}
- }
- }
- {{~namespace_with_grace_end __namespace~}}
|