Author: arminw
Date: Mon Jul 24 16:13:23 2006
New Revision: 425218

URL: http://svn.apache.org/viewvc?rev=425218&view=rev
Log:
PATCH: forward engineering tool by Tom Antony, see OJB-112

Modified:
    
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanDescriptor.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanGenerator.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/RepositoryXmlProcessor.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/SQLStructures.java

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanDescriptor.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanDescriptor.java?rev=425218&r1=425217&r2=425218&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanDescriptor.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanDescriptor.java
 Mon Jul 24 16:13:23 2006
@@ -31,6 +31,7 @@
     private String [] interfaces;
     private ArrayList attributes;
     private ArrayList types;
+    private ArrayList innerClasses;
 
     /**
      * Create a new BeanDescriptor object.
@@ -43,7 +44,7 @@
      * @param    types        types for bean attributes, should match 
attributes in order
      */
     public BeanDescriptor(String packageName, String className, String 
baseClass,
-                          String [] interfaces, ArrayList attributes, 
ArrayList types)
+                          String [] interfaces, ArrayList attributes, 
ArrayList types, ArrayList innerClasses)
     {
         this.packageName = packageName;
         this.className = className;
@@ -51,6 +52,7 @@
         this.interfaces = interfaces;
         this.attributes = attributes;
         this.types = types;
+        this.innerClasses = innerClasses;
     }
 
     public String packageName()
@@ -82,4 +84,10 @@
     {
         return types;
     }
+
+    public ArrayList innerClasses()
+       {
+               return innerClasses;
+    }
+
 }

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanGenerator.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanGenerator.java?rev=425218&r1=425217&r2=425218&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanGenerator.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/BeanGenerator.java
 Mon Jul 24 16:13:23 2006
@@ -48,11 +48,19 @@
         return s;
     }
 
-    private static String generateTypeDeclaration(String attribute, String 
type)
+       private static String tabs(int indentLevel)
+       {
+               String str = "";
+               for(int i = 0; i < indentLevel; i++)
+                       str += "\t";
+        return str;
+       }
+
+    private static String generateTypeDeclaration(String attribute, String 
type, int indentLevel)
     {
         StringBuffer buf = new StringBuffer(100);
 
-        buf.append("\n\tprivate ");
+        buf.append("\n" + tabs(indentLevel) + "private ");
         buf.append(type);
         buf.append(" ");
         buf.append(attribute);
@@ -61,11 +69,11 @@
         return buf.toString();
     }
 
-    private static String generateGetMethod(String attribute, String type)
+    private static String generateGetMethod(String attribute, String type, int 
indentLevel)
     {
         StringBuffer buf = new StringBuffer(100);
 
-        buf.append("\n\tpublic ");
+        buf.append("\n" + tabs(indentLevel) + "public ");
         buf.append(type);
         buf.append(" get");
         buf.append(capitalizeMemberField(attribute));
@@ -77,11 +85,11 @@
         return buf.toString();
     }
 
-    private static String generateSetMethod(String attribute, String type)
+    private static String generateSetMethod(String attribute, String type, int 
indentLevel)
     {
         StringBuffer buf = new StringBuffer(100);
 
-        buf.append("\n\tpublic ");
+        buf.append("\n" + tabs(indentLevel) + "public ");
         buf.append("void ");
         buf.append(" set");
         buf.append(capitalizeMemberField(attribute));
@@ -99,6 +107,85 @@
         return buf.toString();
     }
 
