- summary: Minor fixups --> Joined-subclass patch
For handling joined-subclasses, and multi level subclasses the following patch is neccessary:
retrieving revision 1.4
diff -u -r1.4 HibernateClass.java
--- HibernateClass.java 8 Feb 2004 19:52:41 -0000 1.4
+++ HibernateClass.java 10 Feb 2004 19:10:57 -0000
@@ -168,6 +168,9 @@
else if (child.getNodeName().equals("subclass")) {
subclassList.add(new HibernateClass(child, packageName, this, currentProject));
}
+ else if (child.getNodeName().equals("joined-subclass")) {
+ subclassList.add(new HibernateClass(child, packageName, this, currentProject));
+ }
child = child.getNextSibling();
}
retrieving revision 1.2
diff -u -r1.2 SynchronizerThread.java
--- SynchronizerThread.java 8 Feb 2004 19:52:41 -0000 1.2
+++ SynchronizerThread.java 10 Feb 2004 19:12:13 -0000
@@ -123,23 +123,7 @@
// subclasses if \(null \!= monitor\) monitor.subTask\(currentFileName + ": generating subclasses"\);
- if (hc.getSubclassList().size() > 0) {
- for (Iterator i2=hc.getSubclassList().iterator(); i2.hasNext(); ) {
- HibernateClass subclass = (HibernateClass) i2.next();
- context.put("class", subclass);
- writeClass("BaseClass.vm", context, root, subclass.getBasePackageName(), subclass.getBaseClassName(), true);
- writeClass("Class.vm", context, root, subclass.getPackageName(), subclass.getClassName(), false);
-
- // components of the subclasses
- for (Iterator iter=subclass.getComponentList().iterator(); iter.hasNext(); ) {
- ComponentHibernateClass chc = (ComponentHibernateClass) iter.next();
- context.put("class", chc);
- writeClass("BaseClass.vm", context, root, chc.getBasePackageName(), chc.getBaseClassName(), true);
- writeClass("Class.vm", context, root, chc.getPackageName(), chc.getClassName(), false);
- }
- }
- context.put( "class", hc);
- }
+ synchronizeSubClass(hc, root, context);
if (null != monitor) monitor.worked(1);
// class components
@@ -188,6 +172,33 @@
catch( Exception e )
{
Plugin.getDefault().logError(e);
+ }
+ }
+
+ /**
+ * @param hc
+ * @param root
+ * @param context
+ * @throws JavaModelException
+ */
+ private static void synchronizeSubClass(HibernateClass hc, IPackageFragmentRoot root, Context context) throws JavaModelException {
+ if (hc.getSubclassList().size() > 0) {
+ for (Iterator i2=hc.getSubclassList().iterator(); i2.hasNext(); ) {
+ HibernateClass subclass = (HibernateClass) i2.next();
+ context.put("class", subclass);
+ writeClass("BaseClass.vm", context, root, subclass.getBasePackageName(), subclass.getBaseClassName(), true);
+ writeClass("Class.vm", context, root, subclass.getPackageName(), subclass.getClassName(), false);
+
+ // components of the subclasses
+ for (Iterator iter=subclass.getComponentList().iterator(); iter.hasNext(); ) {
+ ComponentHibernateClass chc = (ComponentHibernateClass) iter.next();
+ context.put("class", chc);
+ writeClass("BaseClass.vm", context, root, chc.getBasePackageName(), chc.getBaseClassName(), true);
+ writeClass("Class.vm", context, root, chc.getPackageName(), chc.getClassName(), false);
+ }
+ synchronizeSubClass(subclass,root,context);
+ }
+ context.put( "class", hc);
}
}