table.sbn 3.0 KB

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