<< 2008/09/22 | Home | 2008/09/24 >>
PR: 転職    葬式    マンスリーマンション 神戸    北海道    環境    FX    不動産担保融資    桐ヶ谷斎場    海外旅行    専門学校   

UbuntuでSilkypix

これまでは、Silkypixは、VMWareでWindows2000を立ち上げて使っていたのだけど、最近、Wineがどんどん改善されてきていて、ほとんど支障が無くなってきた。前は、マルチモニタでは、そもそもダイアログがクリックできなかったりして、ほとんど使いものにならなかったのだけど、今は、これといって問題が見当たらない。

Commons collectionsのTreeListをScalaで使う。

なんか、思ったよりも簡単にラップできるんだな。

import scala.collection.jcl.BufferWrapper
import org.apache.commons.collections.list.{TreeList => OriginalTreeList}

class TreeList[A] private (wrapped: OriginalTreeList) extends BufferWrapper[A] with Cloneable {
private var typedCache = wrapped.asInstanceOf[java.util.List[A]]
def this() = this(new org.apache.commons.collections.list.TreeList)
override def underlying: java.util.List[A] = typedCache
override def clone = {
val c = super.clone.asInstanceOf[TreeList[A]]
c.typedCache = new OriginalTreeList(wrapped).asInstanceOf[java.util.List[A]]
c
}
}

ちょっとテストしてみる。

class TreeListTest {
@Test
def test01 {
val list = new TreeList[Int]
0 until 10 foreach(list.add(_))
assertEquals(10, list.length)
0 until 10 foreach(i => assertEquals(i, list(i)))

val from6 = list.from(6)
assertEquals(4, from6.length)
6 until 10 foreach(i => assertEquals(i, from6(i - 6)))

val range3to9 = list.range(3, 9)
assertEquals(6, range3to9.length)
3 until 9 foreach(i => assertEquals(i, range3to9(i - 3)))

val l = list.filter(_ < 3)
assertEquals(3, l.length)
0 until 3 foreach(i => assertEquals(i, l(i)))

val c = list.clone
c.remove(0)
assertEquals(10, list.length)
assertEquals(9, c.length)
}
}

大丈夫みたいだ。こんなに簡単だとは思わなかった。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8