Revision: 155
http://polepos.svn.sourceforge.net/polepos/?rev=155&view=rev
Author: carlrosenberger
Date: 2010-12-02 17:23:46 +0000 (Thu, 02 Dec 2010)
Log Message:
-----------
cr + acv: ComplexJdo is working, checksums are consistent.
Modified Paths:
--------------
trunk/polepos/src/org/polepos/teams/db4o/ComplexDb4o.java
trunk/polepos/src/org/polepos/teams/jdo/FlatObjectJdo.java
trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
Added Paths:
-----------
trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder0.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder1.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder2.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder3.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder4.java
trunk/polepos/src/org/polepos/teams/jdo/data/ComplexRoot.java
Modified: trunk/polepos/src/org/polepos/teams/db4o/ComplexDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/ComplexDb4o.java 2010-12-02 16:28:24 UTC (rev 154)
+++ trunk/polepos/src/org/polepos/teams/db4o/ComplexDb4o.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -49,8 +49,7 @@
if(result.size() != 1) {
throw new IllegalStateException();
}
- ComplexHolder0 holder = result.get(0)._holder;
- return holder;
+ return result.get(0)._holder;
}
@Override
Added: trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,129 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo;
+
+import java.util.*;
+
+import javax.jdo.Query;
+
+import org.polepos.circuits.complex.*;
+import org.polepos.framework.*;
+import org.polepos.teams.jdo.data.*;
+
+
+public class ComplexJdo extends JdoDriver implements Complex {
+
+ @Override
+ public void write() {
+ begin();
+ ComplexHolder0 holder = ComplexHolder0.generate(depth(), objectCount());
+ addToCheckSum(holder);
+ store(new ComplexRoot(holder));
+ commit();
+ }
+
+ @Override
+ public void read() {
+ beginRead();
+ ComplexHolder0 holder = root();
+ addToCheckSum(holder);
+ }
+
+ private ComplexHolder0 root() {
+ Query query = db().newQuery(ComplexRoot.class);
+ Collection result = (Collection) query.execute();
+ Iterator it = result.iterator();
+ if(! it.hasNext()){
+ throw new IllegalStateException("no ComplexRoot found");
+ }
+ ComplexRoot root = (ComplexRoot) it.next();
+ if(it.hasNext()){
+ throw new IllegalStateException("More than one ComplexRoot found");
+ }
+ return root.getHolder();
+ }
+
+ @Override
+ public void query() {
+ beginRead();
+ int selectCount = selectCount();
+ int firstInt = objectCount() * objectCount() + objectCount();
+ int lastInt = firstInt + (objectCount() * objectCount() * objectCount()) - 1;
+ int currentInt = firstInt;
+ for (int run = 0; run < selectCount; run++) {
+ String filter = "this.i2 == param";
+ Query query = db().newQuery(ComplexHolder2.class, filter);
+ query.declareParameters("int param");
+ Collection result = (Collection) query.execute(currentInt);
+ Iterator it = result.iterator();
+ if(! it.hasNext()){
+ throw new IllegalStateException("no ComplexHolder2 found");
+ }
+ ComplexHolder2 holder = (ComplexHolder2) it.next();
+ addToCheckSum(holder.ownCheckSum());
+ if(it.hasNext()){
+ throw new IllegalStateException("More than one ComplexHolder2 found");
+ }
+ currentInt++;
+ if(currentInt > lastInt){
+ currentInt = firstInt;
+ }
+ }
+
+ }
+
+ @Override
+ public void update() {
+ begin();
+ ComplexHolder0 holder = root();
+ holder.traverse(new NullVisitor<ComplexHolder0>(),
+ new Visitor<ComplexHolder0>() {
+ @Override
+ public void visit(ComplexHolder0 holder) {
+ addToCheckSum(holder.ownCheckSum());
+ holder.setName("updated");
+ ComplexHolder2 newChild = new ComplexHolder2();
+ newChild.setI1(1);
+ newChild.setI2(2);
+ newChild.setName("added");
+ holder.addChild(newChild);
+ }
+ });
+ commit();
+ }
+
+ @Override
+ public void delete() {
+ begin();
+ ComplexHolder0 holder = root();
+ holder.traverse(
+ new NullVisitor<ComplexHolder0>(),
+ new Visitor<ComplexHolder0>() {
+ @Override
+ public void visit(ComplexHolder0 holder) {
+ addToCheckSum(holder.ownCheckSum());
+ delete(holder);
+ }
+ });
+ commit();
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/teams/jdo/FlatObjectJdo.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/FlatObjectJdo.java 2010-12-02 16:28:24 UTC (rev 154)
+++ trunk/polepos/src/org/polepos/teams/jdo/FlatObjectJdo.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -41,6 +41,7 @@
}
addToCheckSum(indexedObject);
}
+ commit();
}
public void queryIndexedString() {
Modified: trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-12-02 16:28:24 UTC (rev 154)
+++ trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -96,6 +96,7 @@
new FlatObjectJdo(),
new NestedListsJdo(),
new InheritanceHierarchyJdo(),
+ new ComplexJdo(),
new MelbourneJdo(),
new SepangJdo(),
new BahrainJdo(),
@@ -122,6 +123,12 @@
deleteAll(pm, JdoIndexedObject.class);
deleteAll(pm, ListHolder.class);
+ deleteAll(pm, ComplexHolder0.class);
+ deleteAll(pm, ComplexHolder1.class);
+ deleteAll(pm, ComplexHolder2.class);
+ deleteAll(pm, ComplexHolder3.class);
+ deleteAll(pm, ComplexHolder4.class);
+ deleteAll(pm, ComplexRoot.class);
deleteAll(pm, InheritanceHierarchy0.class);
deleteAll(pm, InheritanceHierarchy1.class);
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder0.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder0.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder0.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,204 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+import java.util.*;
+
+import org.polepos.framework.*;
+
+import com.db4o.foundation.*;
+
+public class ComplexHolder0 implements CheckSummable {
+
+ private String name;
+
+ private List<ComplexHolder0> children = new ArrayList<ComplexHolder0>();
+
+ private ComplexHolder0[] array;
+
+ public ComplexHolder0() {
+
+ }
+
+ public static ComplexHolder0 generate(int depth, int leafs){
+ ComplexHolder0 complexHolder = new ComplexHolder0();
+ complexHolder.name = "root";
+ createChildren(complexHolder, depth -1, leafs);
+ return complexHolder;
+ }
+
+ private static void createChildren(ComplexHolder0 root, int depth, int numChildren) {
+ if(depth < 1){
+ return;
+ }
+ int factoryIdx = 0;
+ int holderIdx = 0;
+ List<ComplexHolder0> parentLevel = Arrays.asList(root);
+ for (int i = 0; i < depth; i++) {
+ Closure4<ComplexHolder0> curFactory = FACTORIES[factoryIdx];
+ List<ComplexHolder0> childLevel = new ArrayList<ComplexHolder0>();
+
+ for (ComplexHolder0 curParent : parentLevel) {
+ for (int childIdx = 0; childIdx < numChildren; childIdx++) {
+ ComplexHolder0 curChild = curFactory.run();
+ curChild.name = String.valueOf(holderIdx);
+ curChild.array = createArray(holderIdx);
+ curChild.setSpecial(holderIdx);
+ curParent.addChild(curChild);
+ childLevel.add(curChild);
+ holderIdx++;
+ }
+ }
+
+ parentLevel = childLevel;
+
+ factoryIdx++;
+ if(factoryIdx == FACTORIES.length) {
+ factoryIdx = 0;
+ }
+ }
+
+ }
+
+ private static ComplexHolder0[] createArray(int holderIdx) {
+ ComplexHolder0[] holders = new ComplexHolder0[] {
+ new ComplexHolder0(),
+ new ComplexHolder1(),
+ new ComplexHolder2(),
+ new ComplexHolder3(),
+ new ComplexHolder4(),
+ };
+ for (int i = 0; i < holders.length; i++) {
+ holders[i].name = "a" + holderIdx + "_" + i;
+ }
+ return holders;
+ }
+
+ public void addChild(ComplexHolder0 child) {
+ children.add(child);
+ }
+
+
+ public static final Closure4[] FACTORIES = {
+ new Closure4<ComplexHolder0>(){
+ @Override
+ public ComplexHolder0 run() {
+ return new ComplexHolder0();
+ }
+ },
+ new Closure4<ComplexHolder0>(){
+ @Override
+ public ComplexHolder0 run() {
+ return new ComplexHolder1();
+ }
+ },
+ new Closure4<ComplexHolder0>(){
+ @Override
+ public ComplexHolder0 run() {
+ return new ComplexHolder2();
+ }
+ },
+ new Closure4<ComplexHolder0>(){
+ @Override
+ public ComplexHolder0 run() {
+ return new ComplexHolder3();
+ }
+ },
+ new Closure4<ComplexHolder0>(){
+ @Override
+ public ComplexHolder0 run() {
+ return new ComplexHolder4();
+ }
+ }
+ };
+
+ @Override
+ public long checkSum() {
+
+ class CheckSumVisitor implements Visitor<ComplexHolder0> {
+
+ long checkSum;
+
+ @Override
+ public void visit(ComplexHolder0 holder) {
+ checkSum += Math.abs(holder.ownCheckSum());
+ }
+ }
+ CheckSumVisitor visitor = new CheckSumVisitor();
+ traverse(visitor, new NullVisitor<ComplexHolder0>());
+ return visitor.checkSum;
+ }
+
+ public void traverse(Visitor<ComplexHolder0> preVisitor, Visitor<ComplexHolder0> postVisitor) {
+ internalTraverse(new IdentityHashMap<ComplexHolder0, ComplexHolder0>(), preVisitor, postVisitor);
+ }
+
+ private void internalTraverse(IdentityHashMap<ComplexHolder0, ComplexHolder0> visited, Visitor<ComplexHolder0> preVisitor, Visitor<ComplexHolder0> postVisitor) {
+ if(visited.containsKey(this)) {
+ return;
+ }
+ visited.put(this, this);
+ preVisitor.visit(this);
+ for (ComplexHolder0 child : getChildren()) {
+ child.internalTraverse(visited, preVisitor, postVisitor);
+ }
+ if(getArray() != null) {
+ for (ComplexHolder0 child : getArray()) {
+ child.internalTraverse(visited, preVisitor, postVisitor);
+ }
+ }
+ postVisitor.visit(this);
+ }
+
+
+ public long ownCheckSum() {
+ return getName().hashCode();
+ }
+
+ protected void setSpecial(int value) {
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public List<ComplexHolder0> getChildren() {
+ return children;
+ }
+
+ public void setChildren(List<ComplexHolder0> children) {
+ this.children = children;
+ }
+
+ public ComplexHolder0[] getArray() {
+ return array;
+ }
+
+ public void setArray(ComplexHolder0[] array) {
+ this.array = array;
+ }
+
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder0.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder1.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder1.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder1.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,46 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+public class ComplexHolder1 extends ComplexHolder0 {
+
+ public int i1;
+
+ public int getI1() {
+ return i1;
+ }
+
+ public void setI1(int i1) {
+ this.i1 = i1;
+ }
+
+ @Override
+ public long ownCheckSum() {
+ return i1 + super.ownCheckSum();
+ }
+
+ @Override
+ protected void setSpecial(int value) {
+ super.setSpecial(value);
+ i1 = value;
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder1.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder2.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder2.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder2.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,47 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+public class ComplexHolder2 extends ComplexHolder1 {
+
+ public int i2;
+
+ public int getI2() {
+ return i2;
+ }
+
+ public void setI2(int i2) {
+ this.i2 = i2;
+ }
+
+ @Override
+ public long ownCheckSum() {
+ return i2 + super.ownCheckSum();
+ }
+
+ @Override
+ protected void setSpecial(int value) {
+ super.setSpecial(value);
+ i2 = value;
+ }
+
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder2.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder3.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder3.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder3.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,46 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+public class ComplexHolder3 extends ComplexHolder2 {
+
+ public int i3;
+
+ public int getI3() {
+ return i3;
+ }
+
+ public void setI3(int i3) {
+ this.i3 = i3;
+ }
+
+ @Override
+ public long ownCheckSum() {
+ return i3 + super.ownCheckSum();
+ }
+
+ @Override
+ protected void setSpecial(int value) {
+ super.setSpecial(value);
+ i3 = value;
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder3.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder4.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder4.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder4.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,46 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+public class ComplexHolder4 extends ComplexHolder3 {
+
+ public int i4;
+
+ public int getI4() {
+ return i4;
+ }
+
+ public void setI4(int i4) {
+ this.i4 = i4;
+ }
+
+ @Override
+ public long ownCheckSum() {
+ return i4 + super.ownCheckSum();
+ }
+
+ @Override
+ protected void setSpecial(int value) {
+ super.setSpecial(value);
+ i4 = value;
+ }
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexHolder4.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexRoot.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/ComplexRoot.java (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/ComplexRoot.java 2010-12-02 17:23:46 UTC (rev 155)
@@ -0,0 +1,44 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.teams.jdo.data;
+
+public class ComplexRoot {
+
+ private ComplexHolder0 holder;
+
+ public ComplexRoot(){
+
+ }
+
+ public ComplexRoot(ComplexHolder0 holder) {
+ this.holder = holder;
+ }
+
+ public ComplexHolder0 getHolder(){
+ return holder;
+ }
+
+ public void setHolder(ComplexHolder0 holder){
+ this.holder = holder;
+ }
+
+
+}
Property changes on: trunk/polepos/src/org/polepos/teams/jdo/data/ComplexRoot.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-12-02 16:28:24 UTC (rev 154)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-12-02 17:23:46 UTC (rev 155)
@@ -13,6 +13,23 @@
<collection element-type="ListHolder"/>
</field>
</class>
+ <class name="ComplexRoot" />
+ <class name="ComplexHolder0">
+ <field name="name" />
+ <field name="array" />
+ <field name="children">
+ <collection element-type="ComplexHolder0"/>
+ </field>
+
+ </class>
+ <class name="ComplexHolder1" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder0" />
+ <class name="ComplexHolder2" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder1">
+ <field name = "i2" indexed = "true"/>
+ </class>
+ <class name="ComplexHolder3" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder2" />
+ <class name="ComplexHolder4" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder3" />
+
+
<class name="InheritanceHierarchy0" />
<class name="InheritanceHierarchy1" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy0" />
<class name="InheritanceHierarchy2" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy1">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|