table.sbn 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. {{~if __namespace_with_top_module != ''~}}
  2. package {{__namespace_with_top_module}};
  3. {{~end~}}
  4. import luban.*;
  5. import com.google.gson.JsonElement;
  6. {{~if __this.comment != '' ~}}
  7. /**
  8. * {{escape_comment __this.comment}}
  9. */
  10. {{~end~}}
  11. public final class {{__name}} {
  12. {{~if __this.is_map_table
  13. key_type = __this.key_ttype
  14. ~}}
  15. private final java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> _dataMap;
  16. private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList;
  17. public {{__name}}(JsonElement _buf) {
  18. _dataMap = new java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}>();
  19. _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>();
  20. for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
  21. {{declaring_box_type_name __value_type}} _v;
  22. {{deserialize '_v' '_e_' __value_type}}
  23. _dataList.add(_v);
  24. _dataMap.put(_v.{{format_field_name __code_style __this.index_field.name}}, _v);
  25. }
  26. }
  27. public java.util.HashMap<{{declaring_box_type_name key_type}}, {{declaring_box_type_name __value_type}}> getDataMap() { return _dataMap; }
  28. public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; }
  29. {{~if __value_type.is_dynamic~}}
  30. @SuppressWarnings("unchecked")
  31. public <T extends {{declaring_box_type_name __value_type}}> T getAs({{declaring_type_name key_type}} key) { return (T)_dataMap.get(key); }
  32. {{~end~}}
  33. public {{declaring_box_type_name __value_type}} get({{declaring_type_name key_type}} key) { return _dataMap.get(key); }
  34. {{~else if __this.is_list_table ~}}
  35. private final java.util.ArrayList<{{declaring_box_type_name __value_type}}> _dataList;
  36. public {{__name}}(JsonElement _buf) {
  37. _dataList = new java.util.ArrayList<{{declaring_box_type_name __value_type}}>();
  38. for (com.google.gson.JsonElement _e_ : _buf.getAsJsonArray()) {
  39. {{declaring_box_type_name __value_type}} _v;
  40. {{deserialize '_v' '_e_' __value_type}}
  41. _dataList.add(_v);
  42. }
  43. }
  44. public java.util.ArrayList<{{declaring_box_type_name __value_type}}> getDataList() { return _dataList; }
  45. public {{declaring_box_type_name __value_type}} get(int index) { return _dataList.get(index); }
  46. {{~else~}}
  47. private final {{declaring_type_name __value_type}} _data;
  48. public final {{declaring_type_name __value_type}} data() { return _data; }
  49. public {{__name}}(JsonElement _buf) {
  50. int n = _buf.getAsJsonArray().size();
  51. if (n != 1) throw new SerializationException("table mode=one, but size != 1");
  52. {{deserialize '_data' '_buf.getAsJsonArray().get(0).getAsJsonObject()' __value_type}}
  53. }
  54. {{~ for field in __value_type.def_bean.hierarchy_export_fields ~}}
  55. {{~if field.comment != '' ~}}
  56. /**
  57. * {{escape_comment field.comment}}
  58. */
  59. {{~end~}}
  60. public {{declaring_type_name field.ctype}} {{getter_name field.name}}() { return _data.{{format_field_name __code_style field.name}}; }
  61. {{~end~}}
  62. {{~end~}}
  63. }