+       private String generateBeanSource(BeanDescriptor beanDescription)
+    {
+               return generateBeanSource(beanDescription, false, 1);
+       }
+
+    private String generateBeanSource(BeanDescriptor beanDescription, boolean 
innerClass, int indentLevel)
+    {
+               StringBuffer buf = new StringBuffer(100);
+
+               if(!innerClass)
+               {
+                       if(beanDescription.packageName() != null && 
beanDescription.packageName().trim().length() > 0)
+                       {
+                               buf.append("package ");
+                               buf.append(beanDescription.packageName());
+                               buf.append(";\n");
+                       }
+               }
+
+               buf.append("\n");
+               buf.append(tabs(indentLevel - 1) + "public class ");
+               buf.append(beanDescription.className());
+
+               if(beanDescription.baseClass() != null)
+                       buf.append(" extends 
").append(beanDescription.baseClass());
+
+               if(beanDescription.interfaces() != null)
+               {
+                       buf.append(" implements ");
+                       for(int i = 0; i < beanDescription.interfaces().length; 
i++)
+                       {
+                               buf.append(beanDescription.interfaces()[i]);
+                               if(i < beanDescription.interfaces().length - 1) 
buf.append(" , ");
+                       }
+               }
+
+               buf.append("\n");
+
+               buf.append(tabs(indentLevel - 1) + "{");
+
+               for(int i = 0; i < beanDescription.attributes().size(); i++)
+               {
+                       String attribute = (String) 
beanDescription.attributes().get(i);
+                       String type = (String) beanDescription.types().get(i);
+                       buf.append(generateTypeDeclaration(attribute, type, 
indentLevel));
+               }
+
+               buf.append("\n");
+
+               for(int i = 0; i < beanDescription.attributes().size(); i++)
+               {
+                       String attribute = (String) 
beanDescription.attributes().get(i);
+                       String type = (String) beanDescription.types().get(i);
+
+                       buf.append(generateSetMethod(attribute, type, 
indentLevel));
+                       buf.append(generateGetMethod(attribute, type, 
indentLevel));
+
+                       buf.append("\n");
+               }
+
+               buf.append("\n");
+
+               for(int i = 0; i < beanDescription.innerClasses().size(); i++)
+               {
+                       BeanDescriptor descriptor = (BeanDescriptor) 
beanDescription.innerClasses().get(i);
+
+                       buf.append(generateBeanSource(descriptor, true, 
indentLevel + 1));
+
+                       buf.append("\n");
+               }
+
+               buf.append("\n");
+
+        buf.append(tabs(indentLevel - 1) + "}");
+
+        return buf.toString();
+
+       }
+
     /**
      * Generate the source for the Java bean.
      *
@@ -106,62 +193,20 @@
      */
     public void generate(BeanDescriptor beanDescription) throws Exception
     {
-        StringBuffer buf = new StringBuffer(100);
+               String javaStr = generateBeanSource(beanDescription);
 
-        if(beanDescription.packageName() != null && 
beanDescription.packageName().trim().length() > 0)
-        {
-            buf.append("package ");
-            buf.append(beanDescription.packageName());
-            buf.append(";\n");
-        }
-
-        buf.append("\n");
-        buf.append("public class ");
-        buf.append(beanDescription.className());
-
-        if(beanDescription.baseClass() != null)
-            buf.append(" extends ").append(beanDescription.baseClass());
-
-        if(beanDescription.interfaces() != null)
-        {
-            buf.append(" implements ");
-            for(int i = 0; i < beanDescription.interfaces().length; i++)
-            {
-                buf.append(beanDescription.interfaces()[i]);
-                if(i < beanDescription.interfaces().length - 1) buf.append(" , 
");
-            }
-        }
-
-        buf.append("\n");
-
-        buf.append("{");
-
-        for(int i = 0; i < beanDescription.attributes().size(); i++)
-        {
-            String attribute = (String) beanDescription.attributes().get(i);
-            String type = (String) beanDescription.types().get(i);
-            buf.append(generateTypeDeclaration(attribute, type));
-        }
-
-        buf.append("\n");
-
-        for(int i = 0; i < beanDescription.attributes().size(); i++)
-        {
-            String attribute = (String) beanDescription.attributes().get(i);
-            String type = (String) beanDescription.types().get(i);
-
-            buf.append(generateSetMethod(attribute, type));
-            buf.append(generateGetMethod(attribute, type));
-
-            buf.append("\n");
-        }
+        String finalOutputDirectory = outputDirectory;
 
-        buf.append("\n");
+               if(beanDescription.packageName() != null && 
beanDescription.packageName().trim().length() > 0)
+               {
+                       String packagePath = 
beanDescription.packageName().replace('.','/');
+                       finalOutputDirectory = finalOutputDirectory + "/" + 
packagePath;
+               }
+               if(! new File(finalOutputDirectory).exists())
+                       new File(finalOutputDirectory).mkdirs();
 
-        buf.append("}");
-
-        FileWriter fwr = new FileWriter(new File(outputDirectory, 
beanDescription.className() + ".java"));
-        fwr.write(buf.toString());
+               FileWriter fwr = new FileWriter(new File(finalOutputDirectory, 
beanDescription.className() + ".java"));
+        fwr.write(javaStr);
         fwr.close();
     }
 
@@ -169,6 +214,23 @@
     {
         BeanGenerator gen = new BeanGenerator(null);
 
+        ArrayList innerAttributes = new ArrayList();
+               ArrayList innerTypes = new ArrayList();
+
+               innerAttributes.add("salary");
+               innerTypes.add("String");
+
+               innerAttributes.add("dept");
+        innerTypes.add("int");
+
+        BeanDescriptor innerDescription = new BeanDescriptor(null, 
"CustomerInner", null,
+                               null,
+                               innerAttributes, innerTypes, null
+        );
+
+               ArrayList innerClasses = new ArrayList();
+               innerClasses.add(innerDescription);
+
         ArrayList attributes = new ArrayList();
         ArrayList types = new ArrayList();
 
@@ -180,7 +242,7 @@
 
         BeanDescriptor description = new BeanDescriptor(null, "Customer", 
"Person",
                 new String []{"XYZ", "ABC"},
-                attributes, types
+                attributes, types, innerClasses
         );
         gen.generate(description);
        }

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/RepositoryXmlProcessor.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/RepositoryXmlProcessor.java?rev=425218&r1=425217&r2=425218&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/RepositoryXmlProcessor.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/RepositoryXmlProcessor.java
 Mon Jul 24 16:13:23 2006
@@ -133,18 +133,18 @@
     }
 
     /*
-      *        Convinience method.
-      */
+        *      Convinience method.
+        */
     private Table getTableInfo(Element clsDescElem)
     {
         return getTableInfo(clsDescElem, true);
     }
 
-    /*
-      *        Get the table description associated with a <class-descriptor> 
element.
-      *  If recurse is true, explore <reference-descriptor> elements, else 
return after
-      *        filling in the columns.
-      */
+       /*
+        *      Get the table description associated with a <class-descriptor> 
element.
+        *  If recurse is true, explore <reference-descriptor> elements, else 
return after
+        *      filling in the columns.
+        */
     private Table getTableInfo(Element clsDescElem, boolean recurse)
     {
         Table table = new Table();
@@ -247,8 +247,8 @@
     }
 
     /*
-      *        Returns set of all table names.
-      */
+     * Returns set of all table names.
+     */
     private Set allTables(Document doc)
     {
         Set tableNames = new HashSet();
@@ -263,8 +263,8 @@
     }
 
     /*
-      *        Returns set of names of tables mapped to multiple classes.
-      */
+     * Returns set of names of tables mapped to multiple classes.
+     */
     private Set duplicateTables(Document doc)
     {
         Set workingSet = new HashSet();
@@ -284,8 +284,8 @@
     }
 
     /*
-      *        Merge the src table into the target.
-      */
+     * Merge the src table into the target.
+     */
     private void mergeTables(Table target, Table src)
     {
         // merge columns
@@ -484,90 +484,237 @@
         fwr.close();
     }
 
-    /** Generate the source for Java beans mapped to tables. */
+       /**
+       Return bean descriptor for a class descriptor element.
+       This method always returns an empty list for inner classes.
+        */
+       private BeanDescriptor getBeanDescriptor(Element clsDescElem)
+       {
+               String clsName = clsDescElem.getAttribute("class");
+
+               String packageName = null;
+               String className;
+
+               /* Handle inner class names */
+               if(clsName.indexOf("$") != -1)
+               {
+                       int index = clsName.indexOf("$");
+                       className = clsName.substring(index + 1);
+               }
+               else
+               {
+                       int indexDot = clsName.lastIndexOf(".");
+                       if(indexDot == -1)
+                               className = clsName;
+                       else
+                       {
+                               packageName = clsName.substring(0, indexDot);
+                               className = clsName.substring(indexDot + 1);
+                       }
+               }
+
+               String baseClass = null;
+               ArrayList attributes = new ArrayList();
+               ArrayList types = new ArrayList();
+
+               NodeList refDescList = 
clsDescElem.getElementsByTagName("reference-descriptor");
+               for(int j = 0; j < refDescList.getLength(); j++)
+               {
+                       Element refDescElem = (Element) refDescList.item(j);
+
+                       String fieldName = refDescElem.getAttribute("name");
+                       String classRef = refDescElem.getAttribute("class-ref");
+                       classRef = classRef.replace('$', '.');  // handle inner 
classes
+
+                       // handle super references
+                       if(fieldName.equals("super"))
+                       {
+                               baseClass = classRef;
+                       }
+                       else
+                       {
+                               attributes.add(fieldName);
+                               types.add(classRef);
+                       }
+               }
+
+               NodeList fldDescList = 
clsDescElem.getElementsByTagName("field-descriptor");
+               for(int j = 0; j < fldDescList.getLength(); j++)
+               {
+                       Element fldDescElem = (Element) fldDescList.item(j);
+
+                       String fieldName = fldDescElem.getAttribute("name");
+                       String jdbcType = fldDescElem.getAttribute("jdbc-type");
+                       String primaryKey = 
fldDescElem.getAttribute("primarykey");
+                       boolean isPrimaryKey = primaryKey != null && 
primaryKey.equals("true");
+                       String type = (String) typeMap.get(jdbcType);
+
+                               /*
+                                *      If baseClass is set using the 'super' 
reference then primary key
+                                *      fields are being repeated only for join 
purpose.
+                                */
+                       if(baseClass == null || !isPrimaryKey)
+                       {
+                               attributes.add(fieldName);
+                               types.add(type);
+                       }
+               }
+
+               NodeList colDescList = 
clsDescElem.getElementsByTagName("collection-descriptor");
+               for(int j = 0; j < colDescList.getLength(); j++)
+               {
+                       Element colDescElem = (Element) colDescList.item(j);
+
+                       String fieldName = colDescElem.getAttribute("name");
+                       String type = "java.util.List";
+
+                       attributes.add(fieldName);
+                       types.add(type);
+               }
+
+               ArrayList innerClasses = new ArrayList();
+
+               BeanDescriptor descriptor = new BeanDescriptor(packageName, 
className, baseClass, null,
+               attributes, types, innerClasses);
+
+               return descriptor;
+       }
+
+    /**
+     * Generate the source for Java beans mapped to tables.
+     *
+     * For inner classes, if the parent is not a persistent class defined in 
the mapping metadata, then a holder parent
+     * class will be generated to hold the inner classes.
+     */
     public void generateJavaCode() throws Exception
     {
-        NodeList clsDescList = doc.getElementsByTagName("class-descriptor");
+               /*
+                First form a mapping of inner classes to their parent classes, 
with parent class as the key
+                and a list of inner class names as the value.
+                */
+               HashMap innerOuterClassMap = new HashMap();
+
+               NodeList clsDescList = 
doc.getElementsByTagName("class-descriptor");
+
+               for(int i = 0; i < clsDescList.getLength(); i++)
+               {
+                       Element clsDescElem = (Element) clsDescList.item(i);
+
+            String clsName = clsDescElem.getAttribute("class");
+
+                       if(clsName.indexOf("$") != -1)
+                       {
+                               int index = clsName.indexOf("$");
+                               String outerClass = clsName.substring(0,index);
+                               String innerClass = clsName.substring(index + 
1);
+                               if(innerOuterClassMap.get(outerClass) == null)
+                               {
+                                       ArrayList list = new ArrayList();
+                                       list.add(innerClass);
+                                       innerOuterClassMap.put(outerClass, 
list);
+                               }
+                               else
+                               {
+                                       ArrayList list = (ArrayList) 
innerOuterClassMap.get(outerClass);
+                                       list.add(innerClass);
+                               }
+                       }
+               }
+
+               /* A map holding descriptions for inner classes. */
+               HashMap innerDescriptionsMap = new HashMap();
+
+               /* Also collect the inner class descriptions upfront before 
generating outer class definitions.  */
         for(int i = 0; i < clsDescList.getLength(); i++)
         {
             Element clsDescElem = (Element) clsDescList.item(i);
 
-            String clsName = clsDescElem.getAttribute("class");
+                       String clsName = clsDescElem.getAttribute("class");
 
-            String packageName = null;
-            String className;
-            int indexDot = clsName.lastIndexOf(".");
-            if(indexDot == -1)
-                className = clsName;
-            else
-            {
-                packageName = clsName.substring(0, indexDot);
-                className = clsName.substring(indexDot + 1);
-            }
+                       if(clsName.indexOf("$") != -1)
+                       {
+                               int index = clsName.indexOf("$");
+                               String innerClass = clsName.substring(index + 
1);
 
-            String baseClass = null;
-            ArrayList attributes = new ArrayList();
-            ArrayList types = new ArrayList();
+                               BeanDescriptor descriptor = 
getBeanDescriptor(clsDescElem);
 
-            NodeList refDescList = 
clsDescElem.getElementsByTagName("reference-descriptor");
-            for(int j = 0; j < refDescList.getLength(); j++)
-            {
-                Element refDescElem = (Element) refDescList.item(j);
+                               innerDescriptionsMap.put(innerClass, 
descriptor);
+                       }
+        }
 
-                String fieldName = refDescElem.getAttribute("name");
-                String classRef = refDescElem.getAttribute("class-ref");
+               /* Now generate class definitions for persistent outer classes 
defined in metadata */
+        for(int i = 0; i < clsDescList.getLength(); i++)
+               {
+                       Element clsDescElem = (Element) clsDescList.item(i);
 
-                // handle super references
-                if(fieldName.equals("super"))
-                {
-                    baseClass = classRef;
-                }
-                else
-                {
-                    attributes.add(fieldName);
-                    types.add(classRef);
-                }
-            }
+                       String clsName = clsDescElem.getAttribute("class");
 
-            NodeList fldDescList = 
clsDescElem.getElementsByTagName("field-descriptor");
-            for(int j = 0; j < fldDescList.getLength(); j++)
-            {
-                Element fldDescElem = (Element) fldDescList.item(j);
+                       if(clsName.indexOf("$") == -1)
+                       {
+                               BeanDescriptor descriptor = 
getBeanDescriptor(clsDescElem);
 
-                String fieldName = fldDescElem.getAttribute("name");
-                String jdbcType = fldDescElem.getAttribute("jdbc-type");
-                String primaryKey = fldDescElem.getAttribute("primarykey");
-                boolean isPrimaryKey = primaryKey != null && 
primaryKey.equals("true");
-                String type = (String) typeMap.get(jdbcType);
-
-                /*
-                     * If baseClass is set using the 'super' reference then 
primary key
-                     * fields are being repeated only for join purpose.
-                     */
-                if(baseClass == null || !isPrimaryKey)
-                {
-                    attributes.add(fieldName);
-                    types.add(type);
-                }
-            }
+                               /* Set innerClasses list (if present) for the 
outer class. */
 
-            NodeList colDescList = 
clsDescElem.getElementsByTagName("collection-descriptor");
-            for(int j = 0; j < colDescList.getLength(); j++)
-            {
-                Element colDescElem = (Element) colDescList.item(j);
+                               ArrayList innerDescriptors = 
descriptor.innerClasses();
 
-                String fieldName = colDescElem.getAttribute("name");
-                String type = "java.util.List";
+                               ArrayList innerClassList  = (ArrayList) 
innerOuterClassMap.get(clsName);
 
-                attributes.add(fieldName);
-                types.add(type);
-            }
+                               if(innerClassList != null)
+                               {
+                                       for(int j = 0; j < 
innerClassList.size(); j++)
+                                       {
+                                               String innerClass = (String) 
innerClassList.get(j);
 
-            BeanDescriptor descriptor = new BeanDescriptor(packageName, 
className, baseClass, null,
-                    attributes, types);
-            BeanGenerator generator = new BeanGenerator(beanOutputDirectory);
-            generator.generate(descriptor);
+                                               BeanDescriptor innerDescriptor 
= (BeanDescriptor) innerDescriptionsMap.get(innerClass);
+
+                                               if(descriptor != null)
+                                                       
innerDescriptors.add(innerDescriptor);
+                                       }
+                               }
+
+                               BeanGenerator generator = new 
BeanGenerator(beanOutputDirectory);
+                               generator.generate(descriptor);
+
+                               /* Remove persistent outer classes from 
mappings for the next stage. */
+                               innerOuterClassMap.remove(clsName);
+                       }
         }
+
+        /*  Generate holder outer classes for inner classes without persistent 
outer classes defined */
+        Iterator itr = innerOuterClassMap.keySet().iterator();
+        while(itr.hasNext())
+        {
+                       String outerClass = (String) itr.next();
+
+                       ArrayList innerDescriptors = new ArrayList();
+
+                       ArrayList innerClassList = (ArrayList) 
innerOuterClassMap.get(outerClass);
+                       for(int i = 0; i < innerClassList.size(); i++)
+                       {
+                               String innerClass = (String) 
innerClassList.get(i);
+                               BeanDescriptor innerDescriptor = 
(BeanDescriptor) innerDescriptionsMap.get(innerClass);
+                               innerDescriptors.add(innerDescriptor);
+                       }
+
+                       String packageName = null;
+                       String className;
+                       int indexDot = outerClass.lastIndexOf(".");
+                       if(indexDot == -1)
+                               className = outerClass;
+                       else
+                       {
+                               packageName = outerClass.substring(0, indexDot);
+                               className = outerClass.substring(indexDot + 1);
+                       }
+
+                       /* Generate an artificial outer class for holding the 
inner classes */
+                       BeanDescriptor descriptor = new 
BeanDescriptor(packageName, className, null, null,
+                                                                               
        new ArrayList(), new ArrayList(), innerDescriptors);
+
+                       BeanGenerator generator = new 
BeanGenerator(beanOutputDirectory);
+                       generator.generate(descriptor);
+
+               }
     }
 
     Element findClass(Document doc, String name)
@@ -641,10 +788,11 @@
 
     public static void main(String [] args) throws Exception
     {
-        RepositoryXmlProcessor processor = new RepositoryXmlProcessor
-                ("repository.xml", "target/test", "target/test");
 //        RepositoryXmlProcessor processor = new RepositoryXmlProcessor
 //                ("repository.xml", "target/test", "target/test");
+        RepositoryXmlProcessor processor = new RepositoryXmlProcessor
+                ("E:/repository_test.xml", "target/test", "target/test");
+
         processor.generateSQL();
         processor.generateJavaCode();
     }

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/SQLStructures.java
URL: 
http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/SQLStructures.java?rev=425218&r1=425217&r2=425218&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/SQLStructures.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/tools/org/apache/ojb/tools/mapping/forward/SQLStructures.java
 Mon Jul 24 16:13:23 2006
@@ -121,6 +121,7 @@
 
     public String toString()
     {
+
         return ToStringBuilder.reflectionToString(this);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to