These are chat archives for scalikejdbc/ja

13th
Jan 2016
Manabu Nakamura
@gakuzzzz
Jan 13 2016 11:12
呼ばれてた。みてみます!
Manabu Nakamura
@gakuzzzz
Jan 13 2016 11:29
TypeBinder が mutable になるのちょっと怖いですね……。かといってどうするべきか
Manabu Nakamura
@gakuzzzz
Jan 13 2016 16:23

英語で書ける自信がなかったのでこっちで。

WrappedResultSet のメソッドを変えればと思ったけど、 コードよく見たら WrappedResultSet#get で underlying 渡してるのでだめっぽい。
なので 例えば以下の様な ResultSetProxy つくって、

case class ResultSetProxy(underlying: ResultSet, timeZoneConverter: TimeZoneConverter) extends ResultSet {
   // 日時時間はconvert
  def getTimestamp(i: Int) = timeZoneConverter.convert(underlying.getTimestamp(i))
  // その他のメソッドは delegate
  ...
}

みたいな感じにして、
ResultSetTraversable のコンストラクタに渡す ResultSet を ConnectionPoolSetting から引き継いだ設定を見てラップするかしないか分岐する、みたいなイメージです。

これならバイナリ互換性も保てそう。(Config 周りは互換性崩れる?)