PageRenderTime 45ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/app/models/Model.scala

http://github.com/leodagdag/persistance
Scala | 28 lines | 21 code | 7 blank | 0 comment | 0 complexity | 4563203f013a74b2c0231f24385523a1 MD5 | raw file
  1. package models
  2. import com.novus.salat.dao._
  3. import com.mongodb.casbah.commons.Imports._
  4. import utils._
  5. trait Model[ObjectType <: AnyRef, K <: Any] {
  6. val PAGE_SIZE: Int = 10
  7. def byPage(num: Int)(implicit dao: SalatDAO[ObjectType, K]): List[ObjectType] = {
  8. var skip: Int = 0
  9. num match {
  10. case 0 => skip = 0
  11. case _ => skip = (num - 1) * PAGE_SIZE
  12. }
  13. dao.find(MongoDBObject()).skip(skip).limit(PAGE_SIZE).toList
  14. }
  15. def all(implicit dao: SalatDAO[ObjectType, ObjectId]): List[ObjectType] = {
  16. dao.find(MongoDBObject.empty).toList
  17. }
  18. def update[A <: DBObject](q: A,o: ObjectType)(implicit dao: SalatDAO[ObjectType, K]) {
  19. dao.update(q,o, false, false, dao.collection.writeConcern)
  20. }
  21. }