Author: jgbutler
Date: Wed Mar 10 22:08:34 2010
New Revision: 921590

URL: http://svn.apache.org/viewvc?rev=921590&view=rev
Log:
[ibator] further improvements to the example class for extensibility

Modified:
    
ibatis/java/ibator/trunk/core/ibator-core/doc/html/configreference/properties.html
    
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/FullyQualifiedJavaType.java
    
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/InnerClass.java
    
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java
    
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/model/ExampleGenerator.java
    
ibatis/java/ibator/trunk/core/ibator-core/src/test/java/org/apache/ibatis/ibator/IbatisGenerationTest.java

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/doc/html/configreference/properties.html
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/doc/html/configreference/properties.html?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/doc/html/configreference/properties.html
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/doc/html/configreference/properties.html
 Wed Mar 10 22:08:34 2010
@@ -46,7 +46,7 @@ element.</p>
     <td valign="top">url</td>
     <td>A URL value to use for the property file.  This can be used to specify 
a property
     file in a specific place on the file system when used in a form like
-    <code>file://C:/myfolder/ibatorConfig.properties</code>.</td>
+    <code>file:///C:/myfolder/ibatorConfig.properties</code>.</td>
   </tr>
 </table>
 

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/FullyQualifiedJavaType.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/FullyQualifiedJavaType.java?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/FullyQualifiedJavaType.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/FullyQualifiedJavaType.java
 Wed Mar 10 22:08:34 2010
@@ -32,6 +32,7 @@ public class FullyQualifiedJavaType impl
     private static FullyQualifiedJavaType objectInstance = null;
     private static FullyQualifiedJavaType dateInstance = null;
     private static FullyQualifiedJavaType criteriaInstance = null;
+    private static FullyQualifiedJavaType generatedCriteriaInstance = null;
     
     /**
      * The short name without any generic arguments
@@ -307,6 +308,14 @@ public class FullyQualifiedJavaType impl
         return criteriaInstance;
     }
     
+    public static final FullyQualifiedJavaType getGeneratedCriteriaInstance() {
+        if (generatedCriteriaInstance == null) {
+            generatedCriteriaInstance = new 
FullyQualifiedJavaType("GeneratedCriteria"); //$NON-NLS-1$
+        }
+        
+        return generatedCriteriaInstance;
+    }
+    
     /* (non-Javadoc)
      * @see java.lang.Comparable#compareTo(java.lang.Object)
      */

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/InnerClass.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/InnerClass.java?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/InnerClass.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/api/dom/java/InnerClass.java
 Wed Mar 10 22:08:34 2010
@@ -44,6 +44,8 @@ public class InnerClass extends JavaElem
 
     private List<Method> methods;
     
+    private boolean isAbstract;
+    
     /**
      *  
      */
@@ -118,6 +120,10 @@ public class InnerClass extends JavaElem
         OutputUtilities.javaIndent(sb, indentLevel);
         sb.append(getVisibility().getValue());
         
+        if (isAbstract()) {
+            sb.append("abstract "); //$NON-NLS-1$
+        }
+        
         if (isStatic()) {
             sb.append("static "); //$NON-NLS-1$
         }
@@ -239,4 +245,12 @@ public class InnerClass extends JavaElem
     public FullyQualifiedJavaType getType() {
         return type;
     }
+
+    public boolean isAbstract() {
+        return isAbstract;
+    }
+
+    public void setAbstract(boolean isAbtract) {
+        this.isAbstract = isAbtract;
+    }
 }

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis2/model/ExampleGenerator.java
 Wed Mar 10 22:08:34 2010
@@ -239,8 +239,10 @@ public class ExampleGenerator extends Ab
         topLevelClass.addMethod(method);
 
         // now generate the inner class that holds the AND conditions
-        topLevelClass.addInnerClass(getCriteriaInnerClass(topLevelClass));
+        
topLevelClass.addInnerClass(getGeneratedCriteriaInnerClass(topLevelClass));
 
+        topLevelClass.addInnerClass(getCriteriaInnerClass(topLevelClass));
+        
         List<CompilationUnit> answer = new ArrayList<CompilationUnit>();
         if 
