| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- from enum import Enum
- {{
-
- func table_key_list
- table = $0
- varName = $1
- indexList = table.index_list |array.each do; ret varName + '.' + (format_property_name __code_style $0.index_field.name); end;
- ret array.join indexList ', '
- end
-
- func table_param_name_list
- table = $0
- paramList = table.index_list |array.each do; ret $0.index_field.name; end
- ret array.join paramList ', '
- end
- }}
- {{~for enum in __enums~}}
- {{~if enum.comment != '' ~}}
- '''
- {{enum.comment | html.escape}}
- '''
- {{~end~}}
- class {{full_name enum}}(Enum):
- {{~ for item in enum.items ~}}
- {{~if item.comment_or_alias != '' ~}}
- '''
- {{item.comment_or_alias | html.escape}}
- '''
- {{~end~}}
- {{item.name}} = {{item.value}}
- {{~end~}}
- {{~if enum.items.empty?~}}
- pass
- {{~end~}}
- {{~end~}}
- {{~for bean in __beans
- name = (full_name bean)
- ~}}
- class {{name}} {{if bean.parent_def_type}}({{full_name bean.parent_def_type}}){{end}}:
- {{~if bean.is_abstract_type~}}
- _childrenTypes = None
- @staticmethod
- def fromJson(_json_):
- childrenTypes = {{name}}._childrenTypes
- if not childrenTypes:
- childrenTypes = {{name}}._childrenTypes = {
- {{~ for child in bean.hierarchy_not_abstract_children~}}
- '{{impl_data_type child bean}}': {{name}},
- {{~end~}}
- }
- type = _json_['$type']
- child = {{name}}._childrenTypes.get(type)
- if child != None:
- return child(_json_)
- else:
- raise Exception()
- {{~end~}}
- def __init__(self, _json_):
- {{~if bean.parent_def_type~}}
- {{full_name bean.parent_def_type}}.__init__(self, _json_)
- {{~end~}}
- {{~ for field in bean.export_fields ~}}
- {{deserialize_field ('self.' + (format_field_name __code_style field.name)) '_json_' field.name field.ctype}}
- {{~end~}}
- {{~if bean.export_fields.empty?}}
- pass
- {{~end~}}
- {{~end~}}
- {{~for table in __tables
- value_type = table.value_ttype
- ~}}
- class {{full_name table}}:
- {{~if table.is_map_table ~}}
- def __init__(self, _json_ ):
- self._dataMap = {}
- self._dataList = []
-
- for _json2_ in _json_:
- {{deserialize '_v' '_json2_' value_type}}
- self._dataList.append(_v)
- self._dataMap[_v.{{format_field_name __code_style table.index_field.name}}] = _v
- def getDataMap(self) : return self._dataMap
- def getDataList(self) : return self._dataList
- def get(self, key) : return self._dataMap.get(key)
- {{~else if table.is_union_index~}}
-
- def __init__(self, _json_ ):
- self._dataMap = {}
- self._dataList = []
-
- for _json2_ in _json_:
- {{deserialize '_v' '_json2_' value_type}}
- self._dataList.append(_v)
- self._dataMap[({{table_key_list table '_v'}})] = _v
- def getDataMap(self) : return self._dataMap
- def getDataList(self) : return self._dataList
- def get(self, {{table_param_name_list table}}) : return self._dataMap.get(({{table_param_name_list table}}))
- {{~else if table.is_list_table ~}}
- def __init__(self, _json_ ):
- self._dataList = []
- {{~for idx in table.index_list~}}
- self._dataMap_{{idx.index_field.name}} = {}
- {{~end~}}
- for _json2_ in _json_:
- {{deserialize '_v' '_json2_' value_type}}
- self._dataList.append(_v)
- {{~for idx in table.index_list~}}
- self._dataMap_{{idx.index_field.name}}[_v.{{format_property_name __code_style idx.index_field.name}}] = _v
- {{~end~}}
- def getDataList(self) : return self._dataList
- def get(self, index) : return self._dataList[index]
- {{~for idx in table.index_list~}}
- def get_by_{{format_property_name __code_style idx.index_field.name}}(self, key): return self._dataMap_{{idx.index_field.name}}.get(key)
- {{~end~}}
- {{~else~}}
- def __init__(self, _json_):
- if (len(_json_) != 1): raise Exception('table mode=one, but size != 1')
- {{deserialize 'self._data' '_json_[0]' value_type}}
- def getData(self) : return self._data
- {{~ for field in value_type.def_bean.hierarchy_export_fields ~}}
- {{~if field.comment != ''
- name = format_field_name __code_style field.name
- ~}}
- '''
- {{escape_comment field.comment}}
- '''
- {{~end~}}
- def {{name}}(self) : return self._data.{{name}}
- {{~end~}}
- {{~end~}}
- {{~end~}}
- class {{str_full_name __full_name}}:
- def __init__(self, loader):
- {{~for table in __tables ~}}
- self.{{format_method_name __code_style table.name}} = {{full_name table}}(loader('{{table.output_data_file}}'));
- {{~end~}}
|