You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/12/02 20:26:10 UTC

svn commit: r600360 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne: gen/MapClassGenerator.java tools/CayenneGeneratorTask.java

Author: aadamchik
Date: Sun Dec  2 11:26:09 2007
New Revision: 600360

URL: http://svn.apache.org/viewvc?rev=600360&view=rev
Log:
CAY-926 Refactoring class generator classes
(changing flow of the Ant task, creating DefaultClassgenerator from within 'execute' in preparation for more refactoring)

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java?rev=600360&r1=600359&r2=600360&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java Sun Dec  2 11:26:09 2007
@@ -71,10 +71,10 @@
     protected static final String VERSION_1_1 = ClassGenerator.VERSION_1_1;
     protected static final String VERSION_1_2 = ClassGenerator.VERSION_1_2;
 
-    protected static final String DEFAULT_VERSION = VERSION_1_1;
+    public static final String DEFAULT_VERSION = VERSION_1_1;
 
-    protected static final String MODE_DATAMAP = "datamap";
-    protected static final String MODE_ENTITY = "entity";
+    public static final String MODE_DATAMAP = "datamap";
+    public static final String MODE_ENTITY = "entity";
 
     protected String versionString = DEFAULT_VERSION;
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java?rev=600360&r1=600359&r2=600360&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java Sun Dec  2 11:26:09 2007
@@ -23,6 +23,7 @@
 
 import org.apache.cayenne.gen.ClassGenerator;
 import org.apache.cayenne.gen.DefaultClassGenerator;
+import org.apache.cayenne.gen.MapClassGenerator;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.types.Path;
@@ -42,10 +43,25 @@
 
     protected File map;
     protected File additionalMaps[];
-    protected DefaultClassGenerator generator;
+    protected boolean client;
+    protected File destDir;
+    protected String encoding;
+    protected boolean makepairs;
+    protected String mode;
+    protected String outputPattern;
+    protected boolean overwrite;
+    protected String superpkg;
+    protected String supertemplate;
+    protected String template;
+    protected boolean usepkgpath;
+    protected String version;
 
     public CayenneGeneratorTask() {
-        generator = createGenerator();
+        this.makepairs = true;
+        this.mode = MapClassGenerator.MODE_ENTITY;
+        this.outputPattern = "*.java";
+        this.usepkgpath = true;
+        this.version = MapClassGenerator.DEFAULT_VERSION;
     }
 
     /**
@@ -54,6 +70,20 @@
     protected DefaultClassGenerator createGenerator() {
         AntClassGenerator gen = new AntClassGenerator();
         gen.setParentTask(this);
+
+        gen.setClient(client);
+        gen.setDestDir(destDir);
+        gen.setEncoding(encoding);
+        gen.setMakePairs(makepairs);
+        gen.setMode(mode);
+        gen.setOutputPattern(outputPattern);
+        gen.setOverwrite(overwrite);
+        gen.setSuperPkg(superpkg);
+        gen.setSuperTemplate(supertemplate);
+        gen.setTemplate(template);
+        gen.setUsePkgPath(usepkgpath);
+        gen.setVersionString(version);
+
         return gen;
     }
 
@@ -62,6 +92,8 @@
      */
     public void execute() throws BuildException {
         validateAttributes();
+        
+        DefaultClassGenerator generator = createGenerator();
 
         // Take care of setting up VPP for the generator.
         if (!ClassGenerator.VERSION_1_1.equals(generator.getVersionString())) {
@@ -76,7 +108,7 @@
         loadAction.setAdditionalDataMapFiles(additionalMaps);
 
         CayenneGeneratorEntityFilterAction filterAction = new CayenneGeneratorEntityFilterAction();
-        filterAction.setClient(generator.isClient());
+        filterAction.setClient(client);
         filterAction.setNameFilter(new NamePatternMatcher(
                 logger,
                 includeEntitiesPattern,
@@ -132,68 +164,74 @@
      * Sets the destDir.
      */
     public void setDestDir(File destDir) {
-        generator.setDestDir(destDir);
+        this.destDir = destDir;
     }
 
     /**
      * Sets <code>overwrite</code> property.
      */
     public void setOverwrite(boolean overwrite) {
-        generator.setOverwrite(overwrite);
+        this.overwrite = overwrite;
     }
 
     /**
      * Sets <code>makepairs</code> property.
      */
     public void setMakepairs(boolean makepairs) {
-        generator.setMakePairs(makepairs);
+        this.makepairs = makepairs;
     }
 
     /**
      * Sets <code>template</code> property.
      */
     public void setTemplate(String template) {
-        generator.setTemplate(template);
+        this.template = template;
     }
 
     /**
      * Sets <code>supertemplate</code> property.
      */
     public void setSupertemplate(String supertemplate) {
-        generator.setSuperTemplate(supertemplate);
+        this.supertemplate = supertemplate;
     }
 
     /**
      * Sets <code>usepkgpath</code> property.
      */
     public void setUsepkgpath(boolean usepkgpath) {
-        generator.setUsePkgPath(usepkgpath);
+        this.usepkgpath = usepkgpath;
     }
 
     /**
      * Sets <code>superpkg</code> property.
      */
     public void setSuperpkg(String superpkg) {
-        generator.setSuperPkg(superpkg);
+        this.superpkg = superpkg;
     }
 
     /**
      * Sets <code>client</code> property.
      */
     public void setClient(boolean client) {
-        generator.setClient(client);
+        this.client = client;
     }
 
     /**
      * Sets <code>version</code> property.
      */
-    public void setVersion(String versionString) {
-        try {
-            generator.setVersionString(versionString);
-        }
-        catch (IllegalStateException e) {
-            throw new BuildException(e.getMessage(), e);
+    public void setVersion(String version) {
+        if (!ClassGenerator.VERSION_1_1.equals(version)
+                && !ClassGenerator.VERSION_1_2.equals(version)) {
+            throw new BuildException("'version' must be '"
+                    + ClassGenerator.VERSION_1_1
+                    + "' or '"
+                    + ClassGenerator.VERSION_1_2
+                    + "', but was '"
+                    + version
+                    + "'");
         }
+
+        this.version = version;
     }
 
     /**
@@ -201,7 +239,7 @@
      * non-default encoding.
      */
     public void setEncoding(String encoding) {
-        generator.setEncoding(encoding);
+        this.encoding = encoding;
     }
 
     /**
@@ -222,14 +260,14 @@
      * Sets <code>outputPattern</code> property.
      */
     public void setOutputPattern(String outputPattern) {
-        generator.setOutputPattern(outputPattern);
+        this.outputPattern = outputPattern;
     }
 
     /**
      * Sets <code>mode</code> property.
      */
     public void setMode(String mode) {
-        generator.setMode(mode);
+        this.mode = mode;
     }
 
     /**