--- /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: