#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