Okay, implemented now two variables: ojbUseInterface and 
ojbUseProxyInterface. Furthermore the new naming convention is similar to 
the one of the OM. Hope this helps. I did some small changes, so that 
BigDecimal is now also imported and a double value gets assigned to "0" and 
not to null. In my environment the whole stuff is now compiling :-)


At 22:39 28.09.2002 -0500, you wrote:
>I agree that using interfaces is good design, but that doesn't mean
>everyone will want to use it. How about two flags: ojbUseInteface and
>ojbUseProxyInterface?
>
>- Stephen
>
> > -----Original Message-----
> > From: Markus M. May [mailto:[EMAIL PROTECTED]]
> > Sent: Saturday, September 28, 2002 10:16 AM
> > To: Turbine Torque Developers List
> > Subject: RE: [patch] ojb templates
> >
> > Well, I did the Interface Stuff, because I think it is a good design
> > approach. Under OJB you can load all objects implementing one
>interface,
> > and therefor we need this stuff for a project.
>
>
>
>--
>To unsubscribe, 
>e-mail:   <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: 
><mailto:[EMAIL PROTECTED]>

---+++--------------------+++---------------------+++---
Markus M. May
[EMAIL PROTECTED]

Provide you with free J2EE projects

Please use my public key at:
http://www.javafreedom.org/mmay_javafreedom_org.key
---+++--------------------+++---------------------+++---
#set ($db = $table.Database)
#if ($db.Package)
    #set ($package = $db.Package)
#else
    #set ($package = $targetPackage)
#end
package ${package};

import java.io.Serializable;
import java.util.Date;

/** 
#if ($addTimeStamp)
 * This interface was autogenerated by Torque on:
 *
 * [$now]
 *
#end
 * You should not use this proxy interface directly.  It should 
 * not even be extended all references should be to 
 * ${table.JavaName}ProxyInterface
 */
public interface ${basePrefix}${table.JavaName}ProxyInterface extends Serializable
{

    #foreach ($col in $table.PrimaryKey)
        #set ( $cfc=$col.JavaName )
        #set ( $cfc=$cfc.replaceFirst(".", $cfc.substring(0,1).toUpperCase()) )
        #set ( $clo=$col.Name.toLowerCase() )
        #set ( $cjtype = $col.JavaPrimitive )

    /**
     * Get the $cfc
     * @return $cjtype
     */
    public $cjtype get${cfc}();

    #end
}
#set ($interface = "")
#if ($table.Interface)
    #set ($interface = ", $table.Interface")
#end

#set ($db = $table.Database)
#if ($db.Package)
    #set ($package = $db.Package)
#else
    #set ($package = $targetPackage)
#end
package $package;

#if ($table.isAbstract())
    #set ($abstract = "abstract")
#end

import org.apache.torque.om.Persistent;

/** 
#if ($addTimeStamp)
 * The skeleton for this class was autogenerated by Torque on:
 *
 * [$now]
 *
#end
 * You should add additional methods to this class to meet the
 * application requirements.  This class will only be generated as
 * long as it does not already exist in the output directory.
 */
public $!abstract class $table.JavaName 
    extends $basePrefix$table.JavaName
    implements ${table.JavaName}Interface
{
}
#set ($interface = "")
#if ($table.Interface)
    #set ($interface = ", $table.Interface")
#end

#set ($db = $table.Database)
#if ($db.Package)
    #set ($package = $db.Package)
#else
    #set ($package = $targetPackage)
#end
package $package;


/** 
#if ($addTimeStamp)
 * The skeleton for this interface was autogenerated by Torque on:
 *
 * [$now]
 *
#end
 * You should add additional methods to this interface to meet the
 * application requirements.  This class will only be generated as
 * long as it does not already exist in the output directory.
 */
public interface ${table.JavaName}ProxyInterface
    extends ${basePrefix}${table.JavaName}ProxyInterface
{
}
Index: Control.vm
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/templates/ojb/model/Control.vm,v
retrieving revision 1.1
diff -u -r1.1 Control.vm
--- Control.vm  11 Apr 2002 17:10:40 -0000      1.1
+++ Control.vm  29 Sep 2002 11:18:31 -0000
@@ -1,4 +1,4 @@
-#set ( $basepath = $generator.OutputPath)
+#set ( $basePath = ${generator.OutputPath} )
 
 #foreach ($dataModel in $dataModels)
   #foreach ($database in $dataModel.Databases)
@@ -15,10 +15,42 @@
     #foreach ($tbl in $database.Tables)
       $tbl.Name
       #set ( $firstcap=$tbl.JavaName )
+      
       #set ( $fname = "${firstcap}.java" )
       #set ( $path = "${strings.getPackageAsPath($package)}$fname" )
+
+      #if (!$files.file($basePath,$path).exists())
+            $generator.parse("ojb/model/ExtensionObject.vm",$path,"table",$tbl)
+      #end
+
+      #set ( $fname = "${basePrefix}${firstcap}.java" )
+      #set ( $path = "${strings.getPackageAsPath($package)}$fname" )
       $generator.parse("ojb/model/Object.vm",$path,"table",$tbl)
