diff --git a/querydsl-scala/src/main/scala/com/mysema/query/scala/Conversions.scala b/querydsl-scala/src/main/scala/com/mysema/query/scala/Conversions.scala index 50cf47a5a..9d2d9859f 100644 --- a/querydsl-scala/src/main/scala/com/mysema/query/scala/Conversions.scala +++ b/querydsl-scala/src/main/scala/com/mysema/query/scala/Conversions.scala @@ -52,8 +52,7 @@ class PathFactoryImpl extends PathFactory { // TODO def createArrayPath[T](t: Class[Array[T with Object]], md: PathMetadata[_]) = null; - // TODO - def createEntityPath[T](t: Class[T], md: PathMetadata[_]) = Paths.simple(t, md); + def createEntityPath[T](t: Class[T], md: PathMetadata[_]) = Paths.entity(t, md); def createSimplePath[T](t: Class[T], md: PathMetadata[_]) = Paths.simple(t, md); @@ -73,16 +72,12 @@ class PathFactoryImpl extends PathFactory { def createStringPath(md: PathMetadata[_]) = Paths.string(md); - // TODO - def createListPath[T](t: Class[T], md: PathMetadata[_]) = null; + def createListPath[T](t: Class[T], md: PathMetadata[_]) = Paths.list(t, md); - // TODO - def createSetPath[T](t: Class[T], md: PathMetadata[_]) = null; + def createSetPath[T](t: Class[T], md: PathMetadata[_]) = Paths.set(t, md); - // TODO - def createCollectionPath[T](t: Class[T], md: PathMetadata[_]) = null; + def createCollectionPath[T](t: Class[T], md: PathMetadata[_]) = Paths.collection(t, md); - // TODO - def createMapPath[K,V](k: Class[K], v: Class[V], md: PathMetadata[_]) = null; + def createMapPath[K,V](k: Class[K], v: Class[V], md: PathMetadata[_]) = Paths.map(k, v, md); } diff --git a/querydsl-scala/src/main/scala/com/mysema/query/scala/Expressions.scala b/querydsl-scala/src/main/scala/com/mysema/query/scala/Expressions.scala index 9f7295743..c9883841b 100644 --- a/querydsl-scala/src/main/scala/com/mysema/query/scala/Expressions.scala +++ b/querydsl-scala/src/main/scala/com/mysema/query/scala/Expressions.scala @@ -59,7 +59,27 @@ trait SimpleExpression[T] extends Expression[T] { } -trait CollectionExpression[T] extends SimpleExpression[T] { +trait CollectionExpression[T] extends SimpleExpression[java.util.Collection[T]] { + + // TODO + +} + +trait SetExpression[T] extends SimpleExpression[java.util.Set[T]] { + + // TODO + +} + +trait ListExpression[T] extends SimpleExpression[java.util.List[T]] { + + // TODO + +} + +trait MapExpression[K,V] extends SimpleExpression[java.util.Map[K,V]] { + + // TODO } diff --git a/querydsl-scala/src/main/scala/com/mysema/query/scala/Paths.scala b/querydsl-scala/src/main/scala/com/mysema/query/scala/Paths.scala index 25c5b4b2e..8c74ff336 100644 --- a/querydsl-scala/src/main/scala/com/mysema/query/scala/Paths.scala +++ b/querydsl-scala/src/main/scala/com/mysema/query/scala/Paths.scala @@ -11,6 +11,16 @@ object Paths { def simple[T](t: Class[_ <: T], md: PathMetadata[_]) = new SimplePath[T](t, md); + def entity[T](t: Class[_ <: T], md: PathMetadata[_]) = new EntityPathImpl[T](t, md); + + def collection[T](t: Class[_ <: T], md: PathMetadata[_]) = new CollectionPath[T](t, md); + + def set[T](t: Class[_ <: T], md: PathMetadata[_]) = new SetPath[T](t, md); + + def list[T](t: Class[_ <: T], md: PathMetadata[_]) = new ListPath[T](t, md); + + def map[K,V](k: Class[_ <: K], v: Class[_ <: V], md: PathMetadata[_]) = new MapPath[K,V](k, v, md); + def comparable[T <: Comparable[_]](t: Class[_ <: T], md: PathMetadata[_]) = new ComparablePath[T](t, md); def date[T <: Comparable[_]](t: Class[_ <: T], md: PathMetadata[_]) = new DatePath[T](t, md); @@ -35,6 +45,41 @@ class SimplePath[T](t: Class[_ <: T], md: PathMetadata[_] ) } +class EntityPathImpl[T](t: Class[_ <: T], md: PathMetadata[_] ) + extends PathImpl[T](t, md) with SimpleExpression[T] with EntityPath[T] { + + def this(t: Class[_ <: T], variable: String) = this(t, forVariable(variable)); + +} + +class CollectionPath[T](t: Class[_ <: T], md: PathMetadata[_] ) + extends PathImpl[java.util.Collection[T]](classOf[java.util.Collection[T]], md) with CollectionExpression[T]{ + + def this(t: Class[_ <: T], variable: String) = this(t, forVariable(variable)); + +} + +class SetPath[T](t: Class[_ <: T], md: PathMetadata[_] ) + extends PathImpl[java.util.Set[T]](classOf[java.util.Set[T]], md) with SetExpression[T]{ + + def this(t: Class[_ <: T], variable: String) = this(t, forVariable(variable)); + +} + +class ListPath[T](t: Class[_ <: T], md: PathMetadata[_] ) + extends PathImpl[java.util.List[T]](classOf[java.util.List[T]], md) with ListExpression[T]{ + + def this(t: Class[_ <: T], variable: String) = this(t, forVariable(variable)); + +} + +class MapPath[K,V](k: Class[_ <: K], v: Class[_ <: V], md: PathMetadata[_] ) + extends PathImpl[java.util.Map[K,V]](classOf[java.util.Map[K,V]], md) with MapExpression[K,V]{ + + def this(k: Class[_ <: K], v: Class[_ <: V], variable: String) = this(k, v, forVariable(variable)); + +} + class ComparablePath[T <: Comparable[_]](t: Class[_ <: T], md: PathMetadata[_] ) extends PathImpl[T](t, md) with ComparableExpression[T]{ @@ -89,9 +134,3 @@ class EnumPath[T <: Enum[T]](t: Class[_ <: T], md: PathMetadata[_] ) def this(t: Class[_ <: T], variable: String) = this(t, forVariable(variable)); } - -// TODO : ListPath - -// TODO : SetPath - -// TODO : CollectionPath \ No newline at end of file