finished STM and persistence test for Ref, Vector, Map + implemented STM for Ref

This commit is contained in:
Jonas Boner 2009-06-11 13:47:07 +02:00
parent f3ac665274
commit 795c7b3da0
8 changed files with 503 additions and 180 deletions

View file

@ -208,12 +208,13 @@ sealed class TransactionalAroundAdvice(target: Class[_],
def getTransactionalItemsFor(target: Class[_]):
Tuple3[List[TransactionalMap[_, _]], List[TransactionalVector[_]], List[TransactionalRef[_]]] = {
target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]].foreach(println)
for {
field <- target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]]
fieldType = field.getType
if fieldType == classOf[TransactionalMap[_, _]] ||
fieldType == classOf[TransactionalVector[_]] ||
fieldType == classOf[TransactionalRef[_]]
if (fieldType == classOf[TransactionalMap[_, _]]) ||
(fieldType == classOf[TransactionalVector[_]]) ||
(fieldType == classOf[TransactionalRef[_]])
txItem = {
field.setAccessible(true)
field.get(targetInstance)
@ -225,7 +226,7 @@ sealed class TransactionalAroundAdvice(target: Class[_],
else if (txItem.isInstanceOf[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
}
val parent = target.getSuperclass
if (parent == null) (maps, vectors, refs)
if (parent == classOf[Object]) (maps, vectors, refs)
else getTransactionalItemsFor(parent)
}