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

xx.gaeds_2.9.2.0.2.0.source-code.Filter.scala Maven / Gradle / Ivy

The newest version!
package com.github.hexx.gaeds

import scala.collection.JavaConverters._
import com.google.appengine.api.datastore.Query.{ FilterOperator, CompositeFilterOperator }
import com.google.appengine.api.datastore.Query.{ Filter => LLFilter, FilterPredicate => LLFilterPredicate }

sealed trait Filter {
  def and(f: Filter) = FilterAnd(this, f)
  def or(f: Filter) = FilterOr(this, f)
  def toFilter: LLFilter
}

case class FilterAnd(f1: Filter, f2: Filter) extends Filter {
  def toFilter = CompositeFilterOperator.and(f1.toFilter, f2.toFilter)
}

case class FilterOr(f1: Filter, f2: Filter) extends Filter {
  def toFilter = CompositeFilterOperator.or(f1.toFilter, f2.toFilter)
}

case class FilterPredicate[T](property: BaseProperty[T], operator: FilterOperator, value: T*) extends Filter {
  def toFilter =
    if (operator == FilterOperator.IN) {
      new LLFilterPredicate(property.__nameOfProperty, operator, value.asJava)
    } else {
      new LLFilterPredicate(property.__nameOfProperty, operator, value(0))
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy