table.sbn 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. {{~if ___top_module != ''~}}
  2. package {{__top_module}};
  3. {{~end~}}
  4. {{~
  5. go_full_name = full_name __this
  6. key_type = __this.key_ttype
  7. value_type = __this.value_ttype
  8. index_field = __this.index_field
  9. ~}}
  10. {{~if __this.is_map_table~}}
  11. type {{go_full_name}} struct {
  12. _dataMap map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}}
  13. _dataList []{{declaring_type_name value_type}}
  14. }
  15. func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) {
  16. _dataList := make([]{{declaring_type_name value_type}}, 0, len(_buf))
  17. dataMap := make(map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}})
  18. for _, _ele_ := range _buf {
  19. if _v, err2 := New{{full_name value_type.def_bean}}(_ele_); err2 != nil {
  20. return nil, err2
  21. } else {
  22. _dataList = append(_dataList, _v)
  23. {{~if value_type.is_dynamic ~}}
  24. {{~for child in value_type.def_bean.hierarchy_not_abstract_children~}}
  25. if __v, __is := _v.(*{{full_name child}}) ; __is {
  26. dataMap[__v.{{format_field_name __code_style index_field.name}}] = _v
  27. continue
  28. }
  29. {{~end~}}
  30. {{~else~}}
  31. dataMap[_v.{{format_field_name __code_style index_field.name}}] = _v
  32. {{~end~}}
  33. }
  34. }
  35. return &{{go_full_name}}{_dataList:_dataList, _dataMap:dataMap}, nil
  36. }
  37. func (table *{{go_full_name}}) GetDataMap() map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} {
  38. return table._dataMap
  39. }
  40. func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} {
  41. return table._dataList
  42. }
  43. func (table *{{go_full_name}}) Get(key {{declaring_type_name key_type}}) {{declaring_type_name value_type}} {
  44. return table._dataMap[key]
  45. }
  46. {{~else if __this.is_list_table~}}
  47. type {{go_full_name}} struct {
  48. _dataList []{{declaring_type_name value_type}}
  49. }
  50. func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) {
  51. _dataList := make([]{{declaring_type_name value_type}}, 0, len(_buf))
  52. for _, _ele_ := range _buf {
  53. if _v, err2 := New{{full_name value_type.def_bean}}(_ele_); err2 != nil {
  54. return nil, err2
  55. } else {
  56. _dataList = append(_dataList, _v)
  57. }
  58. }
  59. return &{{go_full_name}}{_dataList:_dataList}, nil
  60. }
  61. func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} {
  62. return table._dataList
  63. }
  64. func (table *{{go_full_name}}) Get(index int) {{declaring_type_name value_type}} {
  65. return table._dataList[index]
  66. }
  67. {{~else~}}
  68. import "errors"
  69. type {{go_full_name}} struct {
  70. _data {{declaring_type_name value_type}}
  71. }
  72. func New{{go_full_name}}(_buf []map[string]interface{}) (*{{go_full_name}}, error) {
  73. if len(_buf) != 1 {
  74. return nil, errors.New(" size != 1 ")
  75. } else {
  76. if _v, err2 := New{{full_name value_type.def_bean}}(_buf[0]); err2 != nil {
  77. return nil, err2
  78. } else {
  79. return &{{go_full_name}}{_data:_v}, nil
  80. }
  81. }
  82. }
  83. func (table *{{go_full_name}}) Get() {{declaring_type_name value_type}} {
  84. return table._data
  85. }
  86. {{~end~}}