You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2007/10/03 00:04:25 UTC

svn commit: r581406 - /db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java

Author: arminw
Date: Tue Oct  2 15:04:24 2007
New Revision: 581406

URL: http://svn.apache.org/viewvc?rev=581406&view=rev
Log:
improve table per sub-class inheritance

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java?rev=581406&r1=581405&r2=581406&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java Tue Oct  2 15:04:24 2007
@@ -26,7 +26,6 @@
 import org.apache.ojb.broker.metadata.fieldaccess.PersistentField;
 import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldFactory;
 import org.apache.ojb.broker.util.ClassHelper;
-import org.apache.ojb.broker.util.ConvertHelper;
 import org.apache.ojb.broker.util.logging.Logger;
 import org.apache.ojb.broker.util.logging.LoggerFactory;
 import org.xml.sax.Attributes;
@@ -554,13 +553,17 @@
                         ObjectReferenceDescriptor ord;
                         if (name.equals(TAG_SUPER))
                         {
-                            // no longer needed sine SuperReferenceDescriptor was used
-//                            checkThis(classRef);
-//                            AnonymousObjectReferenceDescriptor aord =
-//                                new AnonymousObjectReferenceDescriptor(m_CurrentCLD);
-//                            aord.setPersistentField(null, TAG_SUPER);
-//                            ord = aord;
-
+                            // if the referenced super-class is not specified, try to resolve it
+                            if(!checkString(classRef))
+                            {
+                                Class superClass = ClassHelper.getSuperClass(m_CurrentCLD.getClassOfObject());
+                                if(superClass != null)
+                                {
+                                    classRef = superClass.getName();
+                                    logger.info("Automatic assignment of the super-class in super-reference of class '"
+                                            + m_CurrentCLD.getClassNameOfObject() + "' --> super-class=" + classRef);
+                                }
+                            }
                             ord = new SuperReferenceDescriptor(m_CurrentCLD);
                         }
                         else



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org