Skip to content

Commit

Permalink
moved mapper stuff into own module
Browse files Browse the repository at this point in the history
  • Loading branch information
maxaf committed Aug 25, 2010
1 parent 40ad745 commit 99106e1
Show file tree
Hide file tree
Showing 10 changed files with 14 additions and 38 deletions.
29 changes: 0 additions & 29 deletions casbah-core/src/main/scala/MongoCursor.scala
Expand Up @@ -138,32 +138,3 @@ class MongoTypedCursor[A <: DBObject : Manifest] protected[casbah](val underlyin
}
override def toString() = "MongoCursor{Iterator[_] with %d objects.}".format(count)
}

package mapper {

trait MappedIterator[P <: AnyRef] extends MongoCursorWrapper[P] with Iterator[P] {
val underlying: DBCursor
val mapper: Mapper[P]

def count = underlying.count
override def size = count.intValue

def next: P = mapper.asObject(underlying.next)
def hasNext: Boolean = underlying.hasNext
}

class MongoMappedCursor[P <: AnyRef : Manifest] protected[mapper](val underlying: DBCursor) extends MappedIterator[P] with MapperImplicits[P] {
val mapper = Mapper[P]

def batchSize(n: Int) = underlying.batchSize(n) asScalaMapped
def copy() = underlying.copy asScalaMapped
def hint(indexKeys: DBObject) = underlying.hint(indexKeys) asScalaMapped
def hint(indexName: String) = underlying.hint(indexName) asScalaMapped
def limit(n: Int) = underlying.limit(n) asScalaMapped
def skip(n: Int) = underlying.skip(n) asScalaMapped
def snapshot() = underlying.snapshot() asScalaMapped
def sort(orderBy: DBObject) = underlying.sort(orderBy) asScalaMapped
override def toString() = "MongoMappedCursor{Iterator[_] with %d objects.}".format(count)
}

}
2 changes: 0 additions & 2 deletions casbah-core/src/main/scala/MongoDB.scala
Expand Up @@ -57,8 +57,6 @@ class MongoDB(val underlying: com.mongodb.DB) {
* @return MongoCollection A wrapped instance of a Mongo DBCollection Class returning DBObject subclasses of type A
*/
def apply[A <: DBObject](collection: String, clazz: Class[A])(implicit m: scala.reflect.Manifest[A]) = underlying.getCollection(collection).asScalaTyped(m)
def mapped[P <: AnyRef : Manifest] =
underlying.getCollection(mapper.Mapper[P].coll.getName).asScalaMapped(manifest[P])
def addUser(username: String, passwd: String) = underlying.addUser(username, passwd.toArray)
def authenticate(username: String, passwd: String) = underlying.authenticate(username, passwd.toArray)
def command(cmd: DBObject) = underlying.command(cmd)
Expand Down
@@ -1,4 +1,4 @@
package com.novus.casbah.mongodb.mapper.annotations.raw;
package com.novus.casbah.mapper.annotations.raw;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
@@ -1,4 +1,4 @@
package com.novus.casbah.mongodb.mapper.annotations.raw;
package com.novus.casbah.mapper.annotations.raw;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
@@ -1,4 +1,4 @@
package com.novus.casbah.mongodb.mapper.annotations.raw;
package com.novus.casbah.mapper.annotations.raw;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
Expand Down
@@ -1,5 +1,4 @@
package com.novus.casbah
package mongodb
package mapper

import java.lang.reflect.Method
Expand Down
@@ -1,5 +1,4 @@
package com.novus.casbah
package mongodb
package mapper

import Implicits._
Expand Down
@@ -1,4 +1,4 @@
package com.novus.casbah.mongodb.mapper
package com.novus.casbah.mapper

import scala.reflect.BeanInfo
import scala.annotation.target.{getter, setter}
Expand Down
File renamed without changes.
11 changes: 10 additions & 1 deletion project/build/CasbahProject.scala
Expand Up @@ -5,9 +5,10 @@ class CasbahProject(info: ProjectInfo) extends ParentProject(info) with posterou
override def parallelExecution = true

lazy val commons = project("casbah-commons", "casbah-commons", new CasbahCommonsProject(_))
lazy val core = project("casbah-core", "casbah-core", new CasbahCoreProject(_), query)
lazy val core = project("casbah-core", "casbah-core", new CasbahCoreProject(_), commons, query)
lazy val query = project("casbah-query", "casbah-query", new CasbahQueryProject(_), commons)
lazy val gridfs = project("casbah-gridfs", "casbah-gridfs", new CasbahGridFSProject(_), core)
lazy val mapper = project("casbah-mapper", "casbah-mapper", new CasbahMapperProject(_), core)

class CasbahCommonsProject(info: ProjectInfo) extends DefaultProject(info) {
override def compileOptions =
Expand Down Expand Up @@ -48,6 +49,14 @@ class CasbahProject(info: ProjectInfo) extends ParentProject(info) with posterou
val scalatest = "org.scalatest" % "scalatest" % "1.2-for-scala-2.8.0.final-SNAPSHOT" % "test"
}

class CasbahMapperProject(info: ProjectInfo) extends DefaultProject(info) {
override def compileOptions =
super.compileOptions ++ Seq(Unchecked, ExplainTypes, Deprecation)
val objenesis = "org.objenesis" % "objenesis" % "1.2"
// Testing Deps
val specs = "org.scala-tools.testing" %% "specs" % "1.6.5" % "test->default"
val scalatest = "org.scalatest" % "scalatest" % "1.2-for-scala-2.8.0.final-SNAPSHOT" % "test"
}

// Repositories
val scalaToolsRepo = "Scala Tools Release Repository" at "http://scala-tools.org/repo-releases"
Expand Down

0 comments on commit 99106e1

Please sign in to comment.