You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/22 20:40:16 UTC

svn commit: r379856 - in /incubator/tuscany/java/sdo: plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java

Author: jsdelfino
Date: Wed Feb 22 11:40:09 2006
New Revision: 379856

URL: http://svn.apache.org/viewcvs?rev=379856&view=rev
Log:
added codegen options to the JavaGenerator and the GeneratorMojo plugin

Modified:
    incubator/tuscany/java/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java
    incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java

Modified: incubator/tuscany/java/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java?rev=379856&r1=379855&r2=379856&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java (original)
+++ incubator/tuscany/java/sdo/plugin/src/main/java/org/apache/tuscany/sdo/plugin/GeneratorMojo.java Wed Feb 22 11:40:09 2006
@@ -61,6 +61,48 @@
     private String targetDirectory;
 
     /**
+     * Specifies the prefix string to use for naming the generated factory. 
+     * @parameter
+     */
+    private String prefix;
+
+    /**
+     * This option can be used to eliminate the generated interface and to generate only an implementation class. 
+     * @parameter
+     */
+    private boolean noInterface;
+
+    /**
+     * Turns off container management for containment properties.  
+     * @parameter
+     */
+    private boolean noContainment;
+
+    /**
+     * This option eliminates all change notification overhead in the generated classes.   
+     * @parameter
+     */
+    private boolean noNotification;
+
+    /**
+     * With this option, all generated properties will not record their unset state. 
+     * @parameter
+     */
+    private boolean noUnsettable;
+
+    /**
+     * Generate a fast XML parser/loader for instances of the model.   
+     * @parameter
+     */
+    private boolean generateLoader;
+
+    /**
+     * Generate a Switch class for the model.   
+     * @parameter
+     */
+    private boolean generateSwitch;
+
+    /**
      * @parameter expression="${project.compileSourceRoots}"
      * @readonly
      */
@@ -73,13 +115,33 @@
         } else {
             files = new File[]{schemaFile};
         }
+        
+        int genOptions = 0;
+        if (noInterface) {
+          genOptions |= JavaGenerator.OPTION_NO_INTERFACES;
+        }
+        if (noContainment) {
+          genOptions |= JavaGenerator.OPTION_NO_CONTAINMENT;
+        }
+        if (noNotification) {
+          genOptions |= JavaGenerator.OPTION_NO_NOTIFICATION;
+        }
+        if (generateLoader) {
+          genOptions |= JavaGenerator.OPTION_GENERATE_LOADER;
+        }
+        if (noUnsettable) {
+          genOptions |= JavaGenerator.OPTION_NO_UNSETTABLE;
+        }
+        if (generateSwitch) {
+            genOptions |= JavaGenerator.OPTION_GENERATE_SWITCH;
+          }
 
         for (int i = 0; i < files.length; i++) {
             File file = files[i];
             File marker = new File(targetDirectory, ".gen#" + file.getName());
             if (file.lastModified() > marker.lastModified()) {
                 getLog().info("Generating SDO interfaces from " + file);
-                JavaGenerator.generateFromXMLSchema(file.toString(), targetDirectory, javaPackage, null, 0);
+                JavaGenerator.generateFromXMLSchema(file.toString(), targetDirectory, javaPackage, prefix, genOptions);
             }
             try {
                 marker.createNewFile();

Modified: incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java?rev=379856&r1=379855&r2=379856&view=diff
==============================================================================
--- incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java (original)
+++ incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/JavaGenerator.java Wed Feb 22 11:40:09 2006
@@ -59,6 +59,8 @@
   public static int OPTION_ARRAY_ACCESSORS=0x20;
   public static int OPTION_GENERATE_LOADER=0x40;
   public static int OPTION_NO_UNSETTABLE=0x80;
+  //FIXME Temporary, I need this option for now to get Switch classes generated for the SCDL models
+  public static int OPTION_GENERATE_SWITCH=0x100;
   
   /**
    * Generate static SDOs from XML Schema
@@ -367,8 +369,12 @@
     {
       genPackage.setPrefix(prefix);
     }
-    
-    genPackage.setAdapterFactory(false);
+
+    //FIXME Temporary, I need this option for now to get Switch classes generated for the SCDL models
+    if ((genOptions & OPTION_GENERATE_SWITCH) == 0)
+    {
+        genPackage.setAdapterFactory(false);
+    }
 
     if ((genOptions & OPTION_GENERATE_LOADER) != 0)
     {