added more convenience wrappers

This commit is contained in:
Timo Westkämper 2011-11-16 20:26:20 +02:00
parent dcb28b4c8a
commit 9d682e5f81
3 changed files with 36 additions and 3 deletions

View File

@ -79,16 +79,21 @@ class ScalaEntitySerializer @Inject()(val typeMappings: TypeMappings) extends Se
val queryTypeName = writer.getRawName(queryType)
val classHeader = String.format(classHeaderFormat, queryTypeName, modelName)
writer.beginObject(queryTypeName)
writer.beginObject(enhanceCompanionClass(queryTypeName, modelName))
writer.line("def as(variable: String) = new ", queryTypeName, "(variable)")
writer.line("")
writer.line("val ", model.getUncapSimpleName, " = as(\"", model.getUncapSimpleName, "\")")
writeAdditionalCompanionContent(model, writer)
writer.end()
// header
model.getAnnotations.foreach(writer.annotation(_))
writer.beginClass(classHeader)
}
def enhanceCompanionClass(name: String, modelName: String): String = name
def writeAdditionalCompanionContent(model: EntityType, writer: ScalaWriter) = {}
private def serializeEntityProperties(model: EntityType, writer: CodeWriter, properties: Collection[Property]) = {
for (property <- properties if property.getType.getCategory == ENTITY) yield {

View File

@ -0,0 +1,16 @@
package com.mysema.query.scala.sql
import com.mysema.query.sql._
/**
* To be used with RelationalPath companion objects for access to the default path
*
* @author tiwe
*
* @param <T>
*/
trait Relation[T] {
def path: RelationalPath[T]
}

View File

@ -24,7 +24,8 @@ class ScalaMetaDataSerializer @Inject() (typeMappings: TypeMappings, val namingS
override def writeHeader(model: EntityType, writer: ScalaWriter) {
writer.imports(classOf[RelationalPathImpl[_]])
writer.imports(classOf[PrimaryKey[_]].getPackage)
writer.imports(classOf[Relation[_]])
writer.imports(classOf[PrimaryKey[_]].getPackage)
super.writeHeader(model, writer)
}
@ -44,7 +45,18 @@ class ScalaMetaDataSerializer @Inject() (typeMappings: TypeMappings, val namingS
model.getData.get(classOf[InverseForeignKeyData]).asInstanceOf[Collection[InverseForeignKeyData]]
if (inverseForeignKeys != null) serializeForeignKeys(model, writer, inverseForeignKeys, true)
}
override def enhanceCompanionClass(name: String, modelName: String) = {
name + " extends Relation[" + modelName + "]"
}
override def writeAdditionalCompanionContent(model: EntityType, writer: ScalaWriter) = {
if (model.getUncapSimpleName != "path") {
writer.line("")
writer.line("def path = ", model.getUncapSimpleName())
}
}
def serializePrimaryKeys(model: EntityType, writer: CodeWriter, primaryKeys: Collection[PrimaryKeyData]) {
primaryKeys foreach { primaryKey =>
val fieldName = namingStrategy.getPropertyNameForPrimaryKey(primaryKey.getName(), model)