scala-news-reader

rss/atom news reader in scala

git clone https://9o.is/git/scala-news-reader.git

ArticleListField.scala

(806B)


      1 package com.joereader.model.field
      2 
      3 import com.mongodb._
      4 import net.liftweb._
      5 import common._
      6 import mongodb.record._
      7 import field._
      8 
      9 import com.joereader.model.Article
     10 
     11 /**
     12  * Mongo Field to store Articles.
     13  * Does not save article's content, just the guid.
     14  */
     15 class ArticleListField[OwnerType <: BsonRecord[OwnerType]](rec: OwnerType)
     16   extends MongoListField[OwnerType, Article](rec)
     17   with MongoListFieldExtra[OwnerType, Article] {
     18 
     19   import scala.collection.JavaConversions._
     20   
     21   override def asDBObject: DBObject = {
     22     val dbl = new BasicDBList
     23     value.foreach { v => dbl.add(v.toString) }
     24     dbl
     25   }
     26   
     27   override def setFromDBObject(dbo: DBObject): Box[List[Article]] =
     28     setBox(Full(dbo.keySet.toList.map(k => {
     29       Article.fromString(dbo.get(k.toString).asInstanceOf[String])
     30     })))
     31 }