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 }