Макросы Scala и генерация кода

Учитывая простой источник примера, мне нужно иметь возможность создать конструктор копирования и метод неявного преобразования. Может кто-нибудь посоветовать, как добиться этого с помощью Scala 2.10 и новой функции макросов?

import java.util.UUID

object Sample {

  case class Entity(id: UUID, name: String)

  trait Storable {

    val storageId: UUID

  }

  trait Storage {

    type T <: Entity with Storable

    def save(src: T) : T

  }

  class StorageImpl extends Storage {

    type T = Entity with Storable

    def save(src: StorageImpl#T): StorageImpl#T = null
  }

  def getEntity() = Entity(UUID.randomUUID(), "Test")

  def main(args: Array[String]) {
    val storage = new StorageImpl
    val entity = getEntity() // get this from some third-party module
    storage.save(entity) // HOW?! Create copy constructor and implicit?
  }

}

person jdevelop    schedule 25.02.2013    source источник
comment
Мне непонятно, что вы здесь хотите или почему для этого требуется макрос.   -  person Daniel C. Sobral    schedule 25.02.2013
comment
У меня есть объект типа Entity, и мне нужно передать объект методу, который ожидает тип Entity with Storable. Поэтому мне нужно взять это значение Entity и создать новое значение типа Entity с помощью Storeable — скопировать все поля из Entity и добавить какое-то значение в поле смешивания StorageId. Это все проясняет?   -  person jdevelop    schedule 25.02.2013
comment
возможный дубликат динамического смешивания черты   -  person Daniel C. Sobral    schedule 25.02.2013
comment
Оказывается, это дубликат (и я был неправ). См. связанный вопрос.   -  person Daniel C. Sobral    schedule 25.02.2013