<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="table">
package domain;
import java.util.*;
import java.io.*;
import java.io.Serializable;
/**
* This is a DataObject class wrapping the schema of the table <xsl:value-of select="@name"/>.
*
* Generated by JETGen Database Code Generator -- http://www.jetools.com.
*/
public class <xsl:value-of select="@javaname"/> extends DataObject
implements Serializable
{
private static final String _tablename="<xsl:value-of select="@name"/>";
private static final Hashtable _cam=new Hashtable();
static String primaryKeyColumns[]=
{<xsl:for-each select="primary_keys/column">"<xsl:value-of select="name"/>"<xsl:if test="not(position()=last())">,
</xsl:if></xsl:for-each>};
static {
<xsl:for-each select="column" >
_cam.put("<xsl:value-of select="javaname"/>".toUpperCase(), "<xsl:value-of select="name"/>"); </xsl:for-each>
}
// Member variables
<xsl:for-each select="column">
private <xsl:value-of select="javatype"/> _<xsl:value-of select="javaname"/>;// SQL type:<xsl:value-of select="type"/> </xsl:for-each>
// constructors
public <xsl:value-of select="@javaname"/> () {}
public <xsl:value-of select="@javaname"/>(<xsl:call-template name="col_param_list"/>)
{
<xsl:call-template name="col_assignment"/>
}
/** Column accessor map maps SQL column names to java accessor names.
* it is used by the SQLGenerator class. */
public Hashtable columnAccessorMap() {return _cam;}
/** toString prints the type of object, and it's primary keys.
*/
public String toString(){
String sname=this.getClass().getName();
if (sname.indexOf(".") != -1)
sname=sname.substring(sname.lastIndexOf(".")+1, sname.length());
String key=<xsl:text>"["+</xsl:text><xsl:call-template name="pkey_string"/><xsl:text>+"]";</xsl:text>
return sname+key;
}
/** Returns this object's primary key columns for db access. */
public String[] primaryKeyColumns() {return primaryKeyColumns;}
public String tableName() {return _tablename;}
public String[] primaryKeyValues()
{
Vector v=new Vector();
<xsl:for-each select="primary_keys/column">v.addElement(""+_<xsl:value-of select="javaname"/>);
</xsl:for-each>
String vals[]=new String[v.size()];
v.copyInto(vals);
return vals;
}
// Accessors
<xsl:for-each select="column">
<xsl:apply-templates select="." />
</xsl:for-each>
}
</xsl:template>
<xsl:template match="column">
public void set<xsl:value-of select="javaname"/>(<xsl:value-of select="javatype"/> x){
_<xsl:value-of select="javaname"/>=x;
}
public <xsl:value-of select="javatype"/> get<xsl:value-of select="javaname"/>(){
return _<xsl:value-of select="javaname"/>;
}
</xsl:template>
<xsl:template name="pkey_string">
<xsl:for-each select="primary_keys/column">_<xsl:value-of select="javaname"/><xsl:if test="not(position()=last())">+", "+</xsl:if></xsl:for-each>
</xsl:template>
<xsl:template name="col_param_list">
<xsl:for-each select="column"><xsl:value-of select="javatype"/> parm<xsl:value-of select="position()"/><xsl:if test="not(position()=last())">, </xsl:if></xsl:for-each>
</xsl:template>
<xsl:template name="col_assignment">
<xsl:for-each select="column">_<xsl:value-of select="javaname"/> = parm<xsl:value-of select="position()"/>;
</xsl:for-each></xsl:template>
</xsl:stylesheet>
|