stephenh    2002/09/29 21:32:04

  Modified:    src/templates/om Object.vm ObjectWithManager.vm Peer.vm
               src/java/org/apache/torque/engine/database/model Column.java
  Removed:     src/rttest/org/apache/torque LargeSelectTest.java
  Log:
  Changed primary key fields to return their native type instead of XxxKey variants. 
Base patch done by J. Russell Smyth <[EMAIL PROTECTED]>.
  
  Revision  Changes    Path
  1.49      +193 -56   jakarta-turbine-torque/src/templates/om/Object.vm
  
  Index: Object.vm
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-torque/src/templates/om/Object.vm,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- Object.vm 10 Sep 2002 19:01:46 -0000      1.48
  +++ Object.vm 30 Sep 2002 04:32:04 -0000      1.49
  @@ -197,7 +197,11 @@
                 #set ( $varName = "a$tblFK.JavaName" )
               #end
   
  +        #if($colFK.Primitive)
  +        if ($varName != null && !(${varName}.get${colFK.JavaName}()==v))
  +        #else
           if ($varName != null && 
!ObjectUtils.equals(${varName}.get${colFK.JavaName}(), v))
  +        #end
           {
               $varName = null;
           }
  @@ -228,22 +232,6 @@
           #end
        }
   
  -##if ($complexObjectModel)
  -  #if ($overloadKeySetters)
  -    #if ($col.isPrimaryKey() || $col.isForeignKey())
  -     /**
  -      * Set the value of $cfc as a string.
  -      *
  -      * @param v new value
  -      */
  -      public void set${cfc}(String v) $throwsClause
  -      {
  -           set${cfc}(new ${cjtype}(v));
  -      }
  -    #end
  -  #end
  -##end
  -
   #end
   #end
   
  @@ -289,7 +277,13 @@
       #set ( $colFK = $tblFK.getColumn($colFKName) )
           if (v == null)
           {
  -            set${column.JavaName}(($column.JavaNative)null);
  +            #if($colFK.Primitive)
  +              #set ($coldefval = "0")
  +              #set ($coldefval = $column.DefaultValue)
  +            set${column.JavaName}($coldefval);
  +            #else
  +             set${column.JavaName}(($column.JavaNative)null);
  +            #end
           }
           else
           {
  @@ -307,7 +301,7 @@
       #set ( $column = $table.getColumn($columnName) )
       #set ( $cjtype = $column.JavaNative )
       #set ( $clo=$column.Name.toLowerCase() )
  -    #if ($cjtype == "short" || $cjtype == "int" || $cjtype == "long")
  +    #if ($cjtype == "short" || $cjtype == "int" || $cjtype == "long" || $cjtype == 
"byte" || $cjtype == "float" || $cjtype == "double" || $cjtype == "BigDecimal")
           #set ( $conditional = "$conditional${and}this.${clo}>0" )
       #else
           #set ( $conditional = "$conditional${and}!ObjectUtils.equals(this.${clo}, 
null)" )
  @@ -367,13 +361,78 @@
           #set ($i = 0)
           #foreach ($colName in $fk.LocalColumns)
               #set ($col = $table.getColumn($colName) )
  -            set${col.JavaName}(($col.JavaNative) keys[$i]);
  +
  +            #set ($fktype = $col.JavaNative)
  +            #if ($fktype == "short") 
  +                set${col.JavaName}(((NumberKey) keys[$i]).shortValue());
  +            #elseif($fktype == "int") 
  +                set${col.JavaName}(((NumberKey) keys[$i]).intValue());
  +            #elseif($fktype == "long")
  +                set${col.JavaName}(((NumberKey) keys[$i]).longValue());
  +            #elseif($fktype == "BigDecimal")
  +                set${col.JavaName}(((NumberKey) keys[$i]).getBigDecimal());
  +            #elseif($fktype == "byte") )
  +                set${col.JavaName}(((NumberKey) keys[$i]).byteValue());
  +            #elseif($fktype == "float")
  +                set${col.JavaName}(((NumberKey) keys[$i]).floatValue());
  +            #elseif($fktype == "double")
  +                set${col.JavaName}(((NumberKey) keys[$i]).doubleValue());
  +            #elseif($fktype == "Short") 
  +                set${col.JavaName}(new Short(((NumberKey) keys[$i]).shortValue()));
  +            #elseif($fktype == "Integer") 
  +                set${col.JavaName}(new Integer(((NumberKey) keys[$i]).intValue()));
  +            #elseif($fktype == "Long")
  +                set${col.JavaName}(new Long(((NumberKey) keys[$i]).longValue()));
  +            #elseif($fktype == "Byte") )
  +                set${col.JavaName}(new Byte(((NumberKey) keys[$i]).byteValue()));
  +            #elseif($fktype == "Float")
  +                set${col.JavaName}(new Float(((NumberKey) keys[$i]).floatValue()));
  +            #elseif($fktype == "Double")
  +                set${col.JavaName}(new Double(((NumberKey) 
keys[$i]).doubleValue()));
  +            #elseif($fktype == "String")
  +                set${col.JavaName}(keys[$i].toString());
  +            #elseif($fktype == "Date")
  +                set${col.JavaName}(((DateKey)keys[$i]).getDate());
  +            #end
  +
               #set ( $i = $i + 1 )
           #end
       #else
           #set ($colName = $fk.LocalColumns.get(0))
           #set ($col = $table.getColumn($colName) )
  -        set${col.JavaName}(($col.JavaNative) key);
  +
  +            #set ($fktype = $col.JavaNative)
  +            #if ($fktype == "short") 
  +                set${col.JavaName}(((NumberKey) key).shortValue());
  +            #elseif($fktype == "int") 
  +                set${col.JavaName}(((NumberKey) key).intValue());
  +            #elseif($fktype == "long")
  +                set${col.JavaName}(((NumberKey) key).longValue());
  +            #elseif($fktype == "BigDecimal")
  +                set${col.JavaName}(((NumberKey) key).getBigDecimal());
  +            #elseif($fktype == "byte") )
  +                set${col.JavaName}(((NumberKey) key).byteValue());
  +            #elseif($fktype == "float")
  +                set${col.JavaName}(((NumberKey) key).floatValue());
  +            #elseif($fktype == "double")
  +                set${col.JavaName}(((NumberKey) key).doubleValue());
  +            #elseif($fktype == "Short") 
  +                set${col.JavaName}(new Short(((NumberKey) key).shortValue()));
  +            #elseif($fktype == "Integer") 
  +                set${col.JavaName}(new Integer(((NumberKey) key).intValue()));
  +            #elseif($fktype == "Long")
  +                set${col.JavaName}(new Long(((NumberKey) key).longValue()));
  +            #elseif($fktype == "Byte") )
  +                set${col.JavaName}(new Byte(((NumberKey) key).byteValue()));
  +            #elseif($fktype == "Float")
  +                set${col.JavaName}(new Float(((NumberKey) key).floatValue()));
  +            #elseif($fktype == "Double")
  +                set${col.JavaName}(new Double(((NumberKey) key).doubleValue()));
  +            #elseif($fktype == "String")
  +                set${col.JavaName}(key.toString());
  +            #elseif($fktype == "Date")
  +                set${col.JavaName}(((DateKey)key).getDate());
  +            #end
       #end
       }
    #end   ## end of foreach loop over foreign keys
  @@ -1122,10 +1181,42 @@
        *
        * @param  $clo ObjectKey
        */
  -    public void setPrimaryKey(ObjectKey $clo)
  +    public void setPrimaryKey(ObjectKey key)
           $throwsClause
       {
  -        set${col.JavaName}(($cjtype)$clo);
  +        #if ($cjtype == "short") 
  +            set${col.JavaName}(((NumberKey) key).shortValue());
  +        #elseif($cjtype == "int") 
  +            set${col.JavaName}(((NumberKey) key).intValue());
  +        #elseif($cjtype == "long")
  +            set${col.JavaName}(((NumberKey) key).longValue());
  +        #elseif($cjtype == "BigDecimal")
  +            set${col.JavaName}(((NumberKey) key).getBigDecimal());
  +        #elseif($cjtype == "byte") )
  +            set${col.JavaName}(((NumberKey) key).byteValue());
  +        #elseif($cjtype == "float")
  +            set${col.JavaName}(((NumberKey) key).floatValue());
  +        #elseif($cjtype == "double")
  +            set${col.JavaName}(((NumberKey) key).doubleValue());
  +        #elseif($cjtype == "Short") 
  +            set${col.JavaName}(new Short(((NumberKey) key).shortValue()));
  +        #elseif($cjtype == "Integer") 
  +            set${col.JavaName}(new Integer(((NumberKey) key).intValue()));
  +        #elseif($cjtype == "Long")
  +            set${col.JavaName}(new Long(((NumberKey) key).longValue()));
  +        #elseif($cjtype == "Byte") )
  +            set${col.JavaName}(new Byte(((NumberKey) key).byteValue()));
  +        #elseif($cjtype == "Float")
  +            set${col.JavaName}(new Float(((NumberKey) key).floatValue()));
  +        #elseif($cjtype == "Double")
  +            set${col.JavaName}(new Double(((NumberKey) key).doubleValue()));
  +        #elseif($cjtype == "String")
  +            set${col.JavaName}(key.toString());
  +        #elseif($cjtype == "Date")
  +            set${col.JavaName}(((DateKey)key).getDate());
  +        #else
  +            set${col.JavaName}(($cjtype)key);
  +        #end
       }
   
       /**
  @@ -1135,7 +1226,39 @@
        */
       public void setPrimaryKey(String key) $throwsClause
       {
  -        set${col.JavaName}(new ${cjtype}(key) );
  +        #if ($cjtype == "short") 
  +            set${col.JavaName}(Short.parseShort(key));
  +        #elseif($cjtype == "int") 
  +            set${col.JavaName}(Integer.parseInt(key));
  +        #elseif($cjtype == "long")
  +            set${col.JavaName}(Long.parseLong(key));
  +        #elseif($cjtype == "BigDecimal")
  +            set${col.JavaName}(new BigDecimal(key));
  +        #elseif($cjtype == "byte") )
  +            set${col.JavaName}(Byte.parseByte(key));
  +        #elseif($cjtype == "float")
  +            set${col.JavaName}(Float.parseFloat(key));
  +        #elseif($cjtype == "double")
  +            set${col.JavaName}(Double.parseDouble(key));
  +        #elseif($cjtype == "Short") 
  +            set${col.JavaName}(new Short(key));
  +        #elseif($cjtype == "Integer") 
  +            set${col.JavaName}(new Integer(key));
  +        #elseif($cjtype == "Long")
  +            set${col.JavaName}(new Long(key));
  +        #elseif($cjtype == "Byte") )
  +            set${col.JavaName}(new Byte(key));
  +        #elseif($cjtype == "Float")
  +            set${col.JavaName}(new Float(key));
  +        #elseif($cjtype == "Double")
  +            set${col.JavaName}(new Double(key));
  +        #elseif($cjtype == "String")
  +            set${col.JavaName}($clo.toString());
  +        #elseif($cjtype == "Date")
  +            set${col.JavaName}(new Date(key));
  +        #else
  +            set${col.JavaName}(new ${cjtype}($clo));
  +        #end
       }
   
   #elseif ($table.PrimaryKeys.size() > 1)
  @@ -1150,9 +1273,41 @@
       public void setPrimaryKey(ObjectKey key) throws TorqueException
       {
           SimpleKey[] keys = (SimpleKey[]) key.getValue();
  -    #set ($i = 0)
  -    #foreach ($pk in $table.PrimaryKeys)
  -            set${pk.JavaName}(($pk.JavaNative)keys[$i]);
  +        SimpleKey tmpKey = null;
  +     #set ($i = 0)
  +    #foreach ($pk in $table.PrimaryKeys) 
  +        #set ($pktype = $pk.JavaNative)
  +        #if ($pktype == "short") 
  +            set${pk.JavaName}(((NumberKey)keys[$i]).shortValue());
  +        #elseif($pktype == "int") 
  +            set${pk.JavaName}(((NumberKey)keys[$i]).intValue());
  +        #elseif($pktype == "long")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).longValue());
  +        #elseif($pktype == "BigDecimal")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).getBigDecimal());
  +        #elseif($pktype == "byte") )
  +            set${pk.JavaName}(((NumberKey)keys[$i]).byteValue());
  +        #elseif($pktype == "float")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).floatValue());
  +        #elseif($pktype == "double")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).doubleValue());
  +        #elseif($pktype == "Short") 
  +            set${pk.JavaName}(new Short(((NumberKey)keys[$i]).shortValue()));
  +        #elseif($pktype == "Integer") 
  +            set${pk.JavaName}(new Integer(((NumberKey)keys[$i]).intValue()));
  +        #elseif($pktype == "Long")
  +            set${pk.JavaName}(new Long(((NumberKey)keys[$i]).longValue()));
  +        #elseif($pktype == "Byte") )
  +            set${pk.JavaName}(new Byte(((NumberKey)keys[$i]).byteValue()));
  +        #elseif($pktype == "Float")
  +            set${pk.JavaName}(new Float(((NumberKey)keys[$i]).floatValue()));
  +        #elseif($pktype == "Double")
  +            set${pk.JavaName}(new Double(((NumberKey)keys[$i]).doubleValue()));
  +        #elseif($pktype == "String")
  +            set${pk.JavaName}(keys[$i].toString());
  +        #elseif($pktype == "Date")
  +            set${pk.JavaName}(((DateKey)keys[$i]).getDate());
  +        #end
           #set ( $i = $i + 1 )
       #end
       }
  @@ -1175,35 +1330,11 @@
       }
   
       /**
  -     * Set the PrimaryKey with Strings.
  -     *
  -#foreach ($col in $table.PrimaryKeys)
  -    #set ( $clo=$col.Name.toLowerCase() )
  -     * @param String $clo
  -#end
  -     */
  -    public void setPrimaryKey($argList2)
  -        $throwsClause
  -    {
  -#foreach ($col in $table.PrimaryKeys)
  -         set${col.JavaName}(new ${col.JavaNative}($col.Name.toLowerCase()));
  -#end
  -    }
  -
  -    /**
        * Set the PrimaryKey using a String.
        */
       public void setPrimaryKey(String key) throws TorqueException
       {
  -        int prevPos = 0;
  -
  -     #set ($int = "int ")
  -     #foreach ($col in $table.PrimaryKeys)
  -        ${int}colonPos = key.indexOf(':', prevPos);
  -        set${col.JavaName}(new ${col.JavaNative}(key.substring(prevPos, colonPos)));
  -        prevPos = colonPos + 1;
  -        #set ($int = "")
  -     #end
  +        setPrimaryKey(new ComboKey(key));
       }
   
   #end
  @@ -1215,11 +1346,11 @@
       public ObjectKey getPrimaryKey()
       {
   #if ($table.PrimaryKeys.size() == 1)
  -        return get${table.PrimaryKeys.get(0).JavaName}();
  +        return SimpleKey.keyFor(get${table.PrimaryKeys.get(0).JavaName}());
   #elseif ($table.PrimaryKeys.size() > 1)
       #set ($i = 0)
       #foreach ($pk in $table.PrimaryKeys)
  -        pks[$i] = get${pk.JavaName}();
  +        pks[$i] = SimpleKey.keyFor(get${pk.JavaName}());
           #set ($i = $i +1)
       #end
           return comboPK;
  @@ -1320,9 +1451,15 @@
   
   #foreach ($col in $table.Columns)
       #if ($col.isPrimaryKey())
  -        #set ( $pkid = "null" )
  -        #set ( $cjtype = $col.JavaNative )
  -        copyObj.set${col.JavaName}((${cjtype})${pkid});
  +        #if($col.Primitive)
  +          #set ($coldefval = "0")
  +          #set ($coldefval = $col.DefaultValue)
  +          copyObj.set${col.JavaName}($coldefval);
  +        #else
  +          #set ( $pkid = "null" )
  +          #set ( $cjtype = $col.JavaNative )
  +          copyObj.set${col.JavaName}((${cjtype})${pkid});
  +        #end
       #end
   #end
           return copyObj;
  
  
  
  1.26      +195 -55   jakarta-turbine-torque/src/templates/om/ObjectWithManager.vm
  
  Index: ObjectWithManager.vm
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-torque/src/templates/om/ObjectWithManager.vm,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ObjectWithManager.vm      30 Aug 2002 02:07:39 -0000      1.25
  +++ ObjectWithManager.vm      30 Sep 2002 04:32:04 -0000      1.26
  @@ -198,7 +198,11 @@
                 #set ( $varName = "a$interfaceName" )
               #end
   
  +        #if($colFK.Primitive)
  +        if ($varName != null && !(${varName}.get${colFK.JavaName}()==v))
  +        #else
           if ($varName != null && 
!ObjectUtils.equals(${varName}.get${colFK.JavaName}(), v))
  +        #end
           {
               $varName = null;
           }
  @@ -229,20 +233,6 @@
           #end
        }
   
  -##if ($complexObjectModel)
  -  #if ($overloadKeySetters)
  -    #if ($col.isPrimaryKey() || $col.isForeignKey())
  -     /**
  -      * Set the value of $cfc as a string.
  -      */
  -      public void set${cfc}(String v ) $throwsClause
  -      {
  -           set${cfc}(new ${cjtype}(v));
  -      }
  -    #end
  -  #end
  -##end
  -
   #end
   #end
   
  @@ -288,7 +278,13 @@
       #set ( $colFK = $tblFK.getColumn($colFKName) )
           if (v == null)
           {
  +            #if($colFK.Primitive)
  +              #set ($coldefval = "0")
  +              #set ($coldefval = $column.DefaultValue)
  +            set${column.JavaName}($coldefval);
  +            #else
               set${column.JavaName}(($column.JavaNative)null);
  +            #end
           }
           else
           {
  @@ -307,12 +303,12 @@
       #set ( $column = $table.getColumn($columnName) )
       #set ( $cjtype = $column.JavaNative )
       #set ( $clo=$column.Name.toLowerCase() )
  -    #if ($cjtype == "short" || $cjtype == "int" || $cjtype == "long")
  -        #set ( $conditional = "$conditional${and}get${column.JavaName}()>0" )
  +    #if ($cjtype == "short" || $cjtype == "int" || $cjtype == "long" || $cjtype == 
"byte" || $cjtype == "float" || $cjtype == "double")
  +       #set ( $conditional = "$conditional${and}get${column.JavaName}()>0" )
       #else
  -        #set ( $conditional = 
"$conditional${and}!ObjectUtils.equals(get${column.JavaName}(), null)" )
  +       #set ( $conditional = 
"$conditional${and}!ObjectUtils.equals(get${column.JavaName}(), null)" )
       #end
  -    #set ( $arglist = "$arglist${comma}get${column.JavaName}()" )
  +    #set ( $arglist = "$arglist${comma}SimpleKey.keyFor(get${column.JavaName}())" )
       #set ( $and = " && " )
       #set ( $comma = ", " )
       #set ( $argsize = $argsize + 1 )
  @@ -352,13 +348,78 @@
           #set ($i = 0)
           #foreach ($colName in $fk.LocalColumns)
               #set ($col = $table.getColumn($colName) )
  -            set${col.JavaName}(($col.JavaNative)keys[$i]);
  +
  +            #set ($fktype = $col.JavaNative)
  +            #if ($fktype == "short") 
  +                set${col.JavaName}(((NumberKey) keys[$i]).shortValue());
  +            #elseif($fktype == "int") 
  +                set${col.JavaName}(((NumberKey) keys[$i]).intValue());
  +            #elseif($fktype == "long")
  +                set${col.JavaName}(((NumberKey) keys[$i]).longValue());
  +            #elseif($fktype == "BigDecimal")
  +                set${col.JavaName}(((NumberKey) keys[$i]).getBigDecimal());
  +            #elseif($fktype == "byte") )
  +                set${col.JavaName}(((NumberKey) keys[$i]).byteValue());
  +            #elseif($fktype == "float")
  +                set${col.JavaName}(((NumberKey) keys[$i]).floatValue());
  +            #elseif($fktype == "double")
  +                set${col.JavaName}(((NumberKey) keys[$i]).doubleValue());
  +            #elseif($fktype == "Short") 
  +                set${col.JavaName}(new Short(((NumberKey) keys[$i]).shortValue()));
  +            #elseif($fktype == "Integer") 
  +                set${col.JavaName}(new Integer(((NumberKey) keys[$i]).intValue()));
  +            #elseif($fktype == "Long")
  +                set${col.JavaName}(new Long(((NumberKey) keys[$i]).longValue()));
  +            #elseif($fktype == "Byte") )
  +                set${col.JavaName}(new Byte(((NumberKey) keys[$i]).byteValue()));
  +            #elseif($fktype == "Float")
  +                set${col.JavaName}(new Float(((NumberKey) keys[$i]).floatValue()));
  +            #elseif($fktype == "Double")
  +                set${col.JavaName}(new Double(((NumberKey) 
keys[$i]).doubleValue()));
  +            #elseif($fktype == "String")
  +                set${col.JavaName}(keys[$i].toString());
  +            #elseif($fktype == "Date")
  +                set${col.JavaName}(((DateKey)keys[$i]).getDate());
  +            #end
  +
               #set ( $i = $i + 1 )
           #end
       #else
           #set ($colName = $fk.LocalColumns.get(0))
           #set ($col = $table.getColumn($colName) )
  -        set${col.JavaName}(($col.JavaNative)key);
  +
  +        #set ($fktype = $col.JavaNative)
  +        #if ($fktype == "short") 
  +            set${col.JavaName}(((NumberKey) key).shortValue());
  +        #elseif($fktype == "int") 
  +            set${col.JavaName}(((NumberKey) key).intValue());
  +        #elseif($fktype == "long")
  +            set${col.JavaName}(((NumberKey) key).longValue());
  +        #elseif($fktype == "BigDecimal")
  +            set${col.JavaName}(((NumberKey) key).getBigDecimal());
  +        #elseif($fktype == "byte") )
  +            set${col.JavaName}(((NumberKey) key).byteValue());
  +        #elseif($fktype == "float")
  +            set${col.JavaName}(((NumberKey) key).floatValue());
  +        #elseif($fktype == "double")
  +            set${col.JavaName}(((NumberKey) key).doubleValue());
  +        #elseif($fktype == "Short") 
  +            set${col.JavaName}(new Short(((NumberKey) key).shortValue()));
  +        #elseif($fktype == "Integer") 
  +            set${col.JavaName}(new Integer(((NumberKey) key).intValue()));
  +        #elseif($fktype == "Long")
  +            set${col.JavaName}(new Long(((NumberKey) key).longValue()));
  +        #elseif($fktype == "Byte") )
  +            set${col.JavaName}(new Byte(((NumberKey) key).byteValue()));
  +        #elseif($fktype == "Float")
  +            set${col.JavaName}(new Float(((NumberKey) key).floatValue()));
  +        #elseif($fktype == "Double")
  +            set${col.JavaName}(new Double(((NumberKey) key).doubleValue()));
  +        #elseif($fktype == "String")
  +            set${col.JavaName}(key.toString());
  +        #elseif($fktype == "Date")
  +            set${col.JavaName}(((DateKey)key).getDate());
  +        #end
       #end
       }
   
  @@ -1113,7 +1174,39 @@
        */
       public void setPrimaryKey(ObjectKey $clo)
           $throwsClause {
  -         set${col.JavaName}(($cjtype)$clo);
  +        #if ($cjtype == "short") 
  +            set${col.JavaName}(((NumberKey)$clo).shortValue());
  +        #elseif($cjtype == "int") 
  +            set${col.JavaName}(((NumberKey)$clo).intValue());
  +        #elseif($cjtype == "long")
  +            set${col.JavaName}(((NumberKey)$clo).longValue());
  +        #elseif($cjtype == "BigDecimal")
  +            set${col.JavaName}(((NumberKey)$clo).getBigDecimal());
  +        #elseif($cjtype == "byte") )
  +            set${col.JavaName}(((NumberKey)$clo).byteValue());
  +        #elseif($cjtype == "float")
  +            set${col.JavaName}(((NumberKey)$clo).floatValue());
  +        #elseif($cjtype == "double")
  +            set${col.JavaName}(((NumberKey)$clo).doubleValue());
  +        #elseif($cjtype == "Short") 
  +            set${col.JavaName}(new Short(((NumberKey)$clo).shortValue()));
  +        #elseif($cjtype == "Integer") 
  +            set${col.JavaName}(new Integer(((NumberKey)$clo).intValue()));
  +        #elseif($cjtype == "Long")
  +            set${col.JavaName}(new Long(((NumberKey)$clo).longValue()));
  +        #elseif($cjtype == "Byte") )
  +            set${col.JavaName}(new Byte(((NumberKey)$clo).byteValue()));
  +        #elseif($cjtype == "Float")
  +            set${col.JavaName}(new Float(((NumberKey)$clo).floatValue()));
  +        #elseif($cjtype == "Double")
  +            set${col.JavaName}(new Double(((NumberKey)$clo).doubleValue()));
  +        #elseif($cjtype == "String")
  +            set${col.JavaName}($clo.toString());
  +        #elseif($cjtype == "Date")
  +            set${col.JavaName}(((DateKey)$clo).getDate());
  +        #else
  +            set${col.JavaName}(($cjtype)$clo);
  +        #end
       }
   
       /**
  @@ -1121,7 +1214,39 @@
        */
       public void setPrimaryKey(String key) $throwsClause
       {
  -        set${col.JavaName}(new ${cjtype}(key) );
  +        #if ($cjtype == "short") 
  +            set${col.JavaName}(Short.parseShort(key));
  +        #elseif($cjtype == "int") 
  +            set${col.JavaName}(Integer.parseInt(key));
  +        #elseif($cjtype == "long")
  +            set${col.JavaName}(Long.parseLong(key));
  +        #elseif($cjtype == "BigDecimal")
  +            set${col.JavaName}(new BigDecimal(key));
  +        #elseif($cjtype == "byte") )
  +            set${col.JavaName}(Byte.parseByte(key));
  +        #elseif($cjtype == "float")
  +            set${col.JavaName}(Float.parseFloat(key));
  +        #elseif($cjtype == "double")
  +            set${col.JavaName}(Double.parseDouble(key));
  +        #elseif($cjtype == "Short") 
  +            set${col.JavaName}(new Short(key));
  +        #elseif($cjtype == "Integer") 
  +            set${col.JavaName}(new Integer(key));
  +        #elseif($cjtype == "Long")
  +            set${col.JavaName}(new Long(key));
  +        #elseif($cjtype == "Byte") )
  +            set${col.JavaName}(new Byte(key));
  +        #elseif($cjtype == "Float")
  +            set${col.JavaName}(new Float(key));
  +        #elseif($cjtype == "Double")
  +            set${col.JavaName}(new Double(key));
  +        #elseif($cjtype == "String")
  +            set${col.JavaName}($clo.toString());
  +        #elseif($cjtype == "Date")
  +            set${col.JavaName}(new Date(key));
  +        #else
  +            set${col.JavaName}(new ${cjtype}($clo));
  +        #end
       }
   
   #elseif ($table.PrimaryKeys.size() > 1)
  @@ -1133,10 +1258,42 @@
        */
       public void setPrimaryKey(ObjectKey key) throws TorqueException
       {
  -        SimpleKey[] keys = (SimpleKey[])key.getValue();
  -    #set ($i = 0)
  -    #foreach ($pk in $table.PrimaryKeys)
  -            set${pk.JavaName}(($pk.JavaNative)keys[$i]);
  +         SimpleKey[] keys = (SimpleKey[]) key.getValue();
  +        SimpleKey tmpKey = null;
  +     #set ($i = 0)
  +    #foreach ($pk in $table.PrimaryKeys) 
  +        #set ($pktype = $pk.JavaNative)
  +        #if ($pktype == "short") 
  +            set${pk.JavaName}(((NumberKey)keys[$i]).shortValue());
  +        #elseif($pktype == "int") 
  +            set${pk.JavaName}(((NumberKey)keys[$i]).intValue());
  +        #elseif($pktype == "long")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).longValue());
  +        #elseif($pktype == "BigDecimal")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).getBigDecimal());
  +        #elseif($pktype == "byte") )
  +            set${pk.JavaName}(((NumberKey)keys[$i]).byteValue());
  +        #elseif($pktype == "float")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).floatValue());
  +        #elseif($pktype == "double")
  +            set${pk.JavaName}(((NumberKey)keys[$i]).doubleValue());
  +        #elseif($pktype == "Short") 
  +            set${pk.JavaName}(new Short(((NumberKey)keys[$i]).shortValue()));
  +        #elseif($pktype == "Integer") 
  +            set${pk.JavaName}(new Integer(((NumberKey)keys[$i]).intValue()));
  +        #elseif($pktype == "Long")
  +            set${pk.JavaName}(new Long(((NumberKey)keys[$i]).longValue()));
  +        #elseif($pktype == "Byte") )
  +            set${pk.JavaName}(new Byte(((NumberKey)keys[$i]).byteValue()));
  +        #elseif($pktype == "Float")
  +            set${pk.JavaName}(new Float(((NumberKey)keys[$i]).floatValue()));
  +        #elseif($pktype == "Double")
  +            set${pk.JavaName}(new Double(((NumberKey)keys[$i]).doubleValue()));
  +        #elseif($pktype == "String")
  +            set${pk.JavaName}(keys[$i].toString());
  +        #elseif($pktype == "Date")
  +            set${pk.JavaName}(((DateKey)keys[$i]).getDate());
  +        #end
           #set ( $i = $i + 1 )
       #end
       }
  @@ -1158,34 +1315,11 @@
       }
   
       /**
  -     * Set the PrimaryKey with Strings.
  -     *
  -#foreach ($col in $table.PrimaryKeys)
  -    #set ( $clo=$col.Name.toLowerCase() )
  -     * @param String $clo
  -#end
  -     */
  -    public void setPrimaryKey($argList2)
  -        $throwsClause {
  -#foreach ($col in $table.PrimaryKeys)
  -         set${col.JavaName}(new ${col.JavaNative}($col.Name.toLowerCase()));
  -#end
  -    }
  -
  -    /**
        * Set the PrimaryKey using a String.
        */
       public void setPrimaryKey(String key) throws TorqueException
       {
  -        int prevPos = 0;
  -
  -     #set ($int = "int ")
  -     #foreach ($col in $table.PrimaryKeys)
  -        ${int}colonPos = key.indexOf(':', prevPos);
  -        set${col.JavaName}( new ${col.JavaNative}(key.substring(prevPos, colonPos)) 
);
  -        prevPos = colonPos + 1;
  -        #set ($int = "")
  -     #end
  +        setPrimaryKey(new ComboKey(key));
       }
   
   #end
  @@ -1198,11 +1332,11 @@
       public ObjectKey getPrimaryKey()
       {
   #if ($table.PrimaryKeys.size() == 1)
  -        return get${table.PrimaryKeys.get(0).JavaName}();
  +        return SimpleKey.keyFor(get${table.PrimaryKeys.get(0).JavaName}());
   #elseif ($table.PrimaryKeys.size() > 1)
       #set ($i = 0)
       #foreach ($pk in $table.PrimaryKeys)
  -        pks[$i] = get${pk.JavaName}();
  +        pks[$i] = SimpleKey.keyFor(get${pk.JavaName}());
           #set ($i = $i +1)
       #end
           return comboPK;
  @@ -1300,9 +1434,15 @@
   
   #foreach ($col in $table.Columns)
       #if ($col.isPrimaryKey())
  -        #set ( $pkid = "null" )
  -        #set ( $cjtype = $col.JavaNative )
  -        copyObj.set${col.JavaName}((${cjtype})${pkid});
  +        #if($col.Primitive)
  +          #set ($coldefval = "0")
  +          #set ($coldefval = $col.DefaultValue)
  +          copyObj.set${col.JavaName}($coldefval);
  +        #else
  +          #set ( $pkid = "null" )
  +          #set ( $cjtype = $col.JavaNative )
  +          copyObj.set${col.JavaName}((${cjtype})${pkid});
  +        #end
       #end
   #end
           return copyObj;
  
  
  
  1.40      +1 -20     jakarta-turbine-torque/src/templates/om/Peer.vm
  
  Index: Peer.vm
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-torque/src/templates/om/Peer.vm,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- Peer.vm   13 Sep 2002 21:28:36 -0000      1.39
  +++ Peer.vm   30 Sep 2002 04:32:04 -0000      1.40
  @@ -6,6 +6,7 @@
   #end
   package ${package};
   
  +import java.math.BigDecimal;
   import java.sql.Connection;
   import java.sql.SQLException;
   import java.util.ArrayList;
  @@ -362,27 +363,7 @@
               obj.set${col.JavaName}(b ? Boolean.TRUE : Boolean.FALSE);
                   #end
               #else
  -                #if ($col.isPrimaryKey() || $col.isForeignKey() )
  -            ## The field should always be an Object type but make sure so we
  -            ## are sure we can set it to null.
  -            if (row.getValue(offset + $n).$col.VillageMethod instanceof Object)
  -            {
  -               ## If the database value is a null value then set the Key
  -               ## value to null so comparisons with ObjectUtils.equals really work.
  -               if (null == row.getValue(offset + $n).$col.VillageMethod)
  -               {
  -                  obj.set${col.JavaName}((${col.JavaNative}) null);
  -               }
  -               else
  -               ## Do what we normally do
  -               {
  -                  obj.set${col.JavaName}(
  -                      new ${col.JavaNative}(row.getValue(offset + 
$n).$col.VillageMethod));
  -               }
  -            }
  -                #else
               obj.set${col.JavaName}(row.getValue(offset + $n).$col.VillageMethod);
  -                #end
               #end
                   #set ( $n = $n + 1 )
           #end
  
  
  
  1.23      +1 -42     
jakarta-turbine-torque/src/java/org/apache/torque/engine/database/model/Column.java
  
  Index: Column.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/engine/database/model/Column.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- Column.java       8 May 2002 19:45:45 -0000       1.22
  +++ Column.java       30 Sep 2002 04:32:04 -0000      1.23
  @@ -802,34 +802,6 @@
               jtype = TypeMap.getJavaNative(torqueType);
           }
   
  -        if ( isPrimaryKey() || isForeignKey() )
  -        {
  -            if ( jtype.equals("String") )
  -            {
  -                jtype = "StringKey";
  -            }
  -            else if ( jtype.equals("Date") )
  -            {
  -                jtype = "DateKey";
  -            }
  -            else if ( jtype.equals("short")
  -                      || jtype.equals("int")
  -                      || jtype.equals("long")
  -                      || jtype.equals("BigDecimal")
  -                      || jtype.equals("byte")
  -                      || jtype.equals("float")
  -                      || jtype.equals("double")
  -                      || jtype.equals("Short")
  -                      || jtype.equals("Integer")
  -                      || jtype.equals("Long")
  -                      || jtype.equals("Byte")
  -                      || jtype.equals("Float")
  -                      || jtype.equals("Double") )
  -            {
  -                jtype = "NumberKey";
  -            }
  -        }
  -
           return jtype;
       }
   
  @@ -845,19 +817,6 @@
               vmethod = TypeMap.getVillageMethod(torqueType);
           }
   
  -        String jtype = TypeMap.getJavaNative(torqueType);
  -        if ( isPrimaryKey() || isForeignKey() )
  -        {
  -            if ( jtype.equals("short")
  -                 || jtype.equals("int")
  -                 || jtype.equals("long")
  -                 || jtype.equals("byte")
  -                 || jtype.equals("float")
  -                 || jtype.equals("double") )
  -            {
  -                vmethod = "asBigDecimal()";
  -            }
  -        }
           return vmethod;
       }
   
  
  
  

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

Reply via email to