You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LuPaginatedDbo.java 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.luticate.utils.dbo;
  2. import org.json.JSONArray;
  3. import org.json.JSONObject;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Vector;
  7. /**
  8. *
  9. * Created by robin on 11/27/15.
  10. */
  11. public class LuPaginatedDbo<T extends LuDbo> extends LuDbo {
  12. private transient Class<T> _clazz;
  13. private List<T> _data = new Vector<>();
  14. private int _count;
  15. public LuPaginatedDbo(Class<T> clazz)
  16. {
  17. _clazz = clazz;
  18. }
  19. public List<T> getData() {
  20. return _data;
  21. }
  22. public void setData(List<T> data) {
  23. _data = data;
  24. }
  25. public int getCount() {
  26. return _count;
  27. }
  28. public void setCount(int count) {
  29. _count = count;
  30. }
  31. @Override
  32. public void fromJson(JSONObject json) throws Exception {
  33. _count = json.getInt("count");
  34. JSONArray array = json.getJSONArray("data");
  35. for (int i = 0; i < array.length(); ++i) {
  36. T dbo = _clazz.newInstance();
  37. dbo.fromJson(array.getJSONObject(i));
  38. _data.add(dbo);
  39. }
  40. }
  41. @Override
  42. public HashMap<String, Object> toArray() {
  43. HashMap<String, Object> array = new HashMap<>();
  44. array.put("count", _count);
  45. Vector<HashMap<String, Object>> data = new Vector<>();
  46. for (T value : _data) {
  47. data.add(value.toArray());
  48. }
  49. array.put("data", data);
  50. return array;
  51. }
  52. }