--- a/.vimrc Tue May 03 12:16:30 2011 +0200
+++ b/.vimrc Fri Feb 10 09:53:02 2012 +0100
@@ -1,6 +1,6 @@
set backupdir=~/tmp
set directory=~/tmp
-set tags=tags,~/scala-2.8.1.tags,~/lift-2.3.tags,~/joda-time-1.6.2.tags,~/jse6.tags
+set tags=tags,~/scala-2.8.1.tags,~/lift-2.3.tags,~/joda-time-1.6.2.tags,~/squeryl-0.9.4-RC6.tags,~/jse6.tags
set et
set ts=2
set sw=2
--- a/project/build/FisProject.scala Tue May 03 12:16:30 2011 +0200
+++ b/project/build/FisProject.scala Fri Feb 10 09:53:02 2012 +0100
@@ -31,7 +31,7 @@
val jetty6 = "org.mortbay.jetty" % "jetty" % "6.1.23" % "test"
// testing
- val scalatest = "org.scalatest" % "scalatest" % "1.1" % "test"
+ val scalatest = "org.scalatest" % "scalatest" % "1.3" % "test"
val h2 = "com.h2database" % "h2" % "1.2.142" % "test"
// use local mvn repo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/scala/fis/base/model/Entity.scala Fri Feb 10 09:53:02 2012 +0100
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2011 Tomas Zeman <tzeman@volny.cz>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package fis.base.model
+
+import net.liftweb.record.Record
+import net.liftweb.record.field._
+import net.liftweb.squerylrecord.KeyedRecord
+import org.squeryl.annotations.Column
+
+/**
+ * Base data/model entity trait, common for all FIS entities.
+ */
+trait Entity[OwnerType <: Record[OwnerType]] extends KeyedRecord[Long] {
+ @Column(name="id")
+ val idField = new LongField(this.asInstanceOf[OwnerType])
+ val name = new StringField(this.asInstanceOf[OwnerType], "")
+ val note = new OptionalTextareaField(this.asInstanceOf[OwnerType], 10240)
+
+ /** Display representation of this entity. */
+ def linkName = name.get
+}
+
+import net.liftweb.common.Box
+import net.liftweb.squerylrecord.RecordTypeMode._
+import org.squeryl.Table
+
+/**
+ * Base meta entity definitions.
+ */
+trait MetaEntity[T <: Entity[_]] {
+
+ def getTable: Table[T]
+
+ def findByKey(id: Long): Box[T] = getTable.lookup(id)
+}
+
+/**
+ * Generic FIS entity holder.
+ */
+trait EntityHolder[T <: Entity[_]] {
+ def entity: T
+}
+
+/**
+ * Converter interface mixin.
+ */
+trait Converter0[T] {
+ def cvt: T
+}
+
+/**
+ * Generic converter interface.
+ */
+trait Converter1[F,T] {
+ def cvt(f: F): T
+}
+
+// vim: set ts=2 sw=2 et: