pworld.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include <TreeFrogModel>
  2. #include "pworld.h"
  3. #include "pworldobject.h"
  4. //
  5. // World class for PostgreSQL
  6. //
  7. PWorld::PWorld()
  8. : TAbstractModel(), d(new PWorldObject)
  9. {
  10. d->id = 0;
  11. d->randomnumber = 0;
  12. }
  13. PWorld::PWorld(const PWorld &other)
  14. : TAbstractModel(), d(other.d)
  15. { }
  16. PWorld::PWorld(const PWorldObject &object)
  17. : TAbstractModel(), d(new PWorldObject(object))
  18. { }
  19. PWorld::~PWorld()
  20. {
  21. // If the reference count becomes 0,
  22. // the shared data object 'PWorldObject' is deleted.
  23. }
  24. uint PWorld::id() const
  25. {
  26. return d->id;
  27. }
  28. int PWorld::randomNumber() const
  29. {
  30. return d->randomnumber;
  31. }
  32. void PWorld::setRandomNumber(int randomNumber)
  33. {
  34. d->randomnumber = randomNumber;
  35. }
  36. PWorld &PWorld::operator=(const PWorld &other)
  37. {
  38. d = other.d; // increments the reference count of the data
  39. return *this;
  40. }
  41. bool PWorld::update()
  42. {
  43. TSqlQueryORMapper<PWorldObject> mapper;
  44. mapper.prepare(QStringLiteral("UPDATE world SET randomnumber=? WHERE id=?"));
  45. mapper.addBind(randomNumber()).addBind(id());
  46. return mapper.exec();
  47. }
  48. PWorld PWorld::create(int randomNumber)
  49. {
  50. PWorldObject obj;
  51. obj.randomnumber = randomNumber;
  52. if (!obj.create()) {
  53. return PWorld();
  54. }
  55. return PWorld(obj);
  56. }
  57. PWorld PWorld::create(const QVariantMap &values)
  58. {
  59. PWorld model;
  60. model.setProperties(values);
  61. if (!model.d->create()) {
  62. model.d->clear();
  63. }
  64. return model;
  65. }
  66. PWorld PWorld::get(uint id)
  67. {
  68. TSqlQueryORMapper<PWorldObject> mapper;
  69. mapper.prepare(QStringLiteral("SELECT * from world WHERE id=?"));
  70. mapper.addBind(id);
  71. return PWorld(mapper.execFirst());
  72. }
  73. int PWorld::count()
  74. {
  75. TSqlORMapper<PWorldObject> mapper;
  76. return mapper.findCount();
  77. }
  78. QList<PWorld> PWorld::getAll()
  79. {
  80. return tfGetModelListByCriteria<PWorld, PWorldObject>(TCriteria());
  81. }
  82. TModelObject *PWorld::modelData()
  83. {
  84. return d.data();
  85. }
  86. const TModelObject *PWorld::modelData() const
  87. {
  88. return d.data();
  89. }