+
+      #set ( $fname = "${firstcap}Interface.java" )
+      #set ( $path = "${strings.getPackageAsPath($package)}$fname" )
+      #if (!$files.file($basePath,$path).exists())
+       $generator.parse("ojb/model/ExtensionInterface.vm",$path,"table",$tbl)
+      #end     
+      
+      #set ( $fname = "${basePrefix}${firstcap}Interface.java" )
+      #set ( $path = "${strings.getPackageAsPath($package)}$fname" )     
+      $generator.parse("ojb/model/Interface.vm",$path,"table",$tbl)
+      
+      #if ( $ojbUseProxy == true )
+            
+       #set ( $fname = "${firstcap}ProxyInterface.java" )
+               #set ( $path = "${strings.getPackageAsPath($package)}$fname" )
+       #if (!$files.file($basePath,$path).exists())
+         $generator.parse("ojb/model/ExtensionProxyInterface.vm",$path,"table",$tbl)
+       #end
+
+       #set ( $fname = "${basePrefix}${firstcap}ProxyInterface.java" )
+               #set ( $path = "${strings.getPackageAsPath($package)}$fname" )
+       $generator.parse("ojb/model/ProxyInterface.vm",$path,"table",$tbl)
+      
+      #end     
     #end
   #end
 
-#end
+#end
\ No newline at end of file
Index: Object.vm
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/templates/ojb/model/Object.vm,v
retrieving revision 1.7
diff -u -r1.7 Object.vm
--- Object.vm   27 Sep 2002 22:03:39 -0000      1.7
+++ Object.vm   29 Sep 2002 11:18:31 -0000
@@ -7,20 +7,29 @@
 package ${package};
 
 #if ($table.BaseClass)
-    #set ($extendsBaseClass = "extends $table.BaseClass" )
+    ##set ($extendsBaseClass = "extends $table.BaseClass" )
+    #set ($extendsBaseClass = "" )
 #else
     #set ($extendsBaseClass = "" )
 #end
 
 #if ($table.Interface)
-    #set ($interface = "Serializable, $table.Interface" )    
+    #if ($ojbUseInterface == true)
+       #set ($interface = "Serializable, ${basePrefix}${table.JavaName}Interface, 
+$table.Interface" )
+    #else
+       #set ($interface = "Serializable, $table.Interface" )
+    #end       
 #else
-    #set ($interface = "Serializable" )
+    #if ($ojbUseInterface == true)     
+       #set ($interface = "Serializable, ${basePrefix}${table.JavaName}Interface" )
+    #else
+       #set ($interface = "Serializable" )
+    #end       
 #end
 
 import java.io.Serializable;
 import java.util.Date;
-
+import java.math.BigDecimal;
 
 /** 
 #if ($addTimeStamp)
@@ -29,8 +38,10 @@
  * [$now]
  *
 #end
+ * You should not use this class directly.  It should not even be
+ * extended all references should be to $table.JavaName
  */
-public class $table.JavaName $extendsBaseClass
+public class ${basePrefix}${table.JavaName} $extendsBaseClass
         implements $interface
 {
 
@@ -40,10 +51,10 @@
       #set ( $defaultValue = "null" )
       #if ( $cjtype == "boolean")
         #set ( $defaultValue = "false" )
-      #elseif ($cjtype == "int" || $cjtype == "short" || $cjtype == "long" || $cjtype 
== "float" || $cjtype == "double")
+      #elseif ($cjtype == "int" || $cjtype == "double")
         #set ( $defaultValue = "0" )
       #end
-    protected $cjtype $clo = $defaultValue;
+    private $cjtype $clo = $defaultValue;
     #end
 
     #foreach ($col in $table.Columns)
#set ($db = $table.Database)
#if ($db.Package)
    #set ($package = $db.Package)
#else
    #set ($package = $targetPackage)
#end
package ${package};

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

/** 
#if ($addTimeStamp)
 * This interface was autogenerated by Torque on:
 *
 * [$now]
 *
#end
 * You should not use this interface directly.  It should not even be
 * extended all references should be to ${table.JavaName}Interface
 */
public interface ${basePrefix}${table.JavaName}Interface extends Serializable
{

    #foreach ($col in $table.Columns)
        #set ( $cfc=$col.JavaName )
        #set ( $cfc=$cfc.replaceFirst(".", $cfc.substring(0,1).toUpperCase()) )
        #set ( $clo=$col.Name.toLowerCase() )
        #set ( $cjtype = $col.JavaPrimitive )

     /**
      * Get the $cfc
      * @return $cjtype
      */
     public $cjtype get${cfc}();
 
     /**
      * Set the value of $cfc
      */
     public void set${cfc}($cjtype v );
 
     #end
}
#set ($interface = "")
#if ($table.Interface)
    #set ($interface = ", $table.Interface")
#end

#set ($db = $table.Database)
#if ($db.Package)
    #set ($package = $db.Package)
#else
    #set ($package = $targetPackage)
#end
package $package;

#if ($table.isAbstract())
    #set ($abstract = "abstract")
#end

/** 
#if ($addTimeStamp)
 * The skeleton for this interface was autogenerated by Torque on:
 *
 * [$now]
 *
#end
 * You should add additional methods to this interface to meet the
 * application requirements.  This class will only be generated as
 * long as it does not already exist in the output directory.
 */
public interface ${table.JavaName}Interface
    extends ${basePrefix}${table.JavaName}Interface
{
}

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

Reply via email to