Hi,

For anyone who may use Double as a primary key. I know it is not usual
but still doubles are prett usefull as indexes.

-----------
trait DoubleKeyedMetaMapper[A <: DoubleKeyedMapper[A]] extends
KeyedMetaMapper[Double, A] { self: A => }

trait DoubleKeyedMapper[OwnerType <: DoubleKeyedMapper[OwnerType]]
extends KeyedMapper[Double, OwnerType] with BaseDoubleKeyedMapper {
  self: OwnerType =>
}

trait BaseDoubleKeyedMapper extends BaseKeyedMapper {
  override type TheKeyType = Double
}

class MappedDoubleIndex[T<:Mapper[T]](theOwner: T) extends MappedDouble
[T](theOwner) with IndexedField[Double] {

  override def writePermission_? = false // not writable

  override def dbIndexed_? = true

  def defined_? = i_is_! != defaultValue
  override def dbPrimaryKey_? = true

  override def defaultValue = 0.0

  override def dbIndexFieldIndicatesSaved_? = {i_is_! != defaultValue}

  def makeKeyJDBCFriendly(in: Double) = new _root_.java.lang.Double
(in)

  def convertKey(in: String): Box[Double] = {
    if (in eq null) Empty
    else tryo(toLong(if (in.startsWith(name + "=")) in.substring((name
+ "=").length) else in))
  }

  override def dbDisplay_? = false

  def convertKey(in : Double): Box[Double] = {
    if (in < 0L) Empty
    else Full(in)
  }

  def convertKey(in : Int): Box[Double] = {
    if (in < 0) Empty
    else Full(in)
  }

  def convertKey(in : Long): Box[Double] = {
    if (in < 0) Empty
    else Full(in)
  }

  def convertKey(in : AnyRef): Box[Double] = {
    if ((in eq null) || (in eq None)) Empty
    else tryo(convertKey(in.toString)).flatMap(s => s)
  }

  override def fieldCreatorString(dbType: DriverType, colName:
String): String = colName + " " + dbType.doubleColumnType + " NOT
NULL"

}

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to