#set ($db = $table.Database)
#if ($db.Package)
#set ($package = $db.Package)
#else
#set ($package = $targetPackage)
#end
package ${package};
#if ($table.BaseClass == "")
#set ($extendsBaseClass = "" )
#else
#set ($extendsBaseClass = "extends $table.BaseClass" )
#end
import java.util.*;
import java.math.*;
import org.apache.turbine.om.*;
import org.apache.turbine.om.peer.BasePeer;
import org.apache.turbine.util.db.Criteria;
#if ($addSaveMethod)
import org.apache.turbine.util.ObjectUtils;
#end
import org.apache.turbine.util.StringUtils;
import org.apache.turbine.util.ParameterParser;
import org.apache.turbine.util.Log;
import org.apache.turbine.util.db.pool.DBConnection;
#if (!$complexObjectModel)
import org.apache.turbine.services.db.TurbineDB;
#end
/**
#if ($addTimeStamp)
* This class was autogenerated by Torque on:
*
* [$now]
*
#end
* You should not use this class directly. It should not even be
* extended all references should be to $table.JavaName
*/
public abstract class $basePrefix$table.JavaName $extendsBaseClass
implements Retrievable
{
#if (!$table.isAlias())
#foreach ($col in $table.Columns)
#set ( $cjtype = $col.JavaNative )
#set ( $clo=$col.Name.toLowerCase() )
#set ($defVal = "")
#if ($col.DefaultValue && !$col.DefaultValue.equalsIgnoreCase("NULL") )
#set ( $quote = '' )
#if ( $cjtype == "String" )
#set ( $quote = '"' )
#end
#set ( $defaultValue = $col.DefaultValue )
#if ( $cjtype == "boolean" )
#if ( $defaultValue == "1" || $defaultValue == "Y" )
#set ( $defaultValue = "true" )
#elseif ( $defaultValue == "0" || $defaultValue == "N" )
#set ( $defaultValue = "false" )
#end
#end
#if ($cjtype == "BigDecimal")
#set ($defVal = "= new BigDecimal($defaultValue)")
#else
#set ($defVal = "=$quote$defaultValue$quote")
#end
#end
/** the value for the $clo field */
private $cjtype $clo$defVal;
#end
#foreach ($col in $table.Columns)
#set ( $cfc=$col.JavaName )
#set ( $clo=$col.Name.toLowerCase() )
#set ( $cjtype = $col.JavaNative )
/**
* Get the $cfc
* @return $cjtype
*/
public $cjtype get${cfc}()
{
return $clo;
}
#set ( $throwsClause = "" )
#if ($complexObjectModel)
#if ($col.isForeignKey())
#set ( $throwsClause = "throws Exception" )
#end
#if ( $col.Referrers.size() > 0 )
#if ($throwsClause == "")
#set ( $throwsClause = "throws Exception" )
#end
#end
#end
/**
* Set the value of $cfc
*/
public void set${cfc}($cjtype v ) $throwsClause
{
#if ($complexObjectModel)
#if ($col.isForeignKey())
#set ( $tmp = $col.RelatedTableName )
#set ( $tblFK = $table.Database.getTable($tmp) )
#set ( $colFK = $tblFK.getColumn($col.RelatedColumnName) )
#if ($col.isMultipleFK())
#set ( $varName = $strings.concat(["a", $tblFK.JavaName, "RelatedBy", $col.JavaName]) )
#elseif ($tmp.equals($table.Name))
#set ( $varName = $strings.concat(["a", $tblFK.JavaName, "RelatedBy", $col.JavaName]) )
#else
#set ( $varName = $strings.concat(["a", $tblFK.JavaName]) )
#end
$varName = null;
#end
#foreach ($fk in $col.Referrers)
#set ( $fkColName = $fk.ForeignLocalMapping.get($col.Name) )
#set ( $tblFK = $fk.Table )
#if ( !($tblFK.Name.equals($table.Name)) )
#set ( $colFK = $tblFK.getColumn($fkColName) )
#if ($colFK.isMultipleFK())
#set ( $collName = $strings.concat(["coll", $tblFK.JavaName, "sRelatedBy", $colFK.JavaName]) )
#else
#set ( $collName = $strings.concat(["coll", $tblFK.JavaName, "s"]) )
#end
// update associated $tblFK.JavaName
if ($collName != null )
{
for (int i=0; i<${collName}.size(); i++)
{
((${tblFK.JavaName})${collName}.get(i))
.set${colFK.JavaName}(v);
}
}
#end
#end
#end
#if ($addSaveMethod)
#if ( ($cjtype == "int") || ($cjtype == "long") || ($cjtype == "boolean")
|| ($cjtype == "short") || ($cjtype == "float") || ($cjtype == "double")
|| ($cjtype == "char") || ($cjtype == "byte") )
if (this.$clo != v)
{
#else
if ( !ObjectUtils.equals(this.$clo, v) )
{
#end
#if ( ($cjtype == "NumberKey")
|| ($cjtype == "StringKey")
|| ($cjtype == "DateKey") )
if (this.$clo == null)
{
this.$clo = new $cjtype(v);
}
else
{
this.${clo}.setValue(v);
}
#else
this.$clo = v;
#end
setModified(true);
}
#else
this.$clo = v;
#end
}
##if ($complexObjectModel)
#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
##association code
#if ($complexObjectModel)
#foreach ($fk in $table.ForeignKeys)
#set ( $tmp = $fk.ForeignTableName )
#set ( $tblFK = $table.Database.getTable($tmp) )
#set ( $className = $tblFK.JavaName )
#set ( $relCol = "" )
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $table.getColumn($columnName) )
#if ($column.isMultipleFK())
#set ( $relCol = $strings.concat([$relCol, $column.JavaName]) )
#elseif ($tmp.equals($table.Name))
#set ( $relCol = $strings.concat([$relCol, $column.JavaName]) )
#end
#end
#if ($relCol != "")
#set ( $relCol = $strings.concat(["RelatedBy", $relCol]) )
#end
#set ( $pVarName = $strings.concat([$className, $relCol]) )
#set ( $varName = $strings.concat(["a", $pVarName]) )
private $className $varName;
/**
* Declares an association between this object and a $className object
*
* @param $className v
*/
public void set${pVarName}($className v) throws Exception
{
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $table.getColumn($columnName) )
#set ( $colFKName = $fk.LocalForeignMapping.get($columnName) )
#set ( $colFK = $tblFK.getColumn($colFKName) )
set${column.JavaName}(v.get${colFK.JavaName}());
#end
$varName = v;
}
#set ( $and = "" )
#set ( $comma = "" )
#set ( $conditional = "" )
#set ( $arglist = "" )
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $table.getColumn($columnName) )
#set ( $cjtype = $column.JavaNative )
#set ( $clo=$column.Name.toLowerCase() )
#if ($cjtype == "int")
#set ( $conditional = $strings.concat([$conditional, $and, "this.", $clo, ">0"]) )
#elseif ($cjtype == "long")
#set ( $conditional = $strings.concat([$conditional, $and, "this.", $clo, ">0"]) )
#elseif ($cjtype == "short")
#set ( $conditional = $strings.concat([$conditional, $and, "this.", $clo, ">0"]) )
#else
#set ( $conditional = $strings.concat([$conditional, $and, "!ObjectUtils.equals(this.", $clo, ", null)"]) )
#end
#set ( $arglist = $strings.concat([$arglist, $comma, "this.", $clo]) )
#set ( $and = " && " )
#set ( $comma = ", " )
#end
#set ( $pCollName = $strings.concat([$table.JavaName, "s", $relCol]) )
public $className get${pVarName}() throws Exception
{
if ( $varName==null && ($conditional) )
{
$varName = ${className}Peer.retrieveByPK($arglist);
// The following can be used instead of the line above to
// guarantee the related object contains a reference
// to this object, but this level of coupling
// may be undesirable in many circumstances.
// As it can lead to a db query with many results that may
// never be used.
// $className obj = ${className}Peer.retrieveByPK($arglist);
// obj.add${pCollName}(this);
}
return $varName;
}
/**
* Provides convenient way to set a relationship based on a
* ObjectKey. e.g.
* bar.setFooKey(foo.getPrimaryKey())
*
#if ($fk.LocalColumns.size() > 1)
* Note: It is important that the xml schema used to create this class
* maintains consistency in the order of related columns between
* $table.Name and ${tblFK.Name}.
* If for some reason this is impossible, this method should be
* overridden in $table.JavaName
.
#end
*/
public void set${pVarName}Key(ObjectKey key) throws Exception
{
#if ($fk.LocalColumns.size() > 1)
SimpleKey[] keys = (SimpleKey[])key.getValue();
#set ($i = 0)
#foreach ($colName in $fk.LocalColumns)
#set ($col = $table.getColumn($colName) )
set${col.JavaName}(($col.JavaNative)keys[$i]);
#set ( $i = $i + 1 )
#end
#else
#set ($colName = $fk.LocalColumns.get(0))
#set ($col = $table.getColumn($colName) )
set${col.JavaName}(($col.JavaNative)key);
#end
}
#end ## end of foreach loop over foreign keys
##
## setup foreign key associations
##
#foreach ($fk in $table.Referrers)
#set ( $tblFK = $fk.Table )
#if ( !($tblFK.Name.equals($table.Name)) )
#set ( $className = $tblFK.JavaName )
#set ( $relatedByCol = "" )
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $tblFK.getColumn($columnName) )
#if ($column.isMultipleFK())
#set ($relatedByCol=$strings.concat([$relatedByCol,$column.JavaName]))
#end
#end
#if ($relatedByCol == "")
#set ( $suffix = "" )
#set ( $relCol = $strings.concat([$className, "s"]) )
#set ( $relColMs = $className )
#else
#set ( $suffix = $strings.concat(["RelatedBy", $relatedByCol]) )
#set ( $relCol=$strings.concat([$className,"sRelatedBy",$relatedByCol]))
#set ( $relColMs=$strings.concat([$className,"RelatedBy",$relatedByCol]))
#end
#set ( $collName = $strings.concat(["coll", $relCol]) )
/**
* Collection to store aggregation of $collName
*/
protected Vector $collName;
/**
* Temporary storage of $collName to save a possible db hit in
* the event objects are add to the collection, but the
* complete collection is never requested.
*/
// private Vector temp$collName;
protected void init${relCol}()
{
if ($collName == null)
$collName = new Vector();
}
/**
* Method called to associate a $tblFK.JavaName object to this object
* through the $className foreign key attribute
*
* @param $className l
*/
public void add${relColMs}($className l) throws Exception
{
/*
if ($collName == null)
{
if (temp$collName == null)
{
temp$collName = new Vector();
}
temp${collName}.add(l);
}
else
{
${collName}.add(l);
}
*/
get${relCol}().add(l);
l.set${table.JavaName}${suffix}(($table.JavaName)this);
}
/**
* The criteria used to select the current contents of $collName
*/
private Criteria last${relCol}Criteria = null;
/**
* If this collection has already been initialized, returns
* the collection. Otherwise returns the results of
* get${relCol}(new Criteria())
*/
public Vector get${relCol}() throws Exception
{
if ($collName == null)
{
$collName = get${relCol}(new Criteria(10));
}
return $collName;
}
/**
* If this collection has already been initialized with
* an identical criteria, it returns the collection.
* Otherwise if this $table.JavaName has previously
* been saved, it will retrieve related ${relCol} from storage.
* If this $table.JavaName is new, it will return
* an empty collection or the current collection, the criteria
* is ignored on a new object.
*/
public Vector get${relCol}(Criteria criteria) throws Exception
{
if ($collName == null)
{
if ( isNew() )
{
$collName = new Vector();
}
else
{
#foreach ($columnName in $fk.ForeignColumns)
#set ( $column = $table.getColumn($columnName) )
#set ( $colFKName = $fk.ForeignLocalMapping.get($columnName) )
#set ( $colFK = $tblFK.getColumn($colFKName) )
criteria.add(${className}Peer.${colFK.Name.toUpperCase()}, get${column.JavaName}() );
#end
$collName = ${className}Peer.doSelect(criteria);
}
/*
if (temp$collName != null)
{
for (int i=0; i= 1)
#set ( $lastTable = "" )
#foreach ($fk2 in $tblFK.ForeignKeys)
## Add join methods if the fk2 table is not this table or
## the fk2 table references this table multiple times.
#set ( $doJoinGet = true )
#if ( $fk2.ForeignTableName.equals($table.Name) )
#set ( $doJoinGet = false )
#end
#foreach ($columnName in $fk2.LocalColumns)
#set ( $column = $tblFK.getColumn($columnName) )
#if ($column.isMultipleFK())
#set ( $doJoinGet = true )
#end
#end
#set ( $tblFK2 = $table.Database.getTable($fk2.ForeignTableName) )
#set ( $relatedByCol2 = "" )
#foreach ($columnName in $fk2.LocalColumns)
#set ( $column = $tblFK.getColumn($columnName) )
#if ($column.isMultipleFK())
#set($relatedByCol2=$strings.concat([$relatedByCol2,$column.JavaName]))
#end
#end
#set ( $fkClassName = $tblFK2.JavaName )
## do not generate code for self-referencing fk's, it would be
## good to do, but it is just not implemented yet.
#if ($className == $fkClassName)
#set ( $doJoinGet = false )
#end
#if ($relatedByCol2 == "")
#set ( $relCol2 = $fkClassName )
#else
#set ($relCol2=$strings.concat([$fkClassName,"RelatedBy",$relatedByCol2]))
#end
#if ( $relatedByCol == "")
#else
#if ( $relatedByCol.equals($relatedByCol2) )
#set ( $doJoinGet = false )
#end
#end
#if ($doJoinGet)
/**
* If this collection has already been initialized with
* an identical criteria, it returns the collection.
* Otherwise if this $table.JavaName is new, it will return
* an empty collection; or if this $table.JavaName has previously
* been saved, it will retrieve related ${relCol} from storage.
*/
protected Vector get${relCol}Join${relCol2}(Criteria criteria)
throws Exception
{
if ($collName == null)
{
if ( isNew() )
{
$collName = new Vector();
}
else
{
#foreach ($columnName in $fk.ForeignColumns)
#set ( $column = $table.getColumn($columnName) )
#set ( $colFKName = $fk.ForeignLocalMapping.get($columnName) )
#set ( $colFK = $tblFK.getColumn($colFKName) )
criteria.add(${className}Peer.${colFK.Name.toUpperCase()}, get${column.JavaName}() );
#end
$collName = ${className}Peer.doSelectJoin${relCol2}(criteria);
}
#* /*
if (temp$collName != null)
{
for (int i=0; i 2)
/**
* If this collection has already been initialized with
* an identical criteria, it returns the collection.
* Otherwise if this $table.JavaName is new, it will return
* an empty collection; or if this $table.JavaName has previously
* been saved, it will retrieve related ${relCol} from storage.
*/
protected Vector get${relCol}JoinAllExcept${table.JavaName}(Criteria criteria)
throws Exception
{
if ($collName == null)
{
if ( isNew() )
{
$collName = new Vector();
}
else
{
#foreach ($columnName in $fk.ForeignColumns)
#set ( $column = $table.getColumn($columnName) )
#set ( $colFKName = $fk.ForeignLocalMapping.get($columnName) )
#set ( $colFK = $tblFK.getColumn($colFKName) )
criteria.add(${className}Peer.${colFK.Name.toUpperCase()}, get${column.JavaName}() );
#end
$collName = ${className}Peer.doSelectJoinAllExcept${table.JavaName}${suffix}(criteria);
}
/*
if (temp$collName != null)
{
for (int i=0; i 0) )
#set ( $throwsClause = "throws Exception" )
#end
#end
#set ( $clo=$col.Name.toLowerCase() )
#set ( $cjtype = $col.JavaNative )
#set ($argList = "${argList}$comma $cjtype $clo")
#set ($argList2 = "${argList2}$comma String $clo")
#set ( $comma = "," )
#end
#if ($table.PrimaryKeys.size() == 1)
#set ($col = $table.PrimaryKeys.get(0) )
#set ( $clo=$col.Name.toLowerCase() )
#set ( $cjtype= $col.JavaNative )
/**
* Set the PrimaryKey using ObjectKey.
*
* @param ObjectKey $clo
*/
public void setPrimaryKey(ObjectKey $clo)
$throwsClause {
set${col.JavaName}(($cjtype)$clo);
}
/**
* Set the PrimaryKey using a String.
*/
public void setPrimaryKey(String key) $throwsClause
{
set${col.JavaName}(new ${cjtype}(key) );
}
#elseif ($table.PrimaryKeys.size() > 1)
private final SimpleKey[] pks = new SimpleKey[$table.PrimaryKeys.size()];
private final ComboKey comboPK = new ComboKey(pks);
/**
* Set the PrimaryKey with an ObjectKey
*/
public void setPrimaryKey(ObjectKey key) throws Exception
{
SimpleKey[] keys = (SimpleKey[])key.getValue();
#set ($i = 0)
#foreach ($pk in $table.PrimaryKeys)
set${pk.JavaName}(($pk.JavaNative)keys[$i]);
#set ( $i = $i + 1 )
#end
}
/**
* Set the PrimaryKey using SimpleKeys.
*
#foreach ($col in $table.PrimaryKeys)
#set ( $clo=$col.Name.toLowerCase() )
#set ( $cjtype= $col.JavaNative )
* @param $cjtype $clo
#end
*/
public void setPrimaryKey($argList)
$throwsClause {
#foreach ($col in $table.PrimaryKeys)
set${col.JavaName}($col.Name.toLowerCase());
#end
}
/**
* 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 Exception
{
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
}
#end
/**
* returns an id that differentiates this object from others
* of its class.
*/
public ObjectKey getPrimaryKey()
{
#if ($table.PrimaryKeys.size() == 1)
return get${table.PrimaryKeys.get(0).JavaName}();
#elseif ($table.PrimaryKeys.size() > 1)
#set ($i = 0)
#foreach ($pk in $table.PrimaryKeys)
pks[$i] = get${pk.JavaName}();
#set ($i = $i +1)
#end
return comboPK;
#else
return getPrimaryKey();
#end
}
#end ##ends if(!$table.isAlias())
/**
* get an id that differentiates this object from others
* of its class.
*/
public String getQueryKey()
{
if (getPrimaryKey() == null)
{
return "";
}
else
{
return getPrimaryKey().toString();
}
}
/**
* set an id that differentiates this object from others
* of its class.
*/
public void setQueryKey(String key)
throws Exception
{
setPrimaryKey(key);
}
#if (!$table.isAlias())
/**
* Makes a copy of this object.
* It creates a new object filling in the simple attributes.
#if ($complexObjectModel)
* It then fills all the association collections and sets the
* related objects to isNew=true.
#end
*/
#if ($table.ChildrenColumn || $table.isAbstract())
public $table.JavaName copyInto($table.JavaName copyObj) throws Exception
{
#else
public $table.JavaName copy() throws Exception
{
$table.JavaName copyObj = new ${table.JavaName}();
#end
#foreach ($col in $table.Columns)
copyObj.set${col.JavaName}($col.Name.toLowerCase());
#end
#if ($complexObjectModel)
#set ( $list = "List " )
#foreach ($fk in $table.Referrers)
#set ( $tblFK = $fk.Table )
#if ( !($tblFK.Name.equals($table.Name)) )
#set ( $className = $tblFK.JavaName )
#set ( $relCol = "" )
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $tblFK.getColumn($columnName) )
#if ($column.isMultipleFK())
#set ( $relCol = $strings.concat([$relCol, $column.JavaName]) )
#end
#end
#if ($relCol == "")
#set ( $pCollName = $strings.concat([$className, "s"]) )
#else
#set ( $pCollName = $strings.concat([$className, "sRelatedBy", $relCol]) )
#end
${list}v = copyObj.get${pCollName}();
for (int i=0; i