FireStorm/DAO Architect Edition - Example of Code Generation
/*
* Copyright 2008 CodeFutures Corporation. All rights reserved.
*
* This is vendor code. Use is subject to license terms.
*
* Author: Andy Grove
* Date: 21-Jan-2008
* Time: 08:57:11
*
* Visit / for more information.
*/
package
com.codefutures.firestorm.codegen.dao;
import
com.codefutures.jingo.source.dom.JClass;
import
com.codefutures.jingo.source.dom.JAttribute;
import
com.codefutures.jingo.source.factory.SourceFactory;
import
com.codefutures.firestorm.project.dom.TableDao;
import
com.codefutures.firestorm.project.dom.TableDaoColumn;
import
com.codefutures.firestorm.project.dom.PrimaryKey;
import
com.codefutures.firestorm.api.CommonOptions;
public
class
GenTablePk
{
public
static
JClass
generate(
TableDao
dao,
CommonOptions
config
)
{
JClass
c
=
SourceFactory.createClass(
config.getDtoPackageName(),
dao.getJavaName()
+
DaoConst.PK_SUFFIX
);
c.setJavaDoc(
"This class represents the primary key of the "
+
dao.getSqlName()
+
" table."
);
c.addImport(
"java.io.Serializable"
);
c.addImplements(
"Serializable");
PrimaryKey
pk
=
dao.getPrimaryKey();
if
(pk
!=
null)
{
TableDaoColumn
col[]
=
dao.getPrimaryKeyColumnList();
for
(int
i
=
0;
i
<
col.length;
i++)
{
JAttribute
attr
=
c.createAttribute(
col[i].getJavaType(),
col[i].getJavaName()
);
c.createAccessorMethods(
attr
);
}
c.createConstructor(
c.getAttributeList()
);
}
DaoCodeGenHelper.createToStringMethod(
c,
dao.getPrimaryKeyColumnList()
);
return
c;
}
}

