Wiki source code of Squeryl Entity.eotemplate

Version 4.1 by Ravi Mendis on 2010/11/11 02:10

Show last authors
1 This set of templates will generate a Squeryl schema from an EO model. Still basic/proof-of-concept templates. Of course, you may customize them further.
2
3 {{note title="Limitations"}}
4
5 * Single-package/single-model schemas only
6 * No support for object inheritance
7
8 {{/note}}
9
10 {{code}}
11
12 #if ($entity.packageName)
13 package $entity.packageName
14 #end
15
16 import java.util.Date
17
18 class ${entity.classNameWithoutPackage}(
19 ##
20 ##java -> Scala types go here
21 ##
22 #foreach ($attribute in $entity.sortedAttributes)
23 #if ($attribute.javaClassName.equals("Integer")) #set( $scalaClassName = "Long" )
24 #elseif ($attribute.javaClassName.equals("String")) #set( $scalaClassName = "String" )
25 #elseif ($attribute.javaClassName.contains("BigDecimal")) #set( $scalaClassName = "BigDecimal" )
26 #elseif ($attribute.javaClassName.equals("NSTimestamp")) #set( $scalaClassName = "Date" )
27 #elseif ($attribute.javaClassName.equals("NSData")) #set( $scalaClassName = "Array[Byte]" ) #end
28 val ${attribute.name}:#if ($attribute.allowsNull) Option[$scalaClassName]#else $scalaClassName#end#if (!$attribute.equals($entity.sortedAttributes.last())),
29 #else
30 #end
31 #end) extends _${entity.classNameWithoutPackage}(
32 ##
33 ##java -> Scala types go here
34 ##
35 #foreach ($attribute in $entity.sortedAttributes)
36 #if ($attribute.javaClassName.equals("Integer")) #set( $scalaClassName = "Long" )
37 #elseif ($attribute.javaClassName.equals("String")) #set( $scalaClassName = "String" )
38 #elseif ($attribute.javaClassName.contains("BigDecimal")) #set( $scalaClassName = "BigDecimal" )
39 #elseif ($attribute.javaClassName.equals("NSTimestamp")) #set( $scalaClassName = "Date" )
40 #elseif ($attribute.javaClassName.equals("NSData")) #set( $scalaClassName = "Array[Byte]" ) #end
41 ${attribute.name}#if (!$attribute.equals($entity.sortedAttributes.last())),
42 #else
43 #end
44 #end) {
45 }
46
47 object $entity.classNameWithoutPackage {
48 }
49
50
51 {{/code}}