156 lines
4.2 KiB
Plaintext
156 lines
4.2 KiB
Plaintext
{{~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~}}
|