All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.foursquare.rogue.lift.LiftQueryField.scala Maven / Gradle / Ivy

// Copyright 2014 Foursquare Labs Inc. All Rights Reserved.

package com.foursquare.rogue.lift

import com.foursquare.field.Field
import com.foursquare.rogue.{AbstractListQueryField, AbstractListModifyField, SelectableDummyField}
import com.mongodb.DBObject

class CaseClassQueryField[V, M](val field: Field[V, M]) {
  def unsafeField[F](name: String): SelectableDummyField[F, M] = {
    new SelectableDummyField[F, M](field.name + "." + name, field.owner)
  }
}

class CaseClassListQueryField[V, M](field: Field[List[V], M])
    extends AbstractListQueryField[V, V, DBObject, M, List](field) {
  override def valueToDB(v: V) = LiftQueryHelpers.asDBObject(v)

  def unsafeField[F](name: String): SelectableDummyField[List[F], M] =
    new SelectableDummyField[List[F], M](field.name + "." + name, field.owner)
}

class CaseClassListModifyField[V, M](field: Field[List[V], M])
    extends AbstractListModifyField[V, DBObject, M, List](field) {
  override def valueToDB(v: V) = LiftQueryHelpers.asDBObject(v)
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy