Я использую постоянство Lift Record и хочу применять некоторые преобразования к полю всякий раз, когда я устанавливаю или получаю его значение. Например, для StringField я хочу автоматически установить нижний регистр в объекте Record.
object someField extends StringField(this, 64) {
...
// how do I apply transformations here?
...
}
В Lift Mapper есть метод setFilter
, который делает именно это, но я не могу найти его эквивалент в Record. В маппере это выглядит так:
object someField extends MappedString(this, 64) {
...
override def setFilter = trim _ :: toUpper _ :: super.setFilter
...
}
Пара вариантов, которые я рассматриваю:
- переопределить метод
set
, но их много, я боюсь не полностью переопределить подмножество необходимых методов, поэтому я не могу представить себе последствия. :) - использование обратных вызовов жизненного цикла - кажется излишним.
Любая помощь приветствуется. Спасибо ;)
setFilter
, по крайней мере, согласно API: liftweb.net/api/25/api/#net.liftweb.record.field.StringField Подпись:setFilter: List[(ValueType) ⇒ ValueType]
. Это не сработает? - person jcern   schedule 26.08.2013