world.cpp 1.9 KB

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