Revision: 137
http://polepos.svn.sourceforge.net/polepos/?rev=137&view=rev
Author: carlrosenberger
Date: 2010-10-05 13:44:31 +0000 (Tue, 05 Oct 2010)
Log Message:
-----------
cr + pr: Delete for db4o nested lists
Modified Paths:
--------------
trunk/polepos/src/org/polepos/data/ListHolder.java
trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
Modified: trunk/polepos/src/org/polepos/data/ListHolder.java
===================================================================
--- trunk/polepos/src/org/polepos/data/ListHolder.java 2010-10-05 13:22:18 UTC (rev 136)
+++ trunk/polepos/src/org/polepos/data/ListHolder.java 2010-10-05 13:44:31 UTC (rev 137)
@@ -101,7 +101,9 @@
return 0;
}
int updatedCount = 1;
- _name = "updated " + _name;
+ if(depth > 0){
+ _name = "updated " + _name;
+ }
if(_list != null){
for (int i = 0; i < updateCount; i++) {
if(i < _list.size()){
@@ -116,6 +118,24 @@
storeProcedure.apply(this);
return updatedCount;
}
+
+
+ public int delete(int maxDepth, int depth, int updateCount, Procedure<Object> deleteProcedure) {
+ if(depth > maxDepth){
+ return 0;
+ }
+ int deletedCount = 1;
+ if(_list != null){
+ for (int i = 0; i < updateCount; i++) {
+ if(i < _list.size()){
+ ListHolder child = _list.get(i);
+ deletedCount += child.delete(maxDepth, depth + 1, updateCount, deleteProcedure);
+ }
+ }
+ }
+ deleteProcedure.apply(this);
+ return deletedCount;
+ }
}
Modified: trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java 2010-10-05 13:22:18 UTC (rev 136)
+++ trunk/polepos/src/org/polepos/teams/db4o/NestedListsDb4o.java 2010-10-05 13:44:31 UTC (rev 137)
@@ -69,18 +69,17 @@
@Override
public void delete() throws Throwable {
ListHolder root = root();
- root.accept(new Visitor<ListHolder>(){
- public void visit(ListHolder listHolder){
- delete(listHolder);
+ addToCheckSum(root.delete(depth(), 0, updateCount(), new Procedure<Object>() {
+ @Override
+ public void apply(Object obj) {
+ delete(obj);
}
- });
+ }));
}
@Override
public void configure(Configuration config) {
-
}
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|