(ibatorContext.getPlugins().modelExampleClassGenerated(topLevelClass, 
introspectedTable)) {
             answer.add(topLevelClass);
@@ -249,23 +251,52 @@ public class ExampleGenerator extends Ab
     }
 
     private InnerClass getCriteriaInnerClass(TopLevelClass topLevelClass) {
-        Field field;
         Method method;
 
         InnerClass answer = new InnerClass(FullyQualifiedJavaType
                 .getCriteriaInstance());
 
+        answer.setVisibility(JavaVisibility.PUBLIC);
+        answer.setStatic(true);
+        
answer.setSuperClass(FullyQualifiedJavaType.getGeneratedCriteriaInstance());
+        
+        answer.addJavaDocLine("/**"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * This class was generated by Apache iBATIS 
Ibator."); //$NON-NLS-1$
+        answer.addJavaDocLine(" * This class exists to make extending the 
example classes easier."); //$NON-NLS-1$
+        answer.addJavaDocLine(" * You may add any custom where clause method 
to this class, and"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * the method will survive a Java merge (Ibator 
will never delete"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * this class)."); //$NON-NLS-1$
+        answer.addJavaDocLine(" */"); //$NON-NLS-1$
+
+        method = new Method();
+        method.setVisibility(JavaVisibility.PROTECTED);
+        method.setName("Criteria"); //$NON-NLS-1$
+        method.setConstructor(true);
+        method.addBodyLine("super();"); //$NON-NLS-1$
+        answer.addMethod(method);
+
+        return answer;
+    }
+    
+    private InnerClass getGeneratedCriteriaInnerClass(TopLevelClass 
topLevelClass) {
+        Field field;
+        Method method;
+
+        InnerClass answer = new InnerClass(FullyQualifiedJavaType
+                .getGeneratedCriteriaInstance());
+
         if (ibatorContext.getSuppressTypeWarnings(introspectedTable)) {
             answer.addSuppressTypeWarningsAnnotation();
         }
-        answer.setVisibility(JavaVisibility.PUBLIC);
+        answer.setVisibility(JavaVisibility.PROTECTED);
         answer.setStatic(true);
+        answer.setAbstract(true);
         ibatorContext.getCommentGenerator().addClassComment(answer,
                 introspectedTable);
 
         method = new Method();
         method.setVisibility(JavaVisibility.PROTECTED);
-        method.setName("Criteria"); //$NON-NLS-1$
+        method.setName("GeneratedCriteria"); //$NON-NLS-1$
         method.setConstructor(true);
         method.addBodyLine("super();"); //$NON-NLS-1$
         if (generateForJava5) {
@@ -999,7 +1030,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -1070,7 +1101,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -1135,7 +1166,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -1158,7 +1189,7 @@ public class ExampleGenerator extends Ab
         sb.append(operator);
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/model/ExampleGenerator.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/model/ExampleGenerator.java?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/model/ExampleGenerator.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/main/java/org/apache/ibatis/ibator/generator/ibatis3/model/ExampleGenerator.java
 Wed Mar 10 22:08:34 2010
@@ -188,8 +188,10 @@ public class ExampleGenerator extends Ab
         topLevelClass.addMethod(method);
 
         // now generate the inner class that holds the AND conditions
-        topLevelClass.addInnerClass(getCriteriaInnerClass(topLevelClass));
+        
topLevelClass.addInnerClass(getGeneratedCriteriaInnerClass(topLevelClass));
 
+        topLevelClass.addInnerClass(getCriteriaInnerClass(topLevelClass));
+        
         topLevelClass.addInnerClass(getCriterionInnerClass(topLevelClass));
 
         List<CompilationUnit> answer = new ArrayList<CompilationUnit>();
@@ -300,9 +302,8 @@ public class ExampleGenerator extends Ab
         
         return answer;
     }
-    
+
     private InnerClass getCriteriaInnerClass(TopLevelClass topLevelClass) {
-        Field field;
         Method method;
 
         InnerClass answer = new InnerClass(FullyQualifiedJavaType
@@ -310,12 +311,42 @@ public class ExampleGenerator extends Ab
 
         answer.setVisibility(JavaVisibility.PUBLIC);
         answer.setStatic(true);
+        
answer.setSuperClass(FullyQualifiedJavaType.getGeneratedCriteriaInstance());
+        
+        answer.addJavaDocLine("/**"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * This class was generated by Apache iBATIS 
Ibator."); //$NON-NLS-1$
+        answer.addJavaDocLine(" * This class exists to make extending the 
example classes easier."); //$NON-NLS-1$
+        answer.addJavaDocLine(" * You may add any custom where clause method 
to this class, and"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * the method will survive a Java merge (Ibator 
will never delete"); //$NON-NLS-1$
+        answer.addJavaDocLine(" * this class)."); //$NON-NLS-1$
+        answer.addJavaDocLine(" */"); //$NON-NLS-1$
+
+        method = new Method();
+        method.setVisibility(JavaVisibility.PROTECTED);
+        method.setName("Criteria"); //$NON-NLS-1$
+        method.setConstructor(true);
+        method.addBodyLine("super();"); //$NON-NLS-1$
+        answer.addMethod(method);
+
+        return answer;
+    }
+    
+    private InnerClass getGeneratedCriteriaInnerClass(TopLevelClass 
topLevelClass) {
+        Field field;
+        Method method;
+
+        InnerClass answer = new InnerClass(FullyQualifiedJavaType
+                .getGeneratedCriteriaInstance());
+
+        answer.setVisibility(JavaVisibility.PROTECTED);
+        answer.setStatic(true);
+        answer.setAbstract(true);
         ibatorContext.getCommentGenerator().addClassComment(answer,
                 introspectedTable);
 
         method = new Method();
         method.setVisibility(JavaVisibility.PROTECTED);
-        method.setName("Criteria"); //$NON-NLS-1$
+        method.setName("GeneratedCriteria"); //$NON-NLS-1$
         method.setConstructor(true);
         method.addBodyLine("super();"); //$NON-NLS-1$
         method.addBodyLine("criteria = new ArrayList<Criterion>();"); 
//$NON-NLS-1$
@@ -669,7 +700,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -740,7 +771,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -803,7 +834,7 @@ public class ExampleGenerator extends Ab
         sb.append(introspectedColumn.getJavaProperty());
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }
@@ -826,7 +857,7 @@ public class ExampleGenerator extends Ab
         sb.append(operator);
         sb.append("\");"); //$NON-NLS-1$
         method.addBodyLine(sb.toString());
-        method.addBodyLine("return this;"); //$NON-NLS-1$
+        method.addBodyLine("return (Criteria) this;"); //$NON-NLS-1$
 
         return method;
     }

Modified: 
ibatis/java/ibator/trunk/core/ibator-core/src/test/java/org/apache/ibatis/ibator/IbatisGenerationTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibator/trunk/core/ibator-core/src/test/java/org/apache/ibatis/ibator/IbatisGenerationTest.java?rev=921590&r1=921589&r2=921590&view=diff
==============================================================================
--- 
ibatis/java/ibator/trunk/core/ibator-core/src/test/java/org/apache/ibatis/ibator/IbatisGenerationTest.java
 (original)
+++ 
ibatis/java/ibator/trunk/core/ibator-core/src/test/java/org/apache/ibatis/ibator/IbatisGenerationTest.java
 Wed Mar 10 22:08:34 2010
@@ -5,8 +5,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.ibatis.ibator.api.Ibator;
-import org.apache.ibatis.ibator.api.ProgressCallback;
-import org.apache.ibatis.ibator.api.VerboseProgressCallback;
 import org.apache.ibatis.ibator.config.IbatorConfiguration;
 import org.apache.ibatis.ibator.config.xml.IbatorConfigurationParser;
 import org.apache.ibatis.ibator.internal.DefaultShellCallback;
@@ -37,9 +35,7 @@ public class IbatisGenerationTest {
             
         Ibator ibator = new Ibator(config, shellCallback, warnings);
             
-        ProgressCallback progressCallback = new VerboseProgressCallback();
-            
-        ibator.generate(progressCallback, null, null);
+        ibator.generate(null, null, null);
     }
 
     @Test
@@ -65,9 +61,7 @@ public class IbatisGenerationTest {
             
         Ibator ibator = new Ibator(config, shellCallback, warnings);
             
-        ProgressCallback progressCallback = new VerboseProgressCallback();
-            
-        ibator.generate(progressCallback, null, null);
+        ibator.generate(null, null, null);
     }
     
     @Test
@@ -93,8 +87,6 @@ public class IbatisGenerationTest {
             
         Ibator ibator = new Ibator(config, shellCallback, warnings);
             
-        ProgressCallback progressCallback = new VerboseProgressCallback();
-            
-        ibator.generate(progressCallback, null, null);
+        ibator.generate(null, null, null);
     }
 }


Reply via email to