#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.torque.Torque; import org.apache.torque.om.*; import org.apache.torque.util.BasePeer; import org.apache.torque.util.Criteria; import java.sql.Connection; #if ($addSaveMethod) import org.apache.commons.util.ObjectUtils; #end #if ($addIntakeRetrievable) import org.apache.fulcrum.intake.Retrievable; #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 #if ($addIntakeRetrievable) implements Retrievable #end { /** The Peer class */ private static final ${table.JavaName}Peer peer = new ${table.JavaName}Peer(); #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" || $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)") #elseif ($cjtype == "NumberKey") #set ( $quote = '"' ) #set ($defVal = "= new NumberKey($quote$defaultValue$quote)") #elseif ($cjtype == "StringKey") #set ( $quote = '"' ) #set ($defVal = "= new StringKey($quote$defaultValue$quote)") #else #if (!$col.isPrimitive() && $cjtype != "String") #set ( $defaultValue = "new ${cjtype}($defaultValue)" ) #end #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 ( ($cjtype == "NumberKey") || ($cjtype == "StringKey") || ($cjtype == "DateKey") ) if (v != null && v.getValue() == null) { // If this is an Objectkey than this set method is // probably storing the id of this object or some // associated object. If the objectKey value is null // then we convert the parameter to null so that this // property is consistently null to indicate that no // object is associated or defined. v = null; } #end #if ($complexObjectModel) #if ($col.isForeignKey()) #set ( $tblFK = $table.Database.getTable($col.RelatedTableName) ) #set ( $colFK = $tblFK.getColumn($col.RelatedColumnName) ) #if ($col.isMultipleFK() || $col.RelatedTableName.equals($table.Name)) #set ( $varName = "a${tblFK.JavaName}RelatedBy$col.JavaName" ) #else #set ( $varName = "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 = "coll${tblFK.JavaName}sRelatedBy$colFK.JavaName" ) #else #set ( $collName = "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 this.$clo = v; 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) #set($pVars = []) ## Array of object set method names for later reference. #set($aVars = []) ## Array of object field names for later reference. #foreach ($fk in $table.ForeignKeys) #set ( $tblFK = $table.Database.getTable($fk.ForeignTableName) ) #set ( $className = $tblFK.JavaName ) #set ( $relCol = "" ) #foreach ($columnName in $fk.LocalColumns) #set ( $column = $table.getColumn($columnName) ) #if ($column.isMultipleFK() || $fk.ForeignTableName.equals($table.Name)) #set ( $relCol = "$relCol$column.JavaName" ) #end #end #if ($relCol != "") #set ( $relCol = "RelatedBy$relCol" ) #end #set ( $pVarName = "$className$relCol" ) #set ( $varName = "a$pVarName" ) #set ( $retVal = $pVars.add($pVarName) ) #set ( $retVal = $aVars.add($varName) ) 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 == "short" || $cjtype == "int" || $cjtype == "long") #set ( $conditional = "$conditional${and}this.${clo}>0" ) #else #set ( $conditional = "$conditional${and}!ObjectUtils.equals(this.${clo}, null)" ) #end #set ( $arglist = "$arglist${comma}this.$clo" ) #set ( $and = " && " ) #set ( $comma = ", " ) #end #set ( $pCollName = "${table.JavaName}s$relCol" ) public $className get${pVarName}() throws Exception { if ( $varName==null && ($conditional) ) { #if ($tblFK.isAlias()) $varName = ${className}Peer.retrieve${className}ByPK($arglist); #else $varName = ${className}Peer.retrieveByPK($arglist); #end /* 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= "$relatedByCol$column.JavaName") #end #end #if ($relatedByCol == "") #set ( $suffix = "" ) #set ( $relCol = "${className}s" ) #set ( $relColMs = $className ) #else #set ( $suffix = "RelatedBy$relatedByCol" ) #set ( $relCol= "${className}sRelatedBy$relatedByCol" ) #set ( $relColMs= "${className}RelatedBy$relatedByCol" ) #end #set ( $collName = "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. */ 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 { 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); } } else { // criteria has no effect for a new object if ( !isNew() ) { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return the collection. #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 if ( !last${relCol}Criteria.equals(criteria) ) { $collName = ${className}Peer.doSelect(criteria); } } } last${relCol}Criteria = criteria; return $collName; } #set ( $countFK = 0 ) #foreach ($dummyFK in $tblFK.ForeignKeys) #set ( $countFK = $countFK + 1 ) #end ## ------------------------------------------------------------ ## #if ($countFK >= 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 = "$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 = "${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. * * This method is protected by default in order to keep the public * api reasonable. You can provide public methods for those you * actually need in ${table.JavaName}. */ 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); } } else { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return the collection. boolean newCriteria = true; #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 if ( !last${relCol}Criteria.equals(criteria) ) { $collName = ${className}Peer.doSelectJoin${relCol2}(criteria); } } last${relCol}Criteria = criteria; return $collName; } #end #end #end #end ## =========================================================== #* #if ($countFK > 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. * * This method is protected by default in order to keep the public * api reasonable. You can provide public methods for those you * actually need in ${table.JavaName}. */ 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); } } else { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return the collection. boolean newCriteria = true; #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 if ( !last${relCol}Criteria.equals(criteria) ) { $collName = ${className}Peer.doSelectJoinAllExcept${table.JavaName}${suffix}(criteria); } } last${relCol}Criteria = criteria; return $collName; } #end *# ## ------------------------------------------------------------ #end ## ends foreach over table.Referrers #end ##ends the if(complexObjectModel) ## ## getByName code ## #if (!$table.isAlias() && $addGetByNameMethod) private static Vector fieldNames_ = null; /** * Generate a list of field names. */ public static synchronized List getFieldNames() { if (fieldNames_ == null) { fieldNames_ = new Vector(); #foreach ($col in $table.Columns) fieldNames_.add("${col.JavaName}"); #end } return fieldNames_; } /** * Retrieves a field from the object by name passed in * as a String. */ public Object getByName(String name) { #foreach ($col in $table.Columns) #set ( $cfc = $col.JavaName ) #set ( $cjtype = $col.JavaNative ) if (name.equals("${col.JavaName}")) { #if ($cjtype == "int") return new Integer(get${cfc}()); #elseif ($cjtype == "long") return new Long(get${cfc}()); #elseif ($cjtype == "float") return new Float(get${cfc}()); #elseif ($cjtype == "double") return new Double(get${cfc}()); #elseif ($cjtype == "boolean") return new Boolean(get${cfc}()); #elseif ($cjtype == "short") return new Short(get${cfc}()); #elseif ($cjtype == "byte") return new Byte(get${cfc}()); #elseif ($cjtype == "char") return new Character(get${cfc}()); #else return get${cfc}(); #end } #end return null; } /** * Retrieves a field from the object by name passed in * as a String. The String must be one of the static * Strings defined in this Class' Peer. */ public Object getByPeerName(String name) { #foreach ($col in $table.Columns) #set ( $cfc = $col.JavaName ) #set ( $cup=$col.Name.toUpperCase() ) #set ( $cjtype = $col.JavaNative ) if (name.equals(${table.JavaName}Peer.$cup )) { #if ($cjtype == "int") return new Integer(get${cfc}()); #elseif ($cjtype == "long") return new Long(get${cfc}()); #elseif ($cjtype == "float") return new Float(get${cfc}()); #elseif ($cjtype == "double") return new Double(get${cfc}()); #elseif ($cjtype == "boolean") return new Boolean(get${cfc}()); #elseif ($cjtype == "short") return new Short(get${cfc}()); #elseif ($cjtype == "byte") return new Byte(get${cfc}()); #elseif ($cjtype == "char") return new Character(get${cfc}()); #else return get${cfc}(); #end } #end return null; } /** * Retrieves a field from the object by Position as specified * in the xml schema. Zero-based. */ public Object getByPosition(int pos) { #set ($i = 0) #foreach ($col in $table.Columns) #set ( $cfc = $col.JavaName ) #set ( $cjtype = $col.JavaNative ) if ( pos == $i ) { #if ($cjtype == "int") return new Integer(get${cfc}()); #elseif ($cjtype == "long") return new Long(get${cfc}()); #elseif ($cjtype == "float") return new Float(get${cfc}()); #elseif ($cjtype == "double") return new Double(get${cfc}()); #elseif ($cjtype == "boolean") return new Boolean(get${cfc}()); #elseif ($cjtype == "short") return new Short(get${cfc}()); #elseif ($cjtype == "byte") return new Byte(get${cfc}()); #elseif ($cjtype == "char") return new Character(get${cfc}()); #else return get${cfc}(); #end } #set ($i = $i + 1) #end return null; } #end ## ends the if(addGetByNameMethod) #if (!$table.isAlias() && $addSaveMethod) /** * Stores the object in the database. If the object is new, * it inserts it; otherwise an update is performed. */ public void save() throws Exception { #if ($complexObjectModel) save(${table.JavaName}Peer.getMapBuilder() .getDatabaseMap().getName()); #else if (isModified()) { if (isNew()) { ${table.JavaName}Peer.doInsert(($table.JavaName)this); setNew(false); } else { ${table.JavaName}Peer.doUpdate(($table.JavaName)this); } } #end } /** * Stores the object in the database. If the object is new, * it inserts it; otherwise an update is performed. #if ($complexObjectModel) * Note: this code is here because the method body is * auto-generated conditionally and therefore needs to be * in this file instead of in the super class, BaseObject. #end */ public void save(String dbName) throws Exception { Connection con = null; #if ($complexObjectModel) try { con = BasePeer.beginTransaction(dbName); save(con); } catch(Exception e) { BasePeer.rollBackTransaction(con); throw e; } BasePeer.commitTransaction(con); #else if (isModified()) { try { con = BasePeer.getConnection( dbName ); if (isNew()) { ${table.JavaName}Peer .doInsert(($table.JavaName)this, con); setNew(false); } else { ${table.JavaName}Peer .doUpdate(($table.JavaName)this, con); } } finally { BasePeer.closeConnection(con); } } #end } #if ($complexObjectModel) /** flag to prevent endless save loop, if this object is referenced by another object which falls in this transaction. */ private boolean alreadyInSave = false; #end /** * Stores the object in the database. If the object is new, * it inserts it; otherwise an update is performed. This method * is meant to be used as part of a transaction, otherwise use * the save() method and the connection details will be handled * internally */ public void save(Connection con) throws Exception { #if ($complexObjectModel) if (!alreadyInSave) { alreadyInSave = true; #* FIXME! the following code can cause an infinite loop, needs more thought shows the infinite loop: System.out.println("Entering save for " + this); #if ($pVars.size() != 0) // We call the save method on the following object(s) if they // were passed to this object by their coresponding set // method. This object relates to these object(s) by a // foreign key reference. If the object(s) being saved were // new to the database, an insert was performed, then they may // have a new PrimaryKey. We call the coresponding set method // for the given object(s) to set this object's Id reference // to this new Primary key so that it will be saved. #foreach ($aVarName in $aVars) #set($i = $velocityCount - 1) if ($aVarName != null) { ${aVarName}.save(con); set$pVars.get($i)($aVarName); } #end #end *# #end // If this object has been modified, then save it to the database. if (isModified()) { if (isNew()) { ${table.JavaName}Peer.doInsert(($table.JavaName)this, con); setNew(false); } else { ${table.JavaName}Peer.doUpdate(($table.JavaName)this, con); } } #if ($complexObjectModel) #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 = "$relCol$column.JavaName" ) #end #end #if ($relCol == "") #set ( $relCol = "${className}s" ) #else #set ( $relCol = "${className}sRelatedBy$relCol" ) #end #set ( $collName = "coll$relCol" ) if ($collName != null ) { for (int i=0; i<${collName}.size(); i++) { ((${className})${collName}.get(i)).save(con); } } #end #end #end #if ($complexObjectModel) alreadyInSave = false; } #end } #end ## PrimaryKey methods #if (!$table.isAlias()) #set ( $throwsClause = "" ) #set ( $argList = "" ) #set ( $argList2 = "" ) #set ( $comma = "" ) #foreach ($col in $table.PrimaryKeys) #if ($complexObjectModel) #if ( $col.isForeignKey() || ($col.Referrers.size() > 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()) #if ($addIntakeRetrievable) /** * 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); } #end #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) copyObj.setNew(false); #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 = "$relCol$column.JavaName" ) #end #end #if ($relCol == "") #set ( $pCollName = "${className}s" ) #set ( $pCollNameNoS = "${className}" ) #else #set ( $pCollName = "${className}sRelatedBy$relCol" ) #set ( $pCollNameNoS = "${className}RelatedBy$relCol" ) #end ${list}v = get${pCollName}(); for (int i=